关注我~第一时间学习如何更好地使用AI。
重要的不是我们是否会被AI替代,
而是我们要比被替代的人更懂AI。
大家好,今天为大家带来一篇Agent主题的学习笔记。
学习的内容是Anthropic(即Claude系列模型的厂商)在官网上发布的一篇关于如何构建高效Agent的文章。本文有非常多的地方夹杂了我个人的理解(私)和感悟(货),建议大家一定也要看看原文。
- • 原文链接:https://www.anthropic.com/engineering/building-effective-agents
- • 中文版(宝玉老师翻译)链接:https://baoyu.io/translations/building-effective-agents
话不多说,直奔主题。
Anthropic的Agentic 系统
Anthropic认为,现在市面上流行的各种关于“Agent”的定义、描述,实质上都可以被归入“Agentic 系统“这个大类。
而Agentic 系统,从结构上可以区分为工作流(workflow)与Agent两种形式。换言之,通常所说的Agent,只是Agentic 系统的一种形式而已。
- • 工作流 :是指通过预定义的代码路径来编排 LLM 与工具的系统。
- • Agent :是指由 LLM 动态地指挥自己的流程和工具使用方式的系统。
从上述定义可以看出,工作流和Agent两种Agentic 系统的差异,主要在于业务流程和工具使用的编排方式。
工作流的编排是事先写死的,LLM只能根据用户预设的路径去执行任务、使用工具;而Agent,则是由LLM自己根据任务需求来动态地规划、编排业务流程,自主决定工具的使用,其完成任务的路径与方式完全由LLM自己掌控。
这个点其实我之前在想玩玩极简版AI Agent?MCP就够了!手把手教你用Cherry Studio整活~一文中,就以法律上的代理概念为基础,对我所理解的Agent进行过解释,颇有些异曲同工。
Agentic 系统的设计层次
Anthropic提出,构建Agentic 系统的最佳实践,其实并不是依赖复杂的框架或者专业化的库,而是使用简单且可组合的模式。
甚至,当我们想要利用LLM来构建一个处理具体事务的应用时,我们应该总是从最简单的方案着手,直到需要时再去增加复杂度。
那么什么是简单方案?复杂度是怎么增加的呢
1.最简单方案:Prompt设计
在 LLM 领域取得成功并不在于构建最复杂的系统,而在于构建最适合自身需求的系统。先从简单的 Prompt 开始,结合全面的评估进行优化,只有在更简单的方法无法达到预期时,才使用多步骤的 Agentic 系统。
没错,利用优秀的Prompt去提升“模型按照我们的需求来输出”的概率,是我们构建LLM应用的最简单方案。事实上,我们希望LLM完成的大部分任务,都可以直接通过优化Prompt实现。
2.Agentic系统的基本构建模板:增强型LLM
在某些情形下,由于模型本身的限制,无论如何优化Prompt,都无法完成任务。
比如,当模型是以截至2024年12月31日的知识训练而来,那无论你的Prompt设计得多优秀,它都无法告诉你今天发生的重大事件。
这种情况下,我们就需要在优化Prompt的基础上,增加一些别的功能,来实现一个Anthropic称为增强型LLM的基本模块。
这些新增的功能包括:
- • 检索(Retrieval) :可以理解为为LLM外接知识库,以将LLM的知识范围拓展到用户提供的全部信息中。RAG就是这个功能的典型表现。
- • 工具(Tools) :即为LLM提供可供调用以延伸其能力的工具,比如我们熟悉的MCP,以及Coze、Dify中的插件。
- • 记忆(Memory) :即允许LLM能将与用户的对话信息等内容,作为长期记忆保存,使其在将来某个相关的任务处理中,能够被调用作为上下文的一部分来引导模型输出。
当我们为一个LLM配备了合适的Prompt,必要的知识库、记忆,并提供合适的工具时,我们实际上已经拥有了一个Agent雏形了。
熟悉Coze的朋友肯定已经发现了,这其就是Coze中的单一智能体的组织形式,感兴趣的朋友可以去看看我的这篇文章:
同样,我在Cherry Studio这类LLM客户端中,通过引入知识库、全局记忆、MCP,实质上也是搭建了一个“增强型LLM”。
3. 人工设定“规划”要素:工作流
事实上,Anthropic对增强型LLM的定义,与OpenAI前安全系统主管Lilian Weng在其经典博文《LLM Powered Autonomous Agents》中描述的Agent架构非常接近。
但在Lilian Weng的架构中,有一个非常关键的因素,“规划(planning) ”,它是Agents得以Autonomous 的灵魂。
所谓“规划”,就是说LLM需要具备分解子目标、自我反思和批评等能力,从而有效地执行复杂任务。
而之所以说增强型LLM只是Agentic系统的基本构建模板,就是因为我们在构建增强型LLM时,还没有明显地引入规划要素。
而正如文章开头Anthropic对两种不同形式的Agentic 系统的定义所示,工作流和Agent的差异,就在于这个规划要素,是人工预设的,还是完全由AI自我掌控的。
从复杂度由低到高的角度来看,当然是搭建工作流(即根据任务需求,通过人工方式为LLM,当然也可以是增强型LLM,设定好解决问题、完成任务的步骤、路径)要相对更简单一些。
但即使如此,由于现实业务需求的千差万别,不同工作流的规划方式,也存在由简到繁的差异。Anthropic的这篇文章中为我们总结了几种常见的工作流模式,下面我将按从简单到复杂的顺序对它们进行排列说明:
(1)链式(Prompt Chaining)
即根据任务将工作流分解为一系列具有顺序的步骤序列,上一个步骤的输出作为下一个步骤的输入,每个步骤上调用LLM/增强型LLM处理。
这是最基本的工作流,数据流向为顺流而下。
(2)评估者-优化器(Evaluator-Optimizer)
该工作流中的数据流向,存在一个由条件判断控制的循环结构,即先由前序LLM生成一个初版输出,然后由后序LLM对该输出进行评估,对于不符合要求的,给出反馈并退回先前节点重新生成输出,直到达到用户设定的要求。
(3)并行化(Parallelization)
对于某些任务,单条数据流的工作流可能无法满足业务需求,或者会降低工作效率,比如:
- • 需要并行处理子任务以提高速度
- • 需要多种视角/尝试来获得更高置信度的结果
- • 对于多方面因素较多的复杂任务,让每个 LLM 调用聚焦处理一个特定方面,并行处理
从设计思路上来看,并行化工作流存在两种形式:
- • 分块(Sectioning) :将任务拆分成相互独立的子任务并行执行。
- • 投票(Voting) :对同一个任务多次运行,获取不同的答案或思路。
(4)路由(Routing)
对于需要先对用户输入按照既定的标准进行类型区分,然后对不同类型的任务执行不同的后续处理的业务,就需要安排路由工作流。
(5)主控-工作器(Orchestrator-Workers)
“主控-工作器”是“路由”的升级版,在“路由”中,下游的分类是实现定好的,而“主控-工作器”工作流中,一个中央的 LLM 会根据任务动态分解出若干子任务,分配给不同的“工作器”LLM,并最终汇总它们的结果。
当无法预测需要的子任务种类和数量时,该工作流特别适用。
需要说明的是,以上五种工作流模式,本身又可以根据需要进行相互组合,形成更复杂工作流,比如在“并行化”的后续分支中,再加入“评估者-优化器”,甚至“路由”或“主控-工作器”。
4. 终极目标:Agent
正如前文所述,Agent中也包含了规划要素,但是这个规划完全是由LLM自主决定的。
当问题是开放式的,无法提前预测需要多少步骤,或无法写死固定路径时,我们才有必要考虑搭建Agent形式的系统。
当任务目标明确后,Agent 会自行规划并独立执行,必要时会再次与用户沟通以获取更多信息或判断。
在执行任务的过程中,Agent 需要在每个步骤获取“真实”环境反馈(例如,工具调用结果或代码执行结果)来评估进展。如有需要,Agent 可以在检查点或者遇到障碍时暂停并寻求人类反馈。通常任务在完成时终止,也常见会设置停止条件(例如最大迭代次数)来保持控制。
总结
综上所述,我们可以看出,Agentic 系统或者说AI应用的架构,始终应该与其要处理的任务的复杂程度相匹配。
因此,我们首先应该对自己的业务流程进行详尽地梳理,从最简单的Prompt设计出发,实践评估效果,当且仅当结果不尽人意之时,再考虑提升系统的复杂度。
实际上,我之前的很多文章,已经围绕着上述方案中的一些部分进行了比较详细的探讨。这里我再给大家按由简到繁的顺序总结一遍,并给出可以参考阅读的前期文章:
- • 基本:Prompt设计
- • 常见实现方式:各家模型官方,或Cherry Studio等第三方模型客户端
- • 参考文章:干货分享 | Prompt设计心法 - 如何3步做到清晰表达需求?
- • 入门:增强型LLM
- • 常见实现方式:Cherry Studio等第三方模型客户端;Coze平台
- • 参考文章:AI工作流编排手把手指南之一:Coze智能体的创建与基本设置;高德、彩云MCP全体验:让Cherry Studio化身私人小助理的喂饭版指南!
- • 进阶:工作流
- • 常见实现方式:Coze、Dify、n8n等
- • 参考文章:AI工作流编排手把手指南之三:Coze智能体的工作流;Agent | 工作流编排指南4:萌新友好的Coze选择器节点原理及配置教程;Agent | 工作流编排指南5:长文扩写自由 — Coze循环节点用法详解
- • 目标:Agent
- • 常见实现方式:LangChain
好了,以上就是本期的主要内容。祝大家玩得开心~!
—— END——
往期精华:
1.Workflow编排
Coze工作流编排指南6:聊天陪伴类智能体基本工作流详解-快来和玛奇玛小姐姐谈心吧~
AI工作流编排手把手指南之二:Coze智能体的插件添加与调用
2.MCP使用
markitdown-mcp联动Obsidian-mcp | 一个极简知识管理工作流
Excel-MCP应用 | 自动提取图片数据到Excel的极简工作流手把手教程
【15合1神器】不会代码也能做高级图表!这个MCP工具让我工作效率翻了不止三倍!
萌新靠MCP实现RPA、爬虫自由?playwright-mcp实操案例分享!
想玩玩极简版AI Agent?MCP就够了!手把手教你用Cherry Studio整活~