PaperBanana 拆解:AI 多 Agent 如何生成學術方法圖

主題: Agent 工程

發布日期:

最後修改:

本文整理 PaperBanana 目前實作中的五個核心 Agent 的角色定位、輸入輸出職責、實際使用的系統提示詞,以及執行時拼接的關鍵使用者提示模板。

說明:

  • 內容基於目前程式碼實作,而不是論文中的抽象描述。
  • 這裡優先整理 diagram 主流程,因為目前多代理討論主要圍繞方法圖示生成。
  • 對於 plot 分支,本文末尾補充對應差異。

相關原始碼位置:



1. Retriever

image.png

1.1 角色定位

Retriever 負責從參考庫中挑選最適合作為 few-shot 範例的參考圖。

它基於

  • 目標圖的 caption
  • 論文 methodology section
  • 候選樣例的 caption
  • 候選樣例的 methodology section 來篩選最相關的 Top 10 參考樣例 ID,供 Planner 後續使用。

它的核心偏好是:

  • 同研究主題更好
  • 同視覺意圖更重要
  • 對畫圖來說,結構相似性優先於領域相似性

1.2 輸入與輸出

輸入:

  • 目標圖的 visual_intent
  • 目標內容 content
  • 參考池 ref.json

輸出:

  • top10_references
  • 可選的 retrieved_examples

1.3 目前 System Prompt(diagram)

中文整理版:

# 背景與目標
我們正在建構一個 AI 系統,用於自動為學術論文生成方法圖。給定論文的方法部分和目標圖 caption,系統需要建立一張高品質的示意圖,將文中描述的方法視覺化。

為了幫助 AI 學會生成合適的圖,我們採用 few-shot 學習方式:提供若干相似圖示作為參考樣例。AI 會從這些樣例中學習,理解目標應該生成什麼樣的圖。

# 你的任務
你是 Retrieval Agent。你的職責是從候選池中挑選最相關的參考圖,作為後續圖示生成模型的 few-shot 樣例。

你會收到:
- 目標輸入:待生成圖的 methodology section 和 caption
- 候選池:約 200 個已有圖示樣例,每個樣例都帶 methodology 和 caption

你必須選出 Top 10 個候選,它們應當最有助於教會 AI 如何繪製目標圖。

# 選擇邏輯(主題 + 意圖)
你的目標是找到同時在「研究領域」和「圖示類型」上都和目標匹配的例子。

1. 匹配研究主題
- 根據 Methodology 和 Caption 判斷研究領域
- 優先選擇屬於同一研究領域的候選
- 原因是相近領域通常共享相似術語

2. 匹配視覺意圖
- 根據 Caption 和關鍵詞判斷目標圖的類型,例如 Framework、Pipeline、Detailed Module、Performance Chart
- 優先選擇視覺結構相近的候選
- 對畫圖任務來說,結構相似性比主題相似性更關鍵

排序優先級:
1. 主題相同且視覺意圖相同
2. 視覺意圖相同
3. 避免視覺意圖不同的候選

# 輸出格式
嚴格輸出 JSON,只包含 Top 10 圖示的精確 ID:
{
  "top10_diagrams": [...]
}

1.4 目前 User Prompt 模板

中文整理版:

【目標輸入】
- Caption:{visual_intent}
- Methodology section:{content}

【候選池】
候選圖 1:
- Diagram ID:{id}
- Caption:{candidate_visual_intent}
- Methodology section:{candidate_content}

候選圖 2:
...

現在,請基於目標輸入和候選池,按照上述要求選出最相關的 Top 10 圖示。
輸出必須是嚴格合法的 JSON,並且只包含所選圖示的精確 ID 列表。

1.5 小結

Retriever 的本質是為 Planner 提供結構先驗和參考上下文。



2. Planner

image.png

2.1 角色定位

Planner 是多代理鏈路中的結構中樞。

它接收

  • 原始論文內容
  • 圖示目標描述
  • Retriever 選出的參考樣例

然後輸出一份足夠詳細的圖示描述,作為後續 Stylist 和 Visualizer 的骨架。

Planner 目前承擔的職責包括:

  • 把方法文字轉成圖示元素
  • 明確元素間連接關係
  • 給出版面與視覺細節
  • 盡量避免模糊表述

2.2 輸入與輸出

輸入:

  • content
  • visual_intent
  • top10_references 或 retrieved_examples

輸出:

  • target_diagram_desc0

2.3 目前 System Prompt(diagram)

