AI Agents:从「会说话」到「会做事」
如果说大模型是一个博学但只能动嘴的顾问,那么 AI Agent(智能体)就是给它装上眼睛、手和记事本—— 让它能自主理解目标、拆解步骤、调用工具、执行动作并根据结果调整策略。 这是当前人工智能最重要的演进方向。
章 01什么是 AI Agent
定义
AI Agent(人工智能代理 / 智能体)指能够感知环境、自主决策并执行动作以达成目标的 AI 系统。 在大模型语境下,Agent 通常指:以大模型为「大脑」,配合规划、记忆与工具使用能力, 在较少人工干预下完成多步骤复杂任务的系统。
四个判别标准
Autonomy
无需人类逐步指令,能自行决定下一步做什么。
Reactivity
能感知环境变化(工具返回、页面状态)并据此调整行为。
Pro-activeness
不只是被动响应,还能主动提出方案、发起行动。
Social Ability
能与人类、其他智能体或外部系统协作沟通。
「智能体」不是新概念
在经典人工智能教科书中,智能体(Rational Agent)早已是核心概念: 任何能通过传感器感知环境并通过执行器作用于环境的实体都算智能体, 恒温器也是一个简单智能体。区别在于:过去的智能体靠人工编写的策略, 今天的智能体由大模型驱动,因而具备了通用的理解与推理能力。
章 02从大模型到智能体
问答式 LLM
输入问题 → 输出答案。局限:知识静态、无法行动、无法访问私有数据与实时信息、复杂任务一步到位不可靠。
LLM + 检索(RAG)
接入外部知识库,回答有依据、可更新、可溯源。仍局限:只能「说」,不能「做」。
LLM + 工具(Tool Use)
模型学会调用搜索、计算器、代码执行器、API。关键跃迁:输出从「文本」变成「动作」。
自主智能体 Agent
模型自主循环「思考—行动—观察」多轮迭代,能拆解长任务、自我纠错、调用多种工具。
多智能体协作
多个专职智能体分工协作(规划者、执行者、审核者),形成可治理的「AI 团队」。
理解 · 推理 · 生成
Planning
Memory
Tools
Action
章 03智能体的核心架构
一个典型的 LLM 智能体由五个模块组成,构成一个不断循环的运行闭环。
理解目标与环境状态
拆解为可执行的子任务
选择下一步动作
调用工具 / 生成输出
记录过程与结论,供后续轮次使用
模块拆解
| 模块 | 职责 | 常见实现 |
|---|---|---|
| 大脑 Brain | 核心推理引擎,理解意图、生成计划、判断下一步 | 大语言模型(可按需选择不同规模与能力的模型) |
| 规划 Planning | 把模糊目标分解为有序子任务,支持动态调整 | 思维链 CoT、任务树 ToT、计划—执行—重规划循环 |
| 记忆 Memory | 保存对话历史、中间结果、长期知识与经验 | 短期:上下文窗口;长期:向量数据库、知识库、摘要压缩 |
| 工具 Tools | 扩展能力边界:获取信息、执行计算、操作外部系统 | 搜索、代码解释器、数据库、API、RAG、浏览器、文件系统 |
| 行动 Action | 把决策转化为真实世界的效果 | 函数调用、消息发送、文件写入、机器人控制指令 |
# 智能体的最小运行循环(伪代码)
goal = "调研三家竞品并生成对比报告"
memory = [goal]
while not finished and steps < max_steps:
plan = llm.think(memory, tools_schema) # 思考:下一步做什么
action = plan.next_action # 决策:选工具与参数
result = tools.execute(action) # 行动:真正去执行
memory.append((action, result)) # 记忆:记录观察结果
finished = llm.judge(memory, goal) # 判断:目标是否达成
return llm.summarize(memory)
章 04规划与推理
主流推理范式
思维链 Chain-of-Thought
让模型把推理过程一步步写出来再给答案。简单一句话(如「请一步步思考」)即可显著提升复杂题正确率。 缺点是单链条走错无法回头。
思维树 Tree-of-Thought
同时展开多条推理路径,对中间状态打分,择优或回溯搜索。更像「深思熟虑」,代价是计算量成倍增加。
思维图 Graph-of-Thought
允许思维节点任意合并与回溯,比树结构更灵活,适合需要综合多条线索的问题。
推理 + 行动交替
Reasoning + Acting 交替进行:思考 → 行动 → 观察 → 再思考。 让模型能借助外部工具纠正自己的错误推理,是 Agent 最基础的范式。
ReAct 循环示例
问题:2025 年诺贝尔物理学奖得主是哪几位?
Thought 1: 这需要最新信息,我的知识可能过时,应该搜索。
Action 1: search("2025 诺贝尔物理学奖 得主")
Observe 1: [检索结果片段……]
Thought 2: 结果来自可靠来源,可以作答;再核对一次奖项名称。
Action 2: search("Nobel Prize Physics 2025 laureates official")
Observe 2: [官网结果……]
Thought 3: 两个来源一致,可以给出最终答案。
Answer : ……(附来源链接)
自我反思与纠错
- Self-Refine:模型对自己的输出提出批评并改进,多轮迭代。
- Reflexion:把失败经验写入「长期记忆」,在后续尝试中避免重蹈覆辙。
- 验证器 Verifier:用独立模型或规则检查答案(如单元测试验证代码、计算器验证算术)。
- 多数投票 Self-Consistency:多次采样取最一致的答案,简单但有效。
章 05记忆系统
短期记忆 / 工作记忆
即模型的上下文窗口内的全部内容:系统提示、历史对话、工具返回结果。 容量有限,超出即被截断或需压缩。
- 管理手段:滑动窗口、摘要压缩、关键信息提取
- 注意「中间信息易丢失」现象:长上下文首尾记得牢、中间易被忽略
长期记忆 / 外部记忆
把需要持久保存的信息放到模型之外,需要时检索回来。
- 语义记忆:事实与知识 → 向量数据库检索
- 情景记忆:过去的经历与案例 → 带时间戳的日志
- 程序记忆:技能与工作流 → 固化的提示模板 / 代码
上下文工程(Context Engineering)
与传统「提示工程」不同,智能体时代更强调在有限的上下文预算内动态组织最有用的信息: 该放什么、何时压缩、何时检索、如何排序。这是决定 Agent 稳定性的关键工程能力。
| 记忆类型 | 存储位置 | 典型用途 |
|---|---|---|
| 对话历史 | 上下文 / 数据库 | 维持连贯多轮交互 |
| 任务中间结果 | 结构化状态对象 | 支持回溯、断点续跑与审计 |
| 领域知识库 | 向量数据库 | 注入私有或专业信息(RAG) |
| 用户画像与偏好 | 持久化存储 | 个性化服务 |
| 经验与教训 | 案例库 / 反思日志 | 持续改进行为策略 |
章 06工具调用与 Function Calling
基本原理
开发者先用 JSON Schema 描述可用工具(名称、功能说明、参数格式), 模型在需要时输出一段结构化的「调用请求」,系统执行后把结果回填给模型,模型再继续推理。
{
"name": "get_weather",
"description": "查询指定城市当前的天气情况",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string", "description": "城市名称,如 北京" }
},
"required": ["city"]
}
}
// 模型输出(而非直接回答):
{ "tool": "get_weather", "arguments": { "city": "庆阳" } }
// 系统执行后回填:
{ "temperature": "12°C", "weather": "晴", "wind": "西北风 3 级" }
// 模型最终回答用户:
"庆阳当前晴,气温 12°C,西北风 3 级。"
常见工具类型
信息获取
网页搜索、网页抓取、数据库查询、文件读取、RAG 检索
计算执行
代码解释器、Python 沙箱、计算器、数据分析引擎
外部服务
邮件、日历、支付、CRM、ERP、各类业务 API
环境操作
浏览器自动化、GUI 操作、机器人控制、文件写入
MCP:让工具接入标准化
MCP(Model Context Protocol,模型上下文协议)是一种开放协议, 用于标准化「模型如何发现并调用外部工具与数据源」。 它解决的问题是:过去每个应用都要为每个模型、每个工具写一遍适配代码(M×N 问题), 有了统一协议后变成 M+N。
章 07经典智能体范式
| 范式 | 工作方式 | 适合场景 |
|---|---|---|
| ReAct | 思考与行动交替,边做边看结果 | 需要外部信息的探索型任务(调研、查证) |
| Plan-and-Execute | 先一次性制定完整计划,再逐步执行 | 步骤明确、依赖清晰的长任务 |
| Reflexion | 执行后自我批评并把教训写入记忆,重试 | 允许试错的任务(写代码、调试、创作) |
| Workflow / 编排式 | 人工预定义流程,模型只负责各节点 | 生产环境首选:稳定、可控、可审计 |
| Autonomous | 模型高度自主决定一切 | 开放探索;成本高、风险大,需严格沙箱与人工监督 |
| Human-in-the-loop | 关键决策点暂停并请求人类确认 | 高风险操作(付款、发信、删改数据) |
章 08多智能体系统
把一个复杂任务交给多个专职智能体分工完成,模拟人类团队的组织方式。
常见角色分工
Planner
拆解目标、分配任务、跟踪进度
Worker
完成具体子任务,可有多个专职执行者
Critic
检查质量、发现错误、提出修改意见
Orchestrator
汇总结果、解决冲突、决定是否需要返工
协作拓扑
流水线 Pipeline
A 的产出是 B 的输入,串行传递。简单可控,适合固定流程。
层级式 Hierarchical
主智能体分解任务并下发,子智能体汇报结果。适合复杂任务。
圆桌式 Debate
多个智能体各自提出方案并互相辩论,由裁判综合。可提升质量,成本较高。
章 09主流框架与开发实践
| 框架 / 类型 | 特点 | 适用 |
|---|---|---|
| LangChain / LangGraph | 生态成熟、组件丰富;LangGraph 支持有状态的图式编排 | 快速原型与复杂流程编排 |
| LlamaIndex | 专注数据索引与 RAG 链路 | 知识库问答、文档智能 |
| AutoGen | 以「多智能体对话」为核心抽象 | 多智能体协作与实验 |
| CrewAI | 角色与任务驱动的团队式编排,上手快 | 快速搭建分工型智能体团队 |
| Semantic Kernel | 微软出品,强类型、企业级、多语言支持 | 企业系统集成 |
| 原生 SDK 直调 | 直接使用模型厂商的 Function Calling 接口 | 需求简单时的推荐做法:依赖少、可控性最高 |
开发一个可靠 Agent 的十条经验
- 先问是否必要:能用提示或简单脚本解决的,不要上 Agent。
- 缩小工具集:工具越少越准,说明越具体越好。
- 结构化输出:强制 JSON Schema,减少解析失败。
- 设置护栏:最大步数、超时、预算上限、危险操作白名单。
- 可观测:记录每一次思考、调用与结果,便于复盘与审计。
- 失败重试与降级:解析失败重试、工具失败换路、最终回退人工。
- 状态外置:把任务状态存在数据库而非仅靠上下文,支持断点续跑。
- 分级模型:简单步骤用便宜的小模型,关键决策用强模型,成本可大幅下降。
- 评测集驱动:建立自己的任务集与评分标准,每次改动先跑评测。
- 人在环内:高风险动作必须经人工确认,保留撤销能力。
章 10应用场景与案例
代码智能体
能读仓库、改文件、跑测试、看报错再修改。 典型形态:IDE 内的 AI 助手、自动修 bug、从需求生成可运行项目。
个人助理
读邮件、安排日程、整理文档、跨平台取数汇总、生成周报与简报。
深度调研
自动检索多源资料、交叉验证、生成带引用的研究报告。 价值在于把数小时的信息收集压缩到几分钟。
数据分析
连接数据库或表格,用代码解释器清洗、统计、绘图,并解释结论。
业务办理型客服
不止于回答,还能查询订单、发起退款、修改预约——真正完成业务闭环。
自动化运维
监控告警 → 查日志 → 定位根因 → 执行预案 → 生成事故报告。
购物与比价
理解需求、跨平台比价、核对库存与评价、下单前请求确认。
机器人智能体
把语言指令转化为机器人动作序列,是具身智能的关键落地形态。
章 11局限、风险与评测
① 错误累积
多步骤任务中,单步成功率 90% 时,十步后整体成功率仅约 35%。这是 Agent 可靠性的核心难题。
② 死锁与跑偏
模型可能反复执行无效动作、陷入循环,或自信地误判「任务已完成」。
③ 权限与安全
能执行动作的系统一旦被提示注入攻击(Prompt Injection),可能被诱导执行危险操作。
④ 成本不可控
长循环任务可能消耗巨额 token;并发场景下成本更难预测。
⑤ 责任归属
智能体造成的错误(误发邮件、误删数据)由谁负责,尚无成熟的制度与保险安排。
⑥ 评测困难
开放式任务没有唯一正确答案,难以自动化打分,需要人工与用例集结合。
提示注入攻击示例
评测智能体的四个维度
| 维度 | 衡量什么 | 常用方法 |
|---|---|---|
| 任务成功率 | 是否达成最终目标 | 自建任务集 + 人工或程序化判定 |
| 效率 | 步数、耗时、token 成本 | 记录每轮开销,设定预算上限 |
| 安全性 | 是否越权、是否被注入 | 对抗测试、红队演练、权限审计 |
| 鲁棒性 | 工具失败、异常输入时的表现 | 故障注入测试,验证重试与降级 |