· 王思腾 · AI Agent · 11 分钟阅读
AI Agent 架构原理(三):工程落地——记忆、规划、评估与护栏
Demo 能跑和生产可用之间隔着一整套工程体系。本篇聊聊 Agent 落地绕不开的几个环节:上下文与记忆管理、规划与反思、工具接口(ACI)设计、可观测性与追踪、离线/在线评估,以及安全护栏与人机协作。

本系列第三篇。前两篇讲了 Agent 的原理(ReAct 循环)和架构模式(工作流 / 自主 Agent / 多智能体)。这一篇谈最难的部分:如何把一个“能跑的 demo”做成稳定、可信、可维护的生产系统。
大模型能力在快速进步,但真正决定 Agent 成败的,往往是外围工程:上下文怎么管、错误怎么发现、质量怎么度量、风险怎么兜底。以下是落地时绕不开的六块拼图。
一、上下文与记忆管理
LLM 的上下文窗口有限且有成本,而任务可能跨越很多步骤和会话。记忆通常分三层:
| 层级 | 内容 | 实现方式 |
|---|---|---|
| 短期记忆 | 当前任务的对话、工具调用与结果 | 直接放在上下文窗口里 |
| 工作记忆/草稿 | 中间结论、待办清单 | 外部“记事本”(scratchpad)或状态文件 |
| 长期记忆 | 跨会话的用户偏好、历史事实 | 向量库 / KV / 数据库,按需检索注入 |
关键工程实践:
- 上下文压缩(compaction):对话变长后,用一次 LLM 调用把早期历史摘要成简短状态,替换掉冗长原文,避免上下文爆炸。
- 按需检索:长期记忆不要全塞进 prompt,而是根据当前任务检索最相关的几条注入(本质是面向记忆的 RAG)。
- 结构化状态:把“已完成 / 待办 / 关键事实”显式写成结构化状态(如任务清单),比让模型在长文本里自己找更可靠。
- 引用而非搬运:大段外部内容存外部,上下文里只放引用和摘要,需要时再取。
二、规划与反思
纯 ReAct“走一步看一步”在长任务上容易迷路或反复。工程上常用两种增强:
- 先规划后执行(Plan-and-Execute):先让模型产出一份任务计划(子任务清单),再逐项执行;执行中可根据反馈动态修订计划。这比每步都重新决策更有全局观。
- 反思(Reflection):在关键节点让模型(或另一个评估者)回顾“刚才做的对不对、有没有更优路径”。典型如:
- 代码 Agent 跑测试,测试失败就把报错喂回去让它自己修;
- 一个调用负责执行,另一个调用负责批判(对应第二篇的“评估者-优化者”模式)。
规划与反思的本质,是给 ReAct 循环加上“全局目标”和“自我纠错”两个反馈回路,显著降低多步任务里的错误复合累积。
三、工具与 ACI:把接口设计好
Anthropic 的经验很反直觉:他们打磨工具花的时间比打磨主提示词还多。 工具是 Agent 与世界交互的接口(Agent–Computer Interface),其质量直接决定可靠性。
好工具的设计原则:
- 像给初级工程师写文档:名称直白、语义清晰,参数描述包含用途、格式要求、示例和边界;多个相似工具尤其要写清区别。
- 选择对模型友好的格式:让模型写起来不容易出错。例如要求绝对路径而非相对路径(避免模型切换目录后出错);避免让它在 JSON 里转义大段代码、或手工数行号写 diff。
- 给模型“思考预算”:在要求它输出结构化结果前,留出足够 token 先推理,别把它逼进死角。
- 防呆(Poka-yoke):通过参数设计让错误难以发生。
- 返回可验证的地面真相:工具应返回真实、结构化的结果(API 响应、执行输出、报错信息),让模型据此纠错。
- 大规模实测迭代:用大量样例跑,观察模型在哪些工具上犯错,再针对性改进描述和参数。
工具生态上,优先复用标准化协议(如 MCP),避免重复造轮子。
四、可观测性与追踪
Agent 是多步、多工具、带循环的非确定性系统,“出了问题为什么错”极难靠肉眼复现。因此可观测性是生产前提:
- 全链路追踪(tracing):记录每一步的思考、工具名、入参、返回、耗时、token,形成一棵可展开的执行树(类似 LangSmith / OpenTelemetry 风格)。
- 结构化日志:每次工具调用、状态流转、模型决策都落日志,便于回放和投诉/事故复盘。
- 关键指标监控:任务成功率、平均步数、工具调用失败率、重试次数、延迟、成本(token),并设告警。
- 重放能力:给定输入和轨迹,能复现 Agent 当时的决策路径。
没有追踪的 Agent 就像没有日志的线上服务——你只能“感觉它不太对”,却无法定位。
五、评估(Evaluation)
LLM 系统无法靠传统断言覆盖所有输出,必须建立专门的评估体系:
- 离线评测集:沉淀一批有代表性的任务 + 期望结果(或判定标准),每次改提示词/换模型/改工具后回归跑一遍。
- 可程序化验证的优先用程序:代码 Agent 用单元测试是否通过判定;结构化输出用 schema 校验;有标准答案的用规则比对。
- LLM-as-judge:对开放式输出,用另一个模型按明确标准打分(注意评估模型自身的偏差,必要时人工校准)。
- 在线指标:真实任务成功率、用户采纳率、人工接管率、重试/放弃率。
- 分层评估:分别评估单工具调用是否正确、单步推理是否合理、端到端任务是否完成。
核心心法是:把“改了之后到底变好没有”变成可度量的事。Anthropic 反复强调——先做最简单的方案,用评估驱动迭代,只在数据证明有效时才增加复杂度。
六、护栏与人机协作
自主性越高,越需要边界。生产 Agent 通常分层设防:
- 输入/输出护栏:独立的并行调用做内容安全与合规审查(第二篇“并行”模式),拦截越界请求与不当输出。
- 权限最小化:工具按风险分级——只读操作可自动执行;写操作、删数据、付款、发消息等高风险动作必须人工确认。
- 沙箱隔离:代码执行、文件操作放在受限沙箱里,网络/资源配额受控。
- 停止条件与预算:设置最大步数、最大耗时、最大花费,防止死循环和成本失控。
- 人在环中(Human-in-the-loop):在关键检查点暂停请求确认,遇到不确定或阻塞时升级给人工。
- 幂等与可回滚:工具动作尽量幂等,重要操作可撤销。
- 失败兜底:模型/工具超时时优雅降级(回退到简单规则、转人工),而不是整体崩溃。
七、一个生产 Agent 的参考架构
八、系列总结
三篇下来,AI Agent 的全貌可以浓缩成几句话:
- 原理:Agent = LLM + 工具 + 记忆 + 反馈闭环,自主行为的内核是 ReAct 推理-行动循环;
- 架构:按任务确定性选择复杂度——工作流(链/路由/并行/编排/评估)→ 自主 Agent → 多智能体,简单优先;
- 落地:靠上下文/记忆管理、规划反思、精心设计的工具接口、全链路可观测、系统化评估和分层护栏,把 demo 变成可靠产品。
最后回到 Anthropic 的三条原则:保持简单、过程透明、打磨好工具接口。Agent 的强大不在于架构多花哨,而在于每个环节都可度量、可纠错、可信任。
参考资料:Anthropic《Building Effective Agents》、OpenAI《A Practical Guide to Building Agents》、Model Context Protocol 官方文档、ReAct / Reflexion 相关研究。
本文由 AI 辅助创作,所有内容仅供交流与参考。



