AI智能体五大设计模式

AI智能体利用LLM通过巧妙的系统设计来积极实现其给定目标。本文探讨了五种基本设计模式,这些模式将LLM转变为能够进行推理、规划、采取行动和自主适应的AI智能体。

AI智能体五大设计模式
微信 ezpoda免费咨询:AI编程 | AI模型微调| AI私有化部署
AI工具导航 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo

大语言模型(LLM)是通用的AI系统,能够处理各种令人惊叹的任务。在正确的提示下,LLM可以编写代码、回答复杂问题、总结长文档并生成创意内容。

然而,LLM本质上是反应式的。它们响应提示,但缺乏实现复杂的长期目标的能力。这就是Agentic AI(智能体AI)的用武之地。

AI智能体利用LLM通过巧妙的系统设计来积极实现其给定目标。本文探讨了五种基本设计模式,这些模式将LLM转变为能够进行推理、规划、采取行动和自主适应的AI智能体。

1、什么是AI智能体?

AI智能体是为实现特定目标而设计的软件系统。与遵循固定脚本的基于规则的自动化软件不同,AI智能体将LLM的强大功能与额外能力相结合,能够更独立地工作并处理复杂的多步骤问题。可以将AI智能体视为一个以目标为导向的系统,它决定下一步做什么、采取行动并不断适应。

None

当给定一个目标或任务(通常基于用户查询)时,AI智能体可以使用LLM和外部工具来创建最终响应。图片由[1]提供

我们使用"智能体"(agentic)这个术语是因为这些系统可以以不同程度的自主性运行。与其将"智能体"视为一种绝对的二分类别,不如将智能体性(agenticness)视为一个连续谱。

智能体性定义:"一个系统在有限直接监督下,适应性地在复杂环境中实现复杂目标的程度" [2]

有些系统只有轻度的智能体性,需要大量人工输入和控制。而另一些系统则具有高度的智能体性,能够管理多步骤任务并在几乎没有人类监督的情况下做出决策。

2、反思:AI智能体如何自我批判并改进响应

反思模式将一个LLM的输出传递给另一个LLM(通常称为"评审者")进行审查。评审者可以是同一个LLM模型,也可以是不同的模型。评审者根据审查结果提供反馈,以帮助改进原始响应。

原始LLM随后可以利用这些反馈来修订其回答。这种审查和改进的过程可以自动重复多次以优化结果。

None

基本反思模式:评审者LLM审查生成器LLM的输出。根据评审者的反馈,生成器修订其响应。这个迭代过程持续进行,直到满足停止条件。图片由[1]提供

研究表明,反思比单步生成(无反馈)更一致地提高了任务性能[3]。通过审查和修订自己的输出,模型可以更有效地识别错误、更精确地遵循指令,并产生更高质量的响应,特别是对于复杂任务。

2.1 使用外部反馈改进LLM输出

当我们能够提供外部反馈时,反思尤其出色,这些反馈是模型自身无法获取的信息。例如,假设你正在使用LLM生成代码。与其接受第一个结果,你可以:

  • 运行生成的代码。
  • 捕获任何错误消息或测试失败。
  • 将这些信息反馈给LLM,以便它能再次尝试,这次避免这些错误。

引入真实世界的反馈(如执行结果)使AI变得更加可靠和实用。

3、工具使用:用外部系统扩展LLM能力

LLM功能强大,但它们有一个主要限制。它们只能"知道"其训练数据中包含的内容。它们无法访问实时信息,也无法自行执行计算或网页搜索等操作。

工具(也称为函数)解决了这个问题。它们将LLM连接到可以执行模型无法独自完成的任务的外部系统,从而扩展了LLM的能力。

以下是AI智能体常用的一些工具:

  • 网页搜索:用于在线查找最新信息。
  • 代码执行:例如,运行Python代码片段来分析数据。
  • RAG:在向量数据库中搜索文档或对话历史。
  • 数据库:例如,与SQL数据库交互。
  • 文件系统:用于浏览文件夹和读写文档。

LLM不会直接执行这些工具。相反,我们预先定义一组工具,并向LLM提供有关每个工具功能和使用方法的信息。每个工具由其模式定义,包括工具的名称、描述和参数。当LLM确定某个工具有助于回答问题或完成任务时,它会生成一个符合工具规范的结构化请求。

智能体软件应用程序接收该请求,运行工具,并将结果作为对话的一部分发送回LLM。然后,模型可以使用新信息来生成响应。

None

基于查询,AI智能体决定使用工具执行数学计算。借助计算器的结果,LLM可以更准确地回答查询。图片由[1]提供

与其默认授予LLM对所有工具的访问权限,更好的做法是根据具体目标限制可用工具的数量。这有助于降低复杂性并避免错误或不必要的工具使用。

代码执行在所有工具中尤为高效。与其为每种任务类型创建单独的工具,赋予AI智能体编写和运行代码的能力使其能够灵活地解决各种问题。例如,如果代码执行可用,就无需单独的计算器工具,因为模型可以简单地编写一个短程序来进行计算。