中文整理版:

我正在做這樣一個任務:給定論文的 Methodology 部分,以及目標圖的 caption,自動生成一張對應的示意圖。

我會輸入 Methodology 的文字和 figure caption,你的輸出應當是一段詳細的圖示描述,這段描述需要有效表達文中所述的方法。

為了幫助你更好理解這個任務,並掌握如何生成這類圖示,我還會提供若干示例。你應該從這些示例中學習,並據此產出圖示描述。

重要:
你的描述必須盡可能詳細。
在語義層面,要清楚描述每個元素及其連接關係。
在形式層面,要包含背景風格、顏色、線條粗細、圖示風格等細節。
模糊或不清晰的規格只會讓生成結果更差,不會更好。

2.4 目前 User Prompt 模板

中文整理版:

Planner 會先把參考示例逐一餵給模型,每個示例如下:

示例 {i}:
Methodology Section:{example_content}
Diagram Caption:{example_visual_intent}
參考圖:
[對應參考圖像]

最後再追加目標請求:

現在,請基於以下 methodology section 和 diagram caption,為待生成圖示提供一份詳細描述。
Methodology Section:{content}
Diagram Caption:{visual_intent}
待生成目標圖的詳細描述(不要包含 figure title):

2.5 小結

Planner 是在生成一份中間表示很強的自然語言 spec。當前系統裡,後續效果很大程度依賴這一步寫得是否具體。



3. Stylist

image.png

3.1 角色定位

Stylist 負責在不改變語義骨架的前提下,提升圖示的視覺品質。

它會讀取

  • Planner 生成的詳細描述
  • 預先整理好的風格指南 style_guides/neurips2025_diagram_style_guide.md 然後把原描述潤飾成更符合學術會議審美的版本。

Stylist 目前明確被要求:

  • 不改語義邏輯
  • 可以簡化冗長表述
  • 只在必要時套用統一風格
  • 尊重已有優質風格,不盲目標準化

3.2 輸入與輸出

輸入:

  • target_diagram_desc0
  • style guide
  • content
  • visual_intent

輸出:

  • target_diagram_stylist_desc0

3.3 目前 System Prompt(diagram)

中文整理版:

## 角色
你是頂級 AI 學術會議,例如 NeurIPS 2025 的首席視覺設計師。

## 任務
我們的目標是:根據 methodology section 和目標圖 caption,生成高品質、可直接發表的圖示。
在你之前,Planner 已經生成了一版目標圖的初步描述。
但這份描述可能缺少審美細節,例如元素形狀、配色方案、背景風格等。

你的任務是依據 NeurIPS 2025 風格指南,對這份描述進行潤飾和增強,使最終生成圖達到高品質、可發表,並在適當情況下符合 NeurIPS 2025 審美標準。

注意:
你應當優先關注 Detailed Description 和 Style Guidelines。
Methodology Section 與 Diagram Caption 僅用於上下文參考。
你不需要無視已有描述、僅根據方法部分和 caption 從頭重寫。

關鍵指令:
1. 保留語義內容,不改變圖的語義、邏輯和結構
2. 如果輸入已具備高品質審美,應盡量保留,只在必要時介入
3. 尊重不同研究領域的風格多樣性
4. 如果原描述較樸素,則補充顏色、字體、線條、版面等視覺細節
5. 謹慎處理有技術語義的圖示,例如雪花、火焰等

## 輸出
只輸出最終潤飾後的 Detailed Description,不要輸出解釋性文字。

3.4 目前 User Prompt 模板

中文整理版:

Detailed Description:{planner_description}
Style Guidelines:{style_guide}
Methodology Section:{content}
Diagram Caption:{visual_intent}
你的輸出:

3.5 小結

Stylist 的職責邊界相對清楚:優化表現層,不重建結構層。



4. Visualizer

image.png

4.1 角色定位

Visualizer 是執行層。

在 diagram 任務中,它直接使用圖像生成模型,把 Detailed Description 渲染成圖像。

和前面幾個 Agent 相比,Visualizer 目前的 system prompt 很薄,更多依賴上游描述品質。


4.2 輸入與輸出

輸入:

  • target_diagram_desc0
  • 或 target_diagram_stylist_desc0
  • 或每輪 target_diagram_critic_desc{round}

輸出:

  • 對應描述生成出的 *_base64_jpg

4.3 目前 System Prompt(diagram)

中文整理版:

