Source URL
中文代码,下载可用here
1. 引言
- 核心观点: 成功的LLM Agent实现并不依赖于复杂的框架或专业库,而是基于简单的、可组合的模式。
- 文章目的: 分享在与客户合作以及自身构建Agent过程中获得的经验,为开发者提供构建高效Agent的实用建议。
2. 什么是 Agent?
- 定义的多样性: Agent 的定义因人而异,可以是完全自主的系统,也可以是遵循预定义工作流的系统。
- Anthropic 的分类: 将所有变体都归类为“Agentic 系统”,并区分 “工作流 (Workflows)” 和 “Agent”:
- 工作流 (Workflows): 通过预定义代码路径编排 LLM 和工具的系统。
- Agent: LLM 动态指导自身过程和工具使用的系统,控制任务完成方式。
3. 何时使用 (或不使用) Agent
- 优先选择简单方案: 在使用 LLM 构建应用时,尽可能选择最简单的解决方案,仅在必要时增加复杂性。
- 权衡考虑: Agentic 系统通常以延迟和成本换取更好的任务性能,需考虑这种权衡是否合理。
- 选择依据:
- 工作流: 适用于定义明确的任务,提供可预测性和一致性。
- Agent: 适用于需要灵活性和模型驱动决策的场景。
- 简单任务: 对于许多应用,优化单个LLM调用,结合检索和上下文示例通常足够。
4. 框架的使用
- 现有框架: 列举了包括 LangGraph、Amazon Bedrock’s AI Agent framework、Rivet 和 Vellum 等多种框