AI Agent界的10个「绝世武功」:从入门到落地的实用设计模式

关键词

AI Agent设计模式、多Agent协作、ReAct、Plan-and-Execute、AutoGPT变种、Few-Shot Agent、记忆增强Agent、角色导向Agent、任务分解Agent、工具调用Agent、安全控制Agent


摘要

从ChatGPT的单轮对话到AutoGPT的自主探索,再到现在落地于企业的智能客服、智能办公助手、金融风控预警系统,Agent(智能体) 正在从「实验室玩具」变成「数字生产力」。但Agent开发绝不是把大模型+联网搜索+计算器随便堆在一起就行——就像写代码需要设计模式(比如单例、工厂、观察者)来保证可扩展性、可维护性和鲁棒性,Agent开发同样有一套沉淀下来的「思维框架」和「最佳实践」,我们称之为「Agent设计模式」。

这篇文章将像武侠小说讲绝世武功一样,拆解我在过去2年Agent开发实战中最喜欢、最实用的10个核心设计模式

  1. 从「试错式探索」到「可控式推理」的ReAct模式
  2. 把「复杂任务」拆成「简单步骤」再逐个执行的Plan-and-Execute模式
  3. 适合新手入门但潜力巨大的Few-Shot Few-Shot Agent模式(双重Few-Shot)
  4. 让Agent「记住过去」「学习经验」的长期记忆+短期工作记忆增强模式
  5. 赋予Agent「明确身份、性格、专业知识」的角色导向Agent模式
  6. 复杂任务交给「专家团队」而非「全能选手」的多Agent协作之分层决策模式
  7. 多Agent协作中「各司其职、有序沟通」的多Agent协作之消息队列模式
  8. 防止Agent「胡作非为」「泄露隐私」的安全控制Agent模式
  9. 让Agent「能操作Excel、发邮件、订机票」的多工具聚合+工具选择优化模式
  10. 从「失败案例中吸取教训」的自我反思Agent模式

每个模式我都会:

  • 武侠类比/生活场景比喻讲清楚「是什么」
  • Mermaid流程图/ER图/架构图讲清楚「怎么工作」
  • Python+LangChain v0.3.x写一段「可运行的极简代码」(不是玩具级的演示,是能直接用到项目里的原型)
  • 真实落地案例讲清楚「适合什么场景」「避坑指南是什么」
  • 最后用核心属性对比表把10个模式放在一起,帮你快速选对模式

这篇文章适合所有想入门或进阶Agent开发的开发者、产品经理、技术负责人——哪怕你是第一次接触LangChain,只要跟着一步步走,也能写出第一个能用的Agent。全文约12000字,建议收藏后慢慢读,配合代码练习效果更佳!


第一章 背景介绍:为什么我们需要Agent设计模式?

核心概念

本章的核心概念是:Agent开发的痛点设计模式在Agent开发中的作用


问题背景

1.1.1 Agent的爆发:从ChatGPT到「数字员工」

2022年11月ChatGPT发布,开启了通用人工智能(AGI)的「序章」;2023年3月AutoGPT发布,第一次让普通用户看到了「Agent能自主完成任务」的可能性——比如搜索最新的AI新闻、写一篇2000字的分析报告、甚至用Python代码修复自己的bug;2023年下半年到2024年,Agent开始从C端的「玩具」落地到B端的「数字生产力工具」

  • 电商行业:用Agent做智能选品、智能客服、智能物流调度;
  • 金融行业:用Agent做金融情报收集、股票分析、风控预警;
  • 教育行业:用Agent做个性化学习助手、作文批改、编程助教;
  • 企业内部:用Agent做智能文档整理、会议纪要生成、代码审查、运维告警处理。

根据Gartner的预测,到2027年,全球将有超过70%的企业使用3个以上的Agent来完成日常工作——Agent已经成为AI应用落地的「核心载体」。


1.1.2 Agent开发的「三大痛点」

