目录
一、AI Agent发展历程
AI Agent的发展历程可以分为几个阶段:
-
早期阶段(1950s-1960s):AI Agent的概念起源于人工智能研究的早期阶段。在这个阶段,研究人员开始探讨如何让计算机模拟人类的思维和学习过程。这个阶段的AI Agent主要是基于规则的专家系统,它们可以在特定领域内解决问题,但缺乏自主学习和适应能力。
-
机器学习方法(1970s-1990s):随着机器学习的出现,AI Agent开始尝试通过数据驱动的方式来学习和改进。这个阶段的AI Agent主要依赖于监督学习和无监督学习算法,如决策树、神经网络和聚类分析等。这些算法使得AI Agent能够在大量数据中学习和提取有用的信息,从而提高其性能。
-
深度学习时代(2000s-至今):深度学习技术的出现为AI Agent的发展带来了革命性的变革。深度学习算法,如卷积神经网络(CNN)和循环神经网络(RNN),使得AI Agent能够在复杂的数据中自动学习特征和规律,从而实现更高层次的认知和决策能力。这个阶段的AI Agent已经在图像识别、语音识别、自然语言处理等领域取得了显著的成果。
-
强化学习时代(2010s-至今):强化学习是一种让AI Agent通过与环境的交互来学习最优策略的方法。近年来,强化学习在AI Agent领域取得了重要突破,如AlphaGo等成功案例。强化学习使得AI Agent能够在复杂的环境中实现自主学习和决策,为未来的AI Agent发展提供了新的可能性。
总之,AI Agent的发展历程经历了从基于规则的专家系统到数据驱动的机器学习方法,再到深度学习和强化学习的新时代。随着技术的不断进步,AI Agent将在未来发挥越来越重要的作用,为人类带来更多的便利和价值。
若要实现AI Agent我们可以先了解其基本概念,小马参考部分优秀文章总结整理了一份关于AI Agent的概念理解,希望对大家也有所帮助。
二、什么是AI Agent
AI Agent,即人工智能代理,又叫“AI 智能体”,AI 业界对智能体提出了各种定义。个人理解,Agent是一种能够感知环境、进行自主理解、决策和执行动作的智能实体(计算机程序)。它基于大语言模型(LLM),具备自主理解、感知、规划、记忆和使用工具的能力,能自动化执行复杂任务。
有一段描述非常形象,在这里引用分享给大家。
大语言模型很强大,就像人类的大脑一样拥有思考的能力。如果人类只有大脑,没有四肢,没有工具,是没办法与世界互动的。如果我们能给大模型配备上四肢和工具呢?大模型是不是就会打破次元壁,从数字世界走向现实世界,与现实世界实现梦幻联动呢?
大语言模型(后文将用 LLM 指代)可以接受输入,可以分析&推理、可以输出文字\代码\媒体。然而,其无法像人类一样,拥有规划思考能力、运用各种工具与物理世界互动,以及拥有人类的记忆能力。
LLM:接受输入、思考、输出;
人类:LLM(接受输入、思考、输出)+ 记忆 + 工具 + 规划;
如果我们给 LLM 配备上与物理世界互动的工具、记忆能力、规划思考能力。LLM 是否就可以像人类一样,能够自主思考并规划完成任务的过程,能检索记忆,能使用各种工具提高效率,最终完成某个任务。
以下是关于AI Agent的详细信息:
三、AI Agent的定义
AI Agent是一种能够感知环境、进行自主理解、决策和执行动作的智能实体。它是一种基于大语言模型,能够通过独立思考、调用工具来逐步完成给定目标的计算机程序。
四、AI Agent的核心组件
- 感知系统:负责从环境中收集信息,如文本、图像、声音等。
- 规划系统:确定如何达到既定目标,将复杂任务分解为可执行的子任务。
- 记忆系统:存储和检索信息,支持学习和长期知识积累。
- 工具使用:利用外部资源或工具来增强感知、决策和行动能力。
- 行动系统:执行任务和与环境交互的具体实施者。
一个基于大模型的 AI Agent 系统可以拆分为大模型、规划、记忆与工具使用四个组件部分。6 月,OpenAI 的应用研究主管 Lilian Weng 撰写了一篇博客,认为 AI Agent 可能会成为新时代的开端。她提出了 Agent=LLM + 规划技能 + 记忆 + 工具使用的基础架构,其中 LLM 扮演了 Agent 的 “大脑”,在这个系统中提供推理、规划等能力。
由LLM驱动的智能体架构图,一目了然。
如图,LLM 的充当着智能体的“大脑”的角色,同时还有 3 个关键部分:规划(Planning)、记忆(Memory)、工具使用(Tool use)。
引用一段文字描述如下:
1、规划:智能体会把大型任务分解为子任务,并规划执行任务的流程;智能体会对任务执行的过程进行思考和反思,从而决定是继续执行任务,或判断任务完结并终止运行。2、记忆:短期记忆,是指在执行任务的过程中的上下文,会在子任务的执行过程产生和暂存,在任务完结后被清空。长期记忆是长时间保留的信息,一般是指外部知识库,通常用向量数据库来存储和检索。
3、工具使用:为智能体配备工具 API,比如:计算器、搜索工具、代码执行器、数据库查询工具等。有了这些工具 API,智能体就可以是物理世界交互,解决实际的问题。
五、AI Agent的工作原理
Agent接到任务之后,自动进行推理,然后自主调用工具完成任务。这个核心理念就是操作的序列并非硬编码在代码中,而是使用语言模型(LLM)来选择执行的操作序列,这就是AI Agent与普通代码编写实现的应用的最大区别。
AI Agent的工作原理可以概括为感知、规划、行动和反馈四个步骤。它通过这些步骤来自动执行任务,实现复杂目标的完成。(以下文字部分参考文章原文)
规划(Planning)
规划,可以理解为观察和思考。因此可以通过 LLM 提示工程,为智能体赋予这样的思维模式。在智能体中,最重要的是让 LLM 具备这以下两个能力:
1、子任务分解
通过 LLM 使得智能体可以把大型任务分解为更小的、更可控的子任务,从而能够有效完成复杂的任务。
思维链(Chain of Thoughts, CoT)
思维链已经是一种比较标准的提示技术,能显著提升 LLM 完成复杂任务的效果。当我们对 LLM 这样要求「think step by step」,会发现 LLM 会把问题分解成多个步骤,一步一步思考和解决,能使得输出的结果更加准确。这是一种线性的思维方式。
思维树(Tree-of-thought, ToT)
对 CoT 的进一步扩展,在思维链的每一步,推理出多个分支,拓扑展开成一棵思维树。使用启发式方法评估每个推理分支对问题解决的贡献。选择搜索算法,使用广度优先搜索(BFS)或深度优先搜索(DFS)等算法来探索思维树,并进行前瞻和回溯。
2、反思和完善
智能体在执行任务过程中,通过 LLM 对完成的子任务进行反思,从错误中吸取教训,并完善未来的步骤,提高任务完成的质量。同时反思任务是否已经完成,并终止任务。
驱动Agent工作的正是ReAct思想框架。
ReAct
ReAct(Yao et al. 2023) ,《ReAct: Synergizing Reasoning and Acting in Language Models》 这篇论文提出一种用于增强大型语言模型的方法,它通过结合推理(Reasoning)和行动(Acting)来增强推理和决策的效果。
- 推理(Reasoning): LLM 基于「已有的知识」或「行动(Acting)后获取的知识」,推导出结论的过程。
- 行动(Acting): LLM 根据实际情况,使用工具获取知识,或完成子任务得到阶段性的信息。
通过巧妙的 promt 提示设计,使得 LLM 重复地执行推理和行动,最终完成任务。ReAct 的 prompt 模版的大致思路为:
Thought(思考): …
Action(行动): …
Observation(观察): …Thought(思考): …
Action(行动): …
Observation(观察): ……(Repeated many times(重复多次))
记忆(Memory)
仿照人类的记忆机制,智能体实现了两种记忆机制:
短期记忆:在当前任务执行过程中所产生的信息,比如某个工具或某个子任务执行的结果,会写入短期记忆中。记忆在当前任务过程中产生和暂存,在任务完结后被清空。
长期记忆:长期记忆是长时间保留的信息。一般是指外部知识库,通常用向量数据库来存储和检索。
工具使用(Tool use)
LLM 是数字世界中的程序,想要与现实世界互动、获取未知的知识,或是计算某个复杂的公式等,都离不开工具。所以我们需要为智能体配备各种工具以及赋予它使用工具的能力。在智能体中,工具就是函数(Function),工具使用就是调用函数(Call Function)。
在 LLM 中实现函数调用,使用到 LLM 的这个能力:Function Calling。
Function Calling 是一种实现大型语言模型连接外部工具的机制。通过 API 调用 LLM 时,调用方可以描述函数,包括函数的功能描述、请求参数说明、响应参数说明,让 LLM 根据用户的输入,合适地选择调用哪个函数,同时理解用户的自然语言,并转换为调用函数的请求参数(通过 JSON 格式返回)。调用方使用 LLM 返回的函数名称和参数,调用函数并得到响应。最后,如果需求,把函数的响应传给 LLM,让 LLM 组织成自然语言回复用户。
function calling 具体工作流程如下图所示:
如何实现说明如何实现 Function Calling呢?实际上就是遵循agent函数调用的规范,实现主要包括函数描述(定义函数名,函数功能说明,请求参数和响应参数说明),调用 LLM 获得函数的请求参数,最终发起函数调用。这里不赘述,详细也可以参看这里。
推荐一篇工具调用学习的综述论文:《Tool Learning with Large Language Models: A Survey》。
是一篇关于大型语言模型(LLMs)在工具学习(Tool
Learning)领域应用的综述文章。这篇综述文章探讨了如何利用大型语言模型(LLMs)进行工具学习,即如何让模型学会使用外部工具来完成任务。文章总结了当前的研究进展、挑战和未来方向。工具学习是指让模型能够理解和使用各种工具来完成任务的学习过程,指模型通过学习如何使用外部工具来提高其解决问题的能力。这种方法不仅增强了LLMs解决问题的能力,而且还拓宽了它们的功能范围。工具学习的方法:
- 指令微调(Instruction Tuning):通过调整模型参数,使其更好地理解和使用指令。
- 强化学习(Reinforcement Learning):让模型通过与环境的交互来学习如何使用工具。
- 多智能体系统(Multi-Agent Systems):多个AI代理协同工作,共同完成任务。
LLMs在工具学习中的应用:
- 代码生成:LLMs可以生成代码,帮助解决编程问题。
- 文本生成:LLMs可以生成文本,如新闻报道、故事等。
- 数据增强:LLMs可以生成新的数据,用于训练其他模型。
六、AI Agent的应用领域和框架
AI Agent技术已广泛应用于多个领域,包括但不限于客户服务、数据分析、自然语言处理、自动驾驶和智能家居等。
因此,如今智能体应用框架在各个领域,比如自定义智能体、编码、研究、数据分析、多智能体等等,都有比较有代表性的产品可供选择。
智能体开发框架,会抽象和封装那些被高频使用的模块,如记忆能力、规划能力、RAG 能力、大模型调用等。使用智能体框架,可以帮助你快速搭建智能体。以下是awesome-ai-agents整理的一份各个领域开源闭源框架汇总。
目前主流的AI Agent框架包括以下几种:
AutoGPT、Langchain、Semantic Kernel、AutoGen、LangGraph、CrewAI、Modelscope-Agent等。小马的理解,auto-gpt ( 是结合GPT-4和GPT-3.5的)、modelscope-agent (可结合开源LLM)、LangChain (可结合gpt 和开源LLM)。
有文章列出了五个框架的对比,我们也一起来感受一下。
框架 | 关注点 | 独特优势 | 适用场景 |
---|---|---|---|
LangChain | 基于LLM的应用 | 多功能性、外部集成 | 通用人工智能开发 |
LangGraph | 有状态多角色系统 | 复杂的工作流程、Agent协调 | 交互式自适应人工智能应用 |
CrewAl | 角色扮演AI Agent | 合作解决问题,团队充满活力 | 模拟复杂的组织任务 |
Semantic Kernel | 企业级人工智能集成 | 安全性、合规性、与现有代码库集 | 用人工智能增强企业现有应用 |
AutoGen | Multi-Agent对话系统 | 稳健性、模块化、对话管理 | 先进的对话式AI和任务自动化 |
对上文的内容有兴趣的同学还可以进入如下资料详细阅读:
《一文带你了解大模型——智能体(Agent)》
《万字长文解析AI Agent技术原理和应用》
七、AI Agent与LLM、RAG的区别
- LLM(大型语言模型):基于海量文本数据训练的深度学习模型,能够生成自然语言文本、深入理解文本含义,并处理各种自然语言任务。
- RAG(检索增强生成):结合了外部信息检索与大型语言模型生成能力的技术,用于处理复杂的信息查询和生成任务。
AI Agent通过集成自主验证和决策过程,能够弥补这些不足,确保行动的准确性和效率。
很显然,根据上文的描述三者的关系呼之欲出,Agent的实现需要基于LLM,而RAG则是Agent的一种实现。
八、总结
AI Agent作为一种新兴技术,正在逐步改变我们的工作和生活方式,为各行各业带来革命性的变革。
本文旨在对AI Agent的概念有初步的基础理解,后续小马计划整理一份关于AI Agent实践Langchain的文章来和大家一起学习一起进步。感谢品阅。
更多AI落地资料还可以参看这里AI应用落地。还有疑问可以来公众号【贝可林】私信我,我骑共享单车到你家探讨。
- 今天的彩蛋就多少有点冒昧了哈,哈哈…