一、AI Agent 是什么:先建立直觉
AI Agent(智能体)= 一个大模型(作为大脑)+ 一套能感知、能行动、能记忆、能自我修正的 "身体"。
普通聊天机器人:你说一句,它回一句,说完就忘,不会调用任何外部能力。 AI Agent:你说一个目标(比如 "帮我规划五一去云南的行程"),它会把目标拆解成多个步骤,自己决定去查天气、查机票、查景点,把结果整合成完整方案交给你,还能根据你的追问修正方案。
| 维度 | 传统聊天机器人 | AI Agent |
|---|---|---|
| 交互模式 | 一问一答 | 多步自主执行一个目标 |
| 记忆 | 无(每轮重新开始) | 短期 + 长期记忆 |
| 外部能力 | 无(只靠模型内部知识) | 可调用搜索、代码、API 等工具 |
| 规划 | 无 | 任务分解、反思、纠错 |
| 反馈 | 不观察结果 | 观察工具结果并据此调整 |
Agent 的四个基本步骤(几乎所有 Agent 都是这个循环):
- 感知:接收并理解输入(文字 / 图像 / 语音 / 环境状态)
- 思考:结合记忆和知识,推理、规划、决定下一步
- 行动:输出回答,或调用工具执行操作
- 观察:读取行动结果,验证是否达到目标,未达成则回到第 2 步继续
二、核心组件全景图
下面这张图展示了 Agent 的六大核心组件及它们之间的数据流("示意" 图,非官方标准结构):
三、逐一拆解六大核心组件(含示例与机理)
组件一:感知层 —— 让 Agent "看得到、听得到、读得懂"
感知层负责把人类世界的各种输入(文字、图像、声音)转换成大模型能理解的数字向量。因为大模型本质是数学函数,它只认识数字,不认识 "字" 和 "像素"。
| 输入类型 | 转换机制 | 产物 |
|---|---|---|
| 文本 | Tokenizer 分词(把句子切成子词单元,如 "我喜欢 AI" → [我,喜欢,AI]),再查词表映射成向量 | token 序列 |
| 图像 | 切成固定大小的小块(patch),每个 patch 经过视觉编码器(如 ViT/CLIP)转成向量,加位置编码 | 视觉特征序列 |
| 语音 | 音频波形 → 分帧 → 梅尔频谱图 → 声学编码器(如 Whisper 的编码器) | 声学特征序列 |
示例 1:图像描述生成(Image Captioning)
场景:你给 Agent 一张 "公园里孩子在放风筝" 的照片,让它输出一段描述。
- 步骤 1(切块):图像被切成 14×14 像素的小方块(类似拼图),每个小方块是一块 "图像单词"。
- 步骤 2(编码):每个小方块经过视觉编码器(如 ViT 或 CLIP)变成一个向量,整张图变成一串带空间位置的向量序列。这一步模型 "看到" 了图的底层特征(边缘、颜色、形状)和高级语义(人、风筝、天空)。
- 步骤 3(对齐):通过投影层把图像向量映射到和文本向量相同的 "语义空间",这样模型才能把 "图里的东西" 和 "语言里的词" 对应起来。
- 步骤 4(生成):这些视觉向量作为 "前缀" 进入大模型的注意力层,模型开始自回归地逐词生成描述 —— 每生成一个词,都结合前面已生成的词和整张图的视觉信息,选概率最高的下一个词,直到生成结束符。
- 实际价值:帮助视障人士 "看懂" 图片;电商自动生成商品描述;内容审核自动识别违规图片并生成说明。
示例 2:语音转文字(ASR,Automatic Speech Recognition)
场景:你给 Agent 一段 30 秒的会议录音,让它转成文字稿。
- 步骤 1(采样):模拟声波按 16kHz 采样率变成数字序列(每秒 1.6 万个数字点)。
- 步骤 2(特征提取):把波形按 25 毫秒一帧切分,每帧计算 "梅尔频谱"—— 本质是把声音按音高(频率)展开成一张 "频率 × 时间" 的二维图,突出人耳敏感的频率范围。这相当于把声音变成了 "声谱图"。
- 步骤 3(声学编码):声谱图送入声学编码器(如 Whisper 用编码器 - 解码器 Transformer),把声学特征编码成向量序列。
- 步骤 4(序列对齐与解码):模型通过注意力机制把 "声音的哪一段对应哪个字" 对齐起来,再结合语言模型逐字解码(带上下文纠正同音字,如 "行程"vs"形成")。
- 实际价值:会议纪要、视频字幕、语音助手(听懂你说话是第一步)。
组件二:认知层 —— Agent 的 "大脑"
认知层就是大语言模型(LLM)本身,负责理解、推理、规划、决策。它决定 Agent 的 "聪明程度"。几个关键机制:
- 思维链(Chain-of-Thought, CoT):让模型 "先想清楚再回答"—— 把推理过程一步步写出来,而不是直接给答案。这大幅提升复杂逻辑问题的正确率。
- ReAct(Reasoning + Acting):思考(Reasoning)和行动(Acting)交替进行 ——"我先想想该干什么 → 好,去调用工具 → 看到结果 → 再想想 → 再行动……" 这是 Agent 最主流的运行范式。
- 意图理解与任务分解:把模糊的请求解析成明确目标,再拆成可执行的小步骤。
示例 3:图文问答(VQA,Visual Question Answering)
场景:你上传一张 "厨房台面上有鸡蛋、面粉、牛奶" 的照片,问 "能做什么菜?"
- 步骤 1(双路编码):图像走视觉编码器 → 视觉向量序列;问题 "能做什么菜?" 走文本编码器 → 文本向量序列。
- 步骤 2(跨模态融合):这是关键 —— 模型用跨模态注意力(cross-attention)机制,让 "菜" 这个字去 "关注" 图像中鸡蛋、面粉、牛奶的区域,同时让图像特征去对齐问题的语义。两者在注意力层里互相加权、深度融合,形成 "图文联合表示"。
- 步骤 3(生成):模型基于融合后的表示,生成 "可以煎蛋饼、做牛奶面包……" 等答案,回答还会结合常识(鸡蛋 + 面粉 + 牛奶 = 煎饼的材料)。
- 实际价值:拍照问 "这药怎么吃"(结合 OCR 认药名);质检员拍产品图问 "有没有缺陷";学生拍题问 "这题怎么做"。
注意对比示例 1:图像描述是 "图 → 一段完整描述",图文问答是 "图 + 特定问题 → 针对性答案"。区别在于问题的文本向量参与了融合,把模型的注意力 "引导" 到了相关区域。
组件三:记忆系统 —— Agent 的 "档案室"
没有记忆的 Agent 每轮对话都是 "失忆" 的。记忆系统分三种:
| 类型 | 存储位置 | 作用 | 比喻 |
|---|---|---|---|
| 短期记忆 | 上下文窗口(prompt 中的对话历史) | 记住本轮对话 | 便利贴 |
| 长期记忆 | 向量数据库(Embedding + 检索) | 跨会话记住用户与知识 | 档案室 |
| 工作记忆 | Agent 运行时状态 | 当前任务的中间步骤 | 草稿纸 |
长期记忆的核心机制是RAG(检索增强生成):
- 写入:把知识 / 历史记录切成小块 → 每块用 Embedding 模型转成向量 → 存入向量数据库(如 FAISS、Milvus)。
- 检索:用户提问 → 问题同样转成向量 → 用余弦相似度找出最相关的 Top-K 文本块。
- 注入:把检索到的文本块拼进 prompt 作为背景知识。
- 生成:LLM 基于 "问题 + 检索到的资料" 回答,答案可溯源。
示例 4:客服 Agent 记住用户偏好
场景:用户周一问过 "我过敏,推荐不含花生的零食",周五又来说 "再推荐几款"。
- 没有记忆的 Agent:周五完全忘记过敏史,可能推荐含花生的产品 → 危险。
- 有长期记忆的 Agent:周五收到消息 → 检索到周一的对话记录("过敏、不含花生")→ 注入上下文 → 推荐 "无花生坚果棒、米饼",并主动说 "这次避开了含花生成分"。
- 实际价值:个性化体验、连续服务、减少用户重复说明;企业知识库问答(回答基于内部文档而不是模型瞎编,还能给出处)。
组件四:工具与行动层 —— Agent 的 "手"
这是 Agent 与聊天机器人的根本区别:能调用外部工具改变现实世界。核心机制是Function Calling(函数调用):
- 声明工具:开发者把工具写成 JSON Schema—— 工具名、参数、用途说明,例如天气工具:
{"name":"get_weather","parameters":{"city":"string"}}。 - 模型决策:LLM 看到用户需求后,不直接执行,而是输出一个结构化调用请求,例如
{"name":"get_weather","arguments":{"city":"青岛"}}。 - 框架执行:Agent 框架收到这个请求,在沙箱 / 服务端真实调用该函数,拿到结果(如 "青岛 24°C 晴")。
- 结果回填:工具结果作为 "观察" 拼回上下文,LLM 继续推理,最终组织成自然语言回答。
工具类型:搜索(联网查最新信息)、代码执行(Python 沙箱,用于计算 / 分析)、数据库查询、外部 API(天气 / 地图 / 支付)、软件操作(点击网页、发送邮件)等。2024 年后,MCP(模型上下文协议)成为统一工具接入标准,让 Agent 像 USB 插口一样即插即用各类工具。
示例 5:旅行规划 Agent(多工具 + ReAct 循环)
用户:"帮我规划五一去云南玩 4 天,预算 5000。"
Agent 的实际运行轨迹(每次循环 = 思考→行动→观察):
| 轮次 | 思考(Thought) | 行动(Action) | 观察(Observation) |
|---|---|---|---|
| 1 | 需要先确认时间与天气 | 调用search("昆明 五一 天气") | 5 月天气温和,适合出行 |
| 2 | 需要订机票和住宿 | 调用get_flights(青岛→昆明, 5/1)、get_hotels(昆明, 4晚) | 机票往返约 1800,住宿约 1200 |
| 3 | 需要安排景点 | 调用search("云南 4天 经典路线") | 昆明→大理→丽江线路推荐 |
| 4 | 预算还剩约 2000,需标注 | 调用calc(5000-1800-1200) | 剩余 2000 |
| 5 | 信息齐了 | 停止调用,整理输出 | 生成完整行程表 + 预算清单 |
- 机制要点:每一轮的 "观察" 都成为下一轮 "思考" 的依据 —— 这就是 ReAct 循环。Agent 不是一次性生成答案,而是像人一样边查边想。
- 实际价值:答案基于实时真实数据(天气、票价),不是模型记忆里的过时信息;能完成需要 "多步操作" 的任务。
示例 6:数据分析 Agent(代码执行 + 自我修正)
用户:上传一个销售数据.csv,说 "分析各季度销售趋势并画图"。
- 第 1 轮:Agent 思考 "需要用 pandas 读取数据" → 调用代码执行工具,生成并运行 Python 代码。
- 观察:代码报错 "找不到列名 ' 日期 ',实际叫 'Date'" → Agent 反思并修正代码。
- 第 2 轮:重新运行 → 成功算出各季度销售额 → 再生成 matplotlib 代码画折线图 → 观察图表生成成功 → 输出结论 "Q3 增长 30%,主要受促销带动"。
- 机制要点:工具结果(包括报错信息)是 Agent 的 "观察",它把错误当作反馈来修正自己 —— 这叫试错学习,是 Agent 能完成复杂实操任务的关键。
- 实际价值:不会写代码的用户也能做数据分析;Agent 可执行 "写代码→运行→看结果→改代码" 的真实工作流。
组件五:规划与决策 —— Agent 的 "项目经理"
- 任务分解(Plan-and-Execute):先制定完整计划再执行(区别于 ReAct 的走一步看一步)。例如 "写市场报告"→ 计划 [1 调研 2 列大纲 3 撰写 4 校对],逐项执行并跟踪进度。
- 反思(Reflection / Reflexion):执行完一阶段后,Agent 对比 "实际结果 vs 目标",找出差距,把反思结论存入记忆,下一轮改进。就像学生做完题后对答案、改错题。
- 多智能体协作(Multi-Agent):让多个 Agent 扮演不同角色(策划、执行、审校)分工合作,各司其职,例如一个 Agent 写文案、另一个负责检查事实错误。
组件六:反馈与学习 —— Agent 的 "复盘机制"
- 执行级反馈:工具调用失败 → 换参数重试或换工具;结果不符合预期 → 反思后调整策略。
- 用户级反馈:用户说 "不对,我要的是便宜的" → Agent 修正条件重新执行。
- 长期学习:从用户历史反馈中总结偏好(存长期记忆),甚至通过 RLHF 等方式优化模型本身。
四、串联起来:一个 Agent 的完整工作流
以 "语音 + 图片混合请求" 为例,把六个组件串起来:
用户对着手机说:"帮我看看这张体检单,箭头标高的项严不严重?" 并拍了照片。
- 感知:ASR 把语音转成文字;视觉编码器 + OCR 读取体检单图片 → 两类信息都进入上下文。
- 思考:认知核心理解意图 "要解读体检指标",检索长期记忆(该用户的历史体检数据)。
- 规划:决定步骤:①认指标→②查参考范围→③对比历史→④评估风险。
- 行动:调用工具查询医学知识库 / 权威资料,获取各指标标准值。
- 观察:对照结果,判断哪些指标超标、幅度多大。
- 输出:生成 "3 项偏高,其中血糖需重视,建议就医复查" 的语音 + 文字回复。
- 反馈:若用户追问 "那饮食上注意什么",新一轮循环启动,继续检索、回答。
五、实际价值与主要挑战
价值:把大模型从 "只会说话的百科全书" 升级为 "能办事的助理"—— 查实时信息、操作软件、执行代码、记住用户、多步完成任务。这是 2024 年以来大模型落地到工作生活的核心形态。
挑战(新手也要知道):
- 幻觉:模型可能编造不存在的事实,所以关键任务要配合工具检索和结果核验(RAG + 工具调用就是防幻觉手段)。
- 工具执行风险:Agent 的操作可能有真实后果(付款、发消息、删文件),所以需要权限控制与沙箱隔离。
- 上下文限制:上下文窗口有限,对话太长需要压缩或外置记忆。
- 安全与对齐:防止 Agent 被恶意提示词诱导做有害操作,需要安全过滤和人类监督。