但Agent开发远没有想象中那么简单——在我过去2年的实战中,见过太多项目「初期很美好,中期走偏了,后期烂尾了」,总结下来主要有三大痛点

痛点1:「全能选手」的幻觉

很多新手开发者一开始都会想:「我要做一个能解决所有问题的超级Agent!」——但实际上,没有任何一个大模型(哪怕是GPT-4o、Claude 3.5 Sonnet)是真正的「全能选手」

  • 大模型没有「实时信息」——比如问GPT-4o「今天的上证指数是多少?」,它只会回答「我没有实时数据访问权限」;
  • 大模型没有「精确计算能力」——比如问它「3.1415926 × 2.7182818 × 1000000 ÷ 7」,它可能会给你一个近似值,但如果是做金融风控的精确计算,这个近似值就会带来巨大的风险;
  • 大模型没有「操作外部系统的能力」——比如问它「帮我给张总发一封邮件,主题是‘今天的会议推迟到下午3点’」,它只会给你写一封邮件的模板,但不会真的登录你的邮箱发送;
  • 大模型经常「胡言乱语」(专业术语叫「幻觉」)——比如问它「2024年诺贝尔物理学奖得主是谁?」(假设现在还没公布),它可能会编一个假名字出来。
痛点2:「自主探索」的不可控

AutoGPT的核心逻辑是「自主探索」——给它一个目标,它会自己思考「下一步该做什么」「用什么工具」「怎么验证结果」,直到目标完成。但「自主探索」在企业级场景中是绝对不可接受的

  • 它可能会「泄露隐私」——比如为了写一篇分析报告,它会自动登录你的企业网盘,下载所有相关的机密文档;
  • 它可能会「浪费资源」——比如为了搜索一条新闻,它会连续调用几十次API,花掉几百块钱;
  • 它可能会「做出错误的决策」——比如为了完成「股票收益最大化」的目标,它可能会把你的所有钱都投入到一只高风险的股票里;
  • 它可能会「卡在循环里出不来」——比如它会先搜索「什么是AI Agent」,然后再搜索「AI Agent的定义」,接着又搜索「AI Agent是什么意思」,无限循环。
痛点3:「代码混乱」的不可维护

很多新手开发者写Agent代码时,都是「想到哪写到哪」——把大模型调用、工具调用、记忆处理、逻辑判断都堆在一个Python文件里,可能一开始只有几百行代码,还能看懂,但过了几个月,代码变成了几千行甚至几万行,连自己都看不懂了,更别说维护和升级了:

  • 比如你想换一个大模型(从GPT-4o换成Claude 3.5 Sonnet),你需要把所有调用大模型的地方都改一遍;
  • 比如你想加一个新工具(从「联网搜索」变成「联网搜索+天气预报+股票查询」),你需要把所有工具选择的逻辑都改一遍;
  • 比如你想加一个安全控制(比如不能下载企业网盘的机密文档),你需要把所有逻辑判断的地方都插一段代码进去。

问题解决:Agent设计模式的「三大作用」

设计模式最早是由GoF(Gang of Four,四人帮)在1994年出版的《设计模式:可复用面向对象软件的基础》一书中提出的——它是「在软件设计中针对特定问题的可复用解决方案」。同样,Agent设计模式就是「在Agent开发中针对特定问题的可复用思维框架和最佳实践」

Agent设计模式的核心作用有三个:

作用1:解决「全能选手的幻觉」——让Agent「做自己擅长的事」

通过设计模式,我们可以把「复杂的任务」拆成「简单的步骤」,把「全能的目标」拆成「多个专业的子目标」,让不同的Agent(或不同的模块)「做自己擅长的事」——比如让「搜索专家Agent」负责搜索实时信息,让「计算专家Agent」负责精确计算,让「邮件专家Agent」负责发送邮件,让「验证专家Agent」负责验证结果是否正确。

作用2:解决「自主探索的不可控」——让Agent「在规则内做事」

