PaperOrchestra Outline Agent工作原理:1次LLM调用如何生成驱动全局的outline.json
【免费下载链接】PaperOrchestra
An automated AI research-paper writer based off Google's PaperOrchestra paper's implementation through a skills - benchmark + autoraters using any coding agent (Claude Code, Cursor, Antigravity, Cline, Aider). No API keys, no LLM SDKs.
PaperOrchestra 是一个自动化学术论文写作框架的开源实现,而它的Outline Agent(大纲智能体)正是整条流水线的"总指挥"——仅用1 次 LLM 调用,就把 idea.md、实验日志等原始研究素材,融合成一份严格遵循 JSON Schema 的outline.json,随后驱动绘图、文献综述、章节写作等所有下游智能体协同工作。这篇文章带你完整拆解它的工作原理。
为什么"1次LLM调用"如此重要?
在 PaperOrchestra 的五步流水线中(Outline → Plotting → Literature Review → Section Writing → Content Refinement),Outline Agent 负责 Step 1。原始论文统计的各智能体 LLM 调用成本如下:
| 智能体 | LLM 调用次数 | 角色 |
|---|---|---|
| Outline Agent(Step 1) | 1 | 一次性产出全局大纲 |
| Plotting Agent(Step 2) | ~20–30 | 按绘图计划渲染图表 |
| Literature Review Agent(Step 3) | ~20–30 | 按检索策略搜索文献 |
| Section Writing Agent(Step 4) | 1 | 单轮多模态写作 |
| Content Refinement Agent(Step 5) | ~5–7 | 模拟评审与修订 |
也就是说,大纲是整个流水线中"调用最便宜、影响却最大"的产物:它相当于给后面所有智能体下发施工图纸。Step 2 和 Step 3 之所以能并行运行,正是因为它们各自消费的是outline.json里互不重叠的两个键。流水线全貌可参考 skills/paper-orchestra/references/pipeline.md。
四份输入与"必须综合"的全局指令
Outline Agent 读取工作区中的四个输入文件:
workspace/inputs/idea.md—— 方法论与核心贡献摘要workspace/inputs/experimental_log.md—— 实验结果、消融研究、指标workspace/inputs/template.tex—— 会议 LaTeX 模板,提供章节骨架workspace/inputs/conference_guidelines.md—— 页数限制与格式规则
它的 system prompt 逐字复刻自论文附录 F.1(App. F.1, pp. 40–44),见 skills/outline-agent/references/prompt.md。其中最关键的一条全局指令是:
Do not analyze inputs in isolation. You must synthesize information across all provided documents for every step.
这正是"1次调用"能成立的前提:不是分别摘要四份文件,而是在同一上下文里做跨文档综合——从 idea.md 提取机制、从实验日志提取数字证据、从模板取章节骨架、从会议指南推导文献截止时间(cutoff_date),一次推理完成。
outline.json 的三大计划键
输出必须且只能是一个 JSON 对象,包含三个顶层键。人机可读的字段说明在 skills/outline-agent/references/outline-schema.md,机器可读的 JSON Schema 在 skills/outline-agent/references/outline_schema.json。
1️⃣ plotting_plan:绘图计划
一个 FigureSpec 对象数组,每张图 6 个字段,且枚举值被严格锁死(完整清单见 skills/outline-agent/references/allowed-values.md):
| 字段 | 约束 |
|---|---|
figure_id | snake_case 语义化命名,如fig_framework_overview,禁止出现单词 "Figure" |
plot_type | 只能是"plot"(统计图)或"diagram"(概念/架构图) |
data_source | 只能是"idea.md"/"experimental_log.md"/"both" |
aspect_ratio | 限定 12 种比例,如"16:9"、"4:3"、"1:1" |
objective | 若为 plot,必须写明具体图表类型(如 Radar Chart) |
这一步的意义在于:它把"该画哪些图、用什么数据、什么版式"提前决策好。下游 Plotting Agent 只需照着执行即可,无需再做创作性判断。下面这张架构分层图,正是示例项目中plot_type: "diagram"、data_source: "idea.md"的产物:
2️⃣ intro_related_work_plan:文献检索策略
这一键不写论文内容,而是给下游 Literature Review Agent 下达"搜索指令",并且强制把 Introduction 与 Related Work 严格分层,避免引用重叠:
- Introduction(宏观语境,10–20 篇):定义 Hook(大背景)与 Problem Gap(待验证的问题缺口),并给出 3–5 条检索方向——问题紧迫性证据、综述、奠基性工作。
- Related Work(微观技术基线,30–50 篇):把领域切成2–4 个方法论簇,每个簇配备五件套:
methodology_cluster(技术类别)、sota_investigation_mission(找 SOTA 的任务)、limitation_hypothesis(假设的缺陷点)、limitation_search_queries(定位缺陷的具体查询)、bridge_to_our_method(我们的方法如何弥补)。
另有一条关键时间线规则:禁止检索{cutoff_date}之后发表的论文——截止时间从conference_guidelines.md推导(如 "ICLR 2025 → cutoff 2024 年 10 月"),防止论文"引用未来"。
3️⃣ section_plan:分节写作计划
把 Abstract、Methodology、Experiments、Conclusion 等章节展开为结构树,附带三条硬性要求:
- 层级完整性:若存在子节 X.1,则 X.2 必须存在,禁止"孤儿子节";
- 内容具体化:content_bullets 必须指向源材料的具体位置。禁止 "Describe the model",要求 "Formalize the X mechanism using Eq. 3 from idea.md";
- 引用提示(citation_hints)全覆盖:每个数据集、优化器、指标、基础模型(哪怕 AdamW、ResNet 这种再常见不过的东西)都必须有引用提示,且只允许两种格式:
- 确知作者与标题:
"Author (Exact Paper Title)" - 否则:
"research paper or technical report introducing '[名称]'" - 严禁猜测或编造作者——因为这些提示会被下游当成检索词,错误的作者名会污染整条引用链。
- 确知作者与标题:
硬约束:确定性校验器兜底
LLM 的一次调用终究是非确定的,PaperOrchestra 用一个纯确定性脚本兜底:skills/outline-agent/scripts/validate_outline.py。它在 JSON Schema 校验之外还执行语义检查:
figure_id必须匹配^[a-z0-9_]+$,且fig_前缀后不得再含 "figure";- 禁止孤儿子节(层级规则);
related_work_strategy.subsections必须有 2–4 个簇(论文原文规则);plot_type: "plot"但 objective 未指明图表类型时,给出 WARNING。
python skills/outline-agent/scripts/validate_outline.py workspace/outline.json # 退出码 0 = 通过(允许 warning);1 = 结构或语义错误规则很明确:校验不通过就修 JSON 再验,绝不允许带着非法 outline 进入 Step 2/3——因为所有下游智能体都直接解析这份 schema。校验通过后,Outline Agent 还会把核心主张、叙事张力、大纲决策以自由文本追加到research_brief.md的 §1,模板见 skills/shared/research_brief_template.md。
真实案例:一份 541 行的 outline.json 驱动了 22 页报告
仓库中的 examples/agentic-security-report/ 是一次完整跑通的真实案例,其 workspace/outline.json 包含:6 张图计划、4 个 Related Work 簇、10 个章节、78 条引用提示,一次性通过了校验器。
例如市场增长图计划被写成:
{ "figure_id": "fig_market_growth_gen_ai_cybersecurity", "plot_type": "plot", "data_source": "experimental_log.md", "objective": "Visual summary (Bar/Line Combo Chart) showing Gen AI cybersecurity market expansion from $8.65B (2025) to $35.5B (2031)...", "aspect_ratio": "16:9" }下游 Plotting Agent 照单渲染,数据全部来自实验日志:
最终该大纲驱动整条流水线产出了 22 页、零 LaTeX 错误的技术报告,评审模拟分数从 71.85 一路提升到 77.70。
关键文件速查
| 文件 | 说明 |
|---|---|
| skills/outline-agent/SKILL.md | 智能体主指令:读 prompt → 读四输入 → 综合 → 输出 → 校验 |
| skills/outline-agent/references/prompt.md | 论文附录 F.1 的逐字 system prompt |
| skills/outline-agent/references/outline_schema.json | 机器可读 JSON Schema |
| skills/outline-agent/references/example-output.json | 论文给出的完整输出范例 |
| skills/outline-agent/scripts/validate_outline.py | 确定性校验脚本 |
| docs/architecture.md | 七技能如何组合成流水线的架构详解 |
总结:一次调用,三重收益
- 成本收益:大纲只花 1 次调用,却替后面 60+ 次调用定好了方向;
- 质量收益:枚举值 + Schema + 语义校验器,把 LLM 的自由发挥框进可机读、可校验的契约里;
- 协同收益:三个顶层键天然无共享状态,Step 2/3 得以并行,整篇论文平均 ~39.6 分钟跑完。
一句话概括:Outline Agent 用 1 次综合推理,把"模糊的研究素材"编译成"可执行的全局施工图纸",这就是 PaperOrchestra 多智能体流水线能又快又稳的根本原因。
【免费下载链接】PaperOrchestra
An automated AI research-paper writer based off Google's PaperOrchestra paper's implementation through a skills - benchmark + autoraters using any coding agent (Claude Code, Cursor, Antigravity, Cline, Aider). No API keys, no LLM SDKs.
相关推荐
OpeniLink Hub AI Agent Tool Calling 原理:LLM 如何自动选择并调用 20+ App 工具
OpeniLink Hub AI Agent Tool Calling 原理:LLM 如何自动选择并调用 20+ App 工具 OpeniLink Hub 是一
后端前端即时通讯AI 应用MCP 服务插件系统MoneyPrinterV2视频生成原理:LLM+TTS+AI绘画如何协同工作
MoneyPrinterV2视频生成原理:LLM+TTS+AI绘画如何协同工作 一、视频自动化生产的痛点与解决方案 在短视频内容爆炸的时代,创作者面临三大核心痛
AI 应用人工智能工作流自动化媒体生成RPAKong 语义合成如何统一整个二进制的命名约定:1 次 LLM 调用的原理与实战
Kong 语义合成如何统一整个二进制的命名约定:1 次 LLM 调用的原理与实战 Kong 语义合成(Semantic Synthesis)是 Kong 二进制
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考