Building effective agents 建立有效的代理

Building effective agents \ Anthropic

在过去的一年中,我们与数十个跨行业的团队合作构建大型语言模型 (LLM) 代理。最成功的实现始终没有使用复杂的框架或专门的库。相反,他们使用简单、可组合的模式进行构建。

在这篇文章中,我们分享了我们从与客户合作以及自己构建代理中学到的知识,并为开发人员提供了构建有效代理的实用建议。

什么是代理?

“代理” 有多种定义。一些客户将代理定义为完全自主的系统,它们可以在较长时间内独立运行,使用各种工具来完成复杂的任务。其他人则使用该术语来描述遵循预定义工作流程的更具规范性的实现。在 Anthropic,我们将所有这些变体归类为代理系统,但在工作流程代理之间划出了一个重要的架构区别:

  • 工作流是通过预定义的代码路径协调 LLM 和工具的系统。
  • 另一方面,代理是 LLM 动态指导其自身流程和工具使用情况的系统,从而保持对其如何完成任务的控制。

下面,我们将详细探讨这两种类型的代理系统。在附录 1(“代理实践”)中,我们描述了客户发现使用这类系统特别有价值的两个领域。

何时(以及何时不使用)使用代理

使用 LLM 构建应用程序时,我们建议找到尽可能简单的解决方案,并且只在需要时增加复杂性。这可能意味着根本不要构建代理系统。代理系统通常会牺牲延迟和成本来换取更好的任务性能,您应该考虑这种权衡何时是合理的。

当需要更多复杂性时,工作流可以为明确定义的任务提供可预测性和一致性,而当需要大规模灵活性和模型驱动的决策时,代理是更好的选择。然而,对于许多应用程序来说,使用检索和上下文示例优化单个 LLM 调用通常就足够了。

何时以及如何使用框架

有许多框架可以使代理系统更易于实现,其中包括:

  • LangChain 的LangGraph ;
  • Amazon Bedrock 的AI Agent 框架
  • Rivet,一个拖放式 GUI LLM 工作流构建器;以及
  • Vellum,另一个用于构建和测试复杂工作流程的 GUI 工具。

这些框架简化了调用 LLM、定义和解析工具以及链接调用等标准低级任务,使入门变得容易。但是,它们通常会创建额外的抽象层,从而掩盖底层提示和响应,使调试变得更加困难。当更简单的设置就足够时,它们还会让人忍不住增加复杂性。

我们建议开发人员直接使用 LLM API:许多模式只需几行代码即可实现。如果您确实使用框架,请确保您了解底层代码。对底层内容的错误假设是客户错误的常见来源。

请参阅我们的手册来了解一些示例实现。

构建块、工作流和代理

在本节中,我们将探讨在生产中看到的代理系统的常见模式。我们将从基础构建块(增强型 LLM)开始,并逐步增加复杂性,从简单的组合工作流到自主代理。

构建模块:The augmented LLM (LLM)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值