Skip to content

经典论文精读

本页速览 逐篇精读 Agent 领域 10 篇奠基论文:ReAct、Toolformer、MRKL、Chain-of-Thought、Tree of Thoughts、Reflexion、Generative Agents、Voyager、SWE-agent、CodeAct,含 arXiv 编号、方法图解、实验数据与对后世框架的影响。

经典论文精读 ​

这一页是全站学术含量最高的一页。我们精选了 10 篇真正塑造了 LLM Agent 这个领域的论文,按时间顺序逐篇精读。选篇标准只有一条:今天你打开任何一个 Agent 框架的源码,都能看到它的影子。

每篇按固定模板展开:发表信息 → 要解决的问题 → 核心方法 → 关键实验与数据 → 局限 → 对后来系统的影响。如果你时间有限,优先读 ReAct、Chain-of-Thought、Reflexion 三篇——它们是面试中出现频率最高的(参见面试题库)。

怎么读论文

第一遍只读摘要、图 1 和实验主表,回答「它解决了什么、怎么解决、效果如何」三个问题;第二遍再啃方法细节。本文帮你做完第一遍,第二遍请回到原文。

〇、总览 ​

论文年份一句话贡献后续影响
Chain-of-Thought2022让模型「把思考过程写出来」,解锁多步推理一切推理范式的起点;Agent 的 Thought 字段
MRKL2022首次系统提出「LLM + 路由器 + 专家模块」架构LangChain 的设计蓝本,工具路由思想的源头
ReAct2022推理与行动交织(Thought/Action/Observation 循环)事实上的 Agent Loop 标准,被所有框架继承
Toolformer2023模型自学何时、如何调用 APIOpenAI function calling 的先声,工具训练范式
Reflexion2023用语言反馈代替梯度更新实现「强化学习」自我反思/自我纠错机制的标配
Generative Agents2023记忆流 + 反思 + 规划的完整 Agent 架构记忆系统设计的奠基之作,多智能体模拟
Tree of Thoughts2023把单链推理升级为可回溯的树搜索推理时搜索(test-time search)的先驱
Voyager2023技能库 + 自动课程,实现终身学习「可执行技能库」思想影响代码型 Agent
CodeAct2024用可执行 Python 代码统一 Agent 动作空间OpenHands、smolagents 的默认动作范式
SWE-agent2024提出 Agent-Computer Interface(ACI)设计学工具接口设计成为一门显学

可以把它们分成四组理解:推理层(CoT、ToT)、行动层(MRKL、ReAct、Toolformer、CodeAct)、学习与记忆层(Reflexion、Generative Agents、Voyager)、接口层(SWE-agent)。这与全景解剖一文的组件划分一一对应。

一、Chain-of-Thought Prompting(2022) ​

发表信息:Wei et al., Google Research。arXiv:2201.11903(2022 年 1 月提交),发表于 NeurIPS 2022。

要解决的问题 ​

标准 prompting 下,模型直接在「问题 → 答案」之间做映射。对算术、常识、符号推理这类需要多步推导的任务,即使把模型放大到千亿参数,准确率依然很低。微调可以提升,但为每个推理任务标注海量推理过程不现实。

核心方法 ​

简单到不像一篇里程碑论文:在 few-shot 示例里,把「中间推理步骤」写出来,模型就会模仿这种格式,先输出推理链再输出答案。

# 标准 prompting
Q: 食堂有 23 个苹果,用了 20 个做午餐,又买了 6 个,还有几个?
A: 9          ← 模型直接猜,容易错

# Chain-of-Thought prompting
Q: 食堂有 23 个苹果,用了 20 个做午餐,又买了 6 个,还有几个?
A: 食堂原本有 23 个苹果。用掉 20 个后剩 23 - 20 = 3 个。
   又买了 6 个,所以现在有 3 + 6 = 9 个。答案是 9。

一个后续被广泛使用的零样本变体是在问题后追加「Let's think step by step」,同样能诱导出推理链。

