智能体|AI Agent 框架介绍

更新日期: 2026-03-06 阅读: 81 标签: Agent

AI Agent(智能体)的核心作用,就是通过和环境交互,更好地完成用户的指令和任务。一个合格的智能体需要具备哪些能力?这些能力会遇到什么困难?又有哪些解决办法?为了帮大家建立完整的Agent知识体系,本文围绕AI Agent框架,从三个核心方面展开介绍,内容通俗易懂,适合新手入门和开发者参考,同时符合搜索引擎收录标准,能帮助大家快速掌握Agent框架的核心要点。

本文重点内容:

1. 从功能、核心能力、工程落地三个维度,详解AI Agent框架

2. 拆解Agent大脑核心:规划、推理和自我反思能力的搭建方法

3. 详解Function call和MCP两种工具使用方式,以及记忆模块的核心逻辑


一、Agent 架构

Agent架构可以从三个维度来定义,分别是功能维度、核心能力维度和工程技术维度。这三个维度相互补充,能全面覆盖Agent的整体结构,帮大家快速理解Agent的工作原理。

1.1 功能维度

复旦大学张奇团队在Agent相关综述中,将基于大语言模型的智能体,分为三个核心功能模块:大脑(Brain)、感知(Perception)和行动(Action)。

三个模块的作用很简单:

大脑模块是控制中心,主要负责记忆、思考和决策等基础任务;感知模块负责接收并处理来自外部环境的多模态信息(比如文字、图片、语音);行动模块则通过借助工具执行任务,进而影响环境。

举个简单例子:当你问Agent“今天会不会下雨”时,感知模块会把你的指令,转换成大语言模型能理解的形式;大脑模块会结合当前天气,以及网络上的气象信息进行推理;最后行动模块会给出“会下雨”或“不会下雨”的回应,还可能提醒你带雨伞。智能体就是通过不断重复“感知-思考-行动”这个过程,持续获取反馈,和环境保持互动。

1.2 核心能力维度

前OpenAI员工Weng Lilian在博客中提到,Agent需要具备三大核心能力:规划(Planning)、记忆(Memory)和工具使用(Tool use)。

其中,规划的核心目标,是把复杂任务拆分成简单的子步骤。这个过程需要三个能力相互配合,也就是规划、记忆和工具使用一起发力,才能把任务拆解开,得到可验证、可执行的子步骤。有些论文也把这种配合模式称为reasoning-planning(推理-规划),或者谋略(deliberation)。

记忆分为短期记忆和长期记忆:短期记忆主要靠上下文学习的Prompt工程实现,比如记住当前对话的内容;长期记忆则靠最大内积搜索(Maximum Inner Product Search,简称MIPS)策略,核心是对记忆进行编码、存储和检索,方便后续需要时调用。

工具使用是Agent的重要能力,能极大扩充Agent的能力边界。对Agent来说,关键是要学会认识工具、使用工具,甚至制作工具,这样才能应对更多复杂任务。

1.3 工程技术维度

模块化推理、知识与语言(Modular Reasoning, Knowledge and Language,简称MRKL),是Agent工程落地的重要框架。它的核心思路,是把通用大语言模型当作“路由器”(router),把用户的查询或任务,动态分配给不同的“专家模块”处理。

MRKL系统主要由两部分组成:

1. 通用大语言模型:接收用户的问题、任务指令,通过自然语言理解和推理,判断任务类型、需要用到的工具,然后选择最合适的专家模块来处理。

2. 专家模块:针对特定任务设计的专用工具或模块,比如计算器、数据库查询接口、逻辑推理引擎,还有外部api(比如天气查询、代码执行器)等。这些模块主要处理大语言模型不擅长、或者无法高效完成的任务,比如精确计算、获取实时数据、符号推理等,能保证任务结果的准确性和可靠性。

目前比较流行的Agent开源项目有:AutoGPT、BabyAGI、Generative Agents、MetaGPT等。虽然这些项目的实现方式不同,但它们的核心能力是一致的。接下来,本文就以规划(Planning)、记忆(Memory)和工具使用(Tool use)为核心框架,详细介绍Agent的核心能力。


二、规划(Planning)

从完成任务的角度来说,规划就是Agent把复杂任务拆分成简单子步骤,然后对这些子步骤进行反思、调整,确保能顺利完成任务。规划主要包括两个核心部分:任务拆解和自我反思。

2.1 任务拆解

任务拆解是规划的核心,主要有三种常用方法:思维链(CoT)、思维树(ToT)和自一致性(self-consistency)。每种方法都有自己的适用场景,能解决不同的问题。