然而,允许AI运行代码存在风险。自动执行AI生成的代码可能导致意想不到的副作用。这就是为什么在受控的隔离沙箱环境中运行代码执行非常重要。

工具的特殊之处在于LLM关于其使用的决策能力。这赋予了AI智能体更高程度的自主性。例如,它可以选择只在需要执行精确数学计算时才使用计算器,或只在被问到无法回答的问题时才搜索网络。

要有效地使用工具,重要的是使用专门针对工具使用进行训练的LLM [4]。这些模型经过微调,能够在结构化的聊天格式中正确遵循工具规范。这种训练使它们能够识别工具有用的情况,并生成符合工具模式的请求。

3.1 模型上下文协议(MCP):连接LLM与工具的标准

工具极大地扩展了LLM的能力。模型上下文协议(MCP)是一个开放标准,定义了LLM如何连接到外部系统。如今,有许多符合MCP标准的工具可以集成到智能体AI系统中。例如,开源工具允许LLM与GitHub、Google Maps、Slack、SQL数据库、本地文件系统交互,甚至只是获取当前时间。

使用MCP的AI应用程序称为MCP主机。它可以访问MCP服务器提供的工具,MCP服务器与MCP客户端通信。这种设置建立了一对一的连接:客户端发送请求,服务器以工具和数据响应。MCP服务器可以在本地设备上运行,也可以在云端远程运行。

None

基于其规范的MCP架构可视化。作者根据[5]绘制

MCP服务器向LLM暴露三种主要类型的组件:

  • 工具:LLM可以调用的主动函数。
  • 资源:提供对有用信息的只读访问。示例包括文档内容、数据库模式或API文档,帮助模型理解其环境。
  • 提示:可重复使用的预定义提示模板,LLM可以用来产生一致有效的输出。

在智能体AI系统中,MCP为LLM提供了一种标准化的方法,通过与外部系统交互来访问现实世界的数据。这使得AI应用程序在实践中更加强大和实用。

3.2 智能体技能:指导LLM行为的可复用指令

智能体技能是扩展LLM能力的另一种方式。技能通常位于其自己的本地文件夹中,包含一个名为SKILL.md的文件。这个纯文本文件提供结构化的指令,教导智能体公司、领域或任务特定的行为。

技能文件必须包含以下三件事:

  1. 技能的名称
  2. 技能功能和使用时机的简短描述
  3. 技能的内容,包含智能体应遵循的实际指令、规则、示例或模板

根据给定任务选择技能后,智能体将相应的内容读入其上下文窗口,然后再生成响应。

例如,想象你在工作中使用智能体软件来帮助处理各种任务,包括写邮件。你的公司可能有员工需要遵循的特定邮件模板和写作风格。与其每次重复这些规则,不如将它们存储在技能文件中。

当智能体被要求撰写邮件时,它可以识别出存在相关技能,读取该技能的指令,然后根据你公司的标准撰写邮件。

在这个例子中,文件write-emails/SKILL.md可能如下所示:

---
name: write-emails
description: 公司邮件标准。
---
# 如何撰写邮件
## 写作风格
始终保持特别友好。

## 必需的邮件页脚
MyCompany
www.mycompany.example

虽然技能与工具相关,但它们的用途不同。工具是执行操作的外部软件程序,例如查询数据库并返回结果。而技能则是按需加载的可复用指令,用于指导LLM的行为。工具和技能可以一起使用。

4、规划:AI智能体如何分解复杂任务

在解决复杂问题时,人们通常不会试图一次做完所有事情。相反,他们会将事情分解成更小的步骤。这正是智能体AI中规划的全部意义所在。与其提供单一指令并期望最好的结果,我们允许AI提前思考。需要采取哪些步骤?按什么顺序?应该如何执行?

规划设计模式首先提示LLM为特定任务生成计划。这个计划通常是AI智能体将遵循的步骤列表。一旦计划准备就绪,智能体按顺序执行每个步骤。在每个阶段,LLM都会收到当前步骤和前一步骤的结果,以便它可以适当地响应并根据需要进行调整。

如果计划中的某些步骤彼此独立,它们可以并行执行。在最后合并这些步骤的结果可以显著加快整体过程。

None

智能体AI中的基本规划模式:LLM生成计划,然后逐步执行。图片由[1]提供

为了让内容简洁易懂,AI智能体的计划通常用JSON编写。与纯文本不同,JSON具有清晰的结构,使其更容易解析并可靠地执行每个步骤。每个步骤通常包含任务描述,以及必要时关于使用哪个工具的信息。

以下是AI智能体可能创建的关于给定主题撰写博客文章的简单三步计划示例:

  • 步骤1:使用"网页搜索"工具进行研究
  • 步骤2:根据研究撰写大纲
  • 步骤3:使用大纲和研究笔记撰写文章

然而,并非所有复杂任务都需要详细的计划。例如,在分析数据集时,让LLM直接编写和运行代码可能更高效。

编程语言提供了一种强大的结构化逻辑方式,支持循环重复任务、变量存储结果和函数组织复杂行为。在这些情况下,代码本身成为逐行执行的计划[6]。

5、多智能体:多个AI智能体如何协作解决复杂任务