关键实验与数据 ​

  • 在 GSM8K 数学应用题上,PaLM 540B + CoT 达到约 57% 准确率,超过当时微调过的 GPT-3 加验证器的此前最优结果,且不需要任何微调。
  • CoT 是一种涌现能力:模型规模低于约 100B 时几乎无效甚至有害,这是「规模解锁能力」最著名的证据之一。
  • 收益在算术(GSM8K)、常识(CSQA)、符号推理(Last Letter Concatenation)等多类任务上一致出现。

局限 ​

  • 推理链错了没有纠错机制,一步错、步步错(错误传播)。
  • 推理过程是「生成的文本」,不保证忠实于模型真实的计算过程——后来的可解释性研究反复指出这一点。
  • 纯文本推理无法获得外部信息,幻觉照样发生(这正是 ReAct 要补的短板)。

对后来系统的影响 ​

CoT 是 Agent 的认知内核。今天你在 LangGraph 的 trace 里看到的每一条 "thought",在 Claude Code 输出里看到的每一段「先分析再动手」的独白,都是 CoT 的后代。2024 年后 OpenAI o 系列、DeepSeek-R1 这类推理模型,本质上是把 CoT 从「prompt 技巧」内化成了「训练目标」。详见提示工程与演进简史。

二、MRKL Systems(2022) ​

发表信息:Karpas et al., AI21 Labs。arXiv:2205.00445(2022 年 5 月),arXiv 预印本(未走主流会议,但影响力不亚于任何一篇会议论文)。

要解决的问题 ​

2022 年的 LM 有三个硬伤:知识冻结在训练截止日、算不准算术、访问不了私有数据。与其等一个「什么都会」的巨型模型,AI21 的答案是:承认单一模型的边界,用系统架构绕过去。

核心方法 ​

MRKL(Modular Reasoning, Knowledge and Language)系统 = 一个路由器(router)+ 一组「专家模块」(Experts):

        用户输入
           │
           ▼
      ┌──────────┐
      │  Router   │  ← 本身可以是一个 LM
      └──────────┘
        │   │   │
        ▼   ▼   ▼
   ┌────┐┌────┐┌────┐
   │计算器││搜索 ││数据库│   ← 离散专家(符号、可靠)
   └────┘└────┘└────┘
        │   │   │
        ▼   ▼   ▼
      结果交回 LM 综合成自然语言回答

专家模块可以是神经的(另一个 LM),也可以是符号的(计算器、SQL 引擎、搜索引擎)。路由正确时,符号专家保证结果精确、可验证。

关键实验与数据 ​

论文用 AI21 自家的 Jurassic-1 做路由实验。最有教育意义的不是成功,而是失败:在算术任务上,只在单运算样本上训练、再测试两步组合运算时,部分组合直接崩掉(例如某些加乘、减乘组合的表现接近随机)。单个工具可靠,不等于组合调用可靠——这是 Agent 组合泛化问题的最早实证。

局限 ​

  • 路由器是新的瓶颈:路由选错模块,计算器会「忠实地算错」。
  • 每个新专家都需要训练数据或适配层,扩展成本不低。
  • 论文发布时生态尚未成熟,它更像一份架构宣言而非开箱系统。

对后来系统的影响 ​

MRKL 是「LLM 编排外部工具」这一整套思想的命名者。LangChain 早期文档直接引用它,LangChain 的 Agent 抽象(LLM 决定调哪个 Tool)就是 MRKL 的通俗实现。今天 MCP 生态里的 tool routing,问题结构依然和 2022 年一模一样。参见工具与 MCP。

三、ReAct(2022) ​

发表信息:Yao et al., Princeton University & Google Research。arXiv:2210.03629(2022 年 10 月),发表于 ICLR 2023。

要解决的问题 ​

CoT 只会「想」,不会「做」——推理链拿不到外部信息,事实错误照样一路错到底;而此前的行动类方法(直接生成动作序列)不会「想」,无法在失败时调整计划。推理和行动被当成两个独立课题在研究。

核心方法 ​