1. 思维链(Chain of Thought, CoT)

思维链是一种提示技术,核心是让模型在给出最终答案前,模拟人类的思考过程,生成一系列中间推理步骤。通常可以用“让我们一步一步思考”这样的提示,把复杂的推理任务,拆分成一系列更简单的步骤。

它主要解决两个问题:

问题1:直接回答的局限性。对于需要多步逻辑推理的问题,比如数学题、逻辑谜题,模型直接给出答案的错误率很高,一步错就全错。

问题2:提升透明度和可信度。思维链能让模型的思考过程变得可见,人们能看懂模型是怎么得出答案的,方便验证结论是否合理,而不是只能看到一个“黑箱”一样的答案。

举个例子:“一个篮子里有5个苹果,你拿走了2个,又放进去3个,最后有多少个苹果?”

用思维链拆解步骤:

步骤1:篮子里一开始有5个苹果。

步骤2:拿走2个后,剩下5-2=3个苹果。

步骤3:再放进去3个,现在有3+3=6个苹果。

最终答案:6个。

2. 思维树(Tree of Thought, ToT)

思维树是思维链的延伸和泛化。它不再局限于一条线性的推理链,而是在每一步思考时,同时探索多种可能的推理路径,形成一个树状结构。然后通过某种评估标准(比如模型自我评分),选择最有希望的路径继续深入,必要时还会回溯,重新选择路径。这种方式更接近人类“深思熟虑”的思考模式。

它主要解决两个问题:

问题1:思维链的单路径局限。思维链就像一条独木桥,一旦某一步走错,整个推理过程就会失败。对于棋类游戏、战略规划等需要探索、权衡和回溯的复杂问题,思维链的能力不够。

问题2:全局决策优化。思维树能让模型在决策点“瞻前顾后”,评估不同选择的长期后果,从而做出更优的全局决策,而不是只看眼前的一步。

举个例子:解决一个数独游戏。

用思维树拆解步骤:

步骤1:模型先识别出当前可填的、可能性最少的空格(比如某个空格只有2、4、6三个可能的数字)。

步骤2:对于这个空格,模型生成所有可能的合法数字,形成多条推理分支(比如分支1填2、分支2填4、分支3填6)。

步骤3:对每条分支(比如先试填2),向前推理几步,评估其可行性(比如填2后,是否会导致同一行、同一列出现重复数字)。

步骤4:如果填2导致冲突,就回溯到决策点,尝试下一个选项(比如填4),继续探索。通过这种启发式搜索,最终找到数独的正确解法。

3. 自一致性(self-consistency)

自一致性的核心目的,是提升思维链的可靠性。它的核心思想是,对于同一个问题,通过多次采样,或者用不同的推理路径提示,生成多条不同的推理链和答案,然后选择其中出现次数最多的答案作为最终答案。简单说,就是“真理往往掌握在多数手中”。

它主要解决两个问题:

问题1:思维链的随机性。大模型生成内容时会有随机性,单次思维链推理,可能会因为一步随机错误,导致最终答案出错。

问题2:提升鲁棒性和准确性。通过“投票”机制,过滤掉那些因随机性产生的错误路径,让最终答案更稳定、更准确。

举个例子:问题“如果一本书打8折后是16元,原价是多少?”

多次采样的推理路径:

采样1(路径A):16元是原价的80%,所以1%是16÷80=0.2元,原价(100%)是0.2×100=20元。答案:20元。

采样2(路径B):设原价为X,0.8×X=16,所以X=16÷0.8=20元。答案:20元。

采样3(路径C):8折是16元,那1折就是2元,所以10折(原价)是20元。答案:20元。

采样4(路径D,错误路径):16×1.2=19.2元。答案:19.2元。

其中,答案20元出现了3次,19.2元出现了1次,最终采纳答案20元。

2.2 自我反思

自我反思是Agent提升任务成功率的关键,能让Agent从错误中学习,避免重复踩坑。常用的自我反思方法有三种:react、Reflexion和后见之明链(CoH)。

1. ReAct “知行合一”

ReAct是一种将推理与行动交替进行的范式。它打破了传统Agent“先推理完再行动”,或者“只行动不推理”的模式,让模型在每一步行动前,先生成推理轨迹(思考过程),在行动后,观察反馈结果,形成“思考-行动-观察”的闭环循环。

它主要解决三个问题:

问题1:幻觉与事实错误。纯思维链推理容易产生事实性幻觉(比如编造不存在的信息),缺乏外部信息支撑;ReAct通过行动引入外部工具(比如搜索),获取真实信息,修正推理过程。

