AI Agent 内部解析
AI Agent 的演示视频看起来很棒,但当你提出实际问题时,它们往往会失败。
Agent 会做错事。它会忘记决策。它会调用不存在的工具。它会陷入死循环。这些不是模型的失败,而是工作流的失败。
Agent 是一个软件工作流。语言模型负责选择下一步并调用工具。智能在于编排(orchestration),而不仅仅在于模型本身。
每一个生产环境中的 Agent 都依赖于五个支柱:
- 规划 (Planning):先思考,后行动。
- 工具使用 (Tool Use):与现实世界交互。
- 记忆 (Memory):存储上下文和事实。
- 约束 (Constraints):设定边界和预算。
- 验证 (Verification):证明工作结果是正确的。
规划风格
幼稚的 Agent 会直接采取行动,这会导致幻觉。优秀的 Agent 会先进行规划。
- 先规划后执行 (Plan-then-execute):模型编写完整的计划。这种方式易于审计,但如果现实情况发生变化,则难以调整。
- ReAct (Reason + Act):模型在循环中进行思考、行动和观察。它更具适应性,但在 Token 消耗和时间成本上更高。
工具使用
没有工具,Agent 只是一个聊天机器人。一个工具需要名称、JSON schema 和一个函数。
模型根据描述来选择工具。如果你的描述含糊不清,Agent 就会失败。请像对待规格说明书一样对待描述。明确定义工具的用途以及它不适用的场景。
务必验证工具调用。如果模型发送了错误的参数,请拒绝该调用并将错误反馈给模型。这有助于 Agent 在循环过程中进行学习。
记忆
记忆不仅仅是一件事。
- 工作记忆 (Working Memory):当前的对话和工具结果。
- 草稿本 (Scratchpad):Agent 用来记录笔记的地方。
- 长期记忆 (Long-term Memory):为未来的会话存储事实。
不要仅仅依赖向量数据库。使用 Markdown 文件的基于文件的记忆通常效果更好。它易于审计、编辑和使用 grep 进行检索。
约束与安全
生产环境中的 Agent 需要护栏(guardrails)。请使用以下四种手段:
- 工具白名单:仅允许特定的、命名的工具。
- 迭代预算:限制步骤数量以防止死循环。
- Token 预算:通过限制总 Token 数来控制成本。
- 审批关卡:对于发送邮件或删除数据等高风险操作,需要人工许可。
验证
当模型说任务已完成时,永远不要盲目相信它。模型默认是充满自信的。
使用真实的验证。如果 Agent 编写了代码,请运行测试;如果它生成了 JSON,请检查 schema;如果它执行了任务,请运行查询以确认更改。
最优秀的 Agent 会在循环内部进行验证。如果测试失败,将错误反馈给 Agent,让它重新尝试。
停止盲目追求更聪明的提示词(prompts),开始构建更完善的基础设施(plumbing)。
Optional learning community: https://t.me/GyaanSetuAi