把推理轨迹(Thought)和动作(Action)交替排列,让模型在同一个生成流里边想边做:

Question: 科罗拉多造山运动东段延伸到的区域,海拔是多少?

Thought 1: 我需要搜索「科罗拉多造山运动」,找到它东段延伸的区域,
           再查该区域的海拔。
Action 1: Search[科罗拉多造山运动]
Observation 1: 科罗拉多造山运动是发生于科罗拉多及周边的一次造山运动……

Thought 2: 资料没提到东段延伸区域,我需要进一步查「东段区域」。
Action 2: Lookup[东段区域]
Observation 2: 造山运动东段延伸至大平原(High Plains)……

Thought 3: 东段延伸至 High Plains,现在查 High Plains 的海拔。
Action 3: Search[High Plains 海拔]
Observation 3: High Plains 海拔从东南约 600 米升至东部边界……

Thought 4: 我得到了答案。
Action 4: Finish[约 600–2000 米]

这个循环就是今天所有 Agent Loop 的原型。Thought 让模型能分解任务、追踪进度、从异常 Observation 里恢复;Action 让它能 grounding 到真实世界,对抗幻觉。

关键实验与数据 ​

  • 知识密集型任务(HotpotQA、FEVER):ReAct 通过交互一个极简的 Wikipedia API,缓解了 CoT 的幻觉与错误传播问题。
  • 交互决策任务:在 ALFWorld(文本家务环境)上比模仿学习/强化学习基线高出 34 个百分点的绝对成功率,在 WebShop(模拟网购)上高出 10 个百分点——而且只用了 1-2 个 in-context 示例,没有训练。
  • 人工评估显示 ReAct 的轨迹比无推理基线更具可解释性。

局限 ​

  • 强依赖 prompt 中示例的质量,示例与任务不匹配时性能掉得很快。
  • 轨迹一旦开头走歪,缺乏显式的回退机制(Reflexion 和 ToT 分别补了这个洞)。
  • 每步一次 LLM 调用,长任务成本高(见成本控制)。

对后来系统的影响 ​

ReAct 是被引用最多、也被「重新发明」最多次的 Agent 范式。LangChain 的 AgentExecutor、OpenAI Agents SDK 的 runner、Claude Code 的主循环,本质都是 ReAct。论文作者之一 Shunyu Yao 后来参与的一系列工作(ToT、Reflexion、SWE-agent)也都在这份清单里——这条师承线本身就是一部微缩的 Agent 史。案例层面可对照 SWE-agent 与 OpenHands。

四、Toolformer(2023) ​

发表信息:Schick et al., Meta AI。arXiv:2302.04761(2023 年 2 月),发表于 NeurIPS 2023。

要解决的问题 ​

ReAct 靠 prompt 教模型用工具,但 prompt 教不深:模型并不真正「理解」何时该调用工具,换个工具集就得重写 prompt。能不能让模型自己学会调用外部 API?

核心方法 ​

自监督学习,三步走:

1. 采样:给一个普通文本语料,让模型在「可能有帮助」的位置
   插入 API 调用候选,例如:
   "匹兹堡也被称为 [QA("匹兹堡的别称是什么?")] 钢城"

2. 过滤:执行 API 调用,比较「带调用结果」和「不带」两种情况下
   模型对后续文本的预测损失。只有确实降低了损失的调用
   (即调用结果真的有用)才保留。

3. 微调:在过滤后的语料上微调模型(论文用的是 GPT-J 6.7B)。

论文覆盖了五类工具:计算器、问答系统、搜索引擎、翻译系统、日历。

关键实验与数据 ​

微调后的 Toolformer 在一系列下游任务上显著超过同等规模的基线模型,并且学会了自主决定调哪个工具、传什么参数、如何把结果融入输出——不需要人工标注任何调用示例。

局限 ​

  • 工具间不能串联:一次调用不能依赖另一次调用的结果,无法组合。
  • 采样-过滤流程成本高,且对「损失是否下降」这一代理指标很敏感。
  • 模型规模小(6.7B),与大模型时代的差距明显。

