AI 基础
AI 代理如何工作: 模型、工具、记忆与控制循环
AI 代理将模型与指令、工具、记忆和控制循环相结合。了解这些部分如何交互既能解释代理的强大之处,也能说明它们失效的方式。

AI 代理通过将模型与指令、工具、记忆以及不断决定下一步行动的控制循环相结合来工作。 模型提供判断和语言能力,而周边软件将这些能力转化为有状态的流程,能够执行操作、检查结果、从错误中恢复并停止。
理解这种架构比把代理视为单一的智能对象更有用。大多数成功和失败都源于组件之间的交互: 即使模型再优秀,也可能因工具描述模糊、记忆陈旧、权限过大或控制循环缺乏可靠的完成定义而受挫。
AI 代理的五个核心组成部分
1. 模型
模型解释目标、在可用上下文上进行推理,并选择一个行动。在许多当前的代理中,这是一种大型语言模型,能够遵循指令并生成结构化的工具调用以及自然语言。
最强大的模型并不一定适用于每一步。系统可以将困难的规划任务交给更强的模型,使用更快的模型进行分类,并依赖确定性的代码进行验证。这种组合可以提升速度、降低成本并提高可靠性。
2. 指令
指令定义了代理的角色、边界、优先级和输出要求。它们可以包括系统提示、特定任务的上下文、策略、示例、工具描述以及停止准则。
好的指令是可操作的。它们告诉代理需要哪些证据、何时请求批准、哪些来源是可接受的以及如何识别完成。模糊或相互矛盾的规则会迫使模型猜测,从而在本应相似的任务之间产生不一致。
3. 工具
工具将模型连接到其当前上下文之外的能力。工具可能用于网页搜索、检索客户记录、运行代码、查询数据库、控制浏览器或创建日历事件。
模型本身通常不会直接执行函数。它选择一个具名工具并提供结构化参数。代理运行时验证该请求、检查权限、执行操作并返回结果。这种分离至关重要: 它让软件有机会在操作影响外部世界之前拒绝格式错误或不安全的行为。
4. 状态与记忆
状态是代理在当前运行期间需要的信息: 目标、对话、计划、观察、工具输出以及已完成的步骤。记忆在此基础上扩展,保留超出即时上下文的有用信息,例如先前的偏好、重复出现的事实或之前任务的经验教训。
记忆越多并不一定越好。无关的记录会占用上下文并可能导致模型依据过时的假设进行推理。有效的记忆系统会决定何时存储、如何组织、何时检索以及如何处理冲突或过期的信息。
5. 控制循环
控制循环是保持过程运行的编排层。它将当前状态发送给模型,接收模型提出的行动,运行获批的工具,记录观察结果,然后再次调用模型。
Anthropic 在其《构建高效代理》指南中将代理描述为在循环中运行的增强语言模型,具备检索、工具和记忆等能力。OpenAI 也在《从模型到代理》中将代理执行框定为模型、工具和环境之间的持续交互。
接口与组件同等重要
架构图可以让每个组件看起来井然有序,但真正的可靠性取决于它们之间的契约。模型需要能够区分相似能力的工具描述。运行时需要类型化的参数和明确的错误状态。记忆检索需要来源和新鲜度信息。完成检查器需要可测试的标准,而不是模糊的“答案够好”感受。
设想一个搜索工具返回空列表。该结果可能意味着没有相关记录、查询格式错误、用户缺少权限,或服务超时。如果工具将这四种情况都合并为相同的输出,模型就无法可靠地推断到底发生了什么。良好设计的接口会返回结构化证据: 状态、来源、时间戳、查询、结果数量以及在适当情况下的机器可读错误信息。
同样的原则适用于上下文。指令、权威记录、检索到的段落、模型生成的笔记以及不可信的外部内容不应被视为等价文本。标记它们的来源和权威性有助于运行时执行策略,也帮助模型正确权衡证据。这是一种实用的上下文工程: 不仅决定模型看到哪些信息,还决定这些信息如何组织以及系统允许它控制哪些部分。
逐步示例
假设有一个代理被要求比较三家潜在供应商并给出推荐。
| 模型 | 解释上下文并提出下一步行动。 |
|---|---|
| 运行时 | 验证调用、执行工具并返回观察结果。 |
| 记忆 | 在步骤或会话之间携带选定的状态。 |
| 控制循环 | 决定是继续、重试、升级还是停止。 |
- 接收目标: 代理读取决策标准、截止日期、预算以及所需的输出。
- 检查可用上下文: 它确认供应商名称、内部需求和来源文档是否齐全。
- 制定计划: 它决定收集每家供应商的定价、安全信息、服务条款以及客户证据。
- 选择工具: 它在批准的文档库中搜索或调用外部调研工具。
- 观察: 运行时返回结果,包括可能的错误或缺失字段。
- 更新状态: 代理记录所学内容并标记未解决的问题。
- 适应: 它修改查询、咨询其他来源,或向人员请求缺失的文档。
- 验证: 它检查每项推荐都有依据,并确保比较使用相同的标准。
- 停止或请求批准: 它生成推荐草稿,但将最终采购决策留给授权人员。
关键在于,这一序列并非完全硬编码。系统根据发现的情况选择步骤,但仍在设计好的限制范围内运行。
规划并非总是独立阶段
有些代理在行动前会生成完整的计划。另一些则一步步决定。许多采用混合方式: 先制定粗略计划,执行下一步行动,然后在观察到的结果出现后修正剩余计划。
冗长且僵硬的计划在出现意外结果后可能很快失效。纯反应式代理可能会漫游或重复工作。实用的设计会保留足够的规划以维持方向,同时在环境变化时允许重新规划。
ReAct 框架是交叉推理与行动、观察的基础示例。其核心洞见在于外部结果可以纠正、细化或重定向下一步推理。
代理如何判断何时停止
停止是系统设计问题。模型可能过早声明成功,或者在目标已达成后仍继续打磨,亦或在工具反复失败时陷入循环。
可靠的代理会结合多种停止机制:
- 完成标准: 明确的条件,例如必填字段、通过的测试或已验证的引用。
- 预算限制: 步骤数、时间、模型 token、工具调用或成本的上限。
- 错误阈值: 在重复失败或低置信度观察后进行升级。
- 批准关卡: 在高影响或不可逆操作前暂停。
- 外部评估器: 确定性检查或独立模型,用于判断输出是否满足任务要求。
常见的代理架构
单代理循环是最简设计: 单一模型反复使用工具直至完成。易于调试且通常足够。
路由器对请求进行分类并将其发送至专用提示、工具集或模型。路由可减少不相关选择,并可对不同工作应用不同策略。
编排者‑工作者架构让主代理创建子任务并委派给工作者,然后综合其结果。当工作可以并行或需要不同专长时非常有用,但会增加 token 使用并引入协同失败模式。
评估‑优化循环将生成与批评分离。一个组件生成答案,另一个根据定义的标准检查答案,第一组件据此修订。此方式在质量可度量且通过迭代改进值得额外成本时表现良好。
常见错误
- 工具描述不清晰: 模型选择错误的能力或提供无效参数。
- 上下文无限制: 长篇对话充斥无关细节,掩埋关键信息。
- 工具错误无声: 空或部分结果被误认为有效观察。
- 基础薄弱: 代理依据假设行动,而未检查权威记录。
- 自主性过强: 代理可在缺乏适当审查的情况下采取重要行动。
- 缺乏轨迹评估: 团队只评判最终答案,却不检查代理如何得出该答案。
可靠代理的设计原则
从能够解决任务的最小架构开始。确定性工作流应处理已知步骤;将模型的自由裁量权保留给真正需要解释的决策。为每个工具设定狭窄的用途、类型化输入、明确错误状态以及最小权限访问。
使状态可见。记录每一次工具调用、结果、重试、批准以及模型决策,以便诊断。对旧上下文进行压缩而非无限追加,并将权威数据与模型生成的摘要分离保存。
让运行时在失败时表现明确。工具应区分“未找到记录”和“请求失败”,状态存储应区分已验证的事实和模型生成的摘要。否则,模型可能把超时导致的缺失误认为某事不存在的证据。
最后,对完整系统进行评估。多次运行相同任务,测量成功率和资源使用,并检查轨迹是否出现政策违规或脆弱的捷径。Anthropic 在其《代理评估指南》中强调,代理需要任务、可重复的实验、对话记录和评估器——而不是少数令人印象深刻的演示。
关于 AI 代理工作方式的关键提醒
AI 代理是一个工程化的循环,而不仅仅是一个聪明的模型。模型决定;工具执行;记忆携带状态;环境返回证据;控制循环决定下一步发生什么。
当这些部件拥有清晰的接口和边界时,代理能够处理传统自动化无法预见的开放式工作。若接口模糊,自治性会放大歧义。代理的质量因此同系统设计、权限设置以及评估一样,取决于底层模型。