通过设计模式,我们可以给Agent设定「明确的规则」「明确的边界」「明确的目标」,让Agent「在规则内自主探索」,而不是「无限制的自主探索」——比如设定「最多调用10次API」「只能访问公开的网站」「不能下载超过10MB的文档」「每一步都要验证结果」。

作用3:解决「代码混乱的不可维护」——让Agent「代码结构清晰、可复用、可扩展」

通过设计模式,我们可以把Agent代码「模块化」「分层化」「解耦化」——比如把「大模型调用」封装成一个模块,把「工具调用」封装成一个模块,把「记忆处理」封装成一个模块,把「逻辑判断」封装成一个模块,模块之间通过明确的接口进行通信,这样你想换一个大模型、加一个新工具、加一个安全控制,都只需要修改对应的模块,而不需要修改整个代码库。


目标读者

这篇文章适合以下三类人群:

  1. Agent开发新手:没有接触过LangChain或Agent开发,想从「零基础」入门的开发者;
  2. Agent开发进阶者:已经写过一些简单的Agent,但遇到了「幻觉多」「不可控」「代码乱」的问题,想进一步提升的开发者;
  3. 产品经理/技术负责人:想了解Agent开发的「最佳实践」,想规划Agent产品的「技术架构」的产品经理或技术负责人。

章节核心要素总结

核心要素 内容
核心概念 Agent开发的痛点、设计模式在Agent开发中的作用
问题背景 Agent的爆发、Agent开发的三大痛点(全能选手的幻觉、自主探索的不可控、代码混乱的不可维护)
问题解决 Agent设计模式的三大作用(解决幻觉、解决不可控、解决不可维护)
目标读者 Agent开发新手、进阶者、产品经理/技术负责人

第二章 核心概念解析:什么是Agent?Agent的「五脏六腑」是什么?

核心概念

本章的核心概念是:Agent的定义Agent的核心组成模块(大脑、感知器、效应器、记忆系统、工具库)、Agent的核心属性对比(自主决策能力、记忆能力、工具使用能力、协作能力、安全能力)、Agent的ER实体关系图Agent的交互关系图


问题背景

在讲Agent设计模式之前,我们必须先搞清楚「什么是Agent」——如果连Agent的定义都不清楚,那设计模式就成了「无源之水、无本之木」。


问题描述

什么是Agent?Agent的核心组成模块是什么?不同类型的Agent有什么区别?


问题解决:一步步解析Agent的「定义」和「五脏六腑」

2.4.1 什么是Agent?(武侠类比+学术定义)
武侠类比

我们可以把Agent想象成武侠小说里的「侠客」

  • 侠客的「大脑」:就是Agent的「大语言模型(LLM)」——负责思考、推理、决策;
  • 侠客的「眼睛、耳朵」:就是Agent的「感知器」——负责接收外部信息(比如用户的提问、实时的新闻、天气的变化);
  • 侠客的「手、脚、武器」:就是Agent的「效应器」和「工具库」——负责执行决策(比如发邮件、写代码、搜索信息、计算数学题);
  • 侠客的「记忆」:就是Agent的「记忆系统」——负责记住「过去的经历」(比如和用户的对话历史)、「学到的经验」(比如上次做类似任务的方法)、「外部的知识」(比如维基百科的内容);
  • 侠客的「江湖规矩」:就是Agent的「安全控制模块」——负责约束侠客的行为(比如不能滥杀无辜、不能偷东西)。
学术定义

在人工智能领域,Agent的经典定义是由Russell和Norvig在《人工智能:一种现代的方法》一书中提出的:

Agent是一个能够通过传感器感知环境,并通过效应器作用于环境的实体

这个定义虽然很简洁,但涵盖了Agent的「三大核心特征」:

  1. 感知能力:能够接收外部环境的信息;
  2. 决策能力:能够根据感知到的信息做出决策;
  3. 行动能力:能够根据决策作用于外部环境。

但在今天的「大模型时代」,Agent的定义已经被「扩展」了——我们可以把「大模型时代的Agent」定义为:

