AI代理:开发者全面入门指南

为了帮助开发者理解和使用 AI 代理,我们在代理类似于员工的数字孪生兄弟的前提下对其进行了映射。

译自 AI Agents: A Comprehensive Introduction for Developers,作者 Janakiram MSV。

代理代理工作流生成式 AI 生态系统中的最新流行词。但与任何新兴技术一样,代理的术语和定义多种多样,对于开发人员来说通常令人困惑。为了帮助揭开代理的神秘面纱,在本文中,我们为已经熟悉 大型语言模型提示工程 基础知识的开发人员提供了一个全面的资源。我们将帮助您剖析代理的各个方面,并将其映射到技术实现。在后续的文章中,我们将把这些概念应用于一些流行的代理框架,例如 AutoGenCrewAI

关于代理框架的说明:虽然这些框架可以帮助您入门,但它们通常是抽象的,并对开发人员隐藏了核心概念。学习 AI 代理最有效的方法是从头开始设计和构建它们。因此,在本文中,我们将 AI 代理与传统的代理角色(例如呼叫中心的代理)进行比较和对比。通过这样做,您将能够概念化和理解 AI 代理与其人类对应物之间的相似程度。

AI 代理的剖析

将 AI 代理视为具有明确角色的员工的数字孪生兄弟是最好的理解方式。当任何人开始一份新工作时,都会有一份明确定义的合同,其中规定了基本要素,例如工作定义、成功指标、汇报层级、对组织信息的访问权限,以及该角色是否包括管理其他人。这些方面确保员工在其工作中发挥最大效力,并为组织的整体成功做出贡献。

AI 代理的核心结构。

从技术上讲,AI 代理与员工没有什么不同。与其人类对应物一样,有一组关键属性对于代理有效运作至关重要。在幕后,这些属性被实现为技术堆栈,利用生成式 AI 的新兴构建块,例如系统提示、提示设计技术、向量数据库、工具等等。

大型语言模型,包括 多模态模型,是 AI 代理的基础。AI 代理的各个方面都通过 LLM 进行控制和路由。它是定义执行路径的大脑和驱动力,不仅是一个代理,而且是包含多个代理的整个工作流。AI 代理的每个属性都与 LLM 的一个或多个参数直接相关。

上图说明了 AI 代理的核心结构。它还将关键属性映射到预期由人类完成的传统工作的要素。

让我们仔细看看这些属性。

角色

AI 代理的角色是建立代理关键特征的最关键方面。它相当于传统环境中的职位或工作职能。例如,擅长处理客户投诉的客户支持工程师就是一个工作职能。它也是执行这项工作的人的角色。您可以轻松地将其扩展到 AI 代理。

系统角色转换为代理的角色,并且在整个会话中保持不变。

从技术上讲,角色在 LLM 的上下文中映射到系统提示。大多数推理 API 允许您使用系统角色、助手角色和用户角色定义消息集合。系统角色转换为代理的角色,并且在整个会话中保持不变。系统角色在整个会话中保持不变,并通过强制执行角色来塑造代理的响应。

例如,以下系统角色定义了代理的角色或工作职能:

你是一位人工智能驱动的客户支持工程师,任职于一家专注于软件产品的科技公司。你的主要职责是协助客户解决问题、解决与公司产品相关的疑问并回答相关咨询。你必须以冷静、专业和善解人意的方式做出回应,始终确保客户感到被倾听和理解。如果客户感到沮丧或不安,你应该承认他们的感受并提供安慰,同时提供清晰、可行的解决方案。你的语气应该友好、支持和耐心,确保每次互动都能让客户感到被重视和满意。

指令

人工智能代理的指令代表了实现预期结果所需的任务定义。它是一个涵盖代理预期执行的各种任务的广泛指南,确保了跨不同场景的灵活性。指令没有专注于单一、狭隘的任务,而是提供了一个通用的框架来处理代理范围内的多个请求。这确保了代理可以在不同的用户交互中提供成功的结果。

在现实世界中,这个概念类似于为支持工程师定义职位描述。例如,负责协助客户使用会计软件的支持工程师将处理与该产品相关的任何电话。但是,如果客户就与其无关的问题(例如硬件技术支持)联系他们,则工程师应礼貌地将电话转接到正确的部门。职位描述为员工管理各种任务以及何时应 defer to others 提供了必要的指导。

