Clipping 微信公众号

Agent 必看 20 篇经典论文 (下)

by ohhhhh 原文 ↗
Created: 2026-06-02

公众号名称:ohhhhh的AI笔记

作者名称:ohhhhh

发布时间:2026-04-29 14:30

四、工具使用(Tools)

Tools 是 Agent 连接外部世界的接口

12. Toolformer

**论文:**Toolformer: Language Models Can Teach Themselves to Use Tools

Schick et al., 2023

以前让模型用工具,要么靠人工写 few-shot 示例(每个工具手动教),要么专门 fine-tune。两种方式都费人力,而且工具一多就扛不住。Toolformer 提出让模型自己学习”哪里该调工具、调完结果有没有用”。

核心思路:筛选 Tools

• 用少量人工示例,让 GPT-3 在原始文本里候选插入工具调用,比如把 “the Eiffel Tower is 324 meters tall” 改成 [QA(“How tall is Eiffel Tower?”)→324 meters] 函数

• 真实执行这个工具调用,拿到返回结果

• 比较两种情况下模型预测后续文本的困惑度:有工具结果 vs 没有工具结果——只有调用之后困惑度真的下降了,这条数据才保留

• 用筛选后的数据 fine-tune 模型

这个筛选逻辑的意思是:工具调用必须”真的帮到了语言建模”才算有效,乱插入的噪声数据会被自动过滤掉。支持计算器、Wikipedia 搜索、QA 系统、翻译、日历五类工具

📊 在数学题上,Toolformer(6.7B 参数)比 GPT-3(175B)还强。模型小了二十多倍,但因为 Toolformer 调用了计算器,反而赢了。

13. Gorilla

**论文:**Gorilla: Large Language Model Connected with Massive APIs

Patil et al., 2023

让 GPT-4 调用真实 API 时,有两个常见问题:一是直接编造不存在的参数或函数名(幻觉),二是 API 迭代很快,模型使用的函数签名会过时。Gorilla 针对这两个问题各有一套解法。

① 数据构建 → 解决幻觉问题

整理了 TorchHub、Hugging Face 等共 1600+ 个 API 的完整文档,用 self-instruct 方法让 GPT-4 生成(自然语言需求 → 正确 API 调用代码)训练对,基于 LLaMA 做 fine-tune,训练目标就是给定需求,输出正确的 API 调用代码。

② 推理时检索 → 解决过时问题

推理时先从最新 API 文档库里检索最相关的文档片段,塞进上下文再让模型生成调用代码。这样即使 API 在训练后更新了,模型也能看到最新签名,不会用旧版本。

📊 API 调用准确率上超过 GPT-4,尤其在参数正确性上优势明显;幻觉率显著低于 GPT-4 和 Claude。

14. ToolGen(ICLR 2025)

**论文:**ToolGen: Unified Tool Retrieval and Calling via Generation

传统工具调用是两步:先用检索模型从工具库捞候选塞进 prompt,再让 LLM 选一个执行。工具一旦到万级规模,候选文档根本塞不进 context,而且检索和生成是两个独立系统,很难联合优化。ToolGen 想把这两步合成一步。

工具虚拟化:给每个 tool 分配一个新 token(格式为 <<工具名&&API名>>)。

三阶段训练

① 工具记忆

输入 tool 名称,输出对应 token,让模型建立名称 → token 的映射,训练 8 个 epoch。

② 检索训练

输入用户 query,输出工具 token,训练模型直接基于 query 检索相关 tool。

③ Agent 微调

用完整任务轨迹做 fine-tune,训出能端到端完成任务的 Agent。推理时用 constrained decoding,只允许生成词表里真实存在的工具 token,幻觉率直接归零。

📊 在 ToolBench(47k API)上,工具检索超过 BM25 等所有无监督基线,端到端任务完成率高于同等基座的 ToolLlama,且不需要外部检索器。

五、记忆(Memory)

Agent 要做长期任务,上下文窗口终究有限。怎么记、记什么、什么时候召回,这是记忆模块的核心问题。