大模型时代的Agent是一个以大语言模型(LLM)为核心大脑,结合了感知器、效应器、记忆系统、工具库、安全控制模块的,能够自主或半自主地完成特定目标的智能实体

这个扩展后的定义增加了「大语言模型为核心大脑」「自主或半自主完成特定目标」「记忆系统」「工具库」「安全控制模块」这几个关键要素——这也是今天我们开发Agent时必须考虑的。


2.4.2 Agent的「五脏六腑」:核心组成模块(Mermaid架构图)

根据扩展后的定义,大模型时代的Agent主要由6个核心组成模块构成——我们可以用Mermaid架构图把它们画出来:

Agent核心系统

外部环境

提问/指令/反馈

实时数据

历史数据/知识

执行结果

API调用请求

数据库查询/写入请求

感知到的信息

历史对话/经验/知识

思考/推理/决策

安全验证通过/拒绝

工具调用请求

工具返回结果

执行指令

更新记忆请求

用户

外部API/系统
(比如天气API、邮箱系统、企业网盘)

外部数据库
(比如维基百科、金融数据库)

感知器
Sensor

核心大脑
LLM

记忆系统
Memory

工具库
Toolkit

安全控制模块
Safety Controller

效应器
Actuator

下面我们来逐个解释这6个核心组成模块:

模块1:感知器(Sensor)

感知器是Agent的「眼睛、耳朵、鼻子」——负责接收外部环境的信息

感知器的输入来源主要有三个:

  1. 用户:比如用户的提问、指令、反馈;
  2. 外部API/系统:比如天气API、股票API、邮箱系统、企业网盘、钉钉/企业微信;
  3. 外部数据库:比如维基百科、金融数据库、企业内部知识库、用户历史行为数据库。

感知器的输出是「结构化的感知信息」——比如把用户的自然语言提问转换成「JSON格式的结构化指令」,把外部API返回的「非结构化的HTML」转换成「结构化的JSON」。

模块2:核心大脑(LLM)

核心大脑是Agent的「心脏、大脑中枢」——负责思考、推理、决策

核心大脑的输入来源主要有三个:

  1. 感知器:结构化的感知信息;
  2. 记忆系统:历史对话、经验、知识;
  3. 工具库:工具返回的结果。

核心大脑的输出主要有五个:

  1. 思考/推理过程:比如「我需要先搜索今天的上证指数,然后再计算它的涨跌幅,最后给用户一个分析报告」;
  2. 安全验证请求:把自己的决策发给安全控制模块,验证是否符合规则;
  3. 工具调用请求:比如「调用‘联网搜索’工具,搜索‘2024年10月10日的上证指数’」;
  4. 执行指令:比如「调用效应器,给用户发一个‘搜索完成’的消息」;
  5. 更新记忆请求:比如「把今天的对话历史、搜索到的上证指数、分析报告都存到记忆系统里」。

今天我们开发Agent时,常用的核心大脑有:

  • OpenAI系列:GPT-4o、GPT-4o Mini、GPT-4 Turbo、GPT-3.5 Turbo;
  • Anthropic系列:Claude 3.5 Sonnet、Claude 3 Opus、Claude 3 Haiku;
  • 谷歌系列:Gemini 1.5 Pro、Gemini 1.5 Flash;
  • 国产系列:通义千问4.0、文心一言4.0、智谱清言GLM-4、讯飞星火4.0。
模块3:记忆系统(Memory)

记忆系统是Agent的「大脑皮层、海马体、硬盘」——负责记住「过去的经历」「学到的经验」「外部的知识」。

