要聊整体情况,就离不开一些关键的论文和博客,我先把一些我做了重点参考的文章放出来。
- 可惜他没有看到翻译博客。
之所以要穿插,是因为,第一篇能以最直白的方式讲明白Agent的格式,但还是太早了,Agent的模式还没收敛,第二篇比第一篇更系统和完善,但他讲的内容可能覆盖范围不如第三篇,但是第三篇的面有过于广,Agent有些内容好像没必要覆盖这么多,所以我就综合3篇文章综合地讲讲。
这里只是大概以这些论文的信息作为参考,很多我们可能平时关心没那么多的模块我没有讲,想了解整个研究生态还是建议大家看看原论文。
目录:
- Agent的概念和研究课题
- Agent基本框架
- Memory记忆
- Planning规划
- Action行动
- Tool工具
- 回顾一下我的视角的Agent
- 我们该怎么做
- 展望
一、Agent的概念和研究课题
挺尴尬的,在这3篇论文里,都没有用严谨而直白的话来定义何为Agent,什么样的一个系统或者模式,能被称为Agent,而是很直接地开始去讲Agent这一个话题,包括他有关的研究工作。
通过这几篇文章的阅读,我是想这么定义的,可能并不要紧,但大家在讲Agent的时候,普遍是这么个事。
An LLM-based agent is an autonomous system that combines language model reasoning with memory, planning, external tool use, and (optionally) multi-agent collaboration to perform complex tasks in dynamic environments.
说白了,说白了就是一个能借助大模型来完成复杂任务的系统,这个概念很广,也很模糊,似乎把大模型所有的应用,都归纳进了这个范围里面来,这在研究层面做起来会有一些难度,但好处是,大模型应用的范式和思路,我们都能从里面找到了,这个海纳百川的概念里很可能有我们日常工作可能会用到的大模型使用技巧。
尽管如此,我们还是可以整理出Agent的生态,围绕Agent,我们主要有4个大的研究方向。
- Agent内的主要技术方案,包括其核心模块与架构、模块协作模式以及自我演化的能力。
- 评估和工具。这里包括Agent的benchmark和数据集,以及工具的触发应用、构建以及实际开发。
- Agent的现实问题。如安全、隐私、社会影响等。
- 应用。Agent在多个场景的应用。
二、Agent基本框架
早期的Agent基本就被定义成这个结构,即工具、记忆、规划、Action这个模块,如下图所示。
img
- Memory,是一个记录整个推理流程、多轮对话流程的工具,通过记忆,能让大模型在多次交互中,仍然能够不忘记任务本身以及其他关键信息。
- Planning是规划器,他更多是用来做后续的任务规划,对复杂任务,他能规划具体的行动路径(毕竟复杂任务可能并非一步就能完成),还能在任务执行出现异常时考虑到补救措施,逐步引导最终完成任务。
- Action是基于Planning来执行的行动器,他能在Planning模块的指令下,去调用必要的工具完成实际任务。
- Tool是工具,能完成一些特定任务,例如一些数值的计算、某个数据库的搜索等。
后续有了更丰富的概念,并且也有很多玩法,我分别举几个例子。
- 早年的Memory是多轮对话系统中的记忆模块,而在Agent中,已经形成一个知识库的概念,里面可以是对话记忆,在销售Agent内可以是商品知识库,在旅游Agent内则可以是旅游笔记库,在陪伴聊天Agent中可以是用户画像记录等等,这不单纯是个记忆,而是一个数据库、信息库的代称了。(PS:所以RAG并没有消失,只是以新的形态出现在这里!)
- Planning和Action的概念倒是没怎么拓展。
- Tool的拓展就变得很广了,在多Agent的平台里,Tool可以是一个子Agent,能嵌套,如此一来,就和大领导发布任务一样,从上往下层层拆解,各自完成最终汇总。
三、Memory
首先,我们来讲一下Memory,记忆模块。记忆模块因为从多轮对话开始,所以历史比较悠久,内容也会更加更丰富。这里给两篇最近的综述。
- From Human Memory to AI Memory: A Survey on Memory Mechanisms in the Era of LLMs
- Memory in the Age of AI Agents
在笼统概念中,会把记忆划分为短期记忆、长期记忆和RAG记忆(有的论文叫Knowledge Retrieval as Memory,一个意思),我先按照这个来讲吧。
首先是短期记忆,他更关注于短期、即时的对话信息,在Agent内,除了多轮对话历史,还有对话上下文(包括大模型调度的各种指令及其返回信息)、中间的推理步骤等,比较典型的是ReAct,这里我用大模型生成的一个例子,参考这个流程。
假设问题是:“谁是现任法国总统?”
- Thought: 我需要知道当前法国总统是谁,可能需要查询最新信息。
- Action: 调用搜索引擎工具,查询 “current president of France”。
- Observation: 搜索结果返回 “Emmanuel Macron is the current president of France (as of 2024).”
- Thought: 信息已确认,可以回答问题。
- Action: 回答用户:“现任法国总统是埃马纽埃尔·马克龙。”
这个流程里,例如走到了第四步,我们其实应该记录1/2/3/4步内的所有大模型分析、请求、结果返回的所有内容,这里的边思考边行动的模式就要求我们必须有一个模块去存储这一大堆内容。从实现上,我们可能可以简单地存在内存里,由变量一直待下去,但在复杂场景,信息太多,我们可能就要开始考虑数据库,构造一个session_id来存储这些内容了。
一般情况,这种短期记忆,基本是用后即焚,也依赖于大模型的上下文窗口,推理长了,很多早期的信息也会失效。
第二便是长期记忆,这是跨对话、跨时间的,所以必须有个比较复杂的模块来记住这些复杂的东西,在Agent里,可以是自动生成的新工具、新技能、新经验,更广泛的,可以理解为整个对话、处理过程的所有内容及其二次甚至多次加工产物。举个例子,对话过程中的反思,经过收集整理,是可以形成经验存到记忆中的,再举个例子,对话过程中用户透露的信息,被记忆下来就可以形成用户偏好,去做一些商品方面的推荐,这个在一些销售类的产品中就很常见。
- MemoryOS聚焦多轮对话的记忆,把对话内容分为3层,短期记忆专注最近几轮聊的内容,确保流畅性,中期记忆定期把局部片段对话进行摘要后入库,在后续的对话中被提及时才会召回,用更炫酷的方法说就是“记忆唤醒”,更长期的关注用户的偏好、观点等重要记忆点进行针对性记忆,在回复风格、情绪价值等方面有更多的能力;
- MIRIX亮点在于把记忆从多轮的视角进行了拓展,让其更适配于Agent这种灵活的模式,作者设计了一套由六大记忆组件构成的综合架构:核心记忆(构造出来的智能体的人设和用户的长期事实,如用户的姓名偏好等)、情景记忆(捕捉带时间戳的事件与时间定位的交互,反映用户的行为、经历或活动)、语义记忆(保存与具体时间或事件脱钩的抽象知识与事实信息,充当关于世界或用户社交图谱的概念)、程序记忆(存放结构化、目标导向的流程,如操作指南、业务工作流与可执行脚本)、资源记忆(保存用户正在阅读或编辑、但又不适合归入其他类别的完整或部分文档、转录文本或多模态文件)与知识保险柜(存储逐字敏感信息的安全仓库,涵盖凭证、地址、联系方式、API 密钥)。
第三便是RAG记忆。在这里,我的理解,并非是把RAG从短期和长期的记忆中脱离出来,而是记忆这个模式逐步发展形成了RAG这个模式,各种记忆都需要被记录到数据库里,下一步便是要有触发手段把他给查出来了,查出来便是应用,于是一个RAG的模式很自然地就出来了。
而在后续,记忆功能承载了一个新的能力——进化的储备池。在Agent运行过程中,系统总能发现一些行不通的路径或者工具,而又能在流程中获得反馈并完成,此时,这些信息能够存下来,便能让整个系统得到优化,这便是自我进化的流程,类似MIRIX的程序记忆,能记录流程,这些流程就是在执行过程中得到优化的结果。
因此总结下来,我的理解下,记忆模块的发展路径大概是这样的。
- 记录最近对话的内容,形成短期记忆。
- 记录更长、更久远甚至围绕用户或者AI的记忆系统。(长期、个性化)
- 记忆信息的更深入处理,划分多种实用的记忆类型。(MIRIX模式)
- 形成反馈机制,通过总结、反思,反哺Agent系统,成为提升Agent的一部分。
四、Planning
Planning是贯穿整个Agent最重要的部分,他需要对给定的query进行合理的拆解,再逐步分配任务逐步完成,复杂的,可能还需要反思,重新优化流程,甚至可能要多条路径进行尝试,收集多个内容然后再安排整合,最终逐步把事情推向完成。
Planning这个任务的综述,我找到的是一篇:Understanding the planning of LLM agents: A survey,他的拆解就会比较细了,有兴趣大家看可以去详细读一读。我后面写的更多是目前的核心思路以及工业界常见的一种方法。
一般的,拆解的思路主要是,简单地静态链式规划、树结构多路径规划,这个挺好理解,就是看一条路走到黑还是分多个来走罢了。具体选哪个,更多还是取决于问题本身是否需要,以及目前的系统是否支持。
至于伴随拆解的反馈,思路则比较朴素,就是基于多个反馈来源的信息,来动态调整自己的思路,这个反馈的来源会比较多,环境反馈(代码报错)、人类反馈(人主动提出代码有问题)、模型审查(模型自己查出来的问题)、多智能体之间的反馈(多个智能体互相批评)。
如此一来,形成整个planning的体系,规划、执行、反馈/反思、更新规划,最终逐步完成任务。
不过,在实际应用中,大家通常会发现,在一些垂类的任务中,大模型做Planning的效果也不尽人意。大家整体的思考路径基本都是这样的。
- 发现大模型对一些子任务的拆解并不合理,也跟下游的Action、Tools不适配,要想做得更好,训练几乎是必然的。
- planner训练的数据并不好弄,人工编辑流程显然也不好做,SFT这条路困难重重。
- RL似乎是一个不错的路径,虽然我们无法或者无法大量地总结出一个好的路径是啥样的,但是我们知道什么样的路径是好的路径。
我的视角看,目前大量的应用,都是通过这套推导思路,设计出了合适的训练方案,并在这个思路下做了很多延伸。知乎里看到“是念”大佬的一篇对Planning的强化学习总结的文章,就对RL的有关技术做了总结:https://zhuanlan.zhihu.com/p/1902381952998281700。
五、Action
Action很多时候会和Planning一起,也有些时候会分开,Planning聚焦做什么,Action聚焦怎么做,具体的思路便是,从工具库里选择合适的工具,完成实际任务。简而言之,就是选择工具。
但是,如果数量足够多,简单的模型识别分类完不成时,大模型的上下文吃不下的时候,就需要专门的模块来完成了,有些地方叫路由,早年的搜索或者对话系统,会叫做意图识别,在一些Agent结构不完善的系统里,会把这玩意和planning放一起。说白了,就是分类,对一个任务A,要用哪个工具来完成最好。
插件系统有如下模块。
- 插件召排。改写query输入进行搜索,召回TOP K,再用Rank简化列表。
- 外部知识引入。为FC(Function Call)提供外部知识,提升槽位提取精度。(这也算是一种RAG思想的应用了)
- FC(Function Call)。提取插件API所需槽位信息。
- API调用。
- 质量控制。更笼统地说,对API调用结果做后处理。
六、Tools
工具是整个Agent的关键执行模块。前面的记忆也好,规划也罢,还是选择工具,都可以说是准备,最终的执行,还是得看Tool。Tool作为底层能力,其广度和深度/可靠性直接决定了整个系统的可靠性,因此他的建设很重要,在项目的初期,他是雏形建立的关键,而在项目后期,前面模块逐渐收敛的情况下,Tool的拓展更新也会是一个重点。那么,Tool可以是什么样的。
- 大模型,能帮你回答一个问题大模型,往定制地走,精心设计一个模板,通过拼接prompt然后请求大模型,完成一个任务,也可以是一个Tool。例如,一个文章摘要Tool,内部可能就是一个prompt模板,拼接你的输入后,请求大模型拿回的结果。
- 数据库查询甚至RAG接口。例如一个做商品销售的Agent,当需要做商品推荐时,需要了解用户画像,此时就需要做数据库的查询,查完了可能还要用大模型筛除无效信息,此时说不定就是个小的RAG了,甚至换个角度,这就是调用Memory能力了。
- API接口。例如调天文台接口查天气。
- 另一个Agent。换个角度,Tool是一个功能模块,那这个功能,为什么不能是另一个Agent做的呢。另一个Agent,可以通过API接口接入,也可以通过函数,内化成自己的内部代码使用,都行,但实际上,Multi-Agent的本质就可以是这个模式的运作。
七、回顾一下我的视角的Agent
那么,如何系统的去学习大模型LLM?
作为一名深耕行业的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!