15. Generative Agents

**论文:**Generative Agents: Interactive Simulacra of Human Behavior

Park et al., 2023

25 个 LLM Agent 住在一个类似模拟人生的小镇里,各自有名字、职业、性格,彼此认识,会约定一起开派对,会传播八卦,会改变计划。

记忆架构的三层设计

① Memory Stream

用自然语言记录每一件发生过的事(“8 点起床”、“跟 Bob 聊了工作”……),采用时间序列 append-only(类似日志)。

② Retrieval

根据”最近性 + 重要性 + 相关性”加权,决定召回哪些记忆。

③ Reflection

定期让 Agent 对记忆做高层次总结,提炼出抽象见解(“John 是个认真的人”)。

这套架构让 Agent 能维持一致的长期行为,是后来很多 Agent 记忆设计的直接参考。

16. MemGPT

**论文:**MemGPT: Towards LLMs as Operating Systems

Packer et al., 2023

类比操作系统的内存管理:CPU 的内存是有限的,但操作系统能把不常用的内容 swap 到硬盘,需要时再换回来。MemGPT 把这套机制搬给 LLM。

两层记忆

Main Context(主上下文):相当于内存,是模型当前能直接看到的内容(prompt),有大小限制

External Storage(外部存储):相当于硬盘,存放历史对话、文档、长期事实

• 模型自己决定什么时候把外部内容”换入”主上下文,什么时候把不重要的”换出去”

这让 LLM 在对话长度、文档分析场景下突破了上下文窗口的硬限制,而不需要更换底层模型。

17. Mem0(2025)

**论文:**Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory

面向生产环境的可扩展长期记忆架构,解决多轮对话中的长期一致性问题,提供 Mem0(向量/关系型)和 Mem0g(图增强)两种实现。

Mem0 两阶段记忆管理

① 记忆抽取(Extraction)

LLM 从当前对话中提取候选事实(Candidate Facts),结合上下文、最近 M 条消息和会话摘要生成值得记忆的信息。

② 记忆更新(Update)

检索语义相似的现有记忆,通过 LLM 判断执行 ADD(新增)、UPDATE(更新)、DELETE(删除)或 NOOP(无操作)指令,动态维护记忆一致性。

Mem0g 图增强架构

• 将记忆表示为知识图谱:节点(Node)代表实体(如 Alice、旧金山),边(Edge)代表关系(如 lives_in),标签(Label)标注语义类型(Person/City)

• 两阶段流水线:实体提取模块识别实体及类型 → 关系生成器构建实体间关系

• 双重检索:实体中心法(构建关键实体的子图)+ 语义三元组法(整体查询编码为向量)

18. MemoryBank(2023)

**论文:**MemoryBank: Enhancing Large Language Models with Long-Term Memory

首个系统性地将人类记忆心理学(艾宾浩斯遗忘曲线)引入 LLM 记忆机制的研究,构建具备”类人类遗忘与强化”能力的长期记忆系统。

系统架构

Writer:将用户-系统交互编码为带时间戳的向量表示,存储于外部记忆库

Retriever:基于双塔稠密检索模型,通过向量相似度匹配召回相关记忆

Reader:将检索到的记忆整合进当前上下文,辅助生成响应

Updater(核心创新):模拟艾宾浩斯遗忘曲线——记忆随时间自然衰减,被频繁调用的记忆则强化保留,实现选择性记忆巩固与遗忘

记忆更新机制:采用线性评分函数综合”时间衰减 + 相关性 + 重要性”三维度,让 AI 像人类一样自动清理过时信息、强化常用知识,避免记忆库无限膨胀。

六、多智能体(Multi-Agent)

单个 Agent 能力有限,让多个 Agent 分工、对话、互相验证,才能解决真正复杂的任务。

19. CAMEL

**论文:**CAMEL: Communicative Agents for “Mind” Exploration of Large Language Model Society

Li et al., 2023