对后来系统的影响 ​

Toolformer 证明了「工具使用可以被训练进权重」。几个月后 OpenAI 推出 function calling,再之后的 Gorilla、API-Bank、各家模型的原生工具调用能力,走的就是这条路。今天「prompt 派」(ReAct 血统)和「训练派」(Toolformer 血统)已经合流:基础模型出厂自带工具调用能力,Agent 框架负责组织调用循环。

五、Reflexion(2023) ​

发表信息:Shinn et al., Northeastern University & MIT & Princeton。arXiv:2303.11366(2023 年 3 月),发表于 NeurIPS 2023。

要解决的问题 ​

传统强化学习让 Agent 从试错中学习,但样本效率极低、还要微调权重。LLM 时代的问题是:能不能不碰权重,让 Agent 也能「从失败中学习」?

核心方法 ​

Reflexion 的答案是:把 RL 的 reward 翻译成自然语言,存进记忆,下轮再读。 架构由四个角色组成:

┌─────────┐   生成轨迹    ┌──────────┐
│  Actor   │ ───────────→ │ Evaluator │  ← 给本轮表现打分
│ (LLM)    │              │ (规则/LLM)│
└─────────┘              └──────────┘
     ↑                         │ 反馈信号
     │                         ▼
┌─────────┐              ┌──────────┐
│ 情景记忆  │ ←────────── │ Self-    │  ← 把失败原因写成
│ (存反思)  │   存反思文本  │Reflection│    一段自然语言反思
└─────────┘              └──────────┘
     │
     └── 下一轮尝试时,Actor 把反思文本一并读入 prompt

关键洞察:人失败后不会「更新梯度」,而是写一句「上次我错在没有先查东段区域」。LLM 恰好能消费这种文本。

关键实验与数据 ​

  • HumanEval 代码生成:pass@1 达到 91%,超过当时 GPT-4 单次生成的 80%——这是全文最出圈的一个数字。
  • 在 ALFWorld(序列决策)、HotpotQA(推理)上都显著优于无反思基线。
  • 消融实验表明:反馈信号的来源(外部环境 vs. 自我模拟)和形式(标量 vs. 自由文本)都会影响收益。

局限 ​

  • 依赖可靠的评价信号:没有单元测试或可验证环境时,Evaluator 本身可能误判,反思就会「反思错方向」。
  • 可能陷入重复失败的循环——反思文本相似、行为不变,需要设置最大轮数兜底。
  • HumanEval 91% 是在允许多轮尝试的条件下取得的,与单次 pass@1 不完全可比,引用时要注意口径。

对后来系统的影响 ​

Reflexion 让「自我纠错」成为 Agent 的标准组件:代码 Agent 的「跑测试 → 读报错 → 改代码」循环(SWE-agent、Devin 皆是)、RAG 系统的自我校验、评估体系中的 LLM-as-judge,都是它的思想后裔。它也启发了大量「 verbal RL 」方向的后续工作。

六、Generative Agents(2023) ​

发表信息:Park et al., Stanford University & Google Research。arXiv:2304.03442(2023 年 4 月),发表于 ACM UIST 2023。

要解决的问题 ​

此前的 Agent 研究关注「完成任务」,这篇论文问了一个完全不同的问题:能不能让 Agent 像人一样生活? 即产生可信的(believable)人类行为——起床、做早餐、上班、形成观点、记住昨天、计划明天。

核心方法 ​

论文把 25 个 Agent 放进一个类《模拟人生》的沙盒小镇 Smallville,每个 Agent 背后是一套三件套架构:

┌────────────────────────────────────────────┐
│              Memory Stream(记忆流)          │
│   按时间顺序记录一切观察,自然语言形式           │
└────────────────────────────────────────────┘
        │ 检索                    ▲ 写入
        ▼                         │
  检索得分 = recency(新近度)
           + relevance(与当前情境的相关性,向量相似度)
           + importance(重要性,由 LLM 打分)
        │
        ▼
