Agent:让模型去做事

让模型解释一个报错,和让它打开项目、定位文件、修改代码、运行测试,是两种不同的任务。后者需要持续观察环境,决定下一步动作,并判断事情有没有做完。Agent 研究里很多问题就发生在这个过程里。

Agent 把模型放进一个持续执行的过程:拿到任务,读取当前信息,决定动作,调用工具,再根据结果决定下一步。做完一次搜索就回答、反复修改代码直到测试通过,都可以用这个视角观察;关键是环境反馈是否真的改变了后续行为。

这类系统的研究对象不只有模型本身,还包括工具接口、记忆、任务拆分、失败恢复和评测。把执行记录留下,区分模型选错了、工具返回错了、还是评价方式错了,往往是进入这个方向的第一步。

主要任务
  • 连接检索、计算和代码执行,让模型获得参数之外的信息与能力。
  • 完成需要多步操作的任务,例如定位报错、改代码并验证结果。
  • 利用任务反馈修正后续行动,研究长期任务中的可靠性和成本。
一次任务中的工具调用
  1. 01任务输入
  2. 02生成计划
  3. 03调用工具与观察
  4. 04整理回答

发展路线与代表工作

  1. 2023

    ReAct:把思考、行动和观察接成循环

    模型根据当前信息选动作,读取环境结果后继续推理;这是理解执行轨迹的起点。

  2. 2023

    Toolformer:学习什么时候调用工具

    工具使用也可以成为训练数据的一部分,而不只是写在提示里的规则。

  3. 2023

    Reflexion:让下一次尝试利用失败反馈

    把反馈整理为文字记忆,放进后续尝试的上下文;这里的改进不依赖更新模型权重。

  4. 2024

    从 SWE-bench 到 SWE-agent:在真实仓库里完成任务

    SWE-bench 用真实 issue 与测试评价修改;2024 年的 SWE-agent 和 OpenHands 进一步探索文件编辑、命令执行、浏览器和沙箱怎样支撑完整任务。

  5. 2025

    把工具使用放进训练

    Search-R1 把搜索接入多轮强化学习,Agent Lightning 把执行记录与训练连接起来。模型在任务反馈中学习动作选择,研究也随之深入到轨迹数据、奖励和信用分配。

  6. 2025

    编程 Agent 进入日常开发

    Claude Code、Codex 等工具把读仓库、改文件和运行测试接成持续执行的过程。模型能力与执行框架一起改进,上下文组织、工具接口和任务验证成为实际开发中的关键环节。

  7. 2026

    持续协作、个人记忆与科研工作流

    Muse、Dots 等个人 Agent 将任务延伸到云端计算机和日常应用,Hermes 探索跨会话记忆与技能积累,ARIS 则将执行和复审接入科研流程。长任务怎样接着做、过去的经验怎样继续使用,成为这些项目共同面对的问题。

关键概念

工具调用
模型输出工具名称和参数,外部程序执行后返回结果。
执行轨迹 / Trajectory
一次任务中的观察、动作和结果序列。它帮助你定位首次出错的地方,而不只看最终答案。
上下文与记忆
上下文是模型当次可见的信息;记忆是跨步骤或跨尝试保存的内容,需要被取回才会影响当次决策。
Scaffold / 执行框架
围绕模型的程序:管理工具、提示、循环、终止条件和反馈。同一模型换一套框架,表现可能不同。

ReAct:推理、行动与反馈

从 ReAct 的项目页看一个推理、行动和环境反馈交替进行的例子。这里最值得看的是过程:模型拿到新信息后,下一步有没有变化?

再选 Hello Agents 或 Hugging Face Agents Course 的一个基础练习。先做一个工具调用能看清楚的小系统,保存完整记录。Python 和接口调用卡住时,回基础页。

Agent 里面,还能研究什么?

同一个 Agent 任务,可以从决策、协作、数据、训练、评测或系统实现切入。下面这些方向经常交叉:例如研究长任务的失败恢复,既可能改记忆,也可能补训练数据或调整工具接口。

规划、工具与记忆