两个 Agent,一个扮演 AI Assistant,一个扮演 AI User,通过角色扮演对话来完成任务。不需要人工介入,两个 Agent 自己把任务谈完。核心挑战:防止对话失控——模型容易偏离角色、陷入死循环或角色翻转。

整体框架:三个 Agent,一个任务

Task Specifier:接收人类粗粒度想法(如”帮我写一个股票分析程序”),扩展成具体、可执行的详细任务描述

AI User(需求方):持续给出指令,推动任务进展

AI Assistant(执行者):负责执行和回应

由人类用户提出待实现任务(如开发股票交易机器人)启动。该任务涉及两类角色:担任 Python 程序员的AI 助手智能体与担任股票交易员的AI 用户智能体。通过任务指定器智能体细化任务,形成明确可执行的目标并交付给 AI 助手。AI 用户与 AI 助手均获取该指定任务后,以指令交互的方式自主对话协作,共同完成任务。

Inception Prompting(核心设计)

• AI User prompt:明确被告知”你是需求方,不要自己动手解决问题”

• AI Assistant prompt:明确被告知”Never flip roles!Never instruct me!“,维持角色边界

• 终止机制:AI User 判断任务完成时,输出特殊 token <CAMEL_TASK_DONE>,对话结束

对话循环:AI User 率先发出第一条指令 → AI Assistant 给出解决方案或提问 → AI User 根据回应给下一条指令,整个过程纯自主,中间没有人工节点。

20. AutoGen

**论文:**AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

Wu et al., 2023

CAMEL 这类工作证明了多 Agent 协作的可行性,但都是针对特定场景设计的定制方案,换个场景就得重新设计。AutoGen 的目标是做通用框架,让开发者能灵活定义 Agent 的角色、对话规则、终止条件。

核心抽象:ConversableAgent

AssistantAgent:默认用 LLM 驱动,不需要人工干预,收到任务后用 LLM 生成回应,可以写代码也可以给建议

UserProxyAgent:代理人类参与对话,关键能力是可以直接执行代码,并把执行结果(包括错误信息)反馈给 AssistantAgent

上方子图展示了 AutoGen 内置的各类智能体,它们具备统一对话接口,且支持自定义配置;中间子图为使用 AutoGen 搭建双智能体系统的示例,其中包含自定义回复函数;下方子图呈现了该双智能体系统在程序运行时自动开展对话的过程。

两种对话模式

两 Agent 对话:UserProxyAgent 执行 AssistantAgent 写的代码,把错误信息回传,AssistantAgent 修改代码,直到成功或达到终止条件

群聊(GroupChat):多个 Agent 加入 GroupChatManager 管理的群组,循环执行:动态选择下一个发言的 Agent → 让该 Agent 生成回应 → 广播给所有其他 Agent

AutoGen 的价值在于工程化——它把多 Agent 系统从”论文里的概念”变成了”真的能写代码跑起来的东西”。代码自动执行、错误反馈、重试逻辑都内置了。

21. MetaGPT

**论文:**MetaGPT: Meta Programming for a Multi-Agent Collaborative Framework

Hong et al., 2023

多 Agent 系统的一个核心问题是”级联幻觉”——一个 Agent 输出了错误内容,下游 Agent 把它当成真实信息继续处理,错误被逐级放大。MetaGPT 提出,把人类成熟的工作流(SOP)引入多 Agent 系统,通过结构化中间产物让每个环节都有明确的验证点,从而抑制幻觉传播。

角色体系:模拟一家软件公司

Product Manager:接收用户需求,输出 PRD(产品需求文档)

Architect:读取 PRD,输出系统设计文档(文件列表、数据结构、接口定义)

Project Manager:读取系统设计,拆解任务,分配给工程师

Engineer:按任务写代码,实现具体类和函数

QA Engineer:写测试用例,执行测试,反馈 bug

关键设计

标准化操作程序(SOP):每个 Agent 的职责、输入/输出格式事先定义好,减少混乱

结构化输出:Agent 产出的不是自由文本,而是 PRD 文档、设计图、代码文件等标准交付物