在这第四种设计模式中,我们使用多个AI智能体构建系统,每个智能体都有特定的角色或专业领域。与人们在公司内协作类似,这些智能体通过将大型任务分解为更小、更易管理的部分来协同工作。

想象一个典型的工作场所,不同的专业人士处理不同的职责。例如,在软件开发团队中,一个人可能编写代码,另一个人可能测试,第三个人可能处理部署。多智能体AI系统运作方式类似。每个智能体被分配特定角色,并可以访问专为其角色量身定制的工具。

多智能体AI系统中的通信模式

在多智能体系统中有各种可能的通信模式。以下两种方法常用:

  1. 顺序聊天:智能体按预定义顺序工作。每个智能体完成其任务并将结果传递给下一个智能体。
  2. 层级聊天:管理者智能体监督其他智能体,并根据情况动态分配任务。
None

层级多智能体设计模式使用管理者来协调具有不同能力的不同智能体。图片由[1]提供

为了让这种设计模式良好运作,每个智能体应该有狭隘的、明确定义的角色。与其创建通用的"软件开发人员"智能体,更有效的方法是定义专门的智能体,如"Python后端开发人员"、"高级DevOps工程师"和"质量保证工程师"。然后可以给这些智能体分配指导其行为和关注任务的系统提示。

这些智能体可以使用相同的LLM或不同的LLM。例如,管理者智能体可以使用通用推理LLM,而开发人员智能体可以使用专门针对编码任务微调的LLM。

对于非常复杂的多步骤任务(如软件开发),研究表明多智能体应用优于单智能体应用[7]。然而,它们的高度自主性可能导致不可预测的结果和难以调试的系统。

6、人机协作:为AI智能体添加人类监督

虽然AI智能体可以以高度自主的方式运行,但让它们完全独立运行并不总是理想的选择。在许多现实世界的情况下,人类判断、监督和领域知识仍然是必要的。人机协作(HITL)是一种智能体设计模式,有意在关键时刻将人类输入集成到工作流程中。

考虑这个简单的例子:你使用购物智能体协助在线购物。你会交出信用卡并让智能体在不与你确认的情况下进行购买吗?可能不会。在完成交易之前,你会希望智能体暂停并要求你的明确批准。对于涉及财务、法律或安全影响的操作,HITL是必须的。

实现HITL的方法有很多。两种常见的交互设计是协作规划协作任务执行[8]。

6.1 协作规划:让人类审查和编辑计划

想象你是一位软件工程师,要求AI编码智能体"清理代码库"。智能体宽泛地解释这个请求,开始重构多个模块、重写文档并运行广泛的性能测试。经过数小时的计算和代码更改,你意识到智能体误解了你的意思:你只想要一致的格式和更清晰的注释。

协作规划将人类监督纳入智能体的规划过程。在AI智能体生成初始计划后,用户可以:

  • 直接编辑计划
  • 原样接受
  • 提供反馈让智能体修订

这种方法增加了透明度,并提高了智能体行动与用户目标一致的可能性。通过在执行前审查计划,用户可以防止浪费时间、不必要的计算和偏离目标的结果。

6.2 协作任务执行:人类和AI智能体协同工作

即使有周密的计划,执行过程中也可能出现意外情况。协作任务执行允许用户在智能体工作时保持参与。有两种主要的交互形式:

  1. 用户发起的干预:用户可以随时中断智能体以提供指导或纠正。例如,如果智能体开始偏离正确方向,用户可以立即重新引导它。
  2. 智能体发起的请求:智能体可以暂停并请求用户澄清或批准。一种实现方式是将人类视为智能体可以调用的可调用"工具"。另一种方法是将用户视为多智能体系统中的一个智能体,其中管理者LLM将任务委托给用户"智能体"。某些操作(如删除文件或进行不可逆更改)可能始终需要明确的人类批准。

协作规划和协作任务执行自然地融入智能体AI系统的规划工作流程中。将用户纳入循环使系统更可靠、更符合用户期望,并且操作更安全。

None

将HITL设计模式集成到智能体AI中:用户必须接受或编辑初始计划。在逐步执行过程中,用户可以随时中断,LLM可以请求人类反馈或批准。图片由[1]提供

7、结束语

本文介绍了反思、工具使用、规划、多智能体和人机协作设计模式。这些设计模式将反应式的LLM转变为能够自主推理、行动和适应的目标导向型AI智能体。

如果你使用智能体AI软件,你会注意到这些设计模式正在发挥作用。例如,Claude Code创建计划,生成子智能体来处理这些任务,并执行工具调用与外部系统交互(例如使用"网页搜索工具")。有时,它还会在复杂任务期间提出澄清性问题或请求确认。

如果你正在使用LangChain/LangGraph或CrewAI开发自己的智能体AI应用程序,你可以实现这些设计模式来创建更好的AI智能体。然而,在设计AI智能体时,最佳实践是从简单的工作流程开始,只在必要时增加复杂性。


原文链接:Agentic AI: The Five Design Patterns That Turn LLMs Into AI Agents

汇智网翻译整理,转载请标明出处