任务变长后,早期错误会不会传到后面,重要信息是否丢失,失败后能否重新规划?工具有了却不会用,问题可能在工具描述、可见信息、调用格式,也可能在模型选择动作的能力。先检查它每一步实际看到了什么,再研究该保留哪些记忆、何时调用工具,以及什么时候需要换一个计划;这些问题也会接到上下文管理、恢复与长任务评测。

  • Reflexion:看一次失败怎样变成文字记忆,并影响下一次尝试;适合理解反馈如何进入决策。
  • Voyager:看 Minecraft 中的任务选择、代码修正和技能库,理解一段成功行为怎样被后续任务复用。

多 Agent 系统(MAS):分工、通信与组织

几个 Agent 合作会更好吗?看任务有没有需要分工的部分,通信带来了什么帮助,又增加多少时间和成本。可以具体研究谁向谁传消息、共享多少上下文、谁负责检查结果,以及分歧如何解决。用同样预算下的简单方案作比较,才容易知道收益来自哪里。另一类问题关注群体行为:个体的记忆和互动怎样形成信息传播与社会关系。

  • AutoGen:从可配置的角色与对话流程看多 Agent 如何共同完成任务,适合琢磨分工和通信机制。
  • Generative Agents:沿小镇里的聚会邀请看信息怎样在人际网络中传播,理解个体行为与群体结果的联系。

轨迹数据:用什么经历教会 Agent

Agent 的训练样本可以包含观察、动作、工具返回和最终结果。哪些任务值得采集,成功轨迹怎样筛选,失败与重试是否有用,不同任务的数据如何混合,都是可研究的问题。看数据时可以沿一条完整轨迹检查:模型当时能看到什么,训练要求它预测什么,工具返回的内容又怎样参与训练。

  • Toolformer:看候选工具调用如何生成、执行和筛选,理解怎样用少量示例构造工具使用数据。
  • AgentTuning:看它的 AgentInstruct 交互轨迹与通用指令如何混合训练,以及怎样检查能力能否迁移到未见过的 Agent 任务。

Agent RL:让行为通过反馈改善

怎样让模型通过任务反馈学会更好的动作?这会接到训练数据、奖励、RL和自动评测。多步任务里,最终成功可能依赖很早的一次搜索或工具选择,因此值得研究奖励如何分配到各步、怎样探索新的动作,以及训练时怎样处理环境返回。一个具体问题是:模型是否学会了更有效地搜索,还是只是增加了调用次数。

  • Search-R1:看搜索如何进入多轮 RL 训练,重点读结果奖励与检索文本的处理,再对照实际搜索轨迹。
  • Agent Lightning:看 Agent 执行记录怎样转成训练所需的数据,以及信用分配如何把任务反馈关联到具体决策。

环境与评测:怎样知道任务真的做完了

研究 Agent 也包括构建它能反复交互的环境,以及判断任务是否完成的方法。任务能否重置、初始状态是否一致、评分能否识别只做了一半的结果,都会影响比较是否可信。除了总成功率,还可以看失败发生在哪一步、要花多少次调用,以及换一类任务后表现如何。

  • AgentBench:认识操作系统、数据库等不同交互环境,比较各类任务的定义、评价方式与典型失败。
  • WebArena:看可复现的网站环境和按任务完成情况评分的设计,理解网页操作怎样变成可比较的实验。

执行框架与基础设施(Harness / Infra)

围绕模型运行的程序会决定它能用哪些工具、怎样收到返回结果、失败后怎样重试,以及何时结束任务。这里可以研究工具接口和上下文组织,也可以研究沙箱、并行执行、日志与状态恢复。保持模型不变,比较不同接口或执行方式下的成功率、耗时和成本,能帮助判断系统设计带来了什么影响。

  • SWE-agent:看面向 Agent 的文件查看、编辑与执行接口,理解接口设计为什么会影响模型完成代码任务的过程。
  • OpenHands:看代码执行、命令行、浏览器与沙箱如何接成一个平台,理解运行环境和评测如何支持 Agent 实验。

从编程到日常生活,Agent 已经在做什么

一个实际的 Agent 往往会同时用到工具、记忆、规划和反馈。编程助手、个人助理和科研工具,已经把这些能力用在了不同的任务里。

编程 Agent:在代码仓库里完成任务

Codex ↗

Codex 可以读取项目、修改代码、运行测试和审查改动,也支持并行处理任务与持续的后台工作。可以从一次修复报错的过程,看它怎样找到相关文件、验证修改,再根据测试结果继续处理。