记忆系统一般分为三层(就像人类的记忆一样):

  1. 短期工作记忆(Short-Term Working Memory):就像人类的「大脑皮层」——负责记住「当前正在处理的信息」,比如「当前的对话轮次」「上一步的工具返回结果」,容量很小(一般只有几十到几百个token),保存时间很短(一般只有当前的对话结束就会清空);
  2. 长期对话记忆(Long-Term Conversation Memory):就像人类的「海马体」——负责记住「和用户的所有对话历史」,容量较大(一般可以存储几千到几万个token),保存时间较长(一般可以保存几天到几个月);
  3. 长期知识库记忆(Long-Term Knowledge Base Memory):就像人类的「硬盘」——负责记住「外部的知识」,比如维基百科的内容、企业内部的文档、用户的历史行为数据,容量非常大(可以存储几百万到几千万个token),保存时间非常长(可以永久保存)。

长期知识库记忆一般需要配合向量数据库(Vector Database) 使用——比如把外部知识切成「小片段(Chunk)」,然后用「嵌入模型(Embedding Model)」把每个小片段转换成「向量(Vector)」,存到向量数据库里;当Agent需要用到外部知识时,就把用户的提问转换成向量,然后在向量数据库里搜索「最相似的几个小片段」,把它们作为「上下文(Context)」发给核心大脑。

今天我们开发Agent时,常用的向量数据库有:

  • 开源系列:ChromaDB、FAISS、Pinecone的开源替代品Qdrant、Weaviate;
  • 托管系列:Pinecone、Weaviate Cloud、Zilliz Cloud(基于Milvus)。

常用的嵌入模型有:

  • OpenAI系列:text-embedding-3-small、text-embedding-3-large、text-embedding-ada-002;
  • Sentence-Transformers系列:all-MiniLM-L6-v2、all-mpnet-base-v2;
  • 国产系列:通义千问的嵌入模型、文心一言的嵌入模型、智谱清言的嵌入模型。
模块4:工具库(Toolkit)

工具库是Agent的「武器库、工具箱」——负责给Agent提供「操作外部环境的能力」。

工具库中的工具可以分为三类

  1. 内置工具:大模型或Agent框架自带的工具,比如「计算器」「代码解释器」;
  2. 第三方工具:通过API接入的外部工具,比如「联网搜索(Serper、Google Search API)」「天气查询(OpenWeatherMap)」「股票查询(Alpha Vantage)」「邮件发送(SendGrid)」「钉钉/企业微信消息发送」;
  3. 自定义工具:开发者自己写的工具,比如「企业网盘文档下载」「企业内部知识库查询」「Excel表格处理」「Python代码执行(沙箱环境)」。

今天我们开发Agent时,常用的Agent框架都有「工具封装库」——比如LangChain的LangChain Tools、LlamaIndex的LlamaHub,可以帮助我们快速接入几百种第三方工具。

模块5:安全控制模块(Safety Controller)

安全控制模块是Agent的「紧箍咒、江湖规矩、法律」——负责约束Agent的行为,防止Agent「胡作非为」「泄露隐私」「浪费资源」。

安全控制模块的功能主要有五个:

  1. 输入过滤:过滤用户的「恶意提问」「敏感提问」(比如「怎么制作炸弹」「怎么破解别人的密码」);
  2. 输出过滤:过滤核心大脑的「恶意输出」「敏感输出」「幻觉输出」;
  3. 工具调用控制:限制Agent「调用哪些工具」「调用工具的次数」「调用工具的参数」(比如只能调用「公开的联网搜索工具」,最多调用10次,不能搜索敏感关键词);
  4. 数据访问控制:限制Agent「访问哪些数据」「访问数据的权限」(比如只能访问企业网盘的「公开文件夹」,不能访问「机密文件夹」);
  5. 行为审计:记录Agent的「所有行为」(比如用户的提问、核心大脑的思考过程、工具调用的请求和结果、执行指令的内容),方便后续的「审计」和「调试」。

今天我们开发Agent时,常用的安全控制工具/框架有:

  • OpenAI Moderation API:用于输入和输出的内容过滤;
  • LangChain的Safety Chain:用于Agent的安全控制;
  • NVIDIA NeMo Guardrails:用于Agent的安全控制和行为约束;
  • 自定义的沙箱环境:用于执行Python代码,防止Agent「破坏系统」。