问题2:行动缺乏逻辑支撑。纯行动策略往往没有宏观规划,容易迷失任务目标;ReAct通过推理,始终跟踪任务目标,及时调整行动策略。

问题3:无法处理环境变化带来的推理中断。ReAct允许模型根据每一步的观察结果,动态调整下一步计划,适应环境变化。

举个例子:“刚才在格莱美获奖的那位歌手,他的第一张专辑叫什么?”

ReAct流程:

Thought(思考):我需要先查一下,刚才谁获得了格莱美奖。

Action(行动):搜索“最新格莱美获奖名单”(Search("latest Grammy winners"))。

Observation(观察):搜索结果显示,Taylor Swift获奖了。

Thought(思考):现在我知道是Taylor Swift了,我需要查一下她的第一张专辑。

Action(行动):搜索“Taylor Swift第一张专辑名称”(Search("Taylor Swift first album name"))。

Observation(观察):搜索结果显示,她的第一张专辑是《Taylor Swift》。

Final Answer(最终答案):他的第一张专辑叫《Taylor Swift》。

2. Reflexion 反思

Reflexion是一种基于语言反馈的强化学习框架(实际实现中,常简化为Prompt工程)。它要求Agent在完成任务失败后,回顾之前的行动轨迹(Trajectory),生成一段“反思”,指出哪里做错了,以及下次该如何改进。这段反思会作为短期记忆,加入到下一次尝试的上下文中,指导模型避开之前的错误。

它主要解决三个问题:

问题1:重复试错效率低。普通的重试机制,往往会让Agent在同一个错误路径上反复尝试;Reflexion通过显式的“自我批评”,强制模型改变推理路径,提高试错效率。

问题2:缺乏长短期记忆的利用。模型通常“做完即忘”,不会记住之前的错误;Reflexion将失败经验转化为语义记忆,能即时提升后续任务的表现。

问题3:复杂任务成功率低。在需要多步推理的复杂场景中,Agent单次完成任务的成功率很低;Reflexion通过迭代式优化,不断修正错误,显著提升成功率。

举个例子:编写一个Python函数,解决特定的算法题。

尝试1:Agent生成了代码A,运行测试用例后报错,错误原因是数组越界。

Reflexion阶段(反思):Agent分析报错信息,生成反思:“我在处理循环边界时,用了range(n),但访问i+1时导致了数组越界。下次我应该用range(n-1),或者增加边界检查。”

尝试2:Agent读取题目,加上上一轮的反思,生成代码B(修正了循环边界问题),运行测试用例后,测试通过。

3. 后见之明链(Chain of Hindsight, CoH)

CoH是一种利用“后见之明”数据,进行微调或提示的方法。它不仅向模型展示正确答案,还会展示一系列带有反馈注解的历史输出——包括正面反馈的好输出,和负面反馈的坏输出。模型通过学习“因为做了X导致坏结果,因为做了Y导致好结果”这种成对的对比信息,理解如何生成更符合人类偏好的答案。

它主要解决三个问题:

问题1:不仅知其然,更知其所以然。普通的监督微调(SFT),只教模型“什么是对的”;CoH通过对比,教模型“如何根据反馈调整输出”,理解背后的逻辑。

问题2:对齐人类偏好的通用性。解决人类反馈强化学习(RLHF)训练过程复杂、不稳定的问题,用类似监督学习的方式,把反馈融入到模型生成中。

问题3:细粒度控制生成质量。允许用户在推理时,通过指定“目标反馈”(比如“给我生成一个和满分答案一样的输出”),控制生成结果的质量。

举个例子:“写一段关于苹果的描述。”

训练/提示数据构造:

输入:写一段关于苹果的描述。

负面反馈:“这句话太简单了,像小学生写的。” → 对应输出:“苹果是红的,好吃的。”

正面反馈:“这句话辞藻华丽,富有想象力。” → 对应输出:“那是一枚诱人的深红果实,宛如伊甸园中遗落的宝石,散发着秋日清晨的甜香。”

推理应用:

Prompt:参考上述反馈模式,请给我生成一个“富有想象力”的关于梨子的描述。

模型输出:(模仿正面反馈的风格,生成关于梨子的高质量文本)那是一颗饱满的嫩黄果实,恰似秋日枝头悬挂的月光,裹着晨露的清甜,咬一口便漾开满嘴的温润与回甘。


三、工具使用(Tool use)

大语言模型本身存在一些局限性,无法独立完成所有任务,而工具能有效扩充Agent的能力边界。具体来说,大模型在完成任务时,主要有三个问题:

