参考:https://www.anthropic.com/research/building-effective-agents
anthropic在24年12月发布了六种智能体设计模式,涵盖了常见了大模型应用在开发上的场景。

前言

1. 什么是Agent

“Agent”可以有多种定义。有些客户将代理定义为完全自主的系统,这些系统能够在较长时间内独立运作,并利用各种工具完成复杂任务。另一些人则将这一术语用来描述更具规定性的实现,这些实现遵循预定义的工作流程。

  1. 工作流(Workflows):通过预定义的代码路径编排 LLM 和工具的系统。
  2. Agents:LLM 动态指导自己的流程和工具使用,保持对他们完成任务方式的控制的系统。

2. Agent何时用/不用

在构建LLM应用时,我们建议尽可能找到最简单的解决方案,只有在必要时才增加复杂性。这可能意味着根本不需要构建Agent系统。Agent系统通常会以更高的延迟成本来换取更好的任务表现,因此应该考虑何时这种权衡是合理的。

当更高的复杂性是必要时,工作流程对于定义明确的任务提供了可预测性和一致性,而当需要在规模上实现灵活性和基于模型的决策时,Agent则是更好的选择。然而,对于许多应用来说,通过检索和上下文示例优化单次LLM调用通常就足够了。

3. 何时以及如何使用框架

一些Agent框架:

这些框架通过简化标准的低级任务,如调用LLM、定义和解析工具以及串联调用,帮助开发者轻松入门。然而,它们往往会创建额外的抽象层,这可能会掩盖底层的提示和响应,使其更难调试。它们还可能让人产生在不需要复杂的情况下,而增加了复杂度。

建议开发者直接使用LLM API:许多模式可以通过几行代码实现。如果你确实使用框架,请确保理解底层代码。对于底层实现的错误假设是客户常见的错误来源。

设计模式

代码实现

1. Chain

将大模型串连,每个模型处理部分的任务,并将结果作为下一个模型的输入。

优点:

  1. 分布思考,提升质量:让 IA集中精力处理每个环节,每一步有明确的目标,结果会更专业、精准。一次性完成所有任务可能会导致逻辑混乱、细节粗糙。
  2. 更多的可控性:不满意某一部分时,不需要推倒重来。可以根据需求在某一步插入反馈或修改,灵活调整内容方向。
  3. 降低信息过载风险:一次性给太多人五,AI难以平衡所有需求,可能会导致质量下降。用分布处理来减少干扰,每次关注一个重点。

img




总访问
发表了 19 篇文章 🔸 总计 43.8k 字