模块6:效应器(Actuator)

效应器是Agent的「手、脚、嘴巴」——负责执行核心大脑的决策,作用于外部环境。

效应器的输出主要有三个:

  1. 给用户的反馈:比如自然语言的回答、图表、视频;
  2. 给外部API/系统的请求:比如调用天气API、调用邮箱系统、调用钉钉/企业微信;
  3. 给外部数据库的请求:比如查询金融数据库、写入企业内部知识库。

2.4.3 Agent的核心属性对比(Markdown表格)

不同类型的Agent有不同的「核心属性」——我们可以用以下的「核心属性对比表」来区分它们:

核心属性 单轮对话Agent
(比如普通的ChatGPT)
多轮对话Agent
(比如有短期记忆的ChatGPT)
工具调用Agent
(比如有联网搜索的ChatGPT)
ReAct Agent
(结合推理和行动的Agent)
Plan-and-Execute Agent
(先计划后执行的Agent)
多Agent协作系统
(比如AutoGPT的变种)
自我反思Agent
(能从失败中吸取教训的Agent)
自主决策能力 ★☆☆☆☆
(没有自主决策,只能回答用户的提问)
★☆☆☆☆
(没有自主决策,只能回答用户的提问)
★★☆☆☆
(有一定的自主决策,能选择是否调用工具)
★★★☆☆
(有较强的自主决策,能思考→行动→观察→思考循环)
★★★☆☆
(有较强的自主决策,能先制定计划,再逐个执行步骤)
★★★★☆
(有很强的自主决策,多个Agent能分工协作)
★★★★★
(有最强的自主决策,能从失败中吸取教训,调整策略)
记忆能力 ★☆☆☆☆
(没有记忆,只能处理当前的单轮对话)
★★☆☆☆
(有短期对话记忆,能处理多轮对话)
★★☆☆☆
(有短期对话记忆,能处理多轮对话)
★★★☆☆
(有短期对话记忆+短期工作记忆,能记住思考过程和行动结果)
★★★☆☆
(有短期对话记忆+短期工作记忆,能记住计划和执行步骤)
★★★★☆
(有短期对话记忆+短期工作记忆+长期知识库记忆,多个Agent能共享记忆)
★★★★★
(有短期对话记忆+短期工作记忆+长期知识库记忆+长期经验记忆,能记住失败的教训)
工具使用能力 ★☆☆☆☆
(没有工具使用能力,只能用内置的知识)
★☆☆☆☆
(没有工具使用能力,只能用内置的知识)
★★★★☆
(有很强的工具使用能力,能选择和调用多个工具)
★★★★☆
(有很强的工具使用能力,能在思考→行动→观察→思考循环中调用工具)
★★★★☆
(有很强的工具使用能力,能在执行步骤中调用工具)
★★★★★
(有最强的工具使用能力,多个Agent能分工使用不同的工具)
★★★★★
(有最强的工具使用能力,能根据经验调整工具的使用方式)
协作能力 ★☆☆☆☆
(没有协作能力,只能单独工作)
★☆☆☆☆
(没有协作能力,只能单独工作)
★☆☆☆☆
(没有协作能力,只能单独工作)
★☆☆☆☆
(没有协作能力,只能单独工作)
★★☆☆☆
(有一定的协作能力,计划模块和执行模块能协作)
★★★★★
(有最强的协作能力,多个Agent能分工协作、有序沟通)
★★★★☆
(有很强的协作能力,能和其他Agent或用户协作调整策略)
安全能力 ★★☆☆☆
(有一定的安全能力,只能靠大模型的内置过滤)
★★☆☆☆
(有一定的安全能力,只能靠大模型的内置过滤)
★★★☆☆
(有较强的安全能力,能靠工具调用控制)
★★★☆☆
(有较强的安全能力,能靠工具调用控制和思考过程监控)
★★★★☆
(有很强的安全能力,能靠计划审核和工具调用控制)
★★★★☆
(有很强的安全能力,能靠安全控制Agent)
★★★★★
(有最强的安全能力,能靠安全控制Agent和自我反思)
鲁棒性 ★☆☆☆☆
(鲁棒性很差,很容易产生幻觉)
★★☆☆☆
(鲁棒性一般,多轮对话后容易产生幻觉)
★★★☆☆
(鲁棒性较强,能通过工具验证结果)
★★★★☆
(鲁棒性很强,能通过思考→行动→观察→思考循环验证结果)
★★★★☆
(鲁棒性很强,能通过计划审核和步骤验证)
★★★★★
(鲁棒性最强,能通过多个Agent的交叉验证)
★★★★★
(鲁棒性最强,能通过自我反思调整策略)
可扩展性 ★★★☆☆
(可扩展性较强,代码结构简单)
★★★☆☆
(可扩展性较强,代码结构简单)
★★★☆☆
(可扩展性较强,代码结构比较清晰)
★★★★☆
(可扩展性很强,代码结构清晰)
★★★★☆
(可扩展性很强,代码结构清晰,计划和执行分离)
★★★★★
(可扩展性最强,模块化程度高,容易添加新的Agent)
★★★★★
(可扩展性最强,模块化程度高,容易添加新的反思模块)
开发难度 ★☆☆☆☆
(开发难度很低,只需要调用大模型API)
★★☆☆☆
(开发难度较低,只需要调用大模型API+短期记忆)
★★★☆☆
(开发难度中等,需要调用大模型API+短期记忆+工具库)
★★★★☆
(开发难度较高,需要调用大模型API+短期记忆+工具库+ReAct逻辑)
★★★★☆
(开发难度较高,需要调用大模型API+短期记忆+工具库+Plan-and-Execute逻辑)
★★★★★
(开发难度很高,需要调用大模型API+记忆系统+工具库+多Agent协作逻辑)
★★★★★
(开发难度很高,需要调用大模型API+记忆系统+工具库+自我反思逻辑)

