高端的食材,往往需要最朴素的烹饪方式。
AI 发展到后半场「大雾散去」,如何让大模型的智力落实成执行力,智能体似乎成了业界的共同答案。
从元宝到混元,各类智能体平台如雨后春笋般涌现。上个月,智谱发布 AutoGLM 的发布会上,智能体好像突破了次元壁,一句指令,就拿着手机在现场发了一个总计两万块钱的红包。
我们正在见证一个重要的转折点:智能体正在将 AI 的能力从「能说会道」转变为「能做会干」。
作为最强大模型厂商的有力竞争者,Anthropic 推出的智能体功能也着实惊艳了我们一把。Computer Use 甚至已经可以做到跟 Claude 说一声想做一个 90 年代风格的个人网站,剩下的只需要坐在屏幕前看网页自己做自己就好了。
在过去一年中,Anthropic 与数十个行业团队合作,对大模型智能体进行了系统研究。但他们发现,那些表现最出色的 AI 智能体,并非建立在庞大复杂的框架或专业库之上,而是采用了简单、可组合的模式。
Anthropic 将一年的实践经验总结成了这篇博客,机器之心在不改变原意的基础上进行了编译。
「智能体」有多种定义。有人眼中的智能体是一个「全能管家」,能够独立思考、自主决策,灵活运用各种工具来完成复杂任务;也有人把它理解为一个「规矩员工」,按部就班地执行预设的工作流。
Anthropic 将两者统称为智能系统,但对工作流和智能体做出了区分:
在开发 AI 应用时,Anthropic 的研究团队给出了一个建议:能简单就不要复杂。有时候,根本不需要建造一个智能系统 —— 因为智能系统虽然功能强大,但往往会让响应变慢,成本也会更高。开发者需要权衡这种取舍。
当确实需要更复杂的系统时,工作流适合需要可预测和一致性的明确任务,而智能体则更适合需要灵活性和模型驱动决策的大规模场景。
不过对很多应用来说,配合检索和上下文示例,拿着一个好的 prompt 去问大模型通常就足够了。
目前,有多个可以帮助开发者更容易地搭建 AI 智能体的框架,包括:
这些框架确实简化了 AI 开发流程。但要注意的是,它们会在代码中增加额外的抽象层,这不仅让底层的运行逻辑变得不够透明,也增加了调试的难度。而且,开发者可能会在一些简单的场景中,不自觉地引入过度复杂的解决方案。
Anthropic 建议开发者从直接使用大模型的 API 开始:许多模式只需几行代码就能实现。如果选择使用框架,一定要理解其底层原理。经验表明,对框架底层机制的理解不足,往往是导致开发问题的主要原因。
具体示例请参考 Anthropic 的 cookbook。
基础构建模块:增强版 LLM
智能系统的基本构建模块是加持检索、记忆等功能,增强过的 LLM。目前,Anthropic 的模型可以主动使用这些能力 —— 生成自己的搜索查询、选择合适的工具,并决定保留哪些信息。
增强过的大模型。
Anthropic 建议做这些拓展功能的过程中大家可以重点关注两点:
除此之外,Anthropic 最近发布的模型上下文协议提供了一种新的实现方式。这个协议让开发者可以通过简洁的客户端代码,轻松地将 AI 模型与持续扩展的第三方工具生态系统进行集成。
工作流:提示链
提示链是一种将复杂任务拆解为多个步骤的方法,每个步骤代表调用一次大模型,后一步将基于前一步的结果继续处理。开发者可以在任意中间环节加入程序化的检查点(比如图中的「gate」),以确保流程按预期推进。
提示链工作流。
什么时候更适合用提示链工作流呢?当一个复杂任务能够被清晰地拆分成一系列固定的子任务时,提示链就是最佳选择。这种方法让每个模型只需专注完成一个简单任务,虽然整体响应时间可能会略长,但准确率会得到显著提升。
典型应用案例:
工作流:智能分流
分流技术能够判断输入任务的类型,并将其分配给相应的专门模块。这种设计让每个模块都能针对特定任务进行优化,避免了不同类型任务之间的相互干扰。
如果不采用这种分发机制,仅提升针对某类问题的效果,往往会影响到其他类型问题的处理质量。
智能分流的工作流。
什么时候适合用这种方法呢?当任务有明显的分类特征时,就很比较适合。AI 系统可以通过大语言模型或传统算法,准确识别任务类型并做出分流。
典型应用案例:
工作流:并行
大语言模型可以同时处理任务,并以编程方式聚合输出。这种并行化的工作流主要有两个特点:
并行工作流。
当子任务可以并行执行以提高速度,或需要多角度尝试以获得更高置信度的结果时,并行化的方法非常有效。对于涉及多个因素的复杂任务,让每次调用专注处理特定方面,会获得更好的效果。
典型应用案例:
任务分段:
投票机制:
工作流:领导 — 执行者
在这种工作流中,一个中央大语言模型会动态分解任务,分派给执行者模型,并汇总最终结果。
领导 — 执行者工作流。
这种工作流最适合那些难以提前确定具体步骤的复杂任务。比如在编程中,一个功能需求可能涉及多个文件的修改,而具体要改哪些文件、如何修改,往往要根据实际情况来决定。
虽然这种方式看起来和并行任务很像,但这种工作流更灵活 —— 任务的拆分不是固定的,而是由 AI 系统根据具体情况动态决定的。
典型应用案例:
工作流:评估 — 优化
在评估 — 优化工作流中,一个 LLM 调用生成响应,而另一个提供评估和反馈,形成循环。
评估 - 优化工作流。
何时使用这个工作流:当存在明确的评估标准,并且通过迭代细化可以带来显著价值时,这个工作流特别有效。
有两个显著特点:首先,当人类明确表达他们的反馈时,LLM 的响应可以明显改进;其次,LLM 能够提供这样的反馈。这类似于人类作家在创作一篇精心打磨的文档时所经历的反复修改的写作过程。
典型应用案例:
智能体
智能体在生产中随着 LLM 在关键能力上的成熟而出现,这些能力包括理解复杂输入、进行推理和规划、可靠地使用工具以及从错误中恢复。
智能体的工作始于人类用户的命令,或与人类用户的互动讨论。一旦任务明确,智能体就会独立规划和操作,中途可能需要向人类索取更多信息或让人类做判断。
在执行过程的每一步,从环境中获得「真实情况」(例如工具调用结果或代码执行)以评估其进度至关重要。然后,智能体可以在检查点或遇到阻塞时暂停以获取人类反馈。任务通常在完成后终止,但也通常包含停止条件(例如最大迭代次数)以保持控制。
智能体能够处理复杂的任务,但其实现通常很简单。它们通常只是循环中根据环境反馈来使用工具的大型语言模型。因此,设计工具集及其文档清晰、周到至关重要。作者在附录 2 中扩展了工具开发的最佳实践。
自动智能体。
何时使用智能体:智能体可以用于开放性问题,这种问题往往难以或不可能预测所需的步骤数量,并且你不能硬编码固定路径。LLM 可能会操作多个回合,你必须对其决策能力有一定程度的信任。智能体的自主性使它们成为在受信任环境中 scaling 任务的理想选择。
智能体的自主性意味着成本更高,并且可能存在错误累积的风险。作者建议在沙盒环境中进行广泛的测试,并设置适当的防护措施。
智能体的用途示例:
代码智能体的 High-level flow。
这些构建块不是规定性的。开发者可以塑造和组合这些构建块以适应不同用例。成功的关键是衡量性能并迭代实现。注意:只有在能够明显改善结果的情况下,你才应该考虑增加复杂性。
在 LLM 领域取得成功并不在于构建最复杂的系统,而是在于为你的需求构建正确的系统。从简单的提示开始,用全面的评估优化它们,同时只有当更简单的解决方案无法实现时才添加多步骤智能体系统。
在部署智能体时,需要尝试遵循三个核心原则:
更多详情,请参考原博客。
文章来自微信公众号“机器之心”
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0