┌─────────────┐      ┌─────────────┐
│  Reflection  │      │  Planning    │
│ (定期把记忆  │      │ (递归生成    │
│  提炼为高层   │      │  日程,再分解 │
│  洞察存回)   │      │  为具体行动) │
└─────────────┘      └─────────────┘

最著名的涌现案例:只给一个 Agent 一条初始设定「想办一场情人节派对」,两天之内,邀请在镇子里自发传播开来,Agent 们互相结识、相约结伴赴约,并真的在正确的时间出现在正确的地点。

关键实验与数据 ​

  • 人工评估显示,完整架构的 Agent 行为「可信度」高于多个消融版本和人工撰写的基线。
  • 消融证明 observation、planning、reflection 三个组件缺一不可——去掉反思,Agent 记不住谁邀请过自己;去掉规划,日程变得支离破碎。

局限 ​

  • 成本惊人:25 个 Agent 模拟两天消耗的 API 费用在当时就非常可观,实时性差。
  • 「可信度」由人类评估者主观判定,缺乏客观指标;评估者甚至可能因为 LLM 的自信文风而高估它。
  • Agent 会犯典型错误:记忆检索错位、把臆想当事实、在长时段里人设漂移。

对后来系统的影响 ​

这是「记忆系统」这个研究方向的奠基之作。记忆流 + 加权检索(recency / relevance / importance)的公式至今仍被大量记忆框架(包括 LangMem、各种 RAG memory 实现)直接沿用;「定期反思、把细碎记忆提炼成高层结论」也是当今长期记忆设计的标准操作。它同时开启了多智能体社会模拟(如 a16z 的 AI Town、各类群体仿真)这一分支,参见多智能体架构。

七、Tree of Thoughts(2023) ​

发表信息:Yao et al., Princeton University & Google DeepMind。arXiv:2305.10601(2023 年 5 月),发表于 NeurIPS 2023。

要解决的问题 ​

CoT 是一条直线:从左到右一路生成,没有探索、没有回溯。但很多任务(解谜、规划、数学证明)更像走迷宫——需要尝试多条路径、评估中间局面、走不通就退回来。人类解决问题的方式是搜索,不是独白。

核心方法 ​

把推理建模为对「思维树」的搜索。每一步生成多个候选 thought,由 LLM 自己对每个中间状态估值(sure / maybe / impossible),再用经典搜索算法展开:

                    ┌─ T1 ── 评估: maybe ──┬─ T4 ── sure ──→ 继续展开
  问题 → 第 1 步 ────┼─ T2 ── 评估: impossible ──→ ✂ 剪枝
                    └─ T3 ── 评估: sure ───┬─ T5 ── impossible ──→ ✂
                                           └─ T6 ── maybe ──→ 回溯后再展开

  搜索策略:BFS(维护每步最优的 b 个状态)或 DFS(带回溯)
  估值方式:让 LLM 独立打分,或对多个候选投票

四个可插拔的部件:thought 如何分解、thought 如何生成、状态如何估值、用什么搜索算法。这是它比 CoT 工程化的地方——每个部件都可以按任务定制。

关键实验与数据 ​

  • Game of 24(用 4 个数字和四则运算凑出 24):GPT-4 + CoT 仅解出 4%,ToT 达到 74%。
  • 在创意写作和 5×5 迷你填字游戏上同样大幅超越 CoT。
  • 代价同样醒目:每个问题的 LLM 调用次数是 CoT 的数十倍——收益与成本同步暴涨。

局限 ​

  • 需要任务能「分步且中间状态可评估」,开放式任务很难定义 thought 粒度。
  • 用 LLM 给自己的状态打分,评估器噪声大;遇到需要专业知识的局面,模型常常「不知道自己不知道」。
  • 对大多数实际业务任务,74% 对 4% 的场景是少数,为 4% 的场景付几十倍成本常常不划算。

对后来系统的影响 ​

