构建AI代理:实际有效的模式

AI代理——语言模型采取一系列行动、观察结果并决定下一步怎么做的系统——已经从2024年到2025年的研究好奇心转变为生产模式。大多数早期代理框架过度承诺而表现不足。以下是实际有效的内容以及如何构建可靠的代理系统。

是什么使系统成为代理

语言模型本身不是代理——它是一个接受文本并返回文本的函数。使系统具有代理性的因素:工具使用(模型可以采取行动:运行代码、搜索网络、读取文件、调用API、写入文件);多轮操作(模型基于之前行动的结果继续操作,而不仅仅是一次提示-响应循环);持久性(跨行动维护状态——模型知道它已经做了什么);目标导向(系统朝着定义的目标工作,而不是回答一个问题)。最小代理循环:模型观察当前状态→选择行动→执行行动→观察结果→决定是继续还是停止。这是ReAct模式(推理+行动)——代理系统最可靠的基础。代理目前擅长的任务:有明确成功或失败信号的任务(代码执行或不执行;测试通过或失败;搜索返回结果;文件被写入);有明确中间步骤的任务,模型可以验证;人类通过遵循定义流程可以完成相同任务的任务。代理目前努力应对的任务:没有明确停止标准的开放式创意任务;需要理解物理世界背景的任务;模型的幻觉率在许多步骤中累积的任务。

实践模式

工具设计是最重要的架构决策:代理可用的工具决定了它能做什么以及做得多可靠。有效的工具设计:每个工具明确地做一件事;工具描述精确,包括示例输入和输出;工具返回模型可以解析的结构化输出;工具优雅地处理错误并返回错误信息而不是抛出异常。验证模式:在每个重要行动之后,让代理明确验证结果。运行代码→检查输出。写入文件→读回文件。进行API调用→确认响应。这种明确的验证循环显著减少了在许多步骤中累积的错误。最小上下文原则:代理的上下文窗口是有限的。试图在上下文中维护所有信息的代理很快就会用尽空间。设计代理以在外部(文件、数据库、记忆系统)摘要和存储相关信息,而不是在上下文中积累所有信息。检查点:对于长时间运行的任务,设计代理在逻辑停止点保存其状态,这样如果失败,它可以恢复而不是重新开始。并行子任务:当任务分解为独立子任务时,并行运行它们。这需要一个编排层,但显著减少了总时间。多代理系统:使用多个专业化代理而不是一个通用代理,对于复杂任务已被证明更可靠。规划代理分解任务;专业代理(编码器、搜索者、验证者)执行组件;批评代理审查输出。这反映了组织的工作方式,并利用了模型维护专注上下文的能力。

可靠性和安全性

可靠性问题:一个在10个步骤中每步90%可靠的代理对完整任务的成功率为(0.9)^10=35%。对于多步骤任务可靠地成功,个别步骤级别的可靠性必须非常高。实际含义:尽可能保持代理任务短暂;分解长任务;频繁验证。人在循环中:对于有后果的行动(发送电子邮件、提交到外部API、花钱),构建确认步骤,代理提出计划的行动并等待批准。这显著降低了代理错误的成本。沙箱:可以执行代码、访问文件系统或进行网络请求的代理必须被沙箱化,以防止意外的副作用。代理错误的爆炸半径应该被限制。日志和可观测性:在长时间内执行许多步骤的代理必须有全面的日志记录。当代理在第37步失败时,你需要能够重建它究竟做了什么。关键指标:每任务完成步骤数、每步错误率、错误后恢复率、任务完成率。当前状态:截至2025年,简单的单步工具使用代理在生产中是可靠的;长时间范围内的多步骤自主代理需要精心设计,对于复杂任务仍然有有意义的失败率。技术正在迅速改进。

上一篇 Building AI Agents: Patterns That Actually Work
下一篇 Switzerland: Zermatt, the Matterhorn, and Alpine Train Routes