本文整理 PaperBanana 目前實作中的五個核心 Agent 的角色定位、輸入輸出職責、實際使用的系統提示詞,以及執行時拼接的關鍵使用者提示模板。
說明:
- 內容基於目前程式碼實作,而不是論文中的抽象描述。
- 這裡優先整理
diagram主流程,因為目前多代理討論主要圍繞方法圖示生成。 - 對於
plot分支,本文末尾補充對應差異。
相關原始碼位置:
1. Retriever

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

2.1 角色定位
Planner 是多代理鏈路中的結構中樞。
它接收
- 原始論文內容
- 圖示目標描述
- Retriever 選出的參考樣例
然後輸出一份足夠詳細的圖示描述,作為後續 Stylist 和 Visualizer 的骨架。
Planner 目前承擔的職責包括:
- 把方法文字轉成圖示元素
- 明確元素間連接關係
- 給出版面與視覺細節
- 盡量避免模糊表述
2.2 輸入與輸出
輸入:
contentvisual_intenttop10_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

3.1 角色定位
Stylist 負責在不改變語義骨架的前提下,提升圖示的視覺品質。
它會讀取
- Planner 生成的詳細描述
- 預先整理好的風格指南
style_guides/neurips2025_diagram_style_guide.md然後把原描述潤飾成更符合學術會議審美的版本。
Stylist 目前明確被要求:
- 不改語義邏輯
- 可以簡化冗長表述
- 只在必要時套用統一風格
- 尊重已有優質風格,不盲目標準化
3.2 輸入與輸出
輸入:
target_diagram_desc0- style guide
contentvisual_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

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

5.1 角色定位
Critic 負責閉環檢查和修訂。
它會讀取
- 目前生成出的圖
- 目前圖對應的詳細描述
- 原始 methodology section
- 原始 figure caption
然後輸出
- 一份明確的修改建議
- 一份修訂後的詳細描述
如果模型認為目前結果已經足夠好,就回傳 No changes needed.,流程會提前收斂。
5.2 輸入與輸出
輸入:
- 目標圖像
- 目前描述
contentvisual_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 以生成更穩健程式碼」的模式