Anthropic 官方:《构建高效的智能体》

Anthropic 官方发布了一篇《如何构建高效的智能体》。

这篇文章干货满满,非常值得一读。

文章总结了他们和众多跨行业客户合作的经验。分享了他们开发智能体的经验教训和实用建议。

实践证明:真正成功的应用,往往采用简单、可组合的模式,而非复杂的框架

还总结了 3 大核心原则,以及 6 种常见模式。

以下是我根据原文整理的核心要点。

Agent 和 Workflow 的区别

Agent 和 Workflow 这两个词,以及它们对应的中文翻译,已经被滥用了。

所以,在构建智能系统之前,很有必要对其下一个清晰的定义。

在 Anthropic 内部,将其统称为 Agentic System(智能体系统)。

但在架构上进行了区分:

  • 工作流(Workflow):就像预先设定好的程序,让大模型和各种工具按固定的路径运行。
  • 智能体(Agent):更灵活!它们可以根据情况,动态地决定下一步该做什么,这类系统在完成任务的过程中始终保持着控制权。

清晰的定义是很有必要的,可避免团队成员理解不一致,降低沟通成本。

何时(以及何时不)使用智能体

建议:尽可能寻找最简单的解决方案,仅在必要时增加复杂性

这可能意味着:很多时候,根本就不需要构建智能体系统(Agentic System)

  • 如果任务简单:直接调用大模型 API。
  • 如果任务有更高的复杂性:
    • 需要更高的可预测性和一致性?用工作流。
    • 需要灵活性和模型驱动的决策?用智能体。

对于大多数应用,其实通过检索(Retrieval)和为上下文提供一些示例(Few-shots),就可以很好地完成任务了。

不要过早把问题复杂化,一切从最简单开始

何时及如何使用框架?

要想实现智能体系统,有很多框架可以用,比如:

  • LangGraph
  • Amazon Bedrock 的 AI Agent framework
  • Rivet
  • Vellum

框架虽然为我们提供了便利,但同时也会带来复杂度。

能直接调用大模型 API 几行代码就能实现的,就不要使用框架

如果确实要使用框架,需确保理解框架的底层代码

常见模式

实际应用场景中,有以下 6 种常见模式

  • 增强型语言模型(The augmented LLM):这是最基础的构建块,通过检索、工具和记忆等增强功能强化的 LLM。
  • 提示词链(Prompt chaining):把多个 prompt 串联起来,让 LLM 一步一步完成任务。
  • 路由(Routing):根据不同的情况,把任务分配给不同的工具或 LLM。
  • 并行化(Parallelization):同时运行多个任务,提高效率。
  • 协调者-工作者(Orchestrator-worker):一个“协调者”负责分配任务,多个“工作者”负责执行。
  • 评估者-优化者(Evaluator-optimizer):一个“评估者”负责评估结果,一个“优化者”负责改进。

要想深入了解这些模式的流程图及应用场景,请点击文末 ↙ “阅读原文” 查看。

组合并定制这些模式

很多工作流看似复杂,但实际上,多数是这些模式的组合。

模式并非一成不变的,应根据自身的实际场景进行定制和组合。

🎯 成功的关键:衡量性能,对实现方式进行不断迭代

只有在复杂性能够显著改善结果时,才应考虑增加复杂元素

何时使用智能体(Agents)

开放式问题很难或无法预测所需的步骤数量,并且你无法对固定路径进行硬编码,适合使用智能体。

智能体(Agents)可以处理复杂的任务,但其实现方式往往很直接。它们通常只是大语言模型,根据环境反馈循环使用工具。

因此,清晰且周全地设计工具集及其文档至关重要

智能体的自主性意味着更高的成本和错误加剧的可能性。建议在沙盒环境中进行广泛测试,并设置适当的防护措施

Anthropic 提供了它们自己实现的两个智能体的实现代码,一个是 SWE-bench tasks,另一个是 Computer Use,原文中有代码链接。
图片来源:Anthropic: High-level flow of a coding agent

要同等重视工具的提示工程

这部分内容在文章的附录 2 中。

无论构建何种智能体,工具都是重要的组成部分。

与整体提示词一样,工具定义和规范也应得到同样多的提示工程关注。

