(好文推荐) 如何构建 高效 Agent 及 Workflow 翻译 - Assbbs
好文推荐 如何构建 高效 Agent 及 Workflow 翻译工具:gemini-exp-1206 原文链接: 地址 官方仓库地址(代码 sample : 仓库 说明: 本文来自 Anthropic 官网,是所有大模型厂商,唯一对 agent 和 workflow 定义做详细分析的,有兴趣的朋友,建议直接看原文。 非常值得一读(原文还附带插图) 顺便记录,…
好文推荐 如何构建 高效 Agent 及 Workflow 翻译工具:gemini-exp-1206 原文链接: 地址 官方仓库地址(代码 sample : 仓库 说明: 本文来自 Anthropic 官网,是所有大模型厂商,唯一对 agent 和 workflow 定义做详细分析的,有兴趣的朋友,建议直接看原文。 非常值得一读(原文还附带插图) 顺便记录,根据文意推测,其中的 Workflow: Parallelization 应该就是现阶段 大模型审查的方式,这也解释了,为什么模型会输出一半 然后吞回,还有各家厂商训练 base-model 开源出来 并不见自带审查功能。 背景介绍,很多人觉得 Claude 官方过于低调,非常之奇怪,其实根据一些 Anthropic 创始人,及官方团队的访谈视频, 他们主要是面向 商业公司 ,将 模型 API 作为未来网络底层的基础 ,这才是他们的愿景,而另一条线 对一般个人用户 只是兼顾而已。(也因此,作为开发者,多关注 Anthropic 反而更有好处) 比如 他们最近放出的协议(或标准)Model context protocol ( Think of MCP like a USB-C port for AI applications. )在本土厂商还在 单纯比模型参数,刷榜的时候,人家已经开始了 工业量化的前期准备。 构建高效智能体(Building effective agents) 2024 年 12 月 20 日 过去一年,我们与各行各业数十个团队合作构建了大语言模型(LLM)智能体 agent 。我们发现, 最成功的实现案例并非采用复杂的框架或专门的库,而是运用简单、可组合的模式 。 本文将分享我们在与客户合作及自行构建智能体过程中所学到的经验,并为开发者构建高效智能体提供实用建议。 什么是智能体? “智能体”(Agent)的定义多种多样。一些客户将智能体定义为完全自主的系统,能够在长时间内独立运行,并利用各种工具完成复杂任务。另一些客户则用它来描述遵循预定义工作流、更具规范性的实现。在 Anthropic,我们将所有这些变体都归类为智能体系统 agentic system ,但在架构上对工作流和智能体做出了重要区分: 工作流 (Workflows)是指通过预定义的代码路径来编排 LLM 和工具的系统。 智能体 (Agents)则不同,它是由 LLM 动态指导自身流程和工具使用,并掌控如何完成任务的系统。 下文将详细探讨这两种类型的智能体系统。在附录 1(“智能体的实际应用”)中,我们将介绍客户发现使用这些系统特别有价值的两个领域。 何时(以及何时不)使用智能体 在使用 LLM 构建应用程序时,我们建议找到尽可能简单的解决方案,并且仅在必要时才增加复杂性。这可能意味着根本不构建智能体系统。智能体系统通常会牺牲延迟和成本来换取更好的任务性能,因此您应该考虑这种权衡何时才有意义。 当需要更高的复杂性时,工作流为定义明确的任务提供了可预测性和一致性,而当需要大规模的灵活性和模型驱动的决策时,智能体是更好的选择。然而,对于许多应用程序来说,通过检索和上下文示例来优化单个 LLM 调用通常就足够了。 何时以及如何使用框架 有许多框架可以使智能体系统更容易实现,包括: LangChain 的 LangGraph; Amazon Bedrock 的 AI Agent 框架; Rivet,一个拖放式图形用户界面(GUI)LLM 工作流构建器;以及 Vellum,另一个用于构建和测试复杂工作流的图形用户界面(GUI)工具。 这些框架通过简化标准的低级任务(例如调用 LLM、定义和解析工具以及将调用链接在一起)来轻松入门。然而, 它们通常会创建额外的抽象层,这可能会掩盖底层的提示和响应,从而使它们更难调试 。它们还可能使人们倾向于在更简单的设置就足够时增加复杂性。 我们建议开发者首先直接使用 LLM API :许多模式可以在几行代码中实现。 如果您确实使用了框架,请确保您了解底层代码。对底层原理的错误假设是客户错误的常见来源 。 请参阅我们的示例手册以获取一些示例实现。 构建块、工作流和智能体 在本节中,我们将探讨我们在生产中看到的智能体系统的常见模式。我们将从基础构建块(增强型 LLM)开始,并逐步增加复杂性,从简单的组合式工作流到自主智能体。 构建块:增强型 LLM Building block: The augmented LLM 智能体系统的基本构建块是经过增强的 LLM,增强功能包括 检索 (Retrieval)、 工具 (Tools)和 记忆 (Memory)。我们目前的模型可以主动使用这些功能——生成自己的搜索查询、选择适当的工具以及确定要保留的信息。 增强型 LLM 我们建议关注实现的两个关键方面:根据您的特定用例定制这些功能,并确保它们为您的 LLM 提供一个简单、文档完善的接口。虽然有许多方法可以实现这些增强功能,但其中一种方法是通过我们最近发布的模型上下文协议(Model Context Protocol),该协议允许开发者通过简单的客户端实现与不断增长的第三方工具生态系统集成。 在本文的其余部分,我们将假设每次 LLM 调用都可以访问这些增强功能。 工作流:提示链 Prompt chaining 提示链(Prompt chaining)将任务分解成一系列步骤,其中每次 LLM 调用都会处理前一次调用的输出。您可以在任何中间步骤上添加程序化检查(请参见下图中的“关卡”(gate)),以确保流程仍在正轨上。 提示链工作流 何时使用此工作流: 当任务可以轻松、清晰地分解为固定的子任务时,此工作流非常理想。主要目标是通过使每次 LLM 调用成为更简单的任务来以延迟换取更高的准确性。 提示链有用的示例: 生成营销文案,然后将其翻译成不同的语言。 编写文档大纲,检查大纲是否符合特定标准,然后根据大纲编写文档。 工作流:路由 Workflow: Routing 路由(Routing)对输入进行分类,并将其定向到专门的后续任务。此工作流允许关注点分离,并构建更专业的提示。如果没有此工作流,针对一种输入进行优化可能会损害其他输入的性能。 路由工作流 何时使用此工作流: 路由非常适用于存在明显类别的复杂任务,这些类别最好单独处理,并且可以通过 LLM 或更传统的分类模型/算法准确地进行分类。 路由有用的示例: 将不同类型的客户服务查询(一般问题、退款请求、技术支持)定向到不同的下游流程、提示和工具。 将简单/常见问题路由到较小的模型(如 Claude 3.5 Haiku),将困难/不常见问题路由到功能更强大的模型(如 Claude 3.…