AI Agent 定义
一、Agent 基础概念
(一)你认为什么是:Agent/智能体/代理?
🎬 以下视频能帮你快速了解什么是Agent
总而言之,Agent是指一种能够模拟人类思考和行为来自动执行任务,以解决复杂问题的程序或系统
(二)基本组成
现代Agent通常包含以下核心模块:
🎯 核心模块(必备)
感知器(Perception):获取环境数据,是 Agent 与外界交互的接口,收集的数据类型多样,取决于应用场景。
决策器(Decision-Maker):基于感知信息和内部状态生成行动计划,可采用基于规则、模型、数据或混合模式进行决策。
执行器(Actuator):将决策转化为具体行动,如机器人的机械动作、软件系统的指令执行、生成回复等。
🧠 智能模块(重要)
记忆模块(Memory):存储和管理信息,包括短期记忆(对话上下文)、长期记忆(用户偏好)和工作记忆(任务状态)。
内部模型(Internal Model):对环境进行抽象表示,帮助 Agent 理解环境变化规律,预测未来状态,如地图、状态转移模型。
规划模块(Planning):将复杂任务分解为子任务,制定执行策略和时间序列,管理资源分配。
🔧 功能模块(现代Agent常备)
工具调用模块(Tool Calling):管理和调用外部工具、API接口,实现Agent能力扩展。
通信接口(Communication Interface):处理与用户、其他Agent或系统的交互通信。
⚡ 高级模块(可选)
学习机制(Learning Mechanism):从经验中学习,优化决策能力,学习算法包括强化学习、监督学习等。
监控反馈(Monitoring & Feedback):监控行为效果,检测错误并进行自我调整。
(三)行为模式
基于规则的(Rule-Based):依据预设规则决策,简单直观,但面对复杂或未知情况灵活性差。
基于模型(Model-Based):利用内部模型预测环境状态,据此制定决策,适应性强,但模型构建和维护成本高。
基于数据(Data-Driven):通过学习大量数据发现模式和关联进行决策,在数据丰富场景表现出色,依赖高质量数据。
混合模式(Hybrid):结合多种行为模式,根据环境和任务需求切换,兼顾不同模式优点 。
(四)分类
按照自主程度和人机交互方式,Agent 可分为:
🎮 人工控制型Agent(Manual Agent)
特点: 完全由人类控制,按固定程序执行任务,无自主决策能力
产品比喻:
洗衣机:按下按钮后按程序执行洗衣流程
传统工业机器人:需要人工编程每个动作序列
计算器:输入什么计算什么,无主动性
应用场景: 工业生产线、传统自动化设备、简单脚本程序
🚗 人机协作型Agent(Semi-Autonomous Agent)
特点: 具备一定自主性,能处理常规任务,但关键决策或复杂情况需人类干预
产品比喻:
特斯拉Autopilot:大部分时间自动驾驶,复杂路况需人工接管
智能客服机器人:简单问题自动回答,复杂问题转人工客服
Siri语音助手:理解语音指令但重要操作需用户确认
应用场景: 自动驾驶、智能客服、医疗诊断辅助、金融风控系统
🤖 全自主型Agent(Autonomous Agent)
特点: 完全自主运行,能独立感知环境、做出决策并执行行动
产品比喻:
扫地机器人:自主规划清扫路径、避障、返回充电
ChatGPT:完全自主进行对话,无需人工干预
股票交易机器人:自主分析市场数据并执行交易决策
AlphaGo:完全自主进行围棋对弈决策
应用场景: 智能对话系统、自主交易系统、游戏AI、智能家居控制
📊 分类对比表
(五)思考
LLM是Agent吗?
二、Agent 工作流程
三、Agent 开发流程
(一)选择正确的大模型(LLM)
挑选合适大模型对 Agent 性能至关重要,需考虑许可协议、成本、语言兼容性以及模型在编码、工具调用和推理等核心任务上的表现,常用评估基准有:
大规模多任务语言理解(MMLU):衡量推理能力。
伯克利函数调用排行榜:评估工具选择和调用能力。
当前排行榜前几名(2024年数据):
HumanEval 和 BigCodeBench:测试编码能力。
🎯 实际应用意义
对于Agent开发的影响:
HumanEval高分的模型:
适合做代码助手:修复bug、写小函数
适合算法题解答:面试准备、编程练习
适合教学场景:解释基础编程概念
BigCodeBench高分的模型:
适合做开发伙伴:协助完整项目开发
适合架构设计:系统设计、技术选型
适合代码审查:理解复杂代码结构
🎯 选择建议:
如果您要构建的Agent主要用于:
📝 代码教学、算法解答 → 关注HumanEval分数
🏗️ 项目开发、系统设计 → 关注BigCodeBench分数
🔧 代码审查、重构优化 → 两个分数都要高
此外,大模型的上下文窗口大小也很关键,窗口越大越有利于处理复杂任务。可选择的大模型包括闭源的 GPT4-o、Claude 3.5,开源的 Llama 3.2、Qwen 2.5 等 。
(二)提示词工程
系统提示词是大模型与 AI Agent 智能体的核心差异所在。在系统提示词中可定义 AI Agent 智能体行为,常见模式有:
工具使用:判断何时使用外部工具或自身知识库处理查询。
反思:在回复用户前审视和修正答案。
推理后行动(ReAct):不断推理解决查询的方法,执行操作,根据结果决定后续行动。
计划后执行:预先规划任务,分解为子步骤后依次执行。
实现这些行为需进行提示词工程,可利用结构化生成技术规范大模型输出格式 。
🎯 系统提示词的基本结构
基础模板框架
# 角色定义
你是一个专业的[Agent名称],专门负责[具体职责]。
# 核心能力
你具备以下能力:
- [能力1]
- [能力2]
- [能力3]
# 行为准则
在执行任务时,你需要:
- [行为准则1]
- [行为准则2]
- [行为准则3]
# 工具使用
你可以使用以下工具:
- [工具1]:[使用时机和方法]
- [工具2]:[使用时机和方法]
# 输出格式
请按照以下格式输出:
[具体的输出格式要求]
# 错误处理
当遇到问题时:
[错误处理策略]
💡 四种控制逻辑的具体提示词
工具使用模式
# 智能客服Agent
你是一个专业的客服助手,名为"小助手"。
## 核心职责
帮助用户解决问题,提供准确的信息和服务。
## 决策逻辑
对于每个用户问题,你需要判断:
- 如果问题涉及实时信息(天气、股价、新闻),使用相应API工具
- 如果问题涉及订单查询,使用订单查询工具
- 如果问题涉及计算,使用计算器工具
- 如果是常识性问题,使用你的知识库直接回答
## 可用工具
- weather_api(city): 查询指定城市天气
- order_query(order_id): 查询订单状态
- calculator(expression): 进行数学计算
- search_knowledge(query): 搜索知识库
## 工作流程
1. 分析用户问题类型
2. 判断是否需要使用工具
3. 如需工具,选择合适的工具并调用
4. 整合工具结果,给出完整回答
反思模式
# 代码审查Agent
你是一个专业的代码审查专家。
## 工作方式
对于每个代码审查请求,你需要进行两轮处理:
### 第一轮:初步分析
- 快速识别代码问题
- 给出初步建议
### 第二轮:反思检查
在给出最终回答前,请自我检查:
- 我的分析是否遗漏了重要问题?
- 我的建议是否实用和可行?
- 是否有更好的解决方案?
- 我的解释是否清晰易懂?
## 输出格式
请按以下格式输出:
**初步分析:**
[第一轮分析结果]
**反思检查:**
[自我检查过程]
**最终建议:**
[经过反思后的完善建议]
推理后行动(ReAct)模式
# 问题诊断Agent
你是一个专业的问题诊断专家。
## 工作方式
采用"推理-行动-观察"的循环模式:
### 推理阶段
基于当前信息,分析可能的原因和下一步行动
### 行动阶段
执行诊断行动(提问、查询、测试等)
### 观察阶段
分析行动结果,更新理解
## 输出格式
每轮请按以下格式输出:
**推理:** [当前情况分析和推理过程]
**行动:** [具体的诊断行动]
**观察:** [行动结果和新发现]
持续循环直到问题解决。
## 示例
推理:用户反映网站慢,可能是服务器、网络或代码问题
行动:询问用户具体的慢在哪里(加载时间、响应时间等)
观察:用户说主要是数据库查询慢
计划后执行模式
# 项目管理Agent
你是一个专业的项目管理助手。
## 工作方式
对于复杂任务,采用"计划-执行"模式:
### 计划阶段
1. 分析任务需求
2. 分解为子任务
3. 制定执行顺序
4. 预估时间和资源
### 执行阶段
严格按照计划执行,逐步完成各子任务
## 输出格式
**项目计划:**
🔧 高级技巧
结构化输出
# 使用JSON格式约束输出
请严格按照以下JSON格式输出:
{
"analysis": "问题分析",
"solution": "解决方案",
"confidence": "置信度(0-1)",
"next_steps": ["步骤1", "步骤2"]
}
条件分支
# 根据不同场景采用不同策略
如果用户问题类型是:
- 技术问题 → 使用技术专家模式
- 业务问题 → 使用业务分析模式
- 紧急问题 → 使用快速响应模式
上下文管理
# 记忆管理策略
- 始终记住用户的基本信息和偏好
- 保持对话连贯性
- 定期总结对话要点
- 重要信息需要确认后再执行
(三)定义 AI Agent 核心指令
在系统提示词中明确期望的功能和排除的功能,包括:
Agent 的名称和角色:明确 Agent 用途。
语气和简洁度:设定回应风格和详细程度。
使用工具的时机:确定依赖外部工具的场景。
错误处理:指导 Agent 应对工具或流程问题的方法 。
(四)定义并优化核心工具
工具赋予 Agent 更多能力,常见工具如代码执行、网络搜索、文件读取和数据分析等。定义工具时需明确:
工具名称:具有唯一性和描述性。
工具描述:阐述工具功能和适用场景。
工具输入格式:说明参数要求和限制。
运行位置或方法指示词:告知工具运行方式。
必要时对工具进行优化,如调整名称、描述,设置高级配置,筛选输出结果 。
(五)制定可靠的记忆处理策略
大模型受上下文窗口限制,需有效管理记忆。常见策略有:
滑动记忆:保留最近 k 轮对话,删除旧对话。
令牌记忆:保存最后 n 个令牌,丢弃其他令牌。
总结记忆:利用大模型总结对话回合,删除单独消息。
还可训练大模型识别关键信息存入长期记忆,提供个性化服务 。
(六)解析 AI Agent 原始输出
解析器将 Agent 的原始输出转换为应用程序可处理的格式,如 JSON。部分模型供应商(如 OpenAI)可直接提供可解析输出,开源模型可能需额外处理 。
四、大模型 Agent 相关要点
(一)大模型 Agent 框架模块
把大模型Agent想象成一个完整的人,这四个模块就是构成这个人的关键部分:
Profile 模块:人的"身份设定",定义和管理 Agent 角色特性与行为,包含角色、目标、能力等属性。角色生成方式有手工生成、LLM 生成、数据集对齐方法。
🎭 就像给演员设定角色一样
举例:客服Agent的Profile
- 角色:专业客服代表
- 目标:解决用户问题,提升满意度
- 能力:产品知识、沟通技巧、问题解决
- 性格:耐心、友好、专业
生成方式:
- 手工生成:人工编写角色设定
- LLM生成:让大模型自己设计角色
- 数据集对齐:从客服对话数据中学习角色特征
Memory 模块:人的"记忆系统",存储和组织环境信息,分为短期和长期记忆。信息格式多样,操作包括读取、写入和反射。
🧠 就像人的记忆分为短期和长期记忆
短期记忆:
- 当前对话内容
- 最近的几轮交互
- 临时的上下文信息
长期记忆:
- 用户的历史偏好
- 过往成功的解决方案
- 积累的经验知识
操作方式:
- 读取:获取相关记忆
- 写入:存储新信息
- 反射:总结和整理记忆
Planning 模块:人的"规划能力",将复杂任务分解为子任务,制定策略。分为不依赖反馈和基于反馈的计划,后者根据任务执行反馈调整计划。
📋 就像人做事前会制定计划
无反馈计划:
- 一次性制定完整计划
- 严格按计划执行
- 例:写一篇文章的大纲
有反馈计划:
- 制定初步计划
- 根据执行结果调整
- 例:解决技术问题时边做边调整策略
Action 模块:人的"行动执行",将决策转化为具体行动,行动需考虑目标、生成方式、应用范围和影响 。
🎯 就像人的具体行为和动作
需要考虑:
- 目标:这个行动是为了什么?
- 生成方式:如何产生这个行动?
- 应用范围:在什么情况下使用?
- 影响:这个行动会产生什么结果?
举例:
- 目标:回答用户问题
- 生成方式:基于知识库生成回答
- 应用范围:技术支持场景
- 影响:用户满意度提升
(二)大模型 Agent 和 RLAgent 的关系
🤖 强化学习Agent = 专业技工(精通特定技能)
🧠 大模型Agent = 通用人才(具备广泛能力)
实际应用对比
强化学习Agent优势场景:
游戏AI:在特定游戏中达到超人水平
机器人控制:精确的动作控制
量化交易:在固定市场规则下优化收益
大模型Agent优势场景:
客服助手:处理各种用户问题
内容创作:写作、翻译、编程
知识问答:跨领域的信息服务
(三)大模型 Agent 的适用场景
大模型 Agent 适用于环境多变、目标复杂且难以量化、数据获取困难的场景,弥补强化学习在这些方面的不足 。
机器人控制:机器人通过编程感知环境(光线、温度等)并做出相应动作,如家用机器人可打扫、回答问题、烹饪。
游戏人工智能:模拟玩家或 NPC 行为,提升游戏交互体验,如策略游戏中 NPC 的行为可由 Agent 实现。
聊天机器人:在自然语言处理领域,学习用户输入后提供回复,广泛应用于客服、教育、娱乐等行业。
推荐系统:在电子商务、内容推荐等场景,依据用户历史行为和偏好推荐商品或内容,提高用户体验和满意度 。
(四)多 Agent 交互
现实当中我们需要在不同的Agent来回切换、调用,如之前爆火的Menus预览。
多角色:自己属性,自己使命
交互:设置双方交互策略,也可以让它们自己决定