工作流和智能体的区别主要体现在以下几个方面:
在业务中,通常需要的是工作流而非单个智能体,因为整个业务流程设计至关重要。例如,在烹饪中,关键不在于使用多贵的锅,而是按步骤完成每道工序。因此,工作流才是解决问题的关键,它帮助优化思路、提升效率。设计好工作流才能大幅提升整体业务效率。
原文地址:[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("智能体的实践应用")中,我们将介绍客户在使用这类系统时发现特别有价值的两个领域。
在AI领域,AI智能体(AI Agent)的概念很火,许多同学也尝试搭建了智能体。那么智能体和工作流的区别是什么,为什么我们要使用工作流而非智能体呢?智能体和工作流的区别?智能体(AI Agent)是什么:智能体是一个自动化的“助手”,用来执行特定任务。就像你设置一个闹钟,它帮你在指定时间提醒你。能做什么:它擅长做一些具体的、重复性的任务,比如客服聊天、推荐商品、处理订单等。缺点:它只能按照预先设定的规则和任务来做事,如果遇到超出范围的情况,它就不知道怎么办了。工作流(Workflow)是什么:工作流是一系列任务的流程,决定了每个步骤应该做什么,就像一本操作指南,告诉你从头到尾要怎么做。能做什么:工作流可以处理一个完整的过程,比如从客户下单、付款到发货和售后服务,涵盖了所有步骤和环节。优点:它更灵活,能够适应变化。你可以调整步骤和规则来应对不同的情况,不需要一开始就固定下来。区别总结智能体是特定任务的“助手”,用于局部执行任务。工作流是一个“计划”或“路线图”,指导整个任务的流程。简单说,工作流是全局的,智能体是局部的。在业务中,通常需要的是工作流而非单个智能体,因为整个业务流程设计至关重要。例如,在烹饪中,关键不在于使用多贵的锅,而是按步骤完成每道工序。因此,工作流才是解决问题的关键,它帮助优化思路、提升效率。设计好工作流才能大幅提升整体业务效率。
在构建基于LLM的应用时,我们建议先寻找最简单的解决方案,只在必要时增加复杂度。这可能意味着完全不使用智能系统。智能系统通常会以延迟和成本为代价来换取更好的任务表现,开发者需要考虑这种权衡是否合理。当需要更复杂的解决方案时,工作流适合需要可预测性和一致性的明确任务,而智能体则更适合需要灵活性和模型驱动决策的大规模场景。然而,对于许多应用来说,优化单个LLM调用(配合检索和上下文示例)通常就足够了。[heading3]什么时候以及如何使用框架[content]目前有许多框架可以简化智能系统的实现,包括:LangChain的LangGraph亚马逊Bedrock的AI Agent框架Rivet(一个拖放式GUI的LLM工作流构建器)Vellum(另一个用于构建和测试复杂工作流的GUI工具)这些框架通过简化标准的底层任务(如调用LLM、定义和解析工具、链接调用等)使入门变得容易。但它们往往会创建额外的抽象层,这可能会使底层提示词和响应变得难以调试。它们也可能诱使开发者在简单设置就足够的情况下增加不必要的复杂性。我们建议开发者先直接使用LLM API:许多模式只需要几行代码就能实现。如果确实要使用框架,请确保理解底层代码。对底层机制的错误假设是客户常见的错误来源。详细示例请参考我们的实践指南。https://github.com/anthropics/anthropic-cookbook/tree/main/patterns/agents[heading3]构建模块、工作流和智能体[content]在这一部分,我们将探讨我们在生产环境中观察到的智能系统常用模式。我们将从基础构建模块——增强型LLM开始,逐步增加复杂度,从简单的组合工作流到自主智能体。