Claude Code ↗

Claude Code 在终端中读取仓库、编辑文件和执行命令,能把理解项目、实现功能与测试接在一起。它的工具、Skills 和项目指令,也适合用来观察一个编程 Agent 怎样适应团队的工作方式。

Kimi Code ↗

Kimi Code 提供终端和编辑器入口,可以搜索代码、修改项目、运行命令并根据反馈调整后续步骤。用它完成一次小功能,再翻执行记录,可以看到代码理解、工具调用和验证怎样配合。

ZCode ↗

ZCode 是面向 GLM 的编程 Agent 工作环境,把项目、对话和任务执行放在一起。它支持通过 AGENTS.md 提供项目约定,可以关注这些上下文怎样影响模型的修改与检查。

Pi ↗

Pi 是一个可以自行扩展的轻量 Agent harness,核心围绕文件读写和命令执行。扩展、Skills 和提示模板都可以按自己的工作流组合,适合顺着代码理解 Agent 循环和工具接口。

个人 Agent:记住你的事情,持续跟进

Muse ↗

Meta 的 Muse 在云端有自己的计算机和浏览器,可以连接日常应用,处理邮件、行程和长期目标。它把个人偏好与持续任务放进同一个产品,能接着看记忆、跨应用操作和任务状态怎样协同。

Dots ↗

OpenAI 的 Dots 是持续在线的个人 Agent,使用云端计算机和连接的应用推进任务,并从交流与反馈中积累对用户的了解。它把一次对话延伸到持续协作,对应长期上下文、后台执行和反馈学习等问题。

Hermes ↗

Hermes 是 Nous Research 开源的个人 Agent,可以从终端和聊天软件接收任务。它保留跨会话记忆,并把执行中积累的方法整理成可复用技能;对记忆和技能积累感兴趣,可以继续读它的实现。

科研 Agent:把调研和实验连起来

ARIS ↗

ARIS 用 Skills 组织机器学习研究流程,包括文献调研、想法讨论、实验、结果分析和论文修改。执行模型推进工作,另一个模型参与审阅,再把反馈带回下一轮;可以从中看多 Agent 协作怎样进入科研工作流。

健康 Agent:围绕日常健康需求提供服务

蚂蚁阿福 / Ant A-Fu ↗

蚂蚁阿福围绕健康问答、报告解读、健康记录与医疗健康服务展开。这个场景把长期个人信息、专业知识和服务连接放到一起,也让 Agent 的研究问题延伸到具体行业中的信息组织与任务流程。

接着看:和 AI 一起做事 · 搭建自己的科研工作流

用检索任务检查 Agent 的表现

给系统一组同类型任务,例如从几份公开资料中找出指定事实并附出处。记录成功、错误出处、漏掉信息和工具调用失败各有多少次。每次改动都保留原来的题目与运行条件,再看失败是否减少。

关注代码 Agent,可以看 SWE-bench;上面的 AgentBench 也提供了环境与评测代码。它们提供的任务和评价值得单独读。

Agent 综述与论文索引

Lilian Weng:LLM Powered Autonomous Agents适合建立早期组件视角。LLM Agent Paper List适合选定问题后继续找论文。

如果你现在主要想用 Agent 帮自己科研,去和 AI 一起做事。如果开始研究它为何失败,接着看实验与评估。

评测分析与多 Agent 组织

Chai 的研究笔记收有 AutomationBench 评分分析和多 Agent 组织的模拟研究。更多教程与 paper list 见Agent 资料目录。

代表论文

从 ReAct 看行动循环,再看工具使用、反馈与评测;Generative Agents 和 Voyager 则把记忆与技能积累放进小镇和 Minecraft 的持续环境。

2023 · ICLR 2023

ReAct: Synergizing Reasoning and Acting in Language Models

ReAct: Synergizing Reasoning and Acting in Language Models · Yao et al. · Fig. 1
论文原图 · Yao et al. · Fig. 1 · 论文原文

它在解决什么

模型能否边获取外部信息,边调整解题过程?

核心想法

在一条轨迹中交替生成推理文本与行动,并把环境观察接回上下文。

为什么选这篇