对于人工智能代理,这可以在提示消息集合的用户角色中表示。例如,提示指令可能是:

你是一位专门解决与会计软件相关问题的 AI 支持代理。如果客户询问有关软件故障排除或指导的问题,请提供清晰简洁的步骤来解决他们的问题。如果查询超出了你的领域,请引导用户到相应的部门寻求进一步的帮助。

此指令通过提供实现预期结果的具体指南来扩展系统角色,同时保持管理不同场景的灵活性。

任务

任务是指令的扩展,侧重于代理职责范围内特定的、可操作的项目。指令提供了一个涵盖多个潜在操作的通用框架,而任务是代理响应特定用户输入而必须采取的直接、具体的行动。任务是细粒度的和情景化的,确保代理能够精确有效地满足个人需求,从而指导代理执行与总体指令一致的特定步骤。

每个任务都是针对独特的客户问题采取的具体步骤。

在现实世界中,这类似于员工如何根据他们的职位描述执行特定任务。例如,负责会计软件的支持工程师可能会接到一个关于生成财务报告时出错的电话。该指令指导工程师帮助解决与软件相关的问题,但在这种情况下,任务是排除故障并解决用户遇到的特定错误。每个任务都是针对独特的客户问题采取的具体步骤,由更广泛的指令驱动,但根据具体情况量身定制。

在人工智能代理的上下文中,任务可以作为对用户输入的直接响应来提示,从而将指令缩小到特定的操作。

例如,在收到支持会计软件问题的总体指令后,特定的任务提示可能是:

用户报告说他们的财务报告生成不正确。帮助他们确定可能的原因,例如数据输入错误或软件版本问题,并指导他们完成解决错误的步骤。

此任务将更广泛的指令缩小为可操作的、针对特定项目的响应,直接满足用户的需求。

计划

计划组件是提示策略的一个组成部分,是对一般指令的扩展。它旨在引导 AI 代理根据更复杂或不断变化的情况,通过特定的推理过程或行为调整。虽然指令和任务为处理各种任务提供了一个广泛的框架,但提示策略侧重于增强代理根据用户输入进行推理、适应和反思的能力。这些策略是情景化的,可以帮助代理执行逐步推理或自我纠正,确保任务经过深思熟虑并有效地执行。从技术上讲,我们应用了一些提示工程技术(例如 React、思维链和反思)来帮助代理进行推理和计划任务。

在现实世界中,这类似于专业人员如何使用结构化技术解决问题。例如,客户支持工程师可能会遵循一个流程,首先将客户的问题分解成更小的部分,反思过去的经验以获得更好的解决方案,并根据客户的反馈调整他们的方法。这些策略(无论是逐步分析、反思结果还是动态调整行动)都可以帮助专业人员更有效地解决特定问题,就像提示策略帮助 AI 代理在对话环境中做同样的事情一样。

在 AI 代理的上下文中,可以通过指导代理的推理过程将提示策略纳入任务中。

例如,思维链提示可能会指示:

列出解决用户问题所涉及的步骤,并解释每个操作背后的推理。

记忆

AI 代理中的记忆功能与支持工程师如何访问历史数据以提供更好的服务非常相似。在现实世界中,当支持工程师收到客户的询问时,他们可以根据客户 ID 查找过去的互动,并使用工单 ID 访问特定于事件的数据。这种历史背景可以帮助工程师了解以前的问题、解决方案和客户的偏好,从而提供更明智、个性化的支持。同样,AI 代理依靠记忆来回忆过去的互动和相关信息,以便准确有效地做出响应,尤其是在正在进行的对话或后续对话中。

像向量数据库这样的技术通过使用嵌入来匹配上下文相似的信息,实时存储和检索相关数据点,从而促进了记忆。

在 AI 代理生态系统中,记忆分为短期和长期功能。短期记忆允许代理在会话中保持上下文,例如回忆对话早期部分的细节。像向量数据库这样的技术通过使用嵌入来匹配上下文相似的信息,实时存储和检索相关数据点,从而促进了这一点。对于长期记忆,传统数据库存储代理可以在多个会话中引用的历史数据,从而确保跨时间的服务连续性。就像支持工程师会参考客户过去的工单一样,AI 中的长期记忆有助于维护对先前互动和结果的了解。

