Anthropic官方Agent构建指南:工作流vs智能体选型全解析

Anthropic主张用简单可组合模式而非复杂框架构建高效LLM智能体
Anthropic基于大量实战经验提出,最成功的LLM智能体采用简单、可组合的模式构建,而非复杂框架。文章区分了工作流(代码控制、确定性执行)和智能体(LLM控制、自主决策)两种架构,提出技术选型金字塔:优先优化单次LLM调用,其次构建工作流,最后才考虑智能体。同时建议从原生API入手理解底层原理,将框架仅作为原型工具而非生产方案。
Anthropic(Claude大模型背后的公司)在过去一年中与各行业数十个团队深入合作,积累了大量构建LLM智能体的实战经验,并将其浓缩为一篇重磅文章《Building effective agents》。其中最核心、也最反直觉的结论是:最成功的LLM智能体,不是用复杂的全栈框架构建的,而是采用简单、可组合的模式搭建的。
Anthropic由前OpenAI研究副总裁Dario Amodei和Daniela Amodei兄妹于2021年创立,是目前全球最具影响力的AI安全公司之一。其旗舰产品Claude系列大模型以安全性、可控性和长上下文处理能力著称,Claude 3.5 Sonnet在多项基准测试中与GPT-4o不相上下。Anthropic提出的Constitutional AI(宪法AI)训练方法,通过让模型依据一组明确的原则进行自我修正,成为业界在AI对齐(Alignment)领域的重要范式。正是这种对"可控性"的深度理解,使得Anthropic在Agent构建方面形成了独特的"简单优先"哲学——他们深知模型行为越复杂,安全和可靠性的挑战就越大。
本文将围绕这篇文章的核心思想,从概念澄清、技术选型到框架使用策略,逐层拆解构建高效Agent的底层逻辑。
厘清概念:工作流 vs 智能体
Anthropic发现,业界对"智能体"(Agent)这个词的理解相当混乱。有人认为智能体必须是能完全自主思考行动的"电子员工",也有人认为只要能遵循预设流程完成任务的系统都算智能体。
为了解决这种混乱,Anthropic提出了一个更宏观的概念——代理式系统(Agentic System),并在其中清晰划分出两种关键架构:
这一概念的提出,本质上是对当前AI应用架构的一次重新分类。在此之前,业界常常将所有涉及LLM的自动化系统笼统地称为"Agent",导致一个简单的RAG问答系统和一个能自主操作浏览器的复杂系统被混为一谈。Anthropic的分类框架借鉴了软件工程中"编排(Orchestration)"与"自治(Autonomy)"的经典区分:工作流对应的是确定性编排,类似于传统的有向无环图(DAG)任务调度;智能体对应的是非确定性自治,更接近强化学习中Agent与环境交互的范式。这种分类不仅有助于技术选型,也为团队沟通提供了共同语言。
工作流:流水线式的确定性执行
工作流就像一条流水线或一份菜谱,任务的流程和步骤是固定的、预先设计好的。LLM在其中更像是一个"超级函数",被人类开发者写好的代码调用,去完成某个具体的子任务——比如"总结这段文本"或"提取关键信息"。决策权在代码,不在LLM。

智能体:侦探式的自主决策
智能体更像一个侦探——你给它一个总目标,但它没有固定剧本。它会根据环境反馈动态地一步步决定:下一步该做什么、该使用哪个工具、任务是否已完成。决策权在LLM,而不在代码。
举个直观的例子:如果你让LLM"先总结一篇新闻,再调用API发布到博客",流程是固定的,这就是工作流。但如果你只是说"帮我推广这款新产品",它需要自己判断是写推文、发博客还是先做市场调研——这种需要自主决策的场景,就是智能体。
理解工作流和智能体的核心区别,对后续的技术选型至关重要。
技术选型金字塔:始终从最简单的方案开始
Anthropic给出了一个非常实用的建议:始终从最简单的方案开始,只有当简单方案确实无法满足需求时,才考虑增加复杂性。
为什么?因为构建代理式系统是有代价的,主要体现在两个方面:
- 延迟:通常需要多次LLM调用和工具使用,响应时间显著变慢
- 成本:每次LLM调用和工具使用都消耗Token,累积费用更高
Token是LLM处理文本的基本单位,大致相当于英文中的3/4个单词或中文中的1-2个字。每次API调用的费用按输入Token和输出Token分别计价,例如Claude 3.5 Sonnet的定价约为输入$3/百万Token、输出$15/百万Token。在代理式系统中,一个看似简单的任务可能触发5-10次甚至更多的LLM调用,每次调用都携带大量上下文(包括系统提示、历史对话、工具调用结果等),Token消耗呈指数级增长。以一个典型的智能体任务为例:初始规划调用消耗2000 Token,每次工具调用和结果解析各消耗1000-3000 Token,经过8轮迭代后总消耗可能达到3-5万Token,成本是单次调用的10-20倍。这就是为什么Anthropic反复强调"能用简单方案解决的问题,绝不要用复杂方案"。

