1. 项目概述:一个为AI编码代理设计的自动化论文写作技能包
如果你和我一样,长期在Claude Code、Cursor或者Antigravity这类AI编码代理里做实验,那你肯定也遇到过这个经典难题:实验做了一大堆,数据、图表、代码都散落在各个聊天记录、项目文件和.md笔记里,但就是没时间、没精力把它们整理成一篇结构严谨、格式规范的学术论文。每次想到要面对空白的LaTeX模板,从零开始写引言、梳理相关工作、绘制图表、整合结果,那股拖延劲儿就上来了。更别提还要确保引用格式正确、图表清晰、逻辑连贯,整个过程繁琐得让人望而却步。
PaperOrchestra这个项目,就是为了解决这个痛点而生的。它不是一个独立的、需要你调用API的AI写作工具,而是一个**“技能包”**。这个技能包的核心思想非常巧妙:它把一篇高质量学术论文的写作过程,拆解成由多个“智能体”协同完成的标准化流水线,然后将每个智能体的“大脑”(也就是它的思考逻辑和行动指南)封装成一份份详细的指令文档。你的AI编码代理(比如Claude Code)只需要读取并执行这些指令,就能驱动整个写作流程。
简单来说,它提供了一套“剧本”,而你的AI编码代理是“演员”。剧本里详细规定了每个角色的任务、台词和行动逻辑(比如“提纲智能体”该怎么分析你的研究想法,“绘图智能体”该如何根据实验日志生成图表),演员只需要按剧本演就行。这样一来,你无需将你的研究数据上传到某个第三方服务,也无需管理复杂的API密钥和依赖,一切都在你熟悉且信任的本地编码环境中完成。最终产出是一份可以直接提交给学术会议或期刊的、排版精美的LaTeX论文草稿。
这个项目完全复现了arXiv:2604.05018这篇论文中提出的多智能体框架,并且将其工程化为一个即插即用的工具。对于任何有AI编码代理使用经验的研究者、工程师或学生来说,它都是一个能将碎片化研究成果快速转化为正式学术产出的强大加速器。
2. 核心设计思路与架构拆解
2.1 从“单智能体摸索”到“多智能体流水线”
在没有这类工具之前,我们是怎么用AI写论文的?通常是把整个论文草稿扔给一个AI(比如Claude 3.5 Sonnet),然后说:“帮我把这段写得更学术一些”或者“根据这些数据生成一个结果部分”。这种做法我称之为“单智能体摸索式写作”。它的弊端很明显:AI缺乏对学术论文整体结构的深刻理解,容易在细节上纠缠,忽略宏观逻辑;一次生成的内容过长,质量不稳定;并且,它很难系统性地完成文献调研、图表生成、内容润色这些需要不同专长的子任务。
PaperOrchestra论文的核心贡献,就是提出并验证了一个五智能体流水线,每个智能体职责明确,专精一事:
- 提纲智能体:将你模糊的研究想法和实验日志,转化为一个结构化的论文大纲。
- 绘图智能体:专门负责根据大纲中的“绘图计划”和实验数据,生成所有图表和概念示意图。
- 文献综述智能体:负责搜索、筛选相关文献,并撰写引言和相关工作部分。
- 章节写作智能体:这是一个“多模态”智能体,它一次性接收大纲、图表、文献综述结果和实验日志,撰写论文剩余的核心章节(方法、实验、结果等)。
- 内容精炼智能体:扮演“模拟同行评审”的角色,对初稿进行多轮批判性审阅和修改。
这个流水线设计的高明之处在于,它模拟了人类研究者写作时的真实心智过程——先搭框架,再准备素材(图表、文献),然后填充主体,最后打磨润色。更重要的是,论文中的实验证明,这种分工协作的模式,在论文写作基准测试上,相比单智能体和树搜索基线方法,在文献综述质量上取得了50-68%的绝对优势,整体质量也提升了14-38%。这不仅仅是理论上的美好设想,而是有数据支撑的有效方案。
2.2 “技能包”架构:将论文逻辑工程化为可执行指令
那么,如何将这篇论文中的智能体“大脑”交付给用户使用呢?PaperOrchestra项目选择了一条极其轻量且灵活的路径:技能包。
它没有选择开发一个包含所有LLM调用、网络搜索逻辑的独立应用程序。相反,它将每个智能体的核心逻辑——包括其系统提示词、输入输出格式、停止规则、验证流程——全部编写成了Markdown文档(即SKILL.md)。同时,提供一系列纯确定性的辅助脚本(在scripts/目录下),用于完成JSON模式验证、字符串模糊匹配、BibTeX格式化、重复项删除、LaTeX语法检查等机械性工作。
整个架构可以这样理解:
SKILL.md:这是给AI编码代理看的“任务说明书”。它用自然语言详细描述了智能体需要扮演的角色、思考步骤、需要调用的工具(如网络搜索、调用绘图脚本)、以及如何判断任务完成。references/:这是“说明书”的附录和依据。里面存放着从原论文附录F逐字摘录的提示词、JSON模式定义、评分标准(Rubrics)等,确保技能的执行严格遵循论文设计。scripts/:这是“自动化工具包”。里面全是Python脚本,处理那些不需要AI“思考”的脏活累活,比如验证AI生成的JSON是否符合预定格式,或者检查LaTeX文件中是否有未引用的参考文献。
这种设计的最大优势是“零依赖”和“高兼容性”。你的AI编码代理(Claude Code, Cursor等)本身就具备LLM推理和网络搜索能力。PaperOrchestra技能包只是告诉它“何时”以及“如何”去使用这些能力。你不需要配置新的API密钥,不需要安装复杂的SDK,只需要把技能包链接到你的AI代理的技能目录下,它就能立刻理解并执行这套复杂的论文写作流水线。
实操心得:理解“宿主代理”与“技能”的关系刚开始接触时,容易混淆“智能体”和“技能”。在这里,“智能体”是论文中定义的抽象角色,而“技能”是让现实中的AI编码代理(宿主)扮演该角色的具体指令集。你可以把Claude Code看作一台多功能机床,而PaperOrchestra的技能包就是一套为这台机床量身定制的、用于“论文加工”的数控程序(G-code)。机床本身很强大,但有了专用程序,它才能高效、精准地完成特定复杂任务。
2.3 七大核心技能详解
项目包含了七个核心技能,共同构成完整的写作与评估闭环:
| 技能名称 | 对应论文步骤 | 大致LLM调用次数 | 核心职责与输出 |
|---|---|---|---|
paper-orchestra | 协调器 | — | 总指挥。检查输入文件,按顺序调用并协调其他六个技能的执行。 |
outline-agent | 步骤1 | 1 | 分析idea.md(稀疏想法)和experimental_log.md(实验日志),生成一个包含绘图计划、文献综述计划和章节计划的详细结构化大纲(JSON)。 |
plotting-agent | 步骤2 | ~20–30 | 与步骤3并行执行。执行大纲中的绘图计划,调用matplotlib或可选的PaperBanana工具生成所有图表和示意图,并撰写图表标题。 |
literature-review-agent | 步骤3 | ~20–30 | 与步骤2并行执行。根据文献综述计划进行网络搜索,使用Semantic Scholar验证引用,撰写引言和相关工作部分,并确保90%以上的引用被整合到文本中。 |
section-writing-agent | 步骤4 | 1 | 单次多模态调用。接收大纲、已生成的图表、文献综述草稿和实验日志,一次性撰写论文剩余的所有章节(方法、实验、结果、讨论等),并整合表格和图表。 |
content-refinement-agent | 步骤5 | ~5–7 | 模拟同行评审。对完整初稿进行多轮审阅,根据严格的“停止规则”决定接受或回滚修改,防止智能体为了“讨好”评估标准而进行无意义的修改。 |
paper-writing-bench | 论文第3节 | — | 逆向工程工具。从一个已完成的论文中,反向提取出原始的idea.md和experimental_log.md,用于构建基准测试用例。 |
paper-autoraters | 附录F.3 | — | 自动评分器。运行论文中定义的自动评分程序,包括引用F1分数、文献综述质量(6个维度)、论文整体质量对比等,用于量化评估输出质量。 |
这个技能列表清晰地展示了从“想法”到“可评分论文”的完整生命周期。paper-orchestra是入口,paper-writing-bench和paper-autoraters则提供了验证和评估能力,形成了一个闭环。
3. 前置步骤:从混乱日志到结构化输入(Agent-Research-Aggregator)
在运行主流水线之前,我们面临一个更现实的问题:我的研究记录根本不像idea.md和experimental_log.md那样整洁。它们可能散落在Claude Code的memory/文件夹、Cursor的chatHistory.json、Antigravity的log.jsonl,以及各种自建的notes.md文件中。手动整理这些信息,本身就是一项艰巨的任务。
为此,项目提供了一个可选的、但极其实用的前置技能:agent-research-aggregator。它的作用,就是充当一个“数据清洗与整合车间”,把你散落在各处的、非结构化的研究记录,自动聚合并格式化成PaperOrchestra流水线所期望的标准输入。
3.1 聚合器的工作流程:四阶段管道
这个聚合器的工作流程设计得非常稳健,分为四个清晰的阶段:
- 发现阶段:这是一个纯确定性的扫描过程。脚本会遍历你指定的目录(默认是当前目录和家目录),寻找已知的AI代理缓存文件(如
.claude/,.cursor/等)。它会列出一个发现报告,让你在数据被读取前进行确认,避免误处理无关文件。 - 提取阶段:这是第一个需要LLM参与的步骤。聚合器将发现的日志文件分批(每批约50KB)发送给你的AI编码代理,并应用一个精心设计的提取提示词。这个提示词指导AI从杂乱的对话历史中,识别出“实验设置”、“参数调整”、“观察结果”、“数值结果”等关键信息,并以结构化的JSON格式输出。在这个过程中,个人身份信息会被剥离,未经核实的数据会被标记为
[UNVERIFIED]。 - 合成阶段:第二个LLM调用。将上一步提取出的、可能重复或冗余的实验记录,合并成一个连贯的、叙事性的研究摘要(
synthesis.json)。如果AI发现日志中存在多个不相关的研究项目,它会暂停并询问用户,确保合成的准确性。 - 格式化阶段:最后一个确定性步骤。将合成的
JSON转换成PaperOrchestra要求的两个Markdown文件:idea.md(采用论文中定义的“稀疏想法”格式)和experimental_log.md(包含时间戳、配置、结果等的详细实验日志)。
3.2 如何集成与使用
集成非常简单,因为它本质上只是一个技能文件夹。
# 假设你将项目克隆到了 ~/paper-orchestra # 为你的AI代理创建技能链接(以Claude Code为例) ln -sf ~/paper-orchestra/skills/agent-research-aggregator \ ~/.claude/skills/agent-research-aggregator使用起来更简单。你不需要记住复杂的命令,只需要用自然语言告诉你的AI代理:
“帮我把我的agent日志整理成论文输入材料。” “为
~/my_research_project目录下的工作准备PaperOrchestra输入。” “我想把我在Cursor里的实验记录写成一篇论文。”
AI代理在接收到这些指令后,会主动读取SKILL.md,然后引导你完成上述四阶段流程。它会先询问你要扫描的根目录,然后展示发现的文件列表让你确认,接着开始进行提取和合成。整个过程是交互式的,你有充分的控制权。
注意事项:聚合器的智能与局限聚合器的强大之处在于它能理解不同AI代理的日志格式。例如,它能识别Claude Code的
memory/文件、Cursor的聊天历史JSON、Antigravity的工作日志。但它无法理解完全自定义的、非结构化的笔记格式。因此,为了获得最佳效果,建议在平时使用AI代理进行实验时,就保持一定的记录规范性,比如在对话中明确标注“实验开始”、“参数”、“结果”等关键词。
3.3 参数化与定制扫描
聚合器提供了几个关键参数,让你能精细控制扫描过程:
--search-roots: 指定要扫描的目录,默认是当前目录和家目录(.和~)。--agents: 指定要扫描的AI代理类型,如claude,cursor。如果你只用Claude Code,指定它可以加快扫描速度并减少干扰。--depth: 设置最大扫描深度,防止脚本过度遍历目录树。--since: 只处理某个日期之后修改的日志文件(ISO 8601格式),这对于从海量历史记录中筛选近期工作非常有用。
一个典型的完整命令流示例如下:
# 1. 发现阶段:扫描家目录下所有已知代理日志,深度为3 python skills/agent-research-aggregator/scripts/discover_logs.py \ --search-roots ~ \ --depth 3 \ --out workspace/ara/discovered_logs.json # (此时,AI代理会介入,处理2和3阶段) # 2. 提取阶段:AI代理读取 discovered_logs.json,生成 raw_experiments.json # 3. 合成阶段:AI代理读取 raw_experiments.json,生成 synthesis.json # 4. 格式化阶段:生成最终输入文件 python skills/agent-research-aggregator/scripts/format_po_inputs.py \ --synthesis workspace/ara/synthesis.json \ --out workspace/inputs/ \ --report workspace/ara/aggregation_report.md执行完毕后,你的workspace/inputs/目录下就会生成规整的idea.md和experimental_log.md,同时workspace/ara/下会有一份详细的聚合报告,记录了所有处理过程和关键决定,方便你追溯和审计。
4. 环境搭建与技能安装实战
4.1 基础安装:克隆与链接
PaperOrchestra的安装过程极其简单,因为它不包含任何需要编译的组件或沉重的模型。
# 1. 克隆仓库 git clone https://github.com/ar9av/PaperOrchestra.git ~/paper-orchestra cd ~/paper-orchestra # 2. 安装确定性辅助脚本的依赖(主要是一些Python工具库,如jsonschema, pylatexenc等) pip install -r requirements.txt接下来是关键一步:将技能链接到你的AI编码代理能识别的位置。不同的代理技能目录可能不同。
对于 Claude Code:Claude Code的技能通常位于~/.claude/skills/。你可以手动创建链接,或者使用项目提供的便捷脚本思路:
mkdir -p ~/.claude/skills for skill in paper-orchestra outline-agent plotting-agent literature-review-agent \ section-writing-agent content-refinement-agent paper-writing-bench \ paper-autoraters agent-research-aggregator; do ln -sf ~/paper-orchestra/skills/$skill ~/.claude/skills/$skill done对于 Cursor:Cursor的技能目录可能在~/.cursor/skills/或类似位置。你需要查阅Cursor的文档或设置来确定确切路径。原理相同,创建符号链接即可。
通用备选方案:如果你使用多个AI代理,或者不确定路径,可以创建一个统一的技能目录,然后在各个代理中将其添加为技能路径。
mkdir -p ~/.all-skills for skill in paper-orchestra outline-agent plotting-agent literature-review-agent \ section-writing-agent content-refinement-agent paper-writing-bench \ paper-autoraters agent-research-aggregator; do ln -sf ~/paper-orchestra/skills/$skill ~/.all-skills/$skill done然后,在你的AI代理设置中,将~/.all-skills添加为额外的技能搜索路径。
4.2 可选集成配置:提升效率与质量
基础安装后,流水线已经可以运行(使用AI代理自带的网络搜索和LLM能力)。但以下两个可选集成能显著提升体验:
1. Semantic Scholar API 密钥(用于文献验证)文献综述智能体在验证引用时,会调用Semantic Scholar的API。未认证的公共API有速率限制(约每秒1次请求)。对于需要处理大量引用的论文,申请一个免费的API密钥可以避免频繁的429错误。
- 申请地址:访问 Semantic Scholar API 注册并获取密钥。
- 配置方法:将密钥设置为环境变量。
export SEMANTIC_SCHOLAR_API_KEY="your_actual_key_here" - 验证:运行
python skills/literature-review-agent/scripts/s2_search.py --check-key,如果输出显示使用了认证密钥,则配置成功。脚本设计得很健壮,如果没有设置密钥,它会自动回退到未认证模式,不影响流程。
2. PaperBanana(用于高质量图表生成)绘图智能体默认使用matplotlib生成图表,这适合数据图。但对于论文中常见的概念示意图、框架图、流程图,matplotlib力有不逮。PaperBanana是一个专门用于自动化学术插图生成的AI工具,PaperOrchestra集成了它。
- 安装PaperBanana:
git clone https://github.com/dwzhu-pku/PaperBanana cd PaperBanana pip install -r requirements.txt cp configs/model_config.template.yaml configs/model_config.yaml - 配置API密钥:编辑
configs/model_config.yaml文件,填入你的Google Gemini API密钥(从Google AI Studio免费获取)或OpenRouter API密钥。二者填一个即可,OpenRouter是首选。 - 设置环境变量:告诉PaperOrchestra PaperBanana的路径。
设置好后,绘图智能体在需要生成概念图时,会自动调用PaperBanana,否则回退到matplotlib。export PAPERBANANA_PATH="/full/path/to/PaperBanana"
实操心得:环境变量管理建议将
SEMANTIC_SCHOLAR_API_KEY和PAPERBANANA_PATH等环境变量写入你的shell配置文件(如~/.bashrc或~/.zshrc),并执行source命令使其生效。这样可以避免每次打开新终端都需要重新设置。对于团队协作项目,可以考虑使用.env文件配合python-dotenv来管理,但注意不要将包含密钥的.env文件提交到版本控制系统。
4.3 工作空间初始化与输入准备
安装完成后,你需要一个工作空间来存放输入、输出和中间文件。
# 使用自带的脚本初始化一个标准的工作空间目录结构 python skills/paper-orchestra/scripts/init_workspace.py --out ./my_paper_workspace这会在当前目录下创建my_paper_workspace文件夹,其结构如下:
my_paper_workspace/ ├── inputs/ # 你放置输入文件的地方 │ ├── idea.md # (必需) 你的研究想法 │ ├── experimental_log.md # (必需) 实验日志 │ ├── template.tex # (必需) 目标会议/期刊的LaTeX模板 │ ├── conference_guidelines.md # (必需) 会议投稿指南摘要(页数、格式等) │ └── figures/ # (可选) 已有的预生成图片 ├── outputs/ # 流水线各阶段输出 │ ├── outline.json │ ├── plots/ │ ├── literature/ │ ├── draft.tex │ └── final.tex └── logs/ # 运行日志四个必需文件的准备要点:
idea.md:采用“稀疏想法”格式。不要写成长篇大论。用简短的要点列出核心创新点、要解决的关键问题、假设和方法论的核心思想。例如:# Sparse Idea: Efficient Fine-tuning for Large Language Models * **Problem**: Full fine-tuning of LLMs is prohibitively expensive in memory and time. * **Core Idea**: A novel parameter-efficient fine-tuning (PEFT) method that only updates a small, structured subset of attention weights. * **Key Insight**: The importance of attention heads is uneven; we can identify and update only the most task-relevant ones. * **Expected Contribution**: A method that achieves >95% of full fine-tuning performance while reducing trainable parameters by 90%.experimental_log.md:这是你的实验记录本。按时间顺序记录每次实验的设置、命令、关键结果。格式可参考项目examples/目录下的示例。务必包含可复现的细节,如代码仓库commit hash、软件包版本、超参数等。template.tex:从目标会议(如NeurIPS, ICLR, ACL)或期刊官网下载官方LaTeX模板。通常是一个.zip文件,解压后找到主.tex文件(如main.tex,article.tex)。直接将其复制到inputs/目录下。conference_guidelines.md:手动创建一个文件,总结投稿要求。例如:# Conference: Association for Computational Linguistics (ACL) 2025 Main Conference * **Page Limit**: 8 pages for main content, unlimited for references. * **Deadline**: November 15, 2024, 11:59 PM UTC-12. * **Formatting**: Double-blind review. Use the official ACL 2025 LaTeX style files. * **Additional Material**: Appendix allowed after references, up to 5 pages.这个文件会作为约束条件,被提纲智能体和内容精炼智能体用来确保论文符合要求。
5. 核心流水线实操:从想法到成稿
当工作空间准备就绪后,你就可以启动整个PaperOrchestra流水线了。整个过程由paper-orchestra这个协调器技能驱动。
5.1 启动与协调流程
在你的AI编码代理(例如Claude Code)中,打开包含workspace目录的项目,然后输入类似以下的指令:
“请运行paper-orchestra流水线处理
./my_paper_workspace目录。”
AI代理会读取paper-orchestra技能的SKILL.md,并开始执行以下标准流程:
- 输入验证:协调器首先检查
workspace/inputs/目录下是否存在必需的四个文件。如果idea.md或experimental_log.md缺失,它会自动触发agent-research-aggregator技能(如果已安装)来生成它们。 - 调用提纲智能体:将
idea.md,experimental_log.md,conference_guidelines.md交给outline-agent。该智能体经过一次LLM调用,生成一个详细的outline.json文件,存放在workspace/outputs/下。这个JSON文件是整个流水线的蓝图,包含了:plotting_plan: 需要生成哪些图表(Figure 1: 模型架构图; Figure 2: 在数据集A上的准确率对比...)。literature_review_plan: 需要调研的文献主题和关键词。section_plan: 论文每一节的标题和核心要点。
- 并行执行绘图与文献综述:协调器同时启动
plotting-agent和literature-review-agent。这是流水线设计的一大优化,因为这两个任务互不依赖,可以并行以节省时间。- 绘图智能体:根据
plotting_plan,读取experimental_log.md中的数据,调用Python脚本(或PaperBanana)生成图表。每个图表都会生成对应的.png或.pdf文件以及.tex代码片段(包含\includegraphics和\caption),保存在workspace/outputs/plots/。 - 文献综述智能体:根据
literature_review_plan,使用AI代理的网络搜索功能查找相关论文,并通过Semantic Scholar脚本验证引用的准确性(作者、标题、年份、会议/期刊)。然后撰写引言和相关工作章节的草稿,保存在workspace/outputs/literature/。它会确保草稿中高比例地整合了找到的引用。
- 绘图智能体:根据
- 调用章节写作智能体:当绘图和文献综述都完成后,协调器收集所有材料(大纲、图表文件、文献草稿、实验日志),交给
section-writing-agent。这是一个单次、多模态的LLM调用。智能体一次性接收所有上下文,撰写论文剩余的所有章节(Abstract, Method, Experiments, Results, Discussion, Conclusion),并将图表和表格插入到合适的位置,生成完整的初稿draft.tex。 - 调用内容精炼智能体:最后,
content-refinement-agent对draft.tex进行多轮“模拟同行评审”。每一轮,它都会从审稿人角度提出批评意见,然后尝试修改。但这里有一个关键的停止规则:如果修改后的版本在自动评分器(paper-autoraters)中的得分没有显著提高,或者为了提高分数而损害了事实准确性(例如捏造引用),智能体会回滚修改。这个过程通常进行5-7轮,最终产出final.tex。
在整个过程中,你可以在AI代理的对话界面看到每个步骤的进度、智能体的“思考过程”以及它调用了哪些工具(如运行了哪个Python脚本)。workspace/logs/目录下也会生成详细的文本日志。
5.2 关键环节的实操细节与技巧
1. 提纲生成的质量控制提纲是整个论文的骨架,其质量至关重要。outline-agent的提示词(来自论文附录F)已经过精心设计,但你可以通过优化输入来获得更好的结果:
- 在
idea.md中明确对比基线:明确指出你的方法与哪些现有方法(SOTA)进行比较,这能帮助智能体规划更合理的实验部分。 - 在
experimental_log.md中结构化记录结果:为每个实验设置一个小标题,并清晰列出评估指标(如Accuracy, F1-score, BLEU)。这有助于智能体在提纲中准确总结你的贡献。
2. 绘图智能体的两种模式
- Matplotlib模式(默认):适合生成折线图、柱状图、散点图等数据可视化图表。确保你的
experimental_log.md中的数据能以清晰的表格或键值对形式被解析。绘图智能体会尝试从日志中提取数据并调用matplotlib。 - PaperBanana模式(需配置):当
plotting_plan中包含“framework diagram”, “architecture”, “workflow”等描述时,智能体会尝试使用PaperBanana。你需要提前在PAPERBANANA_PATH环境变量中配置好路径。PaperBanana会生成更美观、更接近出版物质量的示意图。
3. 文献综述的查准与查全literature-review-agent使用网络搜索(通过你的AI代理)来查找论文。为了提高质量:
- 利用
conference_guidelines.md:如果你投的是某个特定领域的顶会(如CVPR),可以在指南中注明,智能体在搜索时会有所侧重。 - 审查
workspace/outputs/literature/candidates.json:这是智能体初步搜索到的候选文献列表。在流程中,你可以中途检查这个文件,如果发现明显不相关的论文,可以手动删除其条目,然后让智能体继续。这能防止垃圾引用进入最终草稿。 - 理解“引用整合率”:技能要求草稿中90%的引用都必须被整合到句子中,而不仅仅是罗列在末尾。这迫使AI写出更具连贯性的文献综述,而不是简单的文献列表。
4. 章节写作的“单次多模态”调用这是对AI上下文窗口和推理能力的一次大考。它将大纲、所有图表(可能以路径或base64编码形式)、文献草稿、实验日志全部作为上下文输入。确保你的实验日志不要过于冗长,否则可能挤占其他内容的上下文空间。如果论文非常长,你可能需要选择支持更大上下文窗口的AI模型作为宿主。
5. 内容精炼的“停止规则”这是防止AI陷入无意义修改循环的关键。content-refinement-agent内部集成了paper-autoraters的评分逻辑。停止规则通常是:如果连续两轮修改,在“论文整体质量”或“文献综述质量”上的评分提升小于某个阈值(例如1%),则停止精炼。这个阈值在技能的定义中是可调的。理解这一点,你就不会对精炼轮数较少感到奇怪,这是设计使然,旨在平衡质量与效率。
5.3 输出结果与后续处理
流水线完成后,你将在workspace/outputs/目录下获得:
final.tex: 完整的、可编译的LaTeX论文草稿。- 所有生成的图表文件(在
plots/子目录)。 bibliography.bib: 生成的BibTeX参考文献文件。
下一步操作:
- 编译LaTeX:使用你本地的LaTeX发行版(如TeX Live, MiKTeX)或在线编辑器(如Overleaf)编译
final.tex。通常需要编译两到三次以解决交叉引用。cd my_paper_workspace/outputs pdflatex final.tex bibtex final.aux pdflatex final.tex pdflatex final.tex - 人工审阅与润色:PaperOrchestra产出的是高质量的草稿,但不是最终成品。你必须进行仔细的人工审阅:
- 检查事实准确性:核对实验数据、引用信息是否正确。
- 优化语言表达:AI的写作可能在某些地方显得生硬或重复,需要你进行润色。
- 强化逻辑连贯性:确保段落之间、章节之间的过渡自然,论点层层递进。
- 深度参与讨论部分:讨论部分是论文的灵魂,AI通常难以生成深刻、有洞察力的讨论。你需要亲自撰写或大幅修改这一部分。
- 处理反馈:你可以将同事或导师的审稿意见,作为新的输入,再次运行
content-refinement-agent,甚至重新调整idea.md后运行部分流水线,进行迭代改进。
6. 常见问题排查与实战心得
在实际使用中,你可能会遇到一些典型问题。以下是我在多次使用后总结的排查清单和心得。
6.1 安装与初始化问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
AI代理无法识别paper-orchestra技能。 | 技能符号链接未创建成功,或AI代理的技能目录路径不对。 | 1. 检查链接是否存在:ls -la ~/.claude/skills/。2. 查阅你的AI代理官方文档,确认正确的技能目录路径。3. 尝试在AI代理的设置中手动添加技能目录路径。 |
| 运行流水线时提示“ModuleNotFoundError”。 | requirements.txt中的Python依赖未安装。 | 在项目根目录下,确保已运行pip install -r requirements.txt。建议使用虚拟环境(venv或conda)管理依赖。 |
init_workspace.py脚本执行失败。 | Python路径问题或脚本权限问题。 | 1. 使用绝对路径运行脚本:python /full/path/to/paper-orchestra/skills/paper-orchestra/scripts/init_workspace.py。2. 确保你对目标输出目录有写权限。 |
6.2 流水线执行过程中的问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
提纲智能体生成的outline.json结构混乱或缺失关键部分。 | idea.md或experimental_log.md格式不符合预期,过于模糊或冗长。 | 1. 严格参照examples/minimal/中的格式重写输入文件。2. 确保idea.md是“稀疏”的要点列表,experimental_log.md是清晰的时间线记录。3. 让AI代理重新运行outline-agent,并在其思考过程中提供更具体的指引。 |
| 绘图智能体无法从日志中提取数据,或生成的图表错误。 | 实验日志中的数据格式无法被解析脚本识别。 | 1. 检查experimental_log.md,确保数值结果以明显的格式呈现,如“Accuracy: 0.923”, “{'loss': 0.45, 'acc': 0.89}”。2. 考虑在日志中直接提供一个小型的CSV片段或Python字典字符串,便于解析。3. 可以手动创建图表,放入workspace/inputs/figures/,并在idea.md中说明,让智能体直接引用。 |
| 文献综述智能体找不到相关论文,或引用错误。 | 网络搜索关键词不佳,或Semantic Scholar验证失败。 | 1. 在conference_guidelines.md中明确领域和关键词。2. 手动检查workspace/outputs/literature/candidates.json,删除不相关条目,添加你知道的关键论文的DOI或标题,然后重新运行该阶段。3. 配置SEMANTIC_SCHOLAR_API_KEY以提高验证成功率。 |
| 章节写作智能体生成的初稿内容空洞,或未能整合图表。 | AI代理的上下文窗口不足,或输入信息过于庞杂导致关键内容被忽略。 | 1.精简输入:删除experimental_log.md中与核心实验无关的调试日志。2.分而治之:如果论文很长,可以考虑手动将工作拆分成两个部分,分别运行流水线,最后人工合并。3.升级宿主模型:尝试使用上下文窗口更大、能力更强的AI编码代理(如Claude 3.5 Sonnet 200K)。 |
| 内容精炼智能体陷入无限循环,或修改后质量下降。 | “停止规则”的阈值设置可能不适合当前任务,或者AI在“过度优化”某个次要评分指标。 | 1. 检查workspace/logs/refinement.log,查看每一轮的评分变化。如果分数停滞或下降,精炼过程应该会自动停止。2. 如果怀疑有问题,可以手动中断流程,直接使用draft.tex,然后自行精炼。3. 你可以微调content-refinement-agent技能中关于停止规则的描述(在SKILL.md或references/中),但需谨慎。 |
6.3 性能与成本优化建议
- 并行化优势:充分利用步骤2和步骤3的并行执行。如果你的AI代理支持同时处理多个任务,或者你有多台机器,可以尝试手动并行运行
plotting-agent和literature-review-agent,以缩短整体时间。 - 缓存中间结果:
workspace/outputs/下的每个阶段输出都是独立的。如果你只对论文的某一部分不满意(比如讨论部分),可以只修改experimental_log.md中对应的结论,然后从section-writing-agent阶段开始重新运行,而无需重做绘图和文献综述。只需清理outputs/中该阶段之后的文件即可。 - 控制LLM调用成本:整个流程的LLM调用次数在50-70次左右(取决于图表和文献数量)。如果你使用的AI代理按token收费,这是一笔不小的开销。在正式运行前,务必用一个小型测试案例(如
examples/minimal/)完整跑一遍,估算总token消耗和成本。 - 善用“验证-仅”模式:许多脚本(如
extract_experiments.py)有--validate-only参数。在让AI执行耗时的提取任务前,先运行验证模式,确保输入格式正确,可以避免因格式错误导致的重试和浪费。
6.4 我的核心使用体会
经过多个项目的实践,我认为PaperOrchestra最大的价值不在于“替代人类写作”,而在于“极大地压缩了从实验完成到初稿成型之间的痛苦过程”。它将最耗时、最繁琐的结构化整理和初稿撰写工作自动化了,让我能把宝贵的精力集中在最需要人类创造力和判断力的环节:研究想法的构思、实验方案的设计、以及对最终成稿的深度批判与润色。
它就像一个不知疲倦的研究助理,能帮你把混乱的笔记整理成大纲,把数据变成图表,把一堆参考文献整理成连贯的综述段落,并把所有东西塞进正确的LaTeX模板里。但你仍然是这项研究的首席科学家,你需要为整个工作的方向、质量和学术诚信负最终责任。因此,永远不要完全信任它的输出,一定要抱着审稿人的心态去严格检查每一个细节。
最后,不要试图用它来写你完全不熟悉的领域的论文。它的强大建立在你对研究内容的深刻理解之上。你提供的idea.md和experimental_log.md越清晰、越准确,它产出的草稿质量就越高。这是一个典型的“Garbage in, garbage out”系统。当你对自己的工作了如指掌时,PaperOrchestra将成为你生产力飞跃的利器。