例如,在实践中,当 AI 支持代理处理客户查询时,它可能会使用向量数据库来回忆对话早期部分的细节,例如提到的特定产品问题。同时,代理可以访问长期记忆,使用传统数据库根据客户 ID 检索历史记录,显示过去的购买或技术问题。具体的实现可能如下所示:“客户在两个月前在工单 #12345 下报告了类似的产品问题。以下是该解决方案的摘要,我现在可以在此基础上解决当前的问题。”短期记忆和长期记忆的结合使代理能够提供更加无缝、个性化的支持。

工具

正如支持工程师利用他们的技能与 CRM、ERP 或任何内部业务线应用程序等各种系统进行交互以完成任务一样,AI 代理也依赖工具来增强其功能并更有效地解决问题。支持工程师可以访问 CRM 系统以检索客户详细信息,或使用 ERP 系统检查产品可用性或管理订单。这些工具对于完成他们的任务至关重要,为工程师提供了满足客户请求所需的资源。同样,AI 代理需要能够访问特定的工具或功能,以处理超出简单基于文本的交互的复杂任务。

正如支持工程师必须熟练地浏览各种系统一样,AI 代理也可以通过声明的方式定义对工具的访问权限。

在人工智能的背景下,这是通过函数调用和工具调用来实现的,代理可以调用外部系统或 API 来执行特定任务。就像支持工程师必须熟练地浏览各种系统一样,人工智能代理可以通过声明的方式定义对工具的访问权限,使其能够执行从外部源检索数据、执行命令或与第三方服务交互等任务。这些工具在代理定义时提供,确保代理能够超越预定义的响应。工具调用至关重要,因为它允许代理扩展其功能,使其能够与外部系统动态交互,以生成更准确、更符合上下文的响应。

例如,在人工智能支持代理的任务是更新客户的运输信息的情况下,代理可以使用工具调用与公司的 ERP 系统进行交互。提示可能如下所示:访问 ERP 系统,将订单 {order_id} 的运输详细信息更新为客户提供的新地址

此操作将使用代理定义中以声明方式提供的工具来触发,使代理能够无缝地与内部和外部的外部系统进行交互。

工具调用使人工智能代理能够从被动响应者转变为主动参与者,使其响应具有可操作性,并与现实世界系统紧密集成。同样重要的是要了解,将人工纳入循环也是经常提供给人工智能代理的一种工具。此过程可确保代理升级或让人工参与以继续工作流程。

委派

在现实场景中,高级支持工程师可能会监督一个初级工程师团队,根据手头问题的复杂性或专业性委派任务。如果工作量过大,高级工程师可以将任务分配给更适合处理特定问题的其他团队成员。这种委派使团队能够更高效地运作,确保任务由合适的人员完成,并使高级工程师能够专注于高级职责。同样,人工智能代理也可以从将任务委派给具有专业知识或能力的其他代理的能力中受益,从而使工作流程更高效、更集中。

正如高级工程师可以管理团队一样,人工智能代理也可以定义为能够将特定任务委派给其他代理。

在人工智能中,委派是通过注册多个代理来实现的,允许一个代理根据需求将任务传递给另一个代理。正如高级工程师可以管理团队一样,人工智能代理也可以定义为能够将特定任务委派给其他代理。这通常在代理定义期间提供,系统会识别哪些代理具有执行某些任务的技能。委派是人工智能代理的一项强大属性,使其能够与其他代理协作解决复杂的多方面问题。这可确保最称职的代理负责每项任务,从而提高系统的整体性能和准确性。

例如,在客户支持环境中,处理有关软件错误的技术查询的人工智能代理可能会认识到,专门的人工智能代理更适合解决该问题。提示可能如下所示:此问题涉及对代码库的深入技术分析。将任务委派给“技术调试代理”,并请求为客户提供详细报告

通过将任务委派给具有适当技能的其他代理,初始人工智能代理可确保客户收到高质量、准确的响应。这种委派能力是在代理设置期间定义的,并且允许采用更灵活、更高效的方法来处理复杂的工作流程。

结论

本文探讨了人工智能代理的剖析,将其关键属性与传统工作角色进行了比较。从角色和指令到任务和委派,人工智能代理的结构与客户支持环境中的人工工作流程非常相似。本文还介绍了基本方面,例如记忆、工具和委派,强调了人工智能代理推理、计划和与其他代理协作的能力的重要性。

本系列的后续文章将重点介绍实际实施,应用这些概念从头开始构建真实的代理工作流程。请继续关注。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注