基于这个原则,我们可以构建一个技术选型金字塔,从底层到顶层依次为:
第一层:优化单一LLM调用
这是最简单、最低成本的方案,应该优先尝试。通过引入RAG(检索增强生成)和Few-shot上下文示例,就可以解决大部分问题。很多时候,一个精心设计的Prompt就能搞定。
RAG(Retrieval-Augmented Generation)是由Meta AI在2020年提出的技术范式,其核心思想是在LLM生成回答之前,先从外部知识库中检索相关文档片段,将其作为上下文注入Prompt中,从而让模型基于最新、最准确的信息进行回答。这解决了LLM训练数据存在截止日期、容易产生"幻觉"(Hallucination)的根本问题。典型的RAG流程包括:文档切片→向量化(Embedding)→存入向量数据库(如Pinecone、Milvus)→用户查询时进行语义检索→将检索结果拼接到Prompt中。Few-shot学习则是在Prompt中提供少量输入-输出示例,让模型通过"模式匹配"理解任务要求,无需微调即可显著提升特定任务的表现。两者结合使用,往往能让单次LLM调用达到令人惊讶的效果,这也是Anthropic强调"优先优化单次调用"的技术基础。
第二层:构建工作流
当单个LLM调用确实不够用,且任务流程固定、明确、可预测时,就应该选择工作流。它能带来可预测性和一致性的结果。
第三层:构建智能体
只有当任务是开放式的、无法预测步骤、需要模型大规模自主决策时,才应该选择真正的智能体。这是最强大但也最复杂、最昂贵的方案。
实战案例:AI翻译的技术选型演示
让我们用一个AI翻译场景来具体演示如何运用这个技术选型金字塔。
场景一:翻译内部邮件
目的是让同事快速了解大意,对质量要求不高,追求效率。此时单个LLM调用就是最佳选择——直接在一个Prompt里说"把这个翻译成中文并检查语法",速度快、成本低,即使翻译有小瑕疵也完全不影响使用。

场景二:翻译公司官网产品介绍
任何错误都可能损失客户,对质量有高标准。此时工作流的威力就体现出来了:
- 第一步:让LLM扮演专业翻译家,全力翻译内容
- 第二步:让LLM扮演经验丰富的母语编辑,对译文进行严格审校和润色
这种角色分离让每一步都更专注,最终出品质量远高于单次调用。这一模式在学术界被称为"自我精炼"(Self-Refine),其原理是利用LLM在不同角色设定下的注意力分配差异——当模型被要求"翻译"时,它会将注意力集中在语义转换上;当被要求"审校"时,则会更关注语法准确性、表达自然度和术语一致性。研究表明,这种多角色流水线的输出质量通常比单次调用提升15%-30%。
场景三:翻译并发布到全球博客
需要根据当地文化和SEO要求进行本地化优化,任务复杂到需要自己探索和决策——上网查资料、做判断、选择策略。这时候才需要一个真正的智能体来自主完成。
框架使用策略:三步避坑指南
市面上LangChain、Dify、n8n等Agent框架层出不穷,到底该不该用?Anthropic的观点非常明确:这些框架的优点是能让你快速上手验证想法,但代价是黑箱化。
LangChain是目前最流行的LLM应用开发框架,提供了链(Chain)、代理(Agent)、记忆(Memory)等高级抽象,支持Python和JavaScript,其核心价值在于将常见的LLM应用模式标准化。但其过度抽象也饱受批评——一个简单的API调用可能被包装成多层嵌套的类继承结构,调试时堆栈信息令人崩溃。Dify是一款开源的LLMOps平台,提供可视化的工作流编排界面,用户可以通过拖拽节点来构建Agent,特别适合非技术背景的团队快速搭建原型。n8n则定位为通用的工作流自动化工具(类似Zapier的开源替代),近期加入了AI节点支持,适合将LLM能力嵌入到已有的业务自动化流程中。三者的共同问题在于:当框架的默认行为与你的需求不完全匹配时,"绕过框架"的成本往往比"从零构建"还高。
框架封装了太多底层细节,一旦Agent出了问题,调试会极其痛苦——你根本不知道是自己的逻辑错了,还是框架帮你构造的Prompt出了问题。而且框架里那些花里胡哨的功能,很容易诱惑你把简单问题复杂化,陷入过度设计的陷阱。

