Agent 是能够感知环境并作用于环境的任何事物。在 AI 时代,基础模型是 Agent 的"大脑",负责处理任务、规划行动序列、判断任务是否完成。Agent 的成功取决于两个核心因素:工具库(Tool Inventory)和规划能力(Planning)。工具让 Agent 超越模型本身的局限,规划让 Agent 将复杂任务分解为可执行的步骤。
| 应用 | 环境 | 工具 |
|---|---|---|
| ChatGPT | 对话界面 | Web 搜索、Python 执行、图像生成 |
| RAG 系统 | 文档库 | 文本检索器、图像检索器、SQL 执行器 |
| SWE-agent | 计算机终端 + 文件系统 | 浏览仓库、搜索文件、查看文件、编辑行 |
| 自动驾驶 | 道路系统及周边 | 转向、加速、刹车、传感器融合 |
如果模型每步准确率 95%,10 步后准确率降至 60%,100 步后仅 0.6%。
Agent 能执行更有影响力的任务,但任何失败都可能带来更严重后果。
"Agent 只会烧光你的 API 额度。"但如果 Agent 能自主运行,它可以节省人类时间,使成本物有所值。
没有外部工具的 Agent 能力极其有限——LLM 只能生成文本,图像生成器只能生成图像。外部工具让 Agent 的能力呈指数级扩展。
| 工具类型 | 功能 | 示例 |
|---|---|---|
| 文本检索器 | 从文档库检索相关信息 | RAG 系统的核心组件 |
| 图像检索器 | 检索相关图像 | 产品图片搜索 |
| SQL 执行器 | 查询结构化数据库 | 获取销售数据 |
| 人员搜索 | 查找组织内部人员 | 按姓名/邮箱搜索 |
| 库存 API | 返回产品库存状态 | 实时库存查询 |
| Slack/邮件读取 | 读取内部通讯 | 获取历史讨论 |
| Web 浏览 | 访问互联网获取最新信息 | 搜索 API、新闻 API、GitHub API |
Web 浏览防止模型"过时"(stale)——训练数据截止后的事件也能获取。但它也让 Agent 暴露于互联网的"污水池"。选择互联网 API 时需谨慎。
| 工具 | 解决的模型局限 | 效果 |
|---|---|---|
| 计算器 | 数学计算差 | 199,999 ÷ 292 瞬间准确 |
| 日历/时区转换器 | 时间计算易错 | 精确处理跨时区 |
| 单位转换器 | 单位换算 | lbs ↔ kg 等 |
| 代码解释器 | 代码理解与执行 | 数据分析、实验运行 |
| 翻译器 | 多语言能力不足 | 翻译模型不擅长的语言对 |
"就像你不应该给实习生删除生产数据库的权限一样,你也不应该允许不可靠的 AI 发起银行转账。"
关键防护:敏感操作需人工审批;不给 AI 直接执行 DELETE/UPDATE 的权限。
| 研究 | 工具数量 | 发现 |
|---|---|---|
| Toolformer | 5 个工具 | 微调 GPT-J 学习使用工具 |
| Chameleon | 13 个工具 | GPT-4 + 工具在 ScienceQA 提升 11.37%,TabMWP 提升 17% |
| Gorilla | 1,645 个 API | 探索大规模 API 选择 |
Chameleon 提出研究工具过渡:工具 X 之后调用工具 Y 的概率。如果两个工具经常一起使用,可以合并为更大的工具。
Voyager 提出技能管理器(Skill Manager):Agent 创建的新技能(代码程序)成功后加入技能库,供后续任务复用。
如果模型生成了 1000 步的计划但根本无法完成目标,没有监督的 Agent 可能运行数小时、浪费大量 API 调用后才被发现。
解耦流程:
| 粒度 | 示例 | 优缺点 |
|---|---|---|
| 细粒度 | 直接使用函数名:[fetch_top_products, generate_query, generate_response] | 易执行,但工具 API 变更时需更新提示和示例 |
| 粗粒度 | 自然语言描述:"get current date → retrieve best-selling product → retrieve product info → generate response" | 对工具变更鲁棒,但需要翻译器转换为可执行命令 |
| 控制流类型 | 说明 | 示例 |
|---|---|---|
| Sequential | 任务 B 在任务 A 完成后执行 | SQL 查询生成后才能执行 SQL |
| Parallel | 任务 A 和 B 同时执行 | 检索 Top100 畅销品同时检索每个的价格 |
| If Statement | 根据前一步输出选择 B 或 C | 查看 NVIDIA 财报后决定买入或卖出 |
| For Loop | 重复执行直到条件满足 | 不断生成随机数直到得到质数 |
自回归模型只能生成向前的动作,无法回溯生成替代动作。规划需要搜索和回溯,因此自回归模型无法规划。
执行路径 A 后发现不理想,模型可以修订路径使用 B, effectively 回溯。模型也可以重新开始选择另一条路径。
LLM 包含大量世界信息,能够预测每个动作的结果。将结果预测纳入规划,可以生成连贯的计划。即使 AI 不能独立规划,它仍可以是规划器的一部分——通过搜索工具和状态跟踪系统辅助规划。
| 维度 | 基础模型规划器(FM Agent) | 强化学习规划器(RL Agent) |
|---|---|---|
| 训练方式 | 提示或微调,时间/资源较少 | RL 算法训练,耗时耗资源 |
| 灵活性 | 通用,跨任务迁移 | 针对特定环境优化 |
| 长期趋势 | 两者可能融合 | |
"While reflection isn't strictly necessary for an agent to operate, it's necessary for an agent to succeed."
生成计划并执行动作
评估执行结果的质量
分析失败原因,提出改进方案
Thought、Observation 和 Action 可能消耗大量 token,增加成本和用户感知延迟,尤其是多步骤任务。ReAct 和 Reflexion 作者使用大量示例来引导 Agent 遵循格式,进一步增加了输入 token 成本。
| 失败模式 | 示例 | 检测方法 |
|---|---|---|
| 无效工具 | 生成包含 bing_search 的计划,但工具库中没有 | 检查工具名是否在清单中 |
| 有效工具,无效参数 | lbs_to_kg 需要 1 个参数但传了 2 个 | 参数数量/类型验证 |
| 有效工具,错误参数值 | 应该用 120 但用了 100 | 语义验证、范围检查 |
| 目标失败 | 计划去越南而非印度;或预算超支 | 结果验证、约束检查 |
| 时间约束失败 | 截止日期后才完成资助申请 | 时间戳验证 |
| 反思错误 | 只分配了 40 人却坚称任务完成 | 独立验证器检查 |
图像描述器返回错误描述,SQL 生成器生成错误查询
高层计划 → 可执行命令的翻译模块出错
Agent 在特定领域频繁失败,可能是因为缺少该领域的工具
| 指标 | 说明 |
|---|---|
| 平均步数 | 完成任务所需的平均步骤数 |
| 平均成本 | 完成任务的平均 API 成本 |
| 动作耗时 | 每个动作通常耗时?是否有特别耗时/昂贵的动作? |
"访问 100 个网页对人类可能效率低下(一次只能访问一个),但对 AI 来说微不足道(可以同时访问所有网页)。"
| 技巧 | 说明 |
|---|---|
| 更好的系统提示 | 提供更多示例(few-shot prompting) |
| 更好的工具描述 | 让模型更清楚理解工具功能和参数 |
| 重构函数 | 将复杂函数拆分为两个更简单的函数 |
| 使用更强的模型 | 更强的模型通常规划能力更好 |
| 微调规划模型 | 专门微调模型用于计划生成 |
| 人类参与 | 人类提供高层计划,Agent 扩展细节 |
| 风险操作审批 | 更新数据库/合并代码前需人工确认 |