经典论文引导:把工程模式追到原始问题
检索日期:2026-07-27
本页只链接论文原文、正式会议论文页或作者项目页。论文用于理解机制和实验边界,不等于可直接照抄的生产方案。
阅读方法:先看摘要、图 1、方法总图和实验结论;再带着课程代码中的一个具体问题回到正文。每篇都要留下“完成证据”。
路线图
| 课程问题 | 首读论文 | 课程章节 | 优先级 | 预计时长 |
|---|---|---|---|---|
| Agent Loop 为什么要交替思考与行动 | ReAct | 第 1 章 | P0 | 50 分钟 |
| 外部知识为什么要检索再生成 | RAG | 第 3 章 | P0 | 60 分钟 |
| 用户记忆如何检索、反思并参与规划 | Generative Agents | 第 3 章 | P1 | 60 分钟 |
| 模型怎么学会选择工具 | Toolformer | 第 4 章 | P1 | 45 分钟 |
| 失败轨迹怎样变成下一次经验 | Reflexion | 第 5 章 | P0 | 50 分钟 |
| 自评与迭代为何可能有效又可能失控 | Self-Refine | 第 5 章 | P1 | 45 分钟 |
| 长上下文怎样压缩 | LLMLingua | 第 2 章 | P1 | 45 分钟 |
| 多 Agent 如何用角色和通信协作 | CAMEL / AutoGen | 第 4、10 章 | P1 | 80 分钟 |
| LLM Judge 有哪些偏差 | MT-Bench / Chatbot Arena | 第 6 章 | P0 | 55 分钟 |
| 怎样评估完整 Agent | AgentBench | 第 6 章 | P1 | 45 分钟 |
| Coding Agent 怎样用真实仓库任务评估 | SWE-bench | 第 6 章 | P0 | 50 分钟 |
1. ReAct:Reasoning 与 Acting 的交替
- 论文原文:ReAct: Synergizing Reasoning and Acting in Language Models(ICLR 2023)
- 为什么读:第 1 周的百行 Agent Loop 不是“不断问模型”这么简单。ReAct 解释了 reasoning trace 如何更新计划、处理异常,action 又如何从外部环境取得 observation。
- 重点读哪里:
- Figure 1 的 ReAct、Act-only、CoT-only 对比;
- Section 3 的方法与轨迹格式;
- HotpotQA / FEVER 中 hallucination 与 error propagation;
- ALFWorld / WebShop 中交互式任务结果与失败分析。
- 带着什么问题:
Thought → Action → Observation中,哪些是模型输出,哪些是 Harness 生成?- Observation 为什么必须被重新放入下一次上下文?
- 公开 reasoning trace 是否是 Agent 可观测性的唯一方式?
- 完成证据:把课程 step05 的一次工具调用画成 ReAct 轨迹,再用 Mini Emperor 的
AgentEvent重画一次,说明两种表示中哪些状态相同、哪些不应暴露给用户。 - 优先级:P0
- 预计时长:50 分钟
- 检索日期:2026-07-27
2. RAG:参数记忆之外的可更新知识
- 论文原文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(NeurIPS 2020)
- 为什么读:客服系统要求引用、拒答和知识更新。原始 RAG 论文把参数化记忆与非参数化记忆组合起来,并把来源追溯和知识更新列为核心问题。
- 重点读哪里:
- Abstract 与 Figure 1;
- RAG-Sequence 和 RAG-Token 的差别;
- retriever、generator 与 marginalization;
- factuality、specificity、diversity 和 provenance 的讨论。
- 带着什么问题:
- 课程的“先召回 top-k,再一次性生成”更接近哪种变体?
- 原论文取得更好生成质量,为什么仍不能自动保证每句引用正确?
- 企业政策更新时,非参数化知识有什么工程优势?
- 完成证据:为客服的一道问题保存 query、top 5、最终引用;再删除正确文档运行一次,验证系统拒答而不是只依靠模型“记得”答案。
- 优先级:P0
- 预计时长:60 分钟
- 检索日期:2026-07-27
3. Generative Agents:记忆、反思与规划
- 论文原文:Generative Agents: Interactive Simulacra of Human Behavior(UIST 2023)
- 为什么读:这篇论文把 observation、memory stream、retrieval、reflection、planning 串成完整架构。它适合帮助区分“用户记忆”“运行经历”和“从经历抽象出的反思”。
- 重点读哪里:
- Figure 2 的 agent architecture;
- memory stream 的 recency、importance、relevance;
- reflection 如何从多条记忆生成更高层结论;
- planning 与 ablation study。
- 带着什么问题:
- 用户说“我偏好自提”应存为哪类记忆?
- 一次客服失败轨迹为何不应直接变成永久用户事实?
- Reflection 与课程的候选 Skill 生成有什么相同点和关键差别?
- 完成证据:用三栏表归类 10 条样例为用户事实、运行经验、可复用 Skill;为每条写入库条件、过期策略和冲突处理。
- 优先级:P1
- 预计时长:60 分钟
- 检索日期:2026-07-27
4. Toolformer:何时调用什么工具
- 论文原文:Toolformer: Language Models Can Teach Themselves to Use Tools(NeurIPS 2023)
- 为什么读:Agent Tool Call 不只是 JSON 格式问题,还包含“何时调用、调用哪个、参数是什么、怎样使用结果”四个决策。Toolformer从训练角度拆开了这些问题。
- 重点读哪里:
- 方法概览和 API call 插入过程;
- sampling 与 filtering;
- calculator、search、calendar 等不同工具实验;
- limitations。
- 带着什么问题:
- Toolformer 的自监督训练与课程中的运行时 tool calling 有何不同?
- 工具描述如何影响模型选择?
- 模型“会生成调用”为什么仍不能获得执行权限?
- 完成证据:为
search_kb与create_support_ticket各写一个高质量和低质量工具描述,用固定评估集比较误选率;执行权限始终由 CapabilityPolicy 决定。 - 优先级:P1
- 预计时长:45 分钟
- 检索日期:2026-07-27
5. Reflexion:不用改权重的语言反馈
- 论文原文:Reflexion: Language Agents with Verbal Reinforcement Learning(NeurIPS 2023)
- 为什么读:Skill 自进化不是让模型直接覆盖生产文件。Reflexion展示了如何把外部或内部反馈转成文字反思,放入 episodic memory,影响下一次尝试。
- 重点读哪里:
- Actor、Evaluator、Self-Reflection 三个角色;
- episodic memory buffer;
- HumanEval、ALFWorld、HotpotQA 的反馈差别;
- ablation 与失败模式。
- 带着什么问题:
- 反思文本是模型参数更新、用户记忆,还是运行经验?
- Evaluator 自己出错时,会怎样污染下一轮?
- 为什么生产 Skill 晋级还要 holdout、安全回归和人工批准?
- 完成证据:取一次失败轨迹,生成一条反思,再运行同一任务;同时证明这条反思不会自动成为
publishedSkill。 - 优先级:P0
- 预计时长:50 分钟
- 检索日期:2026-07-27
6. Self-Refine:反馈与迭代修订
- 论文原文:Self-Refine: Iterative Refinement with Self-Feedback(NeurIPS 2023)
- 为什么读:同一个模型可以扮演生成器、反馈者和修订者,不需要额外训练。但“同源自评”也可能重复盲点,课程用 Verifier、确定性测试和人审来补这条边界。
- 重点读哪里:
- Figure 1 的
Generate → Feedback → Refine; - feedback 的任务定制;
- 停止条件;
- 7 类任务结果与消融。
- Figure 1 的
- 带着什么问题:
- 什么时候多迭代一次有价值,什么时候只是增加成本?
- 自评者和生成者是同一模型时,怎样避免“自我同意”?
- 哪些错误必须由 lint、类型检查、测试等确定性信号发现?
- 完成证据:在 10 个 MR review 样例上比较 one-shot 和最多两轮 refine,记录质量、成本、延迟;禁止没有停止条件的循环。
- 优先级:P1
- 预计时长:45 分钟
- 检索日期:2026-07-27
7. LLMLingua:按预算压缩 Prompt
- 论文原文:LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models(EMNLP 2023)
- 为什么读:上下文压缩不等于粗暴截断历史。LLMLingua 把预算控制、片段级和 token 级压缩、分布对齐组合起来,提供了研究基线。
- 重点读哪里:
- coarse-to-fine compression;
- budget controller;
- token-level iterative compression;
- 压缩率、任务质量、延迟与成本实验。
- 带着什么问题:
- 系统指令、工具结果、用户约束是否应有相同压缩优先级?
- 论文报告的 token 压缩率为什么不能直接等同端到端延迟收益?
- 怎样用回归集证明压缩没有丢失关键约束?
- 完成证据:为同一 20 轮对话运行原文、摘要、截断三种策略,比较 token、延迟、约束保持率;保存至少一个压缩失败反例。
- 优先级:P1
- 预计时长:45 分钟
- 检索日期:2026-07-27
8. CAMEL:角色扮演式多 Agent 协作
- 论文原文:CAMEL: Communicative Agents for “Mind” Exploration of Large Language Model Society(NeurIPS 2023)
- 为什么读:Agent Team 不能只靠“你是专家 A、你是专家 B”。CAMEL 研究 inception prompting、角色一致性和自主对话,也暴露只依赖对话协作的局限。
- 重点读哪里:
- role-playing framework;
- inception prompting;
- task specifier 与 assistant/user agent;
- instruction-following cooperation 的评估。
- 带着什么问题:
- 角色设定如何减少任务漂移?
- 两个 Agent 互相确认,是否等于事实被验证?
- 工具执行和共享状态应放在哪个角色之外?
- 完成证据:让 Reviewer 与 Verifier 处理同一 Diff,分别记录角色 prompt、输入权限、输出 schema;证明 Verifier 能拒绝不存在的文件或行号。
- 优先级:P1
- 预计时长:40 分钟
- 检索日期:2026-07-27
9. AutoGen:可编程的多 Agent 对话
- 论文原文:AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation
- 为什么读:它把 Agent、human input、tool 和 conversation pattern 放进同一可编程框架。适合对照课程里的 Subagent、Agent Team 和人工批准。
- 重点读哪里:
- customizable and conversable agents;
- conversation programming;
- human、LLM、tool 的组合模式;
- coding、retrieval、decision-making 案例。
- 带着什么问题:
- “多个角色”与“多个独立上下文和权限”有什么区别?
- 谁决定发言顺序、终止条件和失败升级?
- 共享全部上下文与最小化传递各有什么代价?
- 完成证据:把课程 Agent Team 画成消息拓扑,标明每个 Agent 能看到的状态、能调用的工具和终止条件;制造一个子 Agent 超时并验证上层能收敛。
- 优先级:P1
- 预计时长:40 分钟
- 检索日期:2026-07-27
10. LLM-as-a-Judge:可扩展评估与偏差
- 论文原文:Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena(NeurIPS 2023)
- 为什么读:开放式回答难用单个精确匹配指标评估,LLM Judge 能扩展评估,但会出现 position、verbosity、self-enhancement 等偏差。
- 重点读哪里:
- MT-Bench 与 Chatbot Arena 的设计;
- 与人类偏好的一致性;
- position bias、verbosity bias、self-enhancement bias;
- single-answer grading 与 pairwise comparison。
- 带着什么问题:
- 交换候选答案顺序后,分数是否稳定?
- Judge 给出的解释是证据,还是另一个待验证的模型输出?
- 为什么安全回归不能只交给 LLM Judge?
- 完成证据:对 20 对客服回答做双向 pairwise judging,交换 A/B 顺序;报告翻转率,并与至少一名人工评分者抽样核对。
- 优先级:P0
- 预计时长:55 分钟
- 检索日期:2026-07-27
11. AgentBench:在交互环境中评估 Agent
- 论文原文:AgentBench: Evaluating LLMs as Agents(ICLR 2024)
- 为什么读:最终答案好看不代表 Agent 完成了任务。AgentBench 用 8 类交互环境衡量长期推理、决策和指令遵循,并分析失败原因。
- 重点读哪里:
- benchmark environments;
- success metrics;
- 模型对比;
- long-term reasoning、decision-making、instruction following 的失败分析。
- 带着什么问题:
- Agent 评估的“环境”包含哪些可重复状态?
- 工具调用格式错误应算模型失败、Harness 失败还是任务失败?
- 成功率之外为什么还要记录成本和轨迹?
- 完成证据:为 Mini Emperor 定义一个最小可复现评估环境,固定初始状态、工具响应和成功条件;重复运行至少 10 次并保存 trajectory。
- 优先级:P1
- 预计时长:45 分钟
- 检索日期:2026-07-27
12. SWE-bench:真实仓库中的 Coding Agent
- 论文原文:SWE-bench: Can Language Models Resolve Real-World GitHub Issues?(ICLR 2024)
- 作者项目页:SWE-bench Original
- 为什么读:真实 Coding Agent 的评估单位不是“一段看似合理的 patch”,而是固定仓库版本、问题描述、可构建环境和 fail-to-pass 测试。
- 重点读哪里:
- Issue–Pull Request 样例如何构造;
- repository context;
- Docker execution environment;
- fail-to-pass 测试与 resolution rate。
- 带着什么问题:
- MR Reviewer 和 issue-solving Agent 的成功条件为何不同?
- 为什么 gold patch 不是唯一可接受答案?
- 测试通过是否足以证明没有安全问题或越权改动?
- 完成证据:为一个本地缺陷创建固定 base commit、问题说明和失败测试;Agent 修改后必须让 fail-to-pass 通过且原有测试不回退。
- 优先级:P0
- 预计时长:50 分钟
- 检索日期:2026-07-27
三条跨论文主线
主线 A:一次 Agent Run 如何形成
text
ReAct
└─ 交替 Reason / Act / Observe
├─ Toolformer:模型何时、如何选择工具
└─ AgentBench:在交互环境中衡量是否真的完成主线 B:知识与经验如何进入下一次运行
text
RAG:外部、可更新、可追溯的知识
Generative Agents:经历的存储、检索、反思和规划
Reflexion:失败反馈写成下一轮可用的语言经验
Self-Refine:同一任务内的反馈与修订不要把四者合并为一个“memory”表。它们的写入来源、可信度、生命周期和使用时机不同。
主线 C:怎样证明改进不是自我感觉
text
MT-Bench:开放式质量与 Judge 偏差
AgentBench:交互式任务成功
SWE-bench:真实代码环境与确定性测试课程的 Skill 晋级因此同时需要:确定性测试、任务成功率、成本与延迟、安全保留集、差异审查和人工批准。
阅读完成总证据
完成本页不是“读完 12 篇”,而是提交以下四个产物:
- 一张 Agent Loop 轨迹图,标出模型、Harness、Tool、Environment;
- 一张记忆分层表,区分知识、用户事实、运行经验、Skill;
- 一份包含确定性指标和 LLM Judge 的评估协议,并写出 Judge 偏差控制;
- 一个失败案例复盘:说明论文机制在课程工程中为何仍需权限、状态、日志和人工门禁。