AI Agent技术栈解析
1、引言
小屌丝: 鱼哥, 什么是Agent,什么又是AGI?
小鱼:Agent 及理解为代理, AGI就是通用人工智能
小屌丝:这… 能不能详细介绍一下
小鱼:你能说一个你比较倾向了解的嘛?
小屌丝:那就, AI Agent?
小鱼:怎么还疑问号?
小屌丝:那就感叹号
小鱼:想要了解 AI Agent什么?
小屌丝:我想了解它的技术栈啊
小鱼:… 天冷了,
小屌丝:… 泡澡,泡澡。
小鱼:又带我去泡澡,
小屌丝: 你三大爱好之一:泡澡
小鱼:… 闭嘴… 我给你详细讲解 AI Agent技术栈
小屌丝:哎呦,意外收获啊。
2、AI Agent
2.1 定义
AI Agent,即人工智能代理,是指能够感知环境、解释感知信息,并根据其内部目标和规则作出决策以执行行动的软件或硬件实体。
它是一种智能系统,旨在模拟人类或其他生物体的行为模式,可以在没有直接人为干预的情况下自主工作。
AI Agents可以是完全虚拟的存在,如聊天机器人;也可以是物理实体,如自动驾驶汽车或家用机器人。
2.2 核心特性
- 感知能力:AI Agent可以通过传感器获取外界信息,例如通过摄像头“看”、通过麦克风“听”。这些输入数据经过处理后被用来构建对环境的理解。
- 认知能力:基于收集到的信息,Agent运用算法进行分析、推理和学习,以理解当前状态并预测未来变化。这可能涉及自然语言处理、计算机视觉、模式识别等技术。
- 决策能力:一旦理解了环境状况,Agent就会根据预设的目标或任务来决定采取什么行动。这通常涉及到规划、优化和选择最佳策略的过程,可能会用到强化学习、博弈论等方法。
- 执行能力:最后,Agent会根据所作决策采取具体行动。对于物理Agent而言,这意味着控制机械臂移动或者驱动轮子转动;而对于软件Agent,则可能是发送消息、更新数据库记录等操作。
- 适应性与学习能力:优秀的AI Agent不仅能在静态环境中运作良好,还能够在动态变化的条件下不断调整自己的行为。它们可以通过监督学习、非监督学习或强化学习等方式从经验中学习,逐步提高性能。
- 交互能力:许多AI Agents需要与用户或其他系统进行交流。良好的对话管理和多模态交互设计可以使这种沟通更加顺畅自然。
3、 从LLM到Agent:智能体的演进
3.1 大型语言模型(LLM)的突破
大型语言模型如GPT-3、BERT、T5等的出现,为自然语言处理带来了革命性的变化。这些模型通过海量文本数据的预训练,获得了强大的语言理解和生成能力。
深入解析:
- 预训练-微调范式:LLM首先在大规模无标签数据上进行预训练,然后在特定任务上微调,大大提高了模型的通用性和效率。
- 自注意力机制:Transformer架构的核心,使模型能够捕捉长距离依赖关系。
- 规模效应:随着模型参数的增加,LLM展现出了令人惊讶的涌现能力。
3.2 LLM的局限性
尽管LLM在多个任务上表现出色,但它们仍存在一些固有的局限性:
- 缺乏持续学习能力:一旦训练完成,难以实时更新知识。
- 难以执行复杂的多步骤任务:缺乏规划和推理能力。
- 无法直接与外部环境交互:局限于纯文本输入输出。
3.3 Agent的兴起
Agent智能体的概念应运而生,它将LLM的语言能力与决策、规划和执行能力相结合,创造出更加智能和自主的AI系统。
拓展:
- 多模态Agent:结合视觉、语音等多种输入模态。
- 记忆增强Agent:具有长期记忆和快速检索能力。
- 多Agent协作:多个Agent协同工作,解决复杂任务。
4、 Agent的核心技术栈
4.1 感知模块
- 自然语言处理:理解用户输入和环境信息
- 命名实体识别、语义解析、情感分析等子任务
- 计算机视觉:处理图像和视频数据
- 目标检测、图像分割、场景理解等
- 语音识别:处理语音输入
- 声音到文本转换、说话人识别等
4.2 认知模块
- 知识图谱:存储和组织知识
- 实体关系抽取、知识推理、知识图谱补全
- 推理引擎:基于已知信息进行逻辑推理
- 符号推理、概率推理、因果推理
- 决策系统:制定行动计划
- 马尔可夫决策过程、蒙特卡洛树搜索
4.3 执行模块
- 任务规划:将复杂任务分解为子任务
- 分层强化学习、目标分解
- 工具调用:使用API或外部工具完成任务
- API封装、工具学习、元学习
- 行动执行:实际执行计划的行动
- 机器人控制、虚拟环境交互
4.4 学习模块
- 强化学习:通过与环境交互来优化策略
- DQN、PPO、SAC等算法
- 迁移学习:将已学知识应用到新任务
- 领域适应、零样本学习、小样本学习
- 持续学习:不断更新和扩展知识库
- 增量学习、在线学习、元学习
- 增量学习、在线学习、元学习
5、 Agent的四大关键因素
5.1 规划(Planning)
- 核心要点:目标设定、策略制定、路径优化。
- 拓展:
- 规划是智能代理的基础,因为它关乎目标实现的路线选择。
- 好的规划需要综合考虑环境约束、资源限制以及时间条件。
- 高级规划可能涉及多目标优化和动态调整,以响应环境变化和不确定性。
5.2 记忆(Memory)
- 核心要点:信息存储、经验学习、数据检索。
- 拓展:
- 记忆不仅仅是数据的存储,更是对信息的组织和提取,以促进未来决策。
- 有效的记忆系统可以通过模式识别和数据分析提升学习能力,支持预测分析和决策优化。
5.3 工具(Tools)
- 核心要点:辅助功能、效率提升、环境交互。
- 拓展:
- 工具的选择和使用涉及到代理的功能扩展和任务执行。
- 数字工具如算法、软件应用,以及物理工具如机械臂、传感器等,都是提高代理能力的途径。
- 工具的集成和互操作性也是提升代理效率的重要方面。
5.4 行动(Action)
- 核心要点:执行能力、反馈机制、交互协调。
- 拓展:
- 执行力是测量代理有效性的直接指标。
- 高效的行动需要与精确的感知和准确的反应相结合。
- 交互动作可以是物理层面的,如移动机器人,或者逻辑层面的,如网络通信。
- 行动后的反馈是优化和学习的关键,在循环中实现自我改善
6、 工具与库
6.1 LangChain
LangChain是一个用于构建基于LLM的应用的框架,它提供了丰富的工具和组件来创建Agent。
- 特点:模块化设计、易于集成外部工具、支持多种LLM
6.2 OpenAI Gym
用于开发和比较强化学习算法的工具包,适合训练Agent的决策能力。
- 特点:标准化的环境接口、丰富的预定义环境、易于自定义
6.3 Rasa
开源的对话AI平台,可用于构建对话型Agent。
- 特点:端到端对话系统、支持多语言、可扩展性强
6.4 PyTorch和TensorFlow
深度学习框架,用于构建和训练Agent的各个模块。
- PyTorch:动态计算图、pythonic、研究友好
- TensorFlow:静态计算图、产品部署成熟、大规模分布式训练
6.5 Hugging Face Transformers
提供了大量预训练模型和工具,便于快速构建基于LLM的Agent。
- 特点:模型hub、易用的API、活跃的社区
7、 代码实例
以下是使用LangChain构建一个简单Agent的Python代码示例,并附带详细解释:
# -*- coding:utf-8 -*-
# @Time : 2025-01-02
# @Author : Carl_DJ
from langchain import OpenAI, LLMChain
from langchain.agents import ZeroShotAgent, Tool, AgentExecutor
from langchain.utilities import GoogleSearchAPIWrapper
# 初始化搜索工具
search = GoogleSearchAPIWrapper()
# 定义工具
tools = [
Tool(
name = "Search",
func=search.run,
description="useful for when you need to answer questions about current events"
)
]
# 定义Agent的提示模板
prefix = """Answer the following questions as best you can. You have access to the following tools:"""
suffix = """Begin!"
Question: {input}
{agent_scratchpad}"""
prompt = ZeroShotAgent.create_prompt(
tools,
prefix=prefix,
suffix=suffix,
input_variables=["input", "agent_scratchpad"]
)
# 初始化语言模型
llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt)
# 创建Agent
agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools, verbose=True)
agent_executor = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True)
# 使用Agent回答问题
agent_executor.run("What's the latest news about AI?")
代码解析:
- 首先,我们导入必要的模块和类。
- 初始化Google搜索工具,这将作为Agent的外部知识源。
- 定义Agent可以使用的工具,这里只有一个搜索工具。
- 创建Agent的提示模板,包括前缀和后缀,用于指导Agent的行为。
- 使用OpenAI的语言模型初始化LLMChain。
- 创建ZeroShotAgent,这种Agent能够根据任务描述动态选择和使用工具。
- 最后,使用Agent来回答一个关于AI最新新闻的问题。
6. 总结与展望
AI Agent技术栈的发展正在推动人工智能向更高层次迈进。
通过结合LLM的语言能力、决策系统的规划能力以及执行模块的行动能力,Agent能够执行更复杂、更自主的任务。
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 企业认证金牌面试官;
- 多个名企认证&特邀讲师等;
- 名企签约职场面试培训、职场规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)评测一等奖获得者;
关注小鱼,学习【人工智能&大模型】/【深度学习&机器学习】领域最新最全的知识。
标签:学习,AI,Agent,体之,能力,LLM,工具 From: https://blog.csdn.net/wuyoudeyuer/article/details/144946053