历经多个业务系统的构建,我深感Anthropic的《Building effective agents》一文与自身实战经历高度契合。本文在详解工作流与Agent的技术选型标准、设计模式应用及实施要点的同时,也融入了我的实战心得与实践经验总结。无论您正考虑构建工作流系统还是Agent系统,都能在此找到适合场景的最佳实践方案。特别值得关注的是文末的工具提示工程部分,这是Agent成功实施的关键因素。
关注腾讯云开发者,一手技术干货提前解锁👇
本文从Anthropic的文章《Build effective agents》出发,为构建高效的工作流、Agent提出实战指南。我在保留原文精华的基础上增强了三个核心方面:

本文适合AI Agent技术管理者、开发者、产品经理及爱好者阅读,通过实践层面的指导,帮您实现更合理的方案与更高效的实施。

Agent概述
1.1 什么是Agent?
“Agent”有多种定义方式。部分客户将其视为完全自主系统,能在较长时间内独立运行,使用各种工具完成复杂任务。也有人用此术语描述更固定的、预定义的工作流。Anthropic将这些变体归类为类Agent系统,但在工作流和智能体间做了重要区分:
1.2 Workflow V.S Agent
Workflow | Agent | |
|---|---|---|
定义 | 通过预定义流程编排LLM和工具的系统 | LLM动态决定自己的处理过程和工具使用的系统 |
适用范围 | 可预测和定义解决步骤的问题 | 无法预先定义解决步骤的开放问题 |
优势 | 稳定、准确、可预测 | 解决没有固定流程的开放性问题 |
劣势 | 为准确性牺牲了解决问题的延迟 | 成本高、问题解决成功率有提升空间 |
在附录1(“Agent实战”)中,Anthropic描述了客户在使用这类系统时发现特别有价值的两个应用领域。
何时使用Agent
2.1 简单性原则:适用场景评估
Anthropic强烈建议:在构建LLM应用时,寻找尽可能简单的解决方案,只在必要时增加应用复杂性。
关键权衡:类Agent系统通常以延迟和成本为代价换取更高性能,应谨慎评估这种取舍。
复杂性增加的指导原则:
重要提示:对许多应用而言,优化单个LLM调用(通过检索增强和上下文示例)通常已足够有效。
何时、如何使用“Agent框架”
3.1 框架使用的权衡考量
开发框架虽然便捷,但常存在过度抽象问题,使底层提示词和LLM调用被隐藏。这导致两个主要风险:
3.2 实用开发建议
Anthropic建议采取渐进式开发方法:
“我们建议开发者直接使用LLM API:许多模式可以用几行代码实现。如果你使用框架,请确保理解底层代码。对底层工作的错误假设是客户错误的常见来源。”
参考Anthropic的cookbook获取示例实现。
https://github.com/anthropics/anthropic-cookbook/tree/main/patterns/agents
类Agent系统设计模式
本节探讨生产环境中常见的类Agent系统模式。Anthropic从基础构建模块——增强型大语言模型(LLM)开始,逐步增加复杂性,从简单组合工作流到自主Agent。
4.1 增强型LLM模式
定义:类Agent系统最基础的模块是“增强的LLM”,即具备检索、工具使用和记忆等功能的语言模型。Anthropic当前的模型能够主动使用这些功能——生成搜索查询、选择合适工具以及确定需要记忆的信息。

工程实现的关键要点:
虽然实现这些增强功能的方法很多,一种推荐方式是通过Anthropic最近发布的模型上下文协议(MCP) https://www.anthropic.com/news/model-context-protocol,该协议允许开发者通过简单的客户端实现与不断扩展的第三方工具生态系统集成。
4.2 工作流模式
4.2.1 提示链
定义:提示链将任务分解为一系列有序步骤,每个LLM调用处理前一个调用的输出。可在任何中间步骤添加程序检查("门控")以确保流程保持在正确轨道上。

适用场景:
应用示例:
4.2.2 路由
定义:路由工作流对输入进行分类并将其引导到专门的后续任务。这种工作流实现关注点分离,并构建更专门化的提示。不使用路由时,为某一类输入优化可能会降低其他类型输入的处理效果。