ToT 是「推理时计算」(test-time compute)路线的标志性起点。它之后出现了 Graph of Thoughts、MCTS 与 LLM 结合的 LATS 等一系列工作;更深远的影响在于思想层面——o1/R1 这类推理模型本质上是把「搜索 + 评估」内化进了训练过程,让模型自己学会何时该多想几条路。工程实践中,ToT 更多作为「规划该怎么搜」的理论参照,而非直接部署的方案。

八、Voyager(2023) ​

发表信息:Wang et al., NVIDIA & Caltech & UT Austin & Stanford & ASU(通讯作者含 Jim Fan、Anima Anandkumar)。arXiv:2305.16291(2023 年 5 月),正式发表于 TMLR(Transactions on Machine Learning Research),2024 年 3 月。

要解决的问题 ​

此前的游戏 Agent 靠 RL 在固定环境里刷分,换任务就要重训。Voyager 问的是:LLM 能不能驱动一个在开放世界里终身学习的 Agent——自主探索、积累技能、能力越滚越强,全程不需要人类干预、也不需要微调权重?

核心方法 ​

Voyager 在 Minecraft 里运行(通过 Mineflayer API 操作),三大组件:

┌──────────────────┐
│ Automatic         │  根据当前状态提出下一个目标:
│ Curriculum        │  「附近有肉可打 → 学打猎」,
│ (自动课程)       │   难度随能力自适应爬升
└────────┬─────────┘
         ▼
┌──────────────────┐    失败:读环境反馈/报错,改代码
│ Iterative         │ ─────────────────────────┐
│ Prompting         │                          │
│ (迭代式提示)     │ ←──── 自我验证:目标达成了吗?
└────────┬─────────┘
         ▼ 成功:把这段可执行代码「封装入库」
┌──────────────────┐
│ Skill Library     │  技能 = 带描述的 JavaScript 函数,
│ (技能库)         │  用向量检索复用,可组合成更复杂技能
└──────────────────┘

与 Reflexion 的「文本反思」不同,Voyager 的资产是可执行代码:学会「挖石头」之后,这个技能永久入库,下次「造石镐」可以直接调用它。技能是组合式的,能力因此滚雪球。

关键实验与数据 ​

  • 与此前 SOTA 相比:获得的物品种类 3.3 倍、旅行距离 2.3 倍、解锁科技树关键里程碑的速度最高快 15.3 倍。
  • 零样本泛化:把已积累的技能库带进一个全新的 Minecraft 世界,能从零解决新任务,而其他方法几乎无法泛化。
  • 全程黑盒调用 GPT-4,没有动过一个模型参数。

局限 ​

  • 强绑定 Minecraft 这种「状态可程序化读取、动作可程序化执行」的环境;现实世界没有这么干净的 API。
  • 技能库会积累错误技能(当时能跑、换场景就废的代码),缺乏自动清洗机制。
  • 成本随探索时长线性增长,「终身学习」的账单也是终身的。

对后来系统的影响 ​

Voyager 的「可执行技能库」思想直接影响了代码型 Agent 的设计:OpenHands 等系统里的「把验证过的操作沉淀为可复用工具/脚本」、各类 Agent 框架的 skill/plugin 机制,都能看到它的影子。它也是「自动课程学习 + 代码即技能」这一范式的代表作,与 CodeAct 一文合读效果最好。

九、CodeAct(2024) ​

发表信息:Wang et al., UIUC。arXiv:2402.01030(2024 年 2 月),发表于 ICML 2024。

要解决的问题 ​

ReAct 之后,Agent 的动作普遍以 JSON 或预定义文本格式输出。这有两个结构性缺陷:动作空间被预定义工具集合锁死(工具组合不了、参数稍复杂就写不对),而且「调 API」对 LLM 来说远不如「写代码」自然——模型的预训练语料里充满了代码,而不是 JSON function call。

核心方法 ​

用一个统一动作空间替代所有预定义工具:让 Agent 直接生成可执行的 Python 代码。

传统 JSON 动作(一步一个工具,组合困难):
  Action: {"tool": "search", "query": "Tesla 股价"}
  Action: {"tool": "calculator", "expr": "..."}