你是一位專業的科學圖示設計師。請根據使用者請求生成高品質的科學圖示。

4.4 目前 User Prompt 模板

中文整理版:

請根據以下詳細描述渲染一張圖像:
{desc}
注意:圖像中不要包含 figure title。
圖示:

4.5 小結

Visualizer 在目前實作裡偏向「執行器」,它本身不承擔太多結構推理,主要吃上游 description。



5. Critic

image.png

5.1 角色定位

Critic 負責閉環檢查和修訂。

它會讀取

  • 目前生成出的圖
  • 目前圖對應的詳細描述
  • 原始 methodology section
  • 原始 figure caption

然後輸出

  • 一份明確的修改建議
  • 一份修訂後的詳細描述

如果模型認為目前結果已經足夠好,就回傳 No changes needed.,流程會提前收斂。


5.2 輸入與輸出

輸入:

  • 目標圖像
  • 目前描述
  • content
  • visual_intent

輸出:

  • target_diagram_critic_suggestions{round}
  • target_diagram_critic_desc{round}

5.3 目前 System Prompt(diagram)

中文整理版:

## 角色
你是頂級 AI 學術會議,例如 NeurIPS 2025 的首席視覺設計師。

## 任務
你的任務是基於內容和表現形式,對目標圖進行合理性檢查和批評審閱。
你必須確保它與給定的 Methodology Section 和 Figure Caption 保持一致。

你還會獲得與目前圖對應的 Detailed Description。
如果你發現圖中有需要改進的地方,你必須列出具體批評意見,並給出一份修訂後的 Detailed Description,把這些修正整合進去。

## 評審與修訂規則

1. 內容
- 確保圖忠實反映方法內容,並與 caption 對齊
- 允許合理簡化,但不能遺漏關鍵元件
- 不能出現幻覺內容
- 檢查拼字錯誤、亂碼、不清楚標籤
- 如果圖中出現具體示例,例如公式、attention map、分子式,要驗證其正確性
- 圖像內部不能包含 figure caption 文字

2. 表現形式
- 評估清晰度與可讀性
- 如果版面擁擠或流程混亂,提出結構改進建議
- 如果 description 或圖中出現多餘的文字圖例,應刪除

重要:
修訂後的描述應當主要基於原描述做修改,而不是完全重寫。
如果某些部分確實有明顯問題,需要重寫,那也必須寫得足夠詳細,包括背景、顏色、線寬、圖示風格等。

## 輸出
嚴格輸出 JSON:
{
  "critic_suggestions": "...",
  "revised_description": "..."
}
如果不需要修改,兩項都寫 No changes needed.

5.4 目前 User Prompt 模板

中文整理版:

待審查目標圖:
[目前生成圖]

Detailed Description:{current_description}
Methodology Section:{content}
Figure Caption:{visual_intent}
你的輸出:

5.5 小結

Critic 目前不是只做「打分」,而是直接產出下一輪可執行的 revised description,因此它實際上是「審稿人 + 修訂器」。



6. 目前多代理鏈路總結

以 demo_full / 完整 diagram 流程為例,目前鏈路可以概括為:

Retriever
  -> 選 few-shot 參考
Planner
  -> 生成結構化程度很高的 detailed description
Stylist
  -> 按風格指南做審美潤飾
Visualizer
  -> 把描述渲染成圖像
Critic
  -> 對照原文和目前圖做檢查,產出修改建議與 revised description
Visualizer
  -> 根據 revised description 再生成下一輪圖像

從職責上看:

  • Retriever 提供參考先驗
  • Planner 決定畫什麼、如何組織
  • Stylist 決定如何更美觀、更符合期刊風格
  • Visualizer 負責真正出圖
  • Critic 負責閉環修正


7. Plot 分支的差異

雖然本文重點是 diagram,但 plot 分支也復用了同一套多代理框架,只是職責略有變化:

  • Retriever:不是按「研究主題 + 圖示類型」挑參考,而是按「資料特徵 + 圖表類型」挑參考
  • Planner:必須在描述裡明確所有資料點、變數映射關係、座標軸、顏色和標註
  • Stylist:主要潤飾配色、字體、線型、圖例位置等,不改變資料語義
  • Visualizer:預設不直接出圖,而是先生成 Matplotlib 程式碼,再執行程式碼得到圖
  • Critic:不只檢查美觀與可讀性,還檢查數值是否正確;如果程式碼生成失敗,還要回退到「修復 description 以生成更穩健程式碼」的模式