它让“模型去做事”变成一段能逐步检查的执行过程。

第一遍读哪里

先看项目页的 HotpotQA 示例,再看 ALFWorld 的失败轨迹。

读完还要问

工具反馈会提供新证据,但模型仍可能忽略它或反复做错;显式推理文本也不等于完整的内部计算。

2023 · NeurIPS 2023

Toolformer: Language Models Can Teach Themselves to Use Tools

Toolformer: Language Models Can Teach Themselves to Use Tools · Schick et al., 2023 · Figure 2
论文原图 · Schick et al., 2023 · Figure 2 · 论文原文

它在解决什么

怎样获得教模型调用工具的数据,而不逐条人工标注?

核心想法

生成候选调用,实际执行,保留让后续文本更容易预测的调用,再用这些数据微调模型。

为什么选这篇

与 ReAct 对照读,可以分清执行时的组织方式和训练时学到的能力。

第一遍读哪里

看 Figure 2 的采样、执行、筛选流程,再看工具使用实例。

读完还要问

原方法对多次调用串联和交互式工具有局限;预测后续文本的收益不等同于完成长任务的收益。

2023 · NeurIPS 2023

Reflexion: Language Agents with Verbal Reinforcement Learning

Reflexion: Language Agents with Verbal Reinforcement Learning · Shinn et al., 2023 · Figure 2(a)
论文原图 · Shinn et al., 2023 · Figure 2(a) · 论文原文

它在解决什么

一次尝试失败后,怎样让下一次用上这次的教训?

核心想法

把任务反馈整理成文字反思,保存到记忆,再作为下一次尝试的输入。

为什么选这篇

它是理解“改上下文”和“更新参数”差别的具体例子。

第一遍读哪里

顺着方法中的执行、评估、反思和再次尝试读一遍。

读完还要问

反馈质量决定反思有没有依据;它不是通过梯度更新权重的传统强化学习训练。

2024 · ICLR 2024

SWE-bench: Can Language Models Resolve Real-World GitHub Issues?

SWE-bench: Can Language Models Resolve Real-World GitHub Issues? · Jimenez et al., 2024 · Figure 1
论文原图 · Jimenez et al., 2024 · Figure 1 · 论文原文

它在解决什么

模型能否读懂仓库和 issue,提交真正解决问题的代码修改?

核心想法

从真实项目收集 issue 与修复,给模型仓库和问题,再通过测试评价补丁。

为什么选这篇

它把读代码、定位、修改和验证放到一个完整任务里。

第一遍读哪里

先读任务构建与评价方式,再看一种失败案例。

读完还要问

原始数据来自 Python 仓库;测试通过不能覆盖全部软件质量,也不能直接代表其他语言和工作流。

2023 · UIST 2023

Generative Agents: Interactive Simulacra of Human Behavior

Generative Agents: Interactive Simulacra of Human Behavior · Park et al. · Smallville
论文原图 · Park et al. · Smallville · 论文原文

它在解决什么

让 25 个角色住在一座小镇里,怎样让他们记住经历、安排生活并彼此交往?

核心想法

用自然语言记录观察,按相关性、重要性和时间检索记忆,再通过反思提炼经验、制定和调整计划。

为什么选这篇

聚会邀请怎样在人际网络中传播,可以沿着每个角色的记忆、对话与行动追踪。

第一遍读哪里

先看 Smallville 小镇图和情人节聚会案例,再读记忆检索、反思和规划的架构。

2023 · arXiv 2023

Voyager: An Open-Ended Embodied Agent with Large Language Models

Voyager: An Open-Ended Embodied Agent with Large Language Models · Wang et al. · Fig. 1
论文原图 · Wang et al. · Fig. 1 · 论文原文

它在解决什么

从砍树到挖钻石,Agent 怎样把会做的事积累下来,继续探索?

核心想法

自动课程提出任务,GPT-4 根据环境反馈生成和修正可执行代码;成功技能存入技能库,供后续任务检索、组合和复用。

为什么选这篇

科技树把长期能力积累呈现得很直观:后续技能建立在采集、合成与工具使用之上。

第一遍读哪里

先看科技树与物品探索主图,再看自动课程、技能库和代码调试循环。

入门练习

卡在某一步?把过程带到 AMA 一起聊 ↗