共享消息池:所有 Agent 可以订阅自己关心的消息,减少无效通信

在 HumanEval 和 MBPP 代码生成基准上表现很好。本质上是用”流程规范化”来约束多 Agent 协作的混乱,真正的问题在于现实任务往往比预定义的 SOP 复杂得多。

七、技能(Skills)

Agent 如何积累经验、把解决过的问题变成可复用的能力,这是让 Agent 真正”成长”的关键。

22. Agent Skills for LLMs(综述,2026)

**论文:**Agent Skills for Large Language Models: Architecture, Acquisition, Security, and the Path Forward

LLM 的能力扩展从提示词工程 → 工具调用 → 技能工程演进,这篇是第一篇系统梳理 Agent Skills 这个新范式的综述。论文按四条主线组织:架构、技能获取、部署、安全。

① 架构:Skills 到底是什么

Skills 不是工具(Tool)也不是提示词模板,而是一个自包含的目录包,里面有 SKILL.md(用 YAML frontmatter 写的元数据 + 操作流程说明)以及可选的脚本、参考文档、资源文件。

关键设计是渐进式披露(Progressive Disclosure):Agent 启动时只把每个 Skill 的元数据(几十个 token)预加载进 system prompt,触发时才把完整正文加载进来。这样即使有几百个 Skill,也不会撑爆上下文。

渐进式披露架构

② 技能获取:Skills 怎么来的

论文总结了六种方式,从人工到自动:

人工编写:目前最有效的方式,Atlassian、Canva、Stripe 等公司已有生产级 Skill

RL + 技能库:Agent 执行任务,成功的轨迹被提炼成可复用 Skill 存入库(类似 Voyager 的思路)

自主发现:SEAgent 让 Agent 在 Computer Use 环境里自主探索,从失败经验里提炼 Skill

结构化技能库:带检索机制的 Skill 库,按任务相似度匹配调用

组合式合成:把多个原子 Skill 拼装成解决复杂任务的复合 Skill

多 Agent 压缩成单 Agent:把多智能体系统学到的协作经验编译成单个 Agent 的 Skill,降低推理成本

③ 部署:Computer-Use Agent 是核心应用场景

Computer-Use Agent(CUA)就是能直接操控电脑桌面的 Agent——看屏幕截图、移动鼠标、点击按钮、输入键盘,和人类操作电脑的方式一样。这类任务天然需要大量程序性知识:打开这个软件用什么快捷键、这个界面的按钮在哪里。这些正好是 Skills 最擅长封装的内容。

Skill-equipped CUA 的完整架构从外到内分四层:

操作系统环境:Agent 看到的是真实的桌面截图(1920×1080),同时可以访问 accessibility tree 作为辅助输入

感知-定位-行动流水线:感知模块理解当前屏幕,定位模块把意图映射到具体像素坐标,行动模块执行鼠标点击、键盘输入等原子操作

Skill Library + 路由器:收到任务时,路由器检索最相关的 Skill,把完整内容注入上下文

MCP 连接层:负责 Agent 和外部服务(文件系统、数据库、API)之间的通信

④ 安全:目前被严重低估的风险

⚠️ 三项并行研究(2025.10 ~ 2026.2)给出的实证数据 • 社区贡献的 Skills 中 26.1% 存在安全漏洞 • 攻击方式很简单:在 SKILL.md 的长文本里嵌入恶意指令,Agent 隐式信任 Skill 内容,直接执行——可导致敏感文件泄露、密码窃取 • 更危险的是”Don’t ask again”授权穿透:用户对某个良性动作点了”不再询问”,攻击者构造的 Skill 可以让这个授权延伸到相关的恶意动作上

论文提出了四层治理框架(Skill Trust and Lifecycle Governance Framework):按 Skill 来源(自写 → 组织认证 → 社区贡献 → 匿名)分级授权,来源越可信,允许的操作权限越高。

本期覆盖工具使用、记忆、多智能体、技能四个模块,共 11 篇。


内容效果不满意?点此反馈

输入关键词开始搜索