Anthropic的建议可以总结为三步避坑指南:
第一步:从原生API开始。 别怕麻烦,自己动手调用一次LLM API,你才能真正理解Agent是怎么回事,建立起第一性原理的认知。第一性原理(First Principles Thinking)源自亚里士多德的哲学思想,后被埃隆·马斯克推广到工程领域,其核心是将问题分解到最基本的事实和原理,而非依赖类比或既有经验。在Agent开发中,这意味着:理解LLM本质上是一个"接收文本、输出文本"的函数,所有的Agent行为——工具调用、记忆管理、多步推理——都是通过精心设计的Prompt和解析逻辑实现的。当你直接调用API时,你会清楚地看到:系统提示(System Prompt)如何定义Agent的角色和行为边界,工具描述(Tool Description)如何以JSON Schema的形式告诉模型可用的能力,以及模型的输出如何被解析为具体的函数调用。掌握了这些底层机制,你就能在任何框架中游刃有余,也能在框架无法满足需求时自信地进行定制开发。
第二步:把框架当作原型工具,而不是最终答案。 用LangChain或Dify快速验证想法非常棒,但一定要有意识地去理解底层是怎么工作的,别满足于做一个"调包侠"。
第三步:准备好随时"毕业"。 当项目要动真格、追求极致的稳定性和可靠性时,就要勇敢地抛弃原型,用学到的底层原理去重构核心代码。
对于Dify、n8n这类可视化工具也是同理——它们是绝佳的原型和简单自动化工具,但当你需要专业级的稳定性和控制力时,需要回归到更本质的代码层面。
总结
构建高效LLM Agent的核心思路可以归纳为四个关键点:
- 简单优先是黄金原则,复杂不等于强大
- 用控制权归属来区分工作流(代码控制)和智能体(LLM控制)
- 遵循技术选型金字塔——单次调用 → 工作流 → 智能体,逐级递进
- 框架是学习和原型的跳板,而非最终的生产方案
理解这些底层逻辑和选择原则,能帮助我们避免踩坑,真正构建出高效实用的AI应用。与其追逐最新最复杂的框架,不如回归第一性原理,从最简单的方案出发,按需递进。
相关推荐
教程攻略Cursor+Codex双IDE协同:开源项目二开实战方法论
基于实战经验总结的开源项目二次开发完整方法论,详解Cursor+Codex双IDE协同工作流,涵盖二开七环节、MVP验证、AI读源码技巧,帮助开发者三天跑通项目、两周完成业务集成。
教程攻略Cursor多Agent实战:50分钟搭建Next.js全栈博客
使用Cursor IDE多Agent协作模式,50分钟内从零搭建全栈博客。涵盖Next.js、Clerk认证、Supabase数据库集成,详解4个AI Agent分阶段开发流程与关键避坑经验。
教程攻略从零搭建AI软件工厂:Cursor工程师的多Agent协作实战经验
Cursor工程师Eric分享AI软件工厂构建实战:从自动化六层级、护栏设计、并行Agent管理到规模化扩展,详解如何用多Agent协作实现7×24小时高效软件开发。