1. 记忆限制:基于大语言模型的Agent,无法记住所有训练数据,可能无法准确回忆特定知识(比如最新的新闻、专业领域的细节)。

2. 知识幻觉与偏差:Agent可能会生成不存在的“幻觉”知识,或者受上下文提示影响,给出错误答案。

3. 领域知识不足:对于医疗、金融等特定专业领域,Agent的专业能力有限,无法给出精准、专业的回答。

之前提到的MRKL中的专家系统,其实就是Agent需要使用的工具。工具能扩充使用者的能力边界,对Agent来说也是一样。工具可以作为“即插即用”的模块,为Agent增强专业知识,适应不同领域的需求,还能把Agent从一个纯“语言大脑”,升级为一个能调用外部专业能力的“行动者”。

大模型使用工具有不同的层级,初级阶段是OpenAI使用的Function Call(函数调用)模式,更像是通过规则匹配,触发特定的函数来使用工具;更进一步的是MCP(模型上下文协议),它是一种标准,能将不同的工具统一调用格式,减少大模型理解和使用工具的成本。

不管是哪种工具使用方式,Agent都需要经历三个过程:认识工具、使用工具和制作工具。Agent可以借助大语言模型的零样本和少样本学习能力,快速认识特定的工具;在认识工具的基础上,通过实践掌握工具的使用技巧,具备适应不同场景的泛化能力(主要通过模仿学习和反馈学习两种方式);最高阶的能力,是Agent能创造新工具——专为Agent设计的工具,应该更具模块化,拥有更友好的输入输出格式。在指令和示例的引导下,Agent可以编写全新的可执行程序作为工具,也可以将多个现有工具封装成功能更强大的复合工具,还具备自我调试能力。

3.1 函数调用(Function Call)

函数调用是工具调用的初始落地形态,以OpenAI的Function Call为代表,核心是“让模型按照预设规则,触发工具”。它适合简单、独立的单点工具调用场景,比如天气查询、计算器使用、单一API调用等。

核心流程(三步完成):

1. 开发者手动定义工具的函数列表,把这些函数传入大模型;

2. 模型接收用户查询后,判断是否需要调用工具,如果需要,生成符合函数格式的调用指令;

3. 外部执行器执行这个函数,获取结果后,把结果回填到模型上下文,模型整合结果,生成最终回答。

核心痛点(三个主要问题):

1. 无统一标准:每个工具的函数描述、参数格式都不一样,新增工具时,需要重新配置,模型也需要逐一学习,适配成本会随着工具数量增加而线性上升;

2. 协同能力弱:只能支持单一工具的单点调用,无法实现多工具的串联、并行协同(比如“先查股票价格,再计算收益率,最后生成报告”);

3. 容错性差:参数格式错误会直接导致调用失败,对模型生成参数的准确性要求很高。

3.2 模型上下文协议(MCP)

为了解决函数调用的“碎片化”问题,MCP(Model Context Protocol)作为标准化协议应运而生,核心是“定义一套通用的工具调用语言,让所有工具都按照同一标准封装”。

核心改进(三个关键优化):

1. 统一工具描述:所有工具必须遵循MCP定义的元数据schema(比如工具名称、功能、输入输出类型、权限范围),消除不同工具的格式差异;

2. 标准化调用流程:定义“模型请求-工具响应-结果回填”的通用交互范式,模型只需学习一套流程,就能调用任意MCP兼容工具;

3. 增强上下文管理:支持多轮调用的上下文流转、调用失败重试、参数自动校验等机制,提升工具调用的稳定性。

核心价值:实现“一次适配,多工具复用”,大幅降低模型的理解成本和开发者的适配成本,为多工具协同奠定基础。

这里需要注意:MCP不是替代Function Call,而是对Function Call的“标准化封装”。Function Call是“具体的执行动作”,MCP是“执行动作的通用规则”。比如,按照MCP封装的get_stock_price(获取股票价格)函数,其调用指令格式,和get_weather(获取天气)函数完全一致,模型不需要分别学习,就能调用这两个工具。


四、记忆(Memory)

Agent的记忆,主要分为短期记忆和长期记忆,两者的作用和实现方式不同,相互配合,才能让Agent更好地完成任务。

短期记忆的特点是“即来即用”,主要存储当前对话的上下文、近期的任务步骤等,不需要复杂的存储和检索机制,靠大模型的上下文窗口就能实现。

长期记忆则需要补充相关知识,辅助Agent进行判断和决策,核心技术是如何高效检索知识——也就是前面提到的最大内积搜索(MIPS)。