2.4.4 Agent的ER实体关系图(Mermaid ER图)

为了更清楚地理解Agent的「核心组成模块」之间的「实体关系」,我们可以用Mermaid ER图把它们画出来:

has

contains

may_have

may_have

uses

may_call

may_access

stores

includes

includes

includes

uses

stores_in

interacts_with

manages

has

has

has

has

has

has

requests_verification_from

requests_tool_use_from

reads_from_and_writes_to

receives_input_from

receives_input_from

receives_input_from

sends_output_to

sends_request_to

sends_request_to

USER

CONVERSATION

MESSAGE

THOUGHT

ACTION

TOOL

EXTERNAL_API

EXTERNAL_DATABASE

MEMORY

SHORT_TERM_WORKING_MEMORY

LONG_TERM_CONVERSATION_MEMORY

LONG_TERM_KNOWLEDGE_BASE_MEMORY

EMBEDDING_MODEL

VECTOR_DATABASE

AGENT

SENSOR

BRAIN

TOOLKIT

SAFETY_CONTROLLER

ACTUATOR


2.4.5 Agent的交互关系图(Mermaid Sequence Diagram)

为了更清楚地理解Agent的「核心组成模块」之间的「交互过程」,我们可以用Mermaid Sequence Diagram(时序图)把一个「简单的工具调用Agent的交互过程」画出来——比如用户问「今天的上证指数是多少?」,Agent调用「联网搜索工具」搜索答案,然后返回给用户:

