AGI(通用人工智能)、RAG(检索增强生成)和 Agent 存在以下区别:
Agent:
RAG:
AGI:是一种更广泛和全面的智能概念,旨在实现类似人类的通用智能能力。
需要注意的是,这些概念的发展和应用仍在不断演进,想做深做好还有很多需要探索和解决的问题。
其实只要看过官方文档的应该都能知道,大模型请求中,最大的两个变量:Messages和Tools。Messages里面放的是sys prompt,memory,user query;Tools里面放的是一些能力的Json Scheme;而这两者组合在一起,就形成整个完全的Prompt。所以Agent应用开发的本质是什么?动态Prompt拼接。通过工程化的手段,不断把业务需求转述成新的prompt。短期记忆:messages里的历史QA对;长期记忆:summary之后的本文,再塞回system prompt;RAG是啥?向量相似性检索,然后放在system prompt里或者通过tools触发检索Action:触发tool_calls标记,进入请求循环,拿模型生成的请求参数进行API request,再把结果返回给大模型进行交互;没有tool_calls标记了,循环结束。对应页面上就是对话一轮对话结束。Multi Agents是啥?把system prompt和tools换一换,A就变成B了。还有啥?没了呀,本质就是这些东西。当然,这也就是最基本的原理,想做深,做好,肯定还有很多坑需要踩。
agent算是从年前到现在,比较火的一个概念了,也被很多人认为是大模型的未来的一个主要发展方向。首先我们看这个很经典的一张图看起来还是蛮复杂的,然后市面上的很多描述agent的文章写的也比较复杂,说智能体是啥智能的最小单元,相较于copilot,是可以给他设定一个目标后主动完成任务的等等。当然这些说法都没错,但是我觉得还是有些不好理解的。所以我们依然先从原理着手去理解下,agent是个什么东西。首先这张图里,中间的“智能体”,其实就是llm,或者说大模型。四个箭头,分别是我们为llm增加的四个能力。工具、记忆、行动、规划。那么这个是怎么新增的呢?目前行业里主要用到的是一个叫langchain的框架,这个框架可以简单理解为,他把llm和llm之间,以及llm和工具之间,通过代码或prompt的形式,进行了串接。这个其实也像是在rag的基础上再进了一步。因为我们知道rag其实是给了大模型一个浏览器工具来使用嘛,那agent,其实就是给了大模型更多的工具。比如像是长期记忆,其实就是给了大模型一个数据库工具让其往里记录重要信息。规划和行动,其实就是在大模型的prompt层做的些逻辑,比如让其将目标进行每一步的拆解,拆解完成后,每一步去输出不同的固定格式action指令,给到工具作为输入。当然langchain或者说agent还不止这些,也会有很多其他的代码逻辑体现在其中,不过其主要的主干逻辑,其实还是在prompt层和工具层,完成的设计。
理解工具:AI Agent有效使用工具的前提是全面了解工具的应用场景和调用方法。没有这种理解,Agent使用工具的过程将变得不可信,也无法真正提高AI Agent的能力。利用LLM强大的zero-shot learning和few-shot learning能力,AI Agent可以通过描述工具功能和参数的zero-shot demonstartion或提供特定工具使用场景和相应方法演示的少量提示来获取工具知识。这些学习方法与人类通过查阅工具手册或观察他人使用工具进行学习的方法类似。在面对复杂任务时,单一工具往往是不够的。因此,AI Agent应首先以适当的方式将复杂任务分解为子任务,然后有效地组织和协调这些子任务,这有赖于LLM的推理和规划能力,当然也包括对工具的理解。使用工具:AI Agent学习使用工具的方法主要包括从demonstartion中学习和从reward中学习(清华有一篇从训练数据中学习的文章)。这包括模仿人类专家的行为,以及了解其行为的后果,并根据从环境和人类获得的反馈做出调整。环境反馈包括行动是否成功完成任务的结果反馈和捕捉行动引起的环境状态变化的中间反馈;人类反馈包括显性评价和隐性行为,如点击链接。具身智能在追求人工通用智能(AGI)的征途中,具身Agent(Embodied Agent)正成为核心的研究范式,它强调将智能系统与物理世界的紧密结合。具身Agent的设计灵感源自人类智能的发展,认为智能不仅仅是对预设数据的处理,更多地来自于与周遭环境的持续互动和反馈。与传统的深度学习模型相比,LLM-based Agent不再局限于处理纯文本信息或调用特定工具执行任务,而是能够主动地感知和理解其所在的物理环境,进而与其互动。这些Agent利用其内部丰富的知识库,进行决策并产生具体行动,以此改变环境,这一系列的行为被称为“具身行动”。