CodeAct 动作(一段代码搞定组合逻辑):
  ```python
  prices = [get_stock_price(t) for t in ["TSLA", "AAPL", "GOOG"]]
  avg = sum(prices) / len(prices)
  print(f"平均股价: {avg:.2f}")
  if avg > threshold:
      send_alert(avg)

代码动作接入 Python 解释器执行,Agent 读到输出(含报错)后可以在多轮交互中**动态修正上一步动作**——控制流、变量复用、异常处理、库调用,全部免费获得。团队还构建了 7k 条多轮 CodeAct 交互的微调数据集 CodeActInstruct,训出了基于 Llama 2 / Mistral 的 CodeActAgent。

### 关键实验与数据

- 在 API-Bank 和团队新构建的工具使用 benchmark 上评测 17 个 LLM:CodeAct 相比 JSON/文本格式动作,**成功率最高提升约 20%**。
- 代码动作还有一个隐性优势:完成任务所需的交互轮次更少(一段代码顶一串 JSON 调用)。
- CodeActInstruct 与通用指令数据混合微调后,Agent 能力提升且不损伤通用能力。

### 局限

- 安全面被放大:可执行代码意味着必须沙箱隔离,注入一段恶意 prompt 就可能变成任意代码执行(见[安全](/advanced/security))。
- 对解释器环境依赖重:依赖缺失、超时、副作用清理都是工程债。
- 简单单工具任务上,代码动作的 token 开销反而更大。

### 对后来系统的影响

CodeAct 基本赢得了「动作空间之争」。OpenHands 的 Agent 以执行 bash/Python 为主行动、HuggingFace 的 smolagents 把 CodeAgent 设为默认范式、各家 Computer Use 产品也越来越偏向「给模型一个终端」而非「给模型一堆按钮」。论文一作 Xingyao Wang 正是 OpenHands 的核心作者——学术路线直接长成了产品路线。

## 十、SWE-agent(2024)

**发表信息**:Yang et al., Princeton University。arXiv:[2405.15793](https://arxiv.org/abs/2405.15793)(2024 年 5 月),发表于 NeurIPS 2024。

### 要解决的问题

到 2024 年,「给 LLM 接上工具」已经不是新鲜事,但同样一个模型,换个工具封装方式,在 SWE-bench 上的成绩能差出好几个百分点。论文提出的问题是:**界面本身是不是一门学问?** 人类有 IDE,Agent 作为「新型终端用户」,理应有为它设计的界面。

### 核心方法

提出 **Agent-Computer Interface(ACI)** 概念,并给出具体设计原则。SWE-agent 的 ACI 包括:

设计原则 具体实现 ────────────────────────────────────────────── 动作要「少而强」 专用命令替代自由 bash: open / goto / scroll_down / edit(带行号校验) 反馈要「高信息密度」 edit 后立即回显改动上下文; 语法错误时拒绝执行并提示原因 要有人类不会用的「护栏」 一次只能看 100 行(防止超长输出 灌爆 context window) 文档内嵌 每个命令失败时自动附带用法说明


### 关键实验与数据

- 在 SWE-bench(真实 GitHub issue 修复)上取得 **12.5% pass@1**,在 HumanEvalFix 上 **87.7%**,均为当时的最优水平(以 GPT-4 为底座,纯交互式 Agent 大幅超过非交互方法)。
- 消融显示 ACI 的每个设计决策都显著影响成绩——例如「编辑后不回显」或「取消行数限制」都会让成功率明显下降。

### 局限

- 12.5% 放在今天看已经不高(SWE-bench 榜单此后被快速推高),论文价值在方法论而非数字。
- ACI 设计原则主要靠试错归纳,缺乏形式化理论;最优 ACI 随底座模型能力漂移。
- 评测集中在软件工程单一领域,向其他领域的可迁移性需要另行验证。

### 对后来系统的影响

SWE-agent 把「给 Agent 设计工具接口」从手艺变成了学科:今天所有 coding Agent([Claude Code](/cases/claude-code)、[Cursor](/cases/cursor)、OpenHands)在设计工具集时都在实践 ACI 思想——动作粒度、回显策略、护栏位置,处处是论文里讨论过的取舍。它本身也演化成了活跃的开源项目,详见本站 [SWE-agent 案例页](/cases/swe-agent)。

## 十一、这些论文共同教会我们的 5 件事

**1. 推理要外显,但外显不等于正确。** CoT、ReAct、ToT 的共同前提是「把思考写出来」,但三篇论文也都撞上了同一堵墙:推理链会错、会幻觉、会自我欺骗。所以生产系统从不信任单链推理——要么接工具 grounding(ReAct),要么多路搜索(ToT),要么事后校验(Reflexion)。面试里只谈「CoT 很强」是及不了格的。

**2. 模型能力的边界,靠系统架构来补。** MRKL 在 2022 年就说清楚了:不要等一个全能模型,用路由器 + 专家模块搭系统。四年过去,模型强了百倍,这个判断依然成立——只是「专家模块」从计算器升级成了 MCP server。

**3. 反馈回路比单次生成值钱。** Reflexion 的 91%、Voyager 的技能滚雪球、SWE-agent 的测试驱动修复,收益全部来自「执行 → 观察 → 修正」的回路,而非更聪明的单次 prompt。设计 Agent 时先问「反馈信号从哪来」,再问「prompt 怎么写」——没有可靠反馈的任务,反思机制反而是放大错误的回路。

**4. 动作空间的设计是第一等工程问题。** Toolformer 证明工具使用可以学进权重,CodeAct 证明代码优于 JSON,SWE-agent 证明接口细节决定成败。三代工作收敛到同一结论:别把动作空间当配置文件随手写,它和模型选型同等重要。

**5. 记忆是 Agent 从「工具」变成「系统」的分水岭。** Generative Agents 的记忆流、Reflexion 的情景记忆、Voyager 的技能库,对应记忆的三种形态:叙事记忆、教训记忆、能力记忆。一个没有记忆的 Agent 每次都在重新投胎;而记忆一旦引入,检索、压缩、遗忘、污染防御就全成了新问题——这正是今天[记忆](/components/memory)和[上下文工程](/components/context-engineering)两页要展开的内容。

::: tip 下一步读什么
读完这 10 篇,你对 Agent 的「古典学」就齐了。前沿方向(推理模型、深度研究、Computer Use、多智能体系统)请移步[前沿论文](/papers/frontier);按职业目标选论文读法见[论文阅读路径](/papers/paths);想把这些思想落到代码,直接开写[动手造一个 Agent](/practice/build-your-own)。
:::

## 参考资料

- [Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(arXiv:2201.11903)](https://arxiv.org/abs/2201.11903) —— CoT 原文,NeurIPS 2022
- [MRKL Systems(arXiv:2205.00445)](https://arxiv.org/abs/2205.00445) —— AI21 Labs 的模块化架构宣言
- [ReAct: Synergizing Reasoning and Acting in Language Models(arXiv:2210.03629)](https://arxiv.org/abs/2210.03629) —— Agent Loop 的奠基论文,ICLR 2023
- [Toolformer: Language Models Can Teach Themselves to Use Tools(arXiv:2302.04761)](https://arxiv.org/abs/2302.04761) —— 自监督工具学习,NeurIPS 2023
- [Reflexion: Language Agents with Verbal Reinforcement Learning(arXiv:2303.11366)](https://arxiv.org/abs/2303.11366) —— 语言化强化学习,NeurIPS 2023
- [Generative Agents: Interactive Simulacra of Human Behavior(arXiv:2304.03442)](https://arxiv.org/abs/2304.03442) —— 记忆流架构与小镇实验,UIST 2023
- [Tree of Thoughts: Deliberate Problem Solving with Large Language Models(arXiv:2305.10601)](https://arxiv.org/abs/2305.10601) —— 推理的树搜索化,NeurIPS 2023
- [SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering(arXiv:2405.15793)](https://arxiv.org/abs/2405.15793) —— ACI 设计学,NeurIPS 2024