效应器 记忆系统 联网搜索工具(Serper) 工具库 安全控制模块 核心大脑(LLM) 感知器 用户 效应器 记忆系统 联网搜索工具(Serper) 工具库 安全控制模块 核心大脑(LLM) 感知器 用户 把自然语言提问 转换成结构化信息 读取记忆系统中的 短期对话记忆 思考:「我没有实时数据访问权限, 需要调用联网搜索工具搜索‘2024年10月10日的上证指数’」 验证: 1. 是否为敏感关键词?否 2. 是否超过工具调用次数限制?否 3. 是否允许调用联网搜索工具?是 调用Serper API 搜索相关信息 思考:「我已经得到了搜索结果, 现在需要把它整理成自然语言回答给用户」 把核心大脑的回答 转换成自然语言 提问:「今天的上证指数是多少?」 发送结构化感知信息 读取短期对话记忆 返回短期对话记忆(空,因为是第一次对话) 发送安全验证请求: 「调用联网搜索工具,搜索‘2024年10月10日的上证指数’」 返回安全验证通过 发送工具调用请求: 工具名称:Serper 参数:query=「2024年10月10日的上证指数」 转发工具调用请求 返回搜索结果: 「2024年10月10日,上证指数收盘报3050.12点, 涨跌幅为+0.52%,成交量为3500亿元」 返回工具调用结果 发送更新记忆请求: 1. 更新短期工作记忆:搜索结果 2. 更新长期对话记忆:用户的提问、工具调用结果、核心大脑的思考过程 返回记忆更新成功 发送执行指令: 「给用户返回自然语言回答」 返回回答: 「2024年10月10日,上证指数收盘报3050.12点, 涨跌幅为+0.52%,成交量为3500亿元」

边界与外延

2.5.1 Agent与Chatbot的区别

很多人会把「Agent」和「Chatbot(聊天机器人)」混淆——其实它们是两个完全不同的概念

对比项 Chatbot(聊天机器人) Agent(智能体)
核心目标 回答用户的提问、完成简单的对话任务 自主或半自主地完成特定的复杂目标
核心能力 自然语言理解(NLU)、自然语言生成(NLG) 自然语言理解(NLU)、自然语言生成(NLG)、自主决策工具使用记忆协作
典型例子 普通的客服聊天机器人、FAQ聊天机器人 AutoGPT、LangChain的ReAct Agent、企业内部的智能文档整理Agent
2.5.2 Agent的外延:从「单Agent」到「多Agent系统」

Agent的外延很广——从「简单的单轮对话Agent」到「复杂的多Agent系统」:

  1. 单Agent系统:只有一个Agent,单独完成任务——比如有联网搜索的ChatGPT、LangChain的ReAct Agent;
  2. 多Agent系统(Multi-Agent System, MAS):有多个Agent,分工协作完成任务——比如AutoGPT的变种(有「计划Agent」「执行Agent」「验证Agent」「反思Agent」)、企业内部的「智能办公助手系统」(有「日程管理Agent」「会议纪要生成Agent」「文档整理Agent」「邮件处理Agent」)。

本章小结

在这一章中,我们主要讲了以下几个内容:

  1. 什么是Agent:用「武侠类比」和「学术定义」讲清楚了Agent的概念——大模型时代的Agent是一个以大语言模型为核心大脑,结合了感知器、效应器、记忆系统、工具库、安全控制模块的,能够自主或半自主地完成特定目标的智能实体;
  2. Agent的「五脏六腑」:用「Mermaid架构图」逐个解释了Agent的6个核心组成模块——感知器、核心大脑、记忆系统、工具库、安全控制模块、效应器;
  3. Agent的核心属性对比:用「Markdown表格」对比了8种不同类型的Agent的核心属性——自主决策能力、记忆能力、工具使用能力、协作能力、安全能力、鲁棒性、可扩展性、开发难度;
  4. Agent的ER实体关系图和交互关系图:用「Mermaid ER图」讲清楚了Agent的核心组成模块之间的实体关系,用「Mermaid Sequence Diagram」讲清楚了一个简单的工具调用Agent的交互过程;
  5. 边界与外延:讲清楚了Agent与Chatbot的区别,以及Agent的外延——从「单Agent」到「多Agent系统」。

下一章,我们将开始讲第一个Agent设计模式——ReAct模式,这是Agent开发中最基础、最实用、最经典的设计模式之一!

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