适用场景:
应用示例:
4.2.3 并行化
定义:并行化工作流让LLM同时处理多个任务,并通过程序化方式聚合输出。分为两种关键形式:

适用场景:
应用示例:
应用案例:内容审核系统
假设我们正在构建一个社交媒体平台的内容审核系统,需要评估用户发布的以下内容是否适当: 用户发布内容示例。
这些政客都是垃圾,应该被扔进海里喂鲨鱼。大家都应该去抗议这个荒谬的新政策,让他们知道我们的愤怒!
实现方案:
1、并行LLM提示(专注不同维度)
2、差异化投票阈值设置
3、决策流程示例
系统优势:平衡误报和漏报
这种多方面并行评估系统能够:
这种并行投票系统能同时考虑内容多个维度,根据不同维度的严重性设置差异化决策标准,实现更平衡、更细致的内容适当性评估,特别适合处理复杂边界案例。
4.2.4 编排者-工作者
定义:在编排者-工作者工作流中,编排者(LLM)动态分解任务,将其委派给工作者LLM,并综合其结果。

适用场景:
应用示例:
应用案例:医疗研究助手
假设我们正在构建一个医疗研究助手,研究人员输入了以下查询:
用户查询
我需要了解最近三年内关于长新冠与认知障碍关联的研究结果,特别是那些包含临床试验数据的研究。
编排者-工作者工作流实现
1、编排者规划阶段
编排者LLM接收查询并制定搜索计划:
**搜索计划**:
1. 识别关键搜索术语和相关概念
2. 确定需要搜索的最佳来源
3. 为每个来源设计特定搜索策略
4. 分配多名工作者执行不同来源的搜索
5. 汇总和综合所有发现的信息
6. 确定是否需要进一步搜索
7. 准备最终报告 2、工作者执行阶段
编排者将任务分配给多个专门的工作者LLM:
工作者1:医学文献搜索
工作者2:研究机构报告搜索
工作者3:临床试验数据库搜索
工作者4:医学会议与预印本资料搜索
3、信息分析与综合
编排者接收所有工作者的搜索结果,然后:
4、动态迭代(可选)
编排者可能发现需要进一步信息:
5、最终报告生成
编排者综合所有信息生成最终报告:
工作流优势
4.2.5 评估-优化
定义:一个LLM调用生成响应,而另一个在循环中提供评估和反馈。

适用场景:
应用示例:
应用案例:文学翻译优化系统
背景与设置
流程示例
原文:
In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since. 'Whenever you feel like criticizing anyone, he told me, just remember that all the people in this world haven't had the advantages that you;ve had.
迭代1
初次翻译:
在我年轻、更加脆弱的岁月里,父亲给了我一些建议,我自那以后一直在脑海中回味。每当你想批评任何人的时候,他对我说,请记住,这个世界上的所有人都没有得到过你所拥有的那些优势。
评估(7/10):
迭代2
修改版:
在我年少轻狂、尚且脆弱的岁月里,父亲给了我一条忠告,此后我一直在心中反复思量。每当你想要批评任何人的时候,他对我说道,请记住,这世上并非所有人都拥有过你所享有的那些机遇和条件。
评估(9/10):
迭代3(最终版):
最终翻译:
在我年少青涩、心思易伤的岁月里,父亲给了我一条忠告,此后我便一直在心中反复思量。每当你想要批评任何人,他告诫我道,请记住,这世上并非所有人都有幸获得你所享有的那些机遇。
最终评估(10/10):
工作流优势
实施建议
这种工作流特别适合需要高质量、精心斟酌输出的场景,模拟了人类专业人士的迭代改进过程。
4.3 完整Agent模式
4.3.1 Agent设计要点
随着大模型核心能力的成熟(理解复杂输入、推理规划、工具使用、错误恢复),智能体正在生产环境中崭露头角。智能体的典型工作流程为:
Agents can handle sophisticated tasks, but their implementation is often straightforward. They are typically just LLMs using tools based on environmental feedback in a loop. It is therefore crucial to design toolsets and their documentation clearly and thoughtfully.
智能体可以处理复杂任务,但其实现通常很直接 - 本质上是在循环中基于环境反馈使用工具的LLMs。
因此,清晰且合理的工具集及其说明文档至关重要。
我们在附录2中详述了工具开发的最佳实践。
工具集及其文档质量直接决定智能体的成功率和速度,体现在:

