乐于分享
好东西不私藏

拆解 PaperBanana 源码:AI 如何协作生成学术方法图

拆解 PaperBanana 源码:AI 如何协作生成学术方法图

本文整理 PaperBanana 当前实现中的五个核心 Agent 的角色定位、输入输出职责、实际使用的系统提示词,以及运行时拼接的关键用户提示模板。

说明:

  • 内容基于当前代码实现,而不是论文中的抽象描述。

  • 这里优先整理 diagram 主流程,因为当前多代理讨论主要围绕方法图示生成。

  • 对于 plot 分支,本文末尾补充对应差异。

相关源码位置:

  • Retriever

  • Planner

  • Stylist

  • Visualizer

  • Critic

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 输入与输出

输入:

  • 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

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

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 输入与输出

输入:

  • 目标图像

  • 当前描述

  • 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 以生成更稳健代码”的模式