Anthropic 最新 Agent 研究:构建高效智能体的三大原则
什么是 Agent?
1. Anthropic 对 Agent 的定义是什么?
Agent 是一种代理系统,核心在于大语言模型 (LLM) 可以动态地指导自己的流程和工具使用,并控制如何完成任务,而不是简单地作为 LLM 的衍生品。换句话说,Agent 不仅仅是执行预设指令,而是具有一定的自主决策能力。
2. Agent 系统分为哪两种类型?
Agent 系统主要分为两种类型:工作流 (Workflow) 和 智能体 (Agent)。
2.1 工作流 (Workflow) 是什么?
工作流 是通过预定义的代码路径协调 LLM 和工具的系统。简单来说,工作流的流程是固定的,LLM 和工具的使用方式也是预先设定好的。
工作流 适用于定义明确的任务,因为它提供了可预测性和一致性。比如我们现在在扣子、文心智能体平台搭建的智能体,就偏向于工作流。
工作流的常见例子:
- 提示链 (Prompt Chaining):将任务分解成一系列步骤,每个 LLM 调用处理前一个步骤的输出。例如:先生成文案,再翻译成其他语言。
- 路由 (Routing):将输入分类并引导到专门的后续任务。例如:将不同类型的客户服务查询分配给不同的处理流程。
- 并行化 (Parallelization):LLM 可以同时处理任务,并以编程方式汇总其输出。例如:一个 LLM 负责生成内容,另一个 LLM 负责审查内容。
- 协调器-工作者 (Coordinator-Worker):中央 LLM 动态分解任务,将它们委托给工作 LLM,并综合它们的结果。例如:复杂的编码任务,由中央 LLM 分配给不同的工作 LLM。
- 评估器-优化器 (Evaluator-Optimizer):一个 LLM 生成响应,而另一个 LLM 则在循环中提供评估和反馈。例如:文学翻译,一个 LLM 负责翻译,另一个 LLM 负责评估翻译质量。
2.2 智能体 (Agent) 是什么?
智能体 是 LLM 动态地指导自己的流程和工具使用,并控制如何完成任务的系统。相比之下,智能体 比 工作流 更灵活,更自主。
智能体 适用于需要灵活性和模型驱动决策的任务,因为它们可以根据情况调整自己的行为。它通常从用户那里接收命令或进行交互式讨论,以明确任务。然后,智能体会独立地计划和操作,可能会返回给用户以获取更多信息或判断。
在执行过程中,智能体 会从环境中获取“真实情况”(例如工具调用结果或代码执行)来评估其进度。智能体 可以在检查点或遇到障碍时暂停以获得人工反馈。
工作流 和 智能体 的区别在于:工作流 侧重于预定义和可预测的任务流程,而 智能体 则具有更高的自主性和灵活性。
什么时候应该使用智能体?
1. 何时考虑使用智能体?
通常情况下,我们应尽可能选择简单的方法。只有当简单的解决方案不足以满足需求时,才应考虑使用更复杂的智能体系统。
2. 使用智能体系统需要权衡什么?
智能体系统通常会为了得到更好、更高的任务性能,而产生更高的延迟和成本。在考虑使用智能体时,需要权衡这些因素。
3. 开发时应该优先选择什么?
如果需要进行深度开发,开发者应该首选直接使用 LLM API。如果必须使用框架,则必须深入理解底层代码。框架可以简化任务,但也会因为对底层代码不够了解而适得其反。
构建 Agent 时,Anthropic 建议遵循哪三个核心原则?
1. 保持简单性 (Keep it simple)
- 智能体 设计应该尽可能简单,复杂的设计会导致难以理解、调试和维护的智能体。
- 从简单的提示开始,仅在必要时才增加复杂性。
- 避免使用不必要的复杂框架或库,优先使用 LLM API。
- 如果使用框架,必须确保理解底层代码,对底层代码的错误假设是我们出现错误的常见来源。
2. 优先考虑透明度 (Prioritize transparency)
- 智能体 的计划步骤应该明确显示出来。这有助于用户理解 智能体 是如何工作的,并建立对 智能体 的信任。
- 通过记录 智能体 的决策过程、使用可解释的模型和提供清晰的文档来实现透明度。
- 清晰地展示 智能体 的规划步骤,使用户可以理解 智能体 是如何做出决策的。
3. 精心设计智能体-计算机接口 (ACI) (Design your Agent-Computer Interface)
- 智能体 与计算机交互的方式应该经过仔细设计和测试。
- ACI 应该易于使用、可靠且健壮。这可以通过使用清晰的工具文档、测试各种输入和场景以及使用错误处理机制来实现。
- 需要投入与人机界面 (HCI) 同样的努力来设计 ACI。
- 从模型的角度思考工具的易用性,使用清晰的参数名称和描述,在各种输入上测试模型,以及设计防错工具。
- 在构建智能体时,应将大部分时间花在优化工具上。
遵循这三个原则的好处是什么?
遵循以上三个原则,是为了创建强大、可靠、可维护且用户信赖的智能体。
总结
Agent 系统包括工作流和智能体两类。像 扣子 这样搭建出来的智能体,应该算是工作流。在生产环境中,并非越复杂的系统越好,而是应该根据应用场景构建最合适的 Agent 系统。
构建 Agent 的核心在于:
- 尽可能保持简单,避免不必要的复杂性。
- 优先考虑透明度,让用户了解 Agent 的工作方式。
- 精心设计 ACI,确保 Agent 与计算机交互的效率和可靠性。
个人感悟
我认为:现如今的人工智能技术,花样繁多,概念满天飞,实则内核未变。与其追求花哨的框架和复杂的系统,不如回归本质,深耕基础。就如同这 Anthropic 的文章所言,大道至简,无论是构建 Agent 还是其他,都应从简单出发,逐步迭代,切莫本末倒置。框架虽好,但若不理解其底层逻辑,则如同盲人摸象,难以长久。而透明度,更是信任的基石,唯有让用户了解 Agent 的运作机制,才能建立真正的信赖。归根结底,技术终究是为人服务,而非反过来驾驭人。