PaperAgent 是一个面向论文精读的本地 Agent Harness。它不是只把论文丢给大模型做一次摘要,而是把 PDF / Word 解析、正文与图表抽取、证据定位、多 Agent 协作、Verifier 校验、Word 报告生成和用户反馈学习组织成一条可运行、可检查、可迭代的工程链路。
它可以读取 PDF、DOC、DOCX 或论文链接,自动抽取正文、图表、表格和公式等素材,调用兼容 OpenAI SDK 的大模型接口生成中文论文精读报告,最后导出可编辑的 Word 文档。核心目标是把“读论文”变成一个有 Harness 约束的 Agent 工作流:每个结论尽量回到原文证据,每次用户修正都能反哺下一次抽取、总结和评估。
PaperAgent 关注的不只是“生成一份好看的论文总结”,而是构建一个面向研究文档理解的 Agent Harness:
- Agent Harness:把 Reader、Extractor、Synthesizer、Critic 等角色放进同一条可执行工作流里,明确输入、输出、依赖关系和失败条件。
- Harness Engineering:围绕 PDF 解析、图表截图、Grounding Map、Knowledge Graph、Verifier Agent、报告生成等环节做工程约束,减少幻觉和错配。
- Loop Engineering:把用户反馈写入 correction memory,再自动生成 extraction prompt、summarization prompt 和 evaluation rubric 的 prompt patch,让系统在真实使用中持续修正。
PaperAgent 当前的论文总结链路被组织为 DAG / graph executor,而不是单次 prompt 调用:
flowchart LR
A["PreparePaper<br/>输入文件或链接"] --> B["ParsePaper<br/>解析 PDF / Word"]
B --> C["ExtractSections<br/>正文、摘要、标题、图表、公式"]
C --> D["SummarizeContribution<br/>分段阅读笔记"]
D --> E["ExtractMethods<br/>整合方法、贡献和结果"]
E --> F["VerifyClaims<br/>Verifier / Critic 校验"]
F --> G["GenerateReport<br/>生成 Word + KG sidecar"]
H["User Feedback"] --> I["Correction Memory"]
I --> J["Self-improving Prompt Patches"]
J --> C
J --> D
J --> F
这条链路让 Agent 的行为更像一个可观测的实验系统:Reader 负责读入和解析,Extractor 负责结构化证据,Synthesizer 负责写作,Critic 负责拒绝没有证据支持的 claim,最后由报告生成器把文本、图表和元信息写入 .docx。
启动后访问 http://localhost:7860/,可以从文件或链接输入论文,等待解析和总结完成后,在页面上看到 Word 总结效果,并下载生成的 .docx 文件。
生成完成后,页面会展示 Word 总结文档的预览效果,并提供 .docx 文件下载。最终文档不是只给一段简单摘要,而是会整理成便于阅读和二次编辑的结构化内容,例如:
论文标题:Visual Language Model Survey
一句话总结:
本文系统梳理了视觉语言模型的发展脉络、主流架构、训练方法和典型应用场景。
核心贡献:
1. 总结视觉编码器、语言模型和跨模态对齐模块的常见组合方式。
2. 对比不同数据构建、指令微调和评测方法的优缺点。
3. 归纳模型在文档理解、图像问答、多模态推理等任务中的应用价值。
方法概览:
- 输入:图像、论文截图、表格或多模态上下文。
- 处理:视觉特征提取 -> 跨模态对齐 -> 大模型生成解释。
- 输出:文本回答、结构化摘要、推理过程或可编辑文档。
关键图表:
- 自动保留论文中的重要图表截图。
- 在图表下方补充中文解释,帮助快速理解实验结论。
阅读建议:
适合先阅读摘要、方法概览和关键图表,再根据总结定位原文中的重点章节。
当前总结文档通常包含:
- 论文基本信息:标题、来源文件、处理时间等。
- 一句话总结:快速说明论文主要研究什么、解决什么问题。
- 核心贡献:提炼论文的主要创新点和价值。
- 方法与流程:用中文解释模型、算法或实验流程。
- 关键图表说明:保留重要图表,并生成对应中文解读。
- 实验结果与结论:整理主要实验发现、对比结果和作者结论。
- 阅读建议:帮助读者判断优先阅读哪些章节。
- 支持上传本地 PDF、DOC、DOCX,也支持输入论文链接。
- 自动抽取论文正文、版面结构、图表截图、表格、公式和摘要证据。
- 使用 DAG / graph executor 组织论文理解流程,节点包括 ParsePaper、ExtractSections、SummarizeContribution、ExtractMethods、VerifyClaims 和 GenerateReport。
- 内置多 Agent 分工:Reader 读论文,Extractor 抽取结构,Synthesizer 写总结,Critic / Verifier 检查可信度。
- 构建 Grounding Map,把 intro、method、experiments 和 claims 映射回原文证据。
- 构建 Paper-to-Knowledge Graph,提取 concept、method、dataset、evaluation 等节点和关系。
- Verifier Agent 会检查 claim 是否能在原文中找到支撑,方法类 claim 是否落在 method 证据中,贡献类 claim 是否新增了原文没有的内容。
- 支持 correction memory:用户反馈会被保存为历史修正规则,后续总结自动注入。
- 支持 self-improving prompt patches:根据历史反馈自动优化 extraction prompt、summarization prompt 和 evaluation rubric。
- 在浏览器中预览论文,并下载生成的
.docx总结文档。 - 直接使用 Python 命令行启动。
PaperAgent 的重点不是把 prompt 写得更长,而是把论文理解过程放进可控的 Harness:
- 结构化执行:每个 workflow node 都有明确依赖,失败可以定位到具体阶段。
- 证据优先:标题、摘要、公式、图表和 claim 都尽量保留原文来源,避免把模型常识写进报告。
- 资产约束:图表引用必须来自已抽取的可用截图,正文不能凭空编造图号、表号或公式号。
- 评估闭环:Verifier Agent 在生成报告前检查关键 claim,失败时停止生成,而不是把不可信内容写进 Word。
- 可观察产物:除了
.docx报告,还会生成 knowledge graph sidecar,用于查看 Agent trace、结构节点和证据关系。
PaperAgent 也把“用户指出错误”视为系统输入,而不是一次性对话里的临时修正:
user feedback
-> summary correction
-> correction memory
-> prompt patch
-> future extraction / summarization / evaluation
反馈可以通过后端接口写入:
POST /v1/summary_feedback示例 payload:
{
"paper_id": "Linear Image Generation by Synthesizing Exposure Brackets",
"category": "asset_reference",
"original": "文字写着表2所示,但插入的是图",
"corrected": "图表引用必须和原文 caption 类型一致",
"note": "没有表格 caption 的截图不能被当成表格编号引用"
}系统会把这些修正保存到 correction memory,并在下一次处理同一论文或全局规则时自动生成三类 prompt patch:
extraction:影响标题、摘要、章节、图表、公式等证据抽取。summarization:影响最终中文精读报告的组织、措辞和引用方式。evaluation:影响 Verifier Agent 的检查标准和拒绝条件。
当前自动生成的 prompt patch 可以通过接口查看:
GET /v1/prompt_patches?paper_id=your-paper-id默认记忆文件位置:
~/.config/PaperAgent/summary_corrections.jsonl
也可以通过 PAPER_AGENT_CORRECTION_MEMORY_PATH 指定自定义路径。
程序启动后会读取配置文件中的模型接口参数。用户提交论文后,PaperAgent 会先解析 PDF 或 Word 文档,提取正文、版面结构和关键素材;随后构建 Grounding Map 和 Knowledge Graph;再把论文正文分块发送给大模型生成分段笔记,由 Synthesizer 合并、润色和结构化整理;最后由 Verifier Agent 校验关键 claim,通过后把总结内容与关键图表写入 Word 文档。
整体流程:
论文文件或链接
-> 文档解析与正文抽取
-> 图表 / 表格 / 公式素材提取
-> Grounding Map + Knowledge Graph
-> Reader / Extractor / Synthesizer 多 Agent 协作
-> Verifier Agent 校验 claim
-> 生成 Word 总结文档与 KG sidecar
- Python 3.11 或 3.12
- 已安装项目依赖
- 一个兼容 OpenAI SDK 的接口地址、API Key 和模型名称
建议在项目目录下创建虚拟环境:
python -m venv .venv
.\.venv\Scripts\activate
python -m pip install -U pip
pip install -e .也可以直接使用当前系统 Python:
pip install -e .仓库中的 config.json 是提交用模板,敏感字段已经脱敏:
{
"CODEX_BASE_URL": "xx",
"CODEX_API_KEY": "xx",
"CODEX_MODEL": "xx"
}本地使用时,请复制一份私有配置:
copy config.json config.local.json然后编辑 config.local.json:
{
"CODEX_BASE_URL": "https://你的接口地址/v1",
"CODEX_API_KEY": "你的 API Key",
"CODEX_MODEL": "你的模型名称",
"CODEX_USE_PROXY": false,
"ENABLED_SERVICES": [],
"HIDDEN_GRADIO_DETAILS": true,
"PAPER_AGENT_LANG_FROM": "English",
"PAPER_AGENT_LANG_TO": "Simplified Chinese",
"PAPER_AGENT_VFONT": null,
"NOTO_FONT_PATH": "/app/SourceHanSerifCN-Regular.ttf",
"PAPER_AGENT_CORRECTION_MEMORY_PATH": "",
"PAPER_AGENT_PROMPT": ""
}CODEX_USE_PROXY 默认为 false,总结接口不会继承系统 HTTP_PROXY / HTTPS_PROXY。如果你的接口必须走代理,再改成 true。
config.local.json 已加入 .gitignore,不会提交到 GitHub。你当前机器上的真实配置保存在该文件中,本地启动时直接指定它即可。
在项目根目录执行:
python -m paper_agent -i --config config.local.json浏览器打开:
http://localhost:7860/
如果要直接使用 config.json,请先把其中的 xx 改成真实值:
python -m paper_agent -i --config config.json启动图形界面:
python -m paper_agent -i --config config.local.json指定端口启动:
python -m paper_agent -i --serverport 7860 --config config.local.json查看版本:
python -m paper_agent --version翻译论文:
python -m paper_agent example.pdf -s openai --config config.local.json提交到 GitHub 前建议确认没有泄露真实密钥:
rg -n "sk-[A-Za-z0-9]{20,}" --hidden --glob "!.git/**" --glob "!config.local.json"预期结果应为空,不能出现真实 URL 或真实 Key。
感谢 guaguastandup/zotero-pdf2zh 项目提供的启发与参考。
本项目也基于开源社区中大量优秀 PDF 解析、版面分析、文档生成和 Gradio 组件能力构建,在此一并致谢。