何时使用Agent:
Agent适用于开放性问题,这些问题特点是:
在这类场景中,LLM可能需要多轮操作,您必须对其决策过程有一定信任度。
需要注意的是,Agent的自主性意味着:
建议在实际部署前在沙盒环境中进行广泛测试,并设置适当的保护措施。
Agent应用举例:
以下是来自Anthropic实际实现的示例:

4.4 模式组合与定制
正如文章开头所强调,最成功的实现采用简单、可组合的模式,而非复杂的框架。这些设计模式是灵活的构建模块,可以根据具体应用需求进行组合和定制。
4.4.1 关键原则
4.4.2 五种高效组合模式
4.4.3 实施建议
4.4.4 组合设计的优势
实践指南
5.1 核心建议
「在LLM领域,最成功的实现不是构建最复杂的系统,而是为特定需求构建最合适的系统。」首先从简单的提示词开始,通过全面评估进行优化,仅在简单解决方案不足时才添加更多步骤的类Agent系统。
5.2 Agents开发原则
在实现Agent时,我们尽量遵循三个核心原则:
虽然开发框架可帮助快速入门,但转向生产环境时,应减少抽象层级,直接使用基本组件构建。遵循上述原则,你可以创建强大、可靠、可维护且受用户信赖的智能体系统。
附录1: Agent实战
6.1 智能体的实践价值与应用条件
基于客户合作经验,AI智能体在同时满足以下条件的任务中能创造最大价值:
6.2 成功案例分析
案例一:智能客服
优势契合点
商业验证
多家企业采用基于成功解决的定价模型(仅对成功解决的案例收费),证明了Agent在客户支持领域的实际价值和可靠性。
案例二:编程Agent
应用优势
实际成果
在实际实现中,AI智能体能够仅基于拉取请求描述解决SWE-bench Verified基准测试中的真实GitHub问题,展示了在结构化问题解决中的实际能力。
人类监督价值
尽管自动化测试能验证功能正确性,人类审查仍在确保解决方案符合更广泛系统要求方面发挥关键作用。
6.3 实施要点
附录2:工具提示工程
7.1 定义
工具提示工程指的是:像编写提示词一样设计工具定义,使大模型能清晰理解工具的用途、使用方法和结果含义。
7.2 基本原则
清晰表达
压缩表达
7.3 工具系统设计详解
工具在Agent系统中的核心地位
在任何Agent系统中,工具都是关键组成部分,它们使Claude能够通过API中定义的确切结构与外部服务交互。当Claude决定调用工具时,会在API响应中包含工具使用代码块。工具定义的提示工程与主提示同等重要。
「工具形式」设计指南
对于同一个目的,有不同的实现方式,考虑选择何种方式的决定因素是:
多种实现方式对比
同一操作通常有多种实现方式,例如:
操作类型 | 可选表达方式 |
|---|---|
文件编辑 | • 差异(diff)格式• 整文件重写 |
结构化输出 | • Markdown代码块• JSON格式 |
虽然这些差异在技术上可以无损转换,但对LLM而言难度差异显著:
格式选择三原则
7.4 Agent-计算机接口优化
正如人机接口(HCI)设计重要,Agent计算机接口(ACI)需同样重视:
设计策略
实战案例
在SWE-benchAgent开发中,工具优化占用了大量精力:
在为SWE-bench构建我们的Agent时,Anthropic实际上花了更多的时间优化我们的工具,而不是整体提示词。
7.5 实践建议
设计原则
使用场景界定
持续优化策略
优良的工具定义能显著提升Agent的工具利用效率,减少错误调用,并提高整体系统性能。
尾声
技术的力量在于分享,希望这篇总结能成为他人开发之路上的指南针。如果您希望持续获取工作流、Agent技术及大模型应用的最新动态和深度解析,欢迎关注作者的公众号晏明AI。智能体的未来已来,这不仅是去发现,更是去创造。期待与更多志同道合的朋友们共同探索AI的无限可能。
-End-