建议:

  • 在模型陷入困境之前,给它足够的 Tokens 来进行 “思考”。
  • 保持格式与模型在互联网文本中自然出现的格式相近。
  • 确保不存在格式方面的“额外负担”,比如不必精确统计数千行代码,也无需对所编写的任何代码进行字符串转义。

经验法则:

在创建智能体-计算机交互(ACI)时,应参照在人机交互(HCI)上所投入的精力。即 HCI 投入多少精力,就应该在 ACI 上投入等量精力。

Anthropic 声称:他们在构建 SWE-bench 智能体的过程中,花在优化工具上的时间,比优化整体提示词的时间更多

总结

在大模型领域,成功的关键不是做最复杂的系统,而是做适合自己的正确的系统

从简单的提示词入手,通过全面评估对其进行优化,只有在更简单的解决方案无法满足需求时,才添加多步骤的智能体系统,以避免不必要的复杂设计导致诸如更高的延迟、成本,以及更难调试等问题。

遵循三条核心原则:

  • 尽可能保持简单,避免不必要的复杂性。
  • 明确展示智能体的规划步骤,优先考虑透明度。
  • 通过详尽的工具文档记录与测试,精心打造智能体-计算机接口(ACI)。

如果早期使用了框架快速构建的应用,可以重构为使用基础组件实现的,应该毫不犹豫地重构。

文章链接:

https://www.anthropic.com/engineering/building-effective-agents

下一步

之前推荐过一篇 《OpenAI 官方发布的 34 页《构建智能体实践指南》(PDF)》,主要讲的是 OpenAI 集合了众多客户的使用经验与见解,提炼而成的实用且可操作的最佳实践。

两篇文章结合着看,会更有收获。


希望这篇文章对你有所帮助。

如果觉得有用,欢迎点赞、收藏、转发。

也欢迎关注我,一起学习 AI 知识。

### 关于MCP多智能体系统的实战教程与案例 #### MCP多智能体系统概述 Anthropic推出的模型上下文协议(MCP)不仅是一种技术革新,还提供了一种全新的方式来设计和管理多智能体系统。它允许开发者创建更加复杂、灵活且高效智能体交互模式[^1]。 #### 实战教程与示例项目 以下是几个可能帮助理解并实践MCP多智能体系统的方向: 1. **Cline工具集成** 使用Cline作为开发框架可以显著简化基于MCP的多智能体构建过程。Cline提供了丰富的API支持以及高度的安全性和灵活性,使得开发者能够快速搭建原型并测试其功能[^2]。 ```bash pip install cline-mcp-sdk # 安装官方SDK以开始开发 ``` 2. **协作型任务分配场景** 假设有一个物流配送网络需要多个机器人共同完成货物分拣与运输的任务,则可以通过定义不同的角色(如路径规划者、搬运工等),利用MCP实现高效的信息共享与决策同步。具体步骤如下: - 初始化各个独立运行的子模块; - 设置统一的消息传递机制以便实时更新状态变化; - 应用强化学习算法优化整体性能表现。 3. **游戏环境模拟演练** 在虚拟世界里训练对抗性的玩家队伍也是一个很好的切入点。例如星际争霸II这样的即时战略游戏中存在大量动态因素影响最终胜负结果,因此非常适合用来验证新型架构的有效性。参与者之间既要保持竞争关系又要适时合作才能取得胜利。 4. **开源社区资源挖掘** GitHub上已经有不少围绕着这一主题展开讨论甚至贡献代码片段的例子可供参考借鉴。搜索关键词“MCP Anthropic multi-agent”即可发现许多有价值的资料链接地址。 ```python import mcp_framework as mf def setup_agents(): agent_list = [] for i in range(5): # 创建五个不同特性的代理对象 new_agent = mf.Agent(f'Agent_{i}', role='explorer') agent_list.append(new_agent) return agent_list if __name__ == "__main__": agents = setup_agents() environment = mf.Environment(size=(80,60)) simulation_runner(environment, agents) ``` 以上仅列举了一些基础概念及思路启发,并不代表完整的解决方案。实际操作过程中还需要考虑更多细节方面的问题比如数据隐私保护措施等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值