智能体(Agent)和工作流(Workflow)的定义及区别如下:
智能体(Agent):
工作流(Workflow):
总的来说,智能体更强调 LLM 对自身流程和工具使用的动态指导和自主控制,而工作流则更侧重于通过预定义的代码路径来编排 LLM 和工具。
Coze的Workflow为我们制作Agents/Bots提供很大的灵活性和便捷性。理论上,很多研究论文里面的提示词工程技术都可以通过Workflow实现,然后嵌入到Bot里,快速设计出一个产品。Dr.Know就是一个很好的例子。Workflow是什么?我们再回看一下Dr.Know使用的这个Workflow。这个Workflow里每个组块都可以看成是一个函数,这里面混杂了三类函数:一类是传统函数,像FormatRetrievedResults和GetUserLanguage都可以归为这一类;第二类是调用第三方服务的函数,如SearchWebWithGoogle;第三类程序是基于LLM的函数,如GenerateQueryResponse。我们可以把前一类叫作原生函数(Native Function),第二类叫作远端函数(Remote Function),第三类叫作语义函数(Semantic Function)。原生函数和远端函数是传统程序的基本组块,语义函数则是在LLM诞生之后才有的。这里我们使用了“函数”这个概念对LLM-based的程序做了概括,但是我们应该都清楚语义函数与传统函数在形式和功能上都有根本差异:形式上,它是用自然语言编写的程序;功能上,它可以模拟人的高阶思维,而不仅仅是做一些流程性的操作。既然如此,那么由这三类函数组合而成的Workflow也完全不同于传统函数,我把它们称作超函数(Hyperfuction)。
原文地址:[Building effective agents](https://www.anthropic.com/research/building-effective-agents)本文为上文的译文(包括图片汉化)过去一年,我们与多个行业的团队合作,协助他们构建大语言模型(Large Language Model,LLM)智能体。我们发现,最成功的实践并非依赖复杂的框架或专门的代码库,而是采用简单、可组合的模式。本文将分享我们通过与客户合作以及自主构建智能体所获得的经验,并为开发者提供实用的建议。[heading3]什么是智能体?[content]"智能体"(Agent)可以有多种定义。一些客户将智能体定义为能够长期独立运行的全自动系统,它们可以使用各种工具来完成复杂任务。另一些则用这个术语描述更具规范性的实现,即遵循预定义工作流程的系统。在Anthropic,我们将这些变体统称为智能系统(Agentic Systems),但在架构上区分为工作流(Workflows)和智能体(Agents)两种类型:工作流是通过预定义代码路径来编排LLM和工具的系统。智能体则是由LLM动态指导自身流程和工具使用的系统,能够自主控制任务完成方式。下文将详细探讨这两种智能系统。在附录1("智能体的实践应用")中,我们将介绍客户在使用这类系统时发现特别有价值的两个领域。
分为短期记忆和长期记忆。其中短期记忆是指的将所有的上下文学习看成是利用模型的短期记忆来学习;而长期记忆是提供了长期存储和召回信息的能力,它们通常通过利用外部的向量存储和快速检索来存储和召回信息。Tools(工具)通过学会调用外部不同类型API来获取模型(通常在预训练后很难修改)中缺少的额外信息,代码执行能力,访问专有信息源等(例如获取此时此刻的天气、联网网搜索等)Action(动作)根据上述大模型结合问句(Query)、上下文的规划(Context)、各类工具,最终大模型才能决策出最终需要执行的动作是什么。Agentic Workflow解决什么问题?我认为是可以从从提升效率、提高质量、节省时间的角度上进行思考。好比一台“印钞机”,按照指定好的流程重复着机械性的活动,但是它在源源不断的产生价值。Productivity(效率)=产生价值的速率Agentic Workflow通过将一个复杂的任务分解成较小的步骤,在整个过程中中融入了更多人类参与到流程中的规划与定义。它减少了对Prompt Engineering和模型推理能力的依赖,提高了LLM应用面向复杂任务的性能,更丰富、更精确。下面是Coze(扣子)平台上的工作流编排器的示例,这个话其实是一个抽卡游戏的流程,你可以看到在整个工作流中间会有很多节点前后之间有节点以及连线,然后每个节点之间它是通过不同的定义,比如说图片处理工具,或者说是通过多模态模型进行图片理解工具等等其他各种各样的工具组合而成。