如何教 LLM 智能体记住上下文并复现科学论文
最近发现了 PaperGuru 基准测试,其作者决定深入研究自主智能体面临的一个棘手问题。现代模型的上下文窗口已扩展到百万 token 级别,但智能体需要探索代码库、阅读数十篇论文并编写可运行代码的多日任务仍然会失败。
通常,问题归结于记忆。向量数据库通过余弦相似度查找文本块,但完全忽略了时间维度上的关系。如果一篇论文已更新或某个库已过时,标准 RAG 会愉快地将过时的片段混入提示中。在 PaperGuru-Benchmark 仓库中,AutoTrustAI 团队的研究人员发布了一种具有数据生命周期感知能力的长期记忆架构(Lifecycle-Aware Memory,简称 LAM),并附上了在复杂基准测试上的测试结果。
标准 RAG 有什么问题
当智能体撰写大型文献综述或从 PDF 论文中复现代码时,平面嵌入搜索会在基本问题上遇到困难。
首先,信息会变得过时。如果一种方法在更新的论文中被证伪,平面数据库无法获知这一点。
其次,所需的证据通常不在通过关键词与查询相似的文本块中,而是在引用图中相隔两层的节点里。
第三,随着档案库增长,搜索成本增加,智能体开始被噪声淹没。
作者制定了四条记忆工作规则:
- 内容版本控制。系统追踪编辑、弃用和论文撤稿。
- 多跳结构相关性。搜索通过关系图进行,而不仅仅是向量相似度。
- 无限档案增长下的有界查询成本。
- 证据追溯。每个智能体声明都关联到具体来源。
大块记忆架构(Capital Chunk Memory Architecture)
PaperGuru 架构没有将文本切分为统一块并倾倒到 Chroma 或 Pinecone 中,而是将记忆分为两层。第一层称为块头(chunk heads),包含每个工件(artifact)的紧凑元数据,用于快速路由。第二层是块内容(chunk contents),存储原始文本,仅在实际需要时才延迟加载。
路由器依赖时间工件图(temporal artifact graph)。该图包含两种关系类型:结构关系(例如 cites、implements、benchmarked-on)和因果关系(deprecated-by、retracted-by、superseded-by)。
生成管道包含四个步骤:
- 搜索:在档案库中快速搜索匹配的工件头。
- 提取:提取所需片段并组装所谓的证据卡(evidence cards)。
- 推理:生成与批判循环,模型起草并检查逻辑。
- 验证:最终验证,检查来源引用。
测试结果
作者在两个高难度基准测试上测试了该系统:OpenAI 的 PaperBench 和 SurveyBench。
PaperBench 评估模型从 ML 论文 PDF 生成可运行代码库并复现实验的能力。人类基线(一位拥有 48 小时预算的 ML 博士生)为 41%。
PaperGuru 在 23 篇论文上取得了 66.05% 的平均成绩,击败了所有已发布的基线解决方案。其他智能体的最佳成绩为 35.74%。
在已知基线的 20 篇论文中,新记忆架构在 19 篇上显示出显著改进。例如,在复现 classifier-free guidance 论文时,成绩增长了 68%。唯一下降的是 PINN 任务(-4.47%),因为原始基线使用了手动领域特定启发式方法。
在评估大型科学综述写作质量的 SurveyBench 上,该系统在基于 Claude Opus 的评判下内容质量得分为 94.66%。
值得注意 Richness 指标。它统计的不是主观的语言模型评分,而是生成内容中编译图表、表格、可运行代码和正确引用的实际存在。
在这里,PaperGuru 得分为 43.76%,而一半的竞争方法得分为零,仅生成没有结构的纯文本。
仓库内容
该仓库约 350 MB,包含大量实用材料:
- 完整的基准测试基础设施,包含可复现的评估管道
- 所有基准论文的预计算嵌入和图结构
- LAM 架构组件的基线实现
- 评估脚本和可视化工具
- 所有 23 篇 PaperBench 论文的即用型提交
README 中的所有图表都可以在本地重新构建。assets/figures/ 文件夹包含一个包含所有指标的 data.json 文件和构建脚本:
python scripts/rebuild_graphs.py
谁应该研究这个项目
如果你正在构建处理大型代码库或复杂技术文档的智能体系统,这个仓库提供了很好的思路。将记忆拆分为轻量级头和因果关系图的想法可以轻松迁移到企业知识库。
PaperBench/submissions/ 文件夹中的即用型提交对那些测试自己从论文生成代码管道的人很有用。在那里你可以看到如何构建复杂 ML 管道的复现结构,当模型需要输出的不仅仅是单个脚本,而是一个包含依赖和测试的工作项目树时。