c10 - Agent 技术栈与工具调用
10. Agent 技术栈与工具调用:从生成内容到执行任务
Agent 不只是”更强的 ChatGPT”,而是一种根本性不同的产品形态:从生成内容转向执行任务。这带来了全新的工程挑战和产品设计范式——核心问题不再是”输出质量好不好”,而是”任务完成率够不够高、失败时怎么兜底”。
10.1 记忆架构:Agent 的认知基础设施
| 记忆类型 | 机制 | 产品实例 | PM 关注点 |
|---|---|---|---|
| 短期记忆(In-Context) | 当前对话上下文窗口 | 对话历史、工具调用记录 | 窗口用尽时如何压缩 |
| 外部记忆(External) | 向量数据库 + RAG | 用户文档、历史任务、知识库 | 存什么、何时检索 |
| 参数记忆(Parametric) | 模型权重中的通用知识 | 训练数据中的世界知识 | 无法实时更新,依赖 RAG 补充 |
| 工作记忆(Working Memory) | 任务执行中的临时状态 | 中间计算结果、已完成步骤列表 | 需要专门设计的状态管理机制 |
核心挑战:随着 Agent 执行步骤增加,工具调用记录、中间结果迅速填满上下文窗口。如何设计上下文压缩和状态持久化,是 Agent 产品工程的核心难题,直接影响任务长度上限。
10.2 工具调用机制与设计原则
Function Calling 的物理基础是受约束解码:模型被强制输出符合 JSON Schema 的工具调用指令(工具名 + 参数),由外部执行器执行后返回结果。模型读取结果,决定下一步行动。
工具设计三原则:
-
接口原子化:每个工具只做一件事。
search_and_summarize()是反模式——拆成独立的search()和summarize()工具更利于错误定位和灵活组合。 -
错误信息可机读:工具返回值必须包含 Agent 能理解的错误描述(如
{"error": "文件不存在", "suggestion": "请先调用 list_files 获取可用文件列表"})。否则 Agent 无法自我纠错,会在错误上反复重试。 -
副作用分级:
- 只读操作(search、read、query)→ 自动执行
- 写操作(send_email、create_file、update_record)→ 返回草稿等待用户确认
- 高风险操作(删除、转账、发布)→ 明确拒绝或双重确认
10.3 可靠性困境:复合错误的产品含义
这是 Agent 产品最常被忽视的系统性问题:
| 步骤数 | 单步 95% 成功率 | 单步 99% 成功率 |
|---|---|---|
| 5 步 | 77% | 95% |
| 10 步 | 60% | 90% |
| 20 步 | 36% | 82% |
这不是工程问题,而是产品定义问题:20 步 Agent 完成率 36% 根本无法上线。产品必须设计:
- 错误检测机制:每步执行后验证结果是否合理
- 局部回退策略:单步失败时回退这一步,而非从头重来
- 人机协作断点(Human-in-the-Loop Checkpoint):在关键决策节点主动请求用户确认,降低单次错误的级联损失
10.4 架构模式选型
单 Agent + 多工具:最简单。适合线性、步骤明确的任务。上下文膨胀是主要瓶颈。
多 Agent 协作(Orchestrator 模式):
- Planner:负责将复杂任务拆解为子任务
- Executor:每个子任务由专门 Agent 执行(工具范围有限,上下文干净)
- Reviewer:验证执行结果,触发重试或上报
适合复杂、可并行、需要自我检验的任务(如自动化研究、代码生成 + 测试 + 修复循环)。
MCP(Model Context Protocol):Anthropic 提出的工具调用标准协议,将工具定义、资源访问、采样控制标准化为统一接口。正在成为 AI 生态的”HTTP 协议”——任何工具只要提供 MCP Server,即可被任何支持 MCP 的 Agent 直接调用,无需重复集成。
对 PM 的战略意义:MCP 生态意味着工具集成成本大幅下降,产品的竞争优势将更多来自垂直场景的工作流设计和数据积累,而非工具集成能力本身。
10.5 成本结构:Agent 是乘法计费
Agent 的每个”行动步骤”对应一次或多次 LLM 调用:
- 10 步 Agent = 10+ 次 API 调用
- 每次调用包含完整的历史上下文 → 每步 token 数递增
- 部分步骤还包含 RAG 检索 → 额外的 Embedding 和 Reranker 成本
实际影响:Agent 产品的单次任务成本可能是普通对话的 10–100 倍。这直接影响:
- 产品定价(按任务 / 按结果收费,而非按 token 计费)
- 架构设计(哪些中间结果可以缓存复用)
- 用户体验设计(长时间任务需要异步 + 进度通知机制,而非同步等待)
相关概念卡:Agent 与工具调用、Function Calling、RAG 模块二延伸:m206 记忆机制与 Browser Agent 进展 | m207 完整失败模式分类与兜底体系 专题升级:0411 Agent 系统化专题 — 本章给的是 G3 截面快照,专题在此基础上提供时间纵轴(G02 五代演化详解·G1-G5)+ 静态分层骨架(S01 Agent 六层架构剖面)+ 范式映射矩阵(S02 流派架构对照表) 上一章:c09 RAG 下一章:c11 System 2