MIPS是一种向量检索技术,核心目标是在大规模向量集合中,快速找到与查询向量内积值最大的一组向量。在大模型Agent的外部记忆场景中,内积值可以直接衡量两个向量的相似度,是实现“记忆检索”的核心算法。

需要注意的是,MIPS对应的是长期记忆的“检索”环节,完整的长期记忆流程,分为四个步骤:记忆编码、记忆存储、记忆检索和记忆更新。

1. 记忆编码:对需要长期存储的信息(比如历史对话、领域知识文档),通过大模型的Embedding接口,转化为固定维度的向量;

2. 记忆存储:将转化后的向量,写入支持MIPS的向量数据库,并构建ANN(近似最近邻)索引,方便后续快速检索;

3. 记忆检索:首先将用户的查询文本,转化为对应的向量;然后向量数据库执行MIPS,返回Top-k(前k个)最相关的向量;最后将这些向量对应的原始文本、数据,回填到大模型的上下文窗口,供Agent使用;

4. 记忆更新:新的记忆向量会持续写入数据库,索引也会定期更新,保证检索的精度和时效性。

MIPS检索中常用的ANN技术对比

在MIPS检索中,常用的近似最近邻(ANN)技术有5种:LSH、ANNOY、HNSW、FAISS、ScaNN。它们的核心优势、劣势、适用场景各不相同,大家可以根据自己的需求选择。具体对比如下:

技术

核心优势

核心劣势

适用向量规模

适用向量维度

推荐场景

LSH

理论扎实,容易并行处理

高维数据检索精度差,调优复杂

亿级

低维(<512)

推荐系统粗召回、分布式检索

ANNOY

实现简单,占用内存低

高维数据检索精度差,不适合亿级规模

十万~百万级

低~中维(<1024)

个人项目、原型验证、增量更新

HNSW

高维数据检索精度与速度双优,支持增量更新

索引构建速度慢,占用内存比ANNOY高

百万~亿级

高维(1024~2048)

大模型Agent实时记忆检索、向量数据库

FAISS

集成多种算法,支持CPU/GPU加速,适合超大规模数据

API复杂,参数调优难度大

十亿级

低~高维

超大规模向量检索、企业级系统

ScaNN

超大规模数据下检索精度高,占用内存低

索引构建速度慢,调优复杂

十亿级

低~高维

企业级搜索与推荐系统


总结

AI Agent框架的核心,是通过“架构设计+核心能力+工具与记忆”的结合,让Agent能高效完成用户任务。本文从功能、核心能力、工程技术三个维度,介绍了Agent架构;详细拆解了规划能力(任务拆解+自我反思)、工具使用能力(Function Call+MCP)和记忆能力(短期+长期,重点讲解MIPS),每个部分都搭配了简单易懂的例子和实用干货,方便大家理解和落地。

对于新手来说,先掌握Agent的三大核心能力(规划、工具使用、记忆),再了解架构设计和工程落地方法,就能快速入门;对于开发者来说,本文介绍的技术细节、工具使用流程和记忆检索方法,能直接应用到实际项目中,帮助大家搭建更高效、更稳定的AI Agent。

后续大家在使用Agent的过程中,可以根据具体任务需求,选择合适的工具和记忆技术,不断优化Agent的规划能力和反思能力,让Agent更好地适配自己的使用场景。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13400

相关推荐

Cursor 编辑代码功能的核心原理:Agent 如何高效工作?

像 Cursor、Copilot 这类 AI 编程助手正快速成为程序员的好帮手。很多人可能觉得它们内部非常复杂,其实核心思路很直接。为了实现高效运行,开发团队的重点往往在:保证流程稳定可控和优化性能以节省宝贵的上下文空间。

AgentKit与n8n对比:现代工作流自动化工具深度解析

工作流自动化是现代数字化基础设施的核心。无论是优化内部流程、集成第三方平台,还是减少人工操作,对灵活可靠的自动化需求已经成为基本要求,而不是奢侈品。

智能体Agent的经典构建方式:ReAct、Plan-and-Solve和Reflection

三种智能体构建方式各有特点,适用于不同场景:ReAct:适合需要与外部交互的实时任务,Plan-and-Solve:适合结构化的复杂任务,Reflection:适合对质量要求极高的关键任务

程序员如何自己开发一个Agent?保姆级实操指南(从极简版到工业级)

作为程序员,开发Agent不用从零开始造轮子。核心就三件事:搭骨架、填大脑、连手脚。骨架是任务调度逻辑,大脑是大模型,手脚是调用外部工具的能力。下面分三个版本来讲,从新手能跑的极简版,到能落地的进阶版

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!