一文了解 Agent 智能体:从 ReAct 到 Plan-and-Solve,打造会思考、能行动的 AI 助手


🎯 为什么我们需要 Agent?

大语言模型(LLM)如 Qwen、GPT-4、Claude 能写诗、编程、聊天 —— 但它们本质上还是“问答机器”。

❗ 它们不会主动思考、不会拆解复杂任务、不会调用工具、不会反思错误。

而现实世界的问题往往是:

  • “帮我规划一次从北京到拉萨的7天自驾游,包含每天路线、住宿、预算。”
  • “监控公司服务器日志,发现异常自动发邮件告警。”
  • “根据用户需求,自动写代码、跑测试、部署上线。”

Agent(智能体) = LLM + 记忆 + 规划 + 工具 + 反思
它让大模型从“被动应答”升级为“主动执行”,成为真正的“AI 员工”。


一、什么是 Agent?核心组件图解

一个标准 Agent 包含四大模块:

┌──────────────┐
│   大模型大脑     │ ← 决策、推理、生成(如 Qwen、GPT-4)
└──────┬───────┘
       │
┌──────▼───────┐
│   记忆系统      │ ← 存储历史对话、中间结果、用户偏好
└──────┬───────┘
       │
┌──────▼───────┐
│   规划与反思     │ ← 拆解任务、制定步骤、评估结果、自我修正
└──────┬───────┘
       │
┌──────▼───────┐
│   工具调用系统    │ ← 调用计算器、搜索引擎、API、代码解释器等
└──────────────┘

🌟 Agent 的本质:用 LLM 驱动一个“操作系统”,让它像人一样“思考→行动→观察→调整”。


二、Agent 三大主流范式


1️⃣ ReAct(Reason + Act)—— “边想边做”范式

📌 2022 年由 Princeton & Google 提出,最经典、最实用的 Agent 框架

🔍 核心思想:

让模型在每一步交替输出:

  • Thought(思考:下一步该做什么?)
  • Action(行动:调用哪个工具?参数是什么?)
  • Observation(观察:工具返回了什么结果?)
🧩 示例:
用户:上海明天的最高气温乘以 3 是多少?

Thought: 我需要先查上海明天的天气,再做乘法。
Action: {"name": "get_weather", "args": {"city": "上海", "date": "明天"}}
Observation: {"temperature_max": "28°C"}

Thought: 现在计算 28 * 3。
Action: {"name": "calculator", "args": {"expression": "28 * 3"}}
Observation: 84

Thought: 我已得到答案。
Final Answer: 上海明天的最高气温乘以 3 是 84°C。
✅ 优势:
  • 简单、直观、易实现
  • 支持复杂多步推理
  • 社区支持好(LangChain、LlamaIndex 默认支持)
🛠️ 实现工具:
  • LangChain Agent(ReAct 模板)
  • AutoGen(微软)
  • Dify / Coze(低代码平台)

2️⃣ Plan-and-Solve(计划与执行)—— “先想后做”范式

📌 2023 年提出,先让模型制定完整计划,再逐步执行

🔍 核心思想:
  1. Plan:模型一次性输出完整步骤(如:1. 查天气 → 2. 计算 → 3. 输出)
  2. Solve:按计划逐步执行,每步可调用工具
🧩 示例:
用户:帮我订一张下周从北京到上海的最便宜机票。

Plan:
1. 查询下周北京→上海的航班列表
2. 找出价格最低的航班
3. 模拟订票(因无真实支付,仅返回信息)

Solve Step 1:
Action: flight_search({"from": "北京", "to": "上海", "date": "next_week"})
Observation: [航班A: ¥800, 航班B: ¥1200, 航班C: ¥650]

Solve Step 2:
Thought: 最便宜是航班C(¥650)
Observation: selected_flight = "航班C"

Solve Step 3:
Action: mock_booking({"flight": "航班C"})
Observation: 订票成功,订单号:XYZ123

Final Answer: 已为您找到最便宜航班:航班C,¥650,订单号 XYZ123。
✅ 优势:
  • 适合结构化、流程化任务
  • 减少“走一步看一步”的冗余思考
  • 用户可预览计划,体验更好
⚠️ 挑战:
  • 计划可能不完整或错误,需支持动态调整

3️⃣ Tool Use(工具调用)—— Agent 的“手脚”

没有工具的 Agent,就像没有手脚的人 —— 想得再好也做不成事。

🔧 常见工具类型:
工具类型 示例 用途
搜索引擎 Google Search API、SerpAPI 获取实时信息
计算器 Python eval、Wolfram Alpha 数学计算
代码解释器 Python REPL、Jupyter Kernel 执行代码、画图、数据分析
数据库 SQL 查询、向量检索 查询结构化/非结构化数据
API 调用 天气 API、订票 API、企业内部系统 连接真实世界服务
文件操作 读写本地文件、PDF 解析 处理文档、数据
🧠 工具调用关键点:
  • 工具描述清晰:模型需理解工具功能、参数、返回值
  • 参数格式严格:推荐 JSON Schema,避免模型胡乱传参
  • 错误处理:工具失败时,模型需能重试或换方案

✅ 推荐工具描述格式(OpenAI Function Calling 风格):

{
  "name": "get_weather",
  "description": "获取指定城市和日期的天气信息",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {"type": "string", "description": "城市名"},
      "date": {"type": "string", "description": "日期,格式:YYYY-MM-DD"}
    },
    "required": ["city"]
  }
}

三、高级 Agent 技术


🌟 1. Memory(记忆)—— 让 Agent 有“上下文感知”

无记忆的 Agent,每次对话都是“失忆症患者”。

类型:
  • 短期记忆:当前对话历史(Chat History)
  • 长期记忆:用户偏好、历史任务、知识库(向量数据库)
  • 反思记忆:记录失败经验,避免重复犯错
工具:
  • LangChain Memory(Buffer、Summary、VectorStore)
  • 自定义记忆模块(如用 Chroma 存储历史)

🌟 2. Self-Reflection(自我反思)—— 让 Agent “从错误中学习”

2023 年 Stanford 提出,让模型评估自己上一步是否正确,决定是否调整策略

示例:
Action: calculator("28 * 3")
Observation: 840  ← 错误!应为 84

Reflection: 我刚才计算错误,28*3 应该是 84,不是 840。我将重新计算。
Action: calculator("28 * 3")
Observation: 84
✅ 优势:
  • 显著提升复杂任务成功率
  • 减少人工干预

🌟 3. Multi-Agent(多智能体协作)—— “团队作战”

一个 Agent 能力有限,多个 Agent 协作可解决更复杂问题。

典型架构:
  • Manager Agent:接收用户请求,拆解任务,分配给 Worker
  • Worker Agent:各司其职(Researcher、Coder、Reviewer、Planner)
  • Critic Agent:评估结果质量,提出修改意见

📌 微软 AutoGen、Meta CICERO 均采用多 Agent 架构。


四、Agent 开发框架推荐(2025)

框架 优势 适用场景 学习曲线
LangChain 生态最全、文档丰富、支持 ReAct/Plan 快速原型、研究 ⭐⭐
LlamaIndex 专注 RAG + Agent,检索增强强 知识库问答型 Agent ⭐⭐
AutoGen(微软) 多 Agent 协作、对话能力强 复杂任务、团队模拟 ⭐⭐⭐
Dify / Coze 低代码、可视化编排、内置工具 产品经理、非程序员
Semantic Kernel(微软) 企业级、支持 .NET/Python 企业内部系统集成 ⭐⭐⭐

✅ 新手推荐:LangChain + ReAct,社区资源多,上手快。


五、实战案例:10 分钟构建一个旅行规划 Agent

from langchain.agents import AgentExecutor, create_react_agent
from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
from langchain_openai import ChatOpenAI  # 或替换为 Qwen

# 1. 定义工具
search = DuckDuckGoSearchRun()
wiki = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())

tools = [search, wiki]

# 2. 初始化 LLM(可用 Qwen、GPT-4)
llm = ChatOpenAI(model="gpt-4-turbo")

# 3. 创建 ReAct Agent
agent = create_react_agent(llm, tools, prompt=...)

# 4. 执行
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({
    "input": "帮我规划一个东京3日游,包含景点、美食、交通建议。"
})
print(result["output"])

🚀 输出示例: “第一天:上午浅草寺 → 中午吃寿司 → 下午上野公园... [附参考链接]”


六、Agent 评估指标

不能只看“回答是否流畅”,要看“任务是否完成”。

指标 说明 评估方式
任务完成率 能否完整解决用户请求 人工评估 / 自动化测试
工具调用准确率 工具选择和参数是否正确 日志分析
步骤合理性 计划/思考是否逻辑清晰 LLM-as-a-Judge
幻觉率 是否编造工具返回结果 对比真实 API 返回
效率 完成任务所需步数/时间 系统监控

✅ 推荐构建“Agent 测试集”:50~100 个复杂任务,用于迭代优化。


七、前沿趋势(2025-2026)

  1. Agent OS(智能体操作系统):微软、Google 正在构建 Agent 专用运行时(如 Microsoft Copilot Studio)。
  2. 自主学习 Agent:Agent 能自动发现新工具、学习新技能(如 GitHub Copilot X)。
  3. 具身智能(Embodied Agent):Agent 控制机器人、自动驾驶汽车(NVIDIA、Tesla 在探索)。
  4. Agent 即服务(Agent-as-a-Service):云平台提供“Agent 容器”,一键部署(如 Dify Cloud)。
  5. 法律与伦理框架:各国将出台 Agent 行为规范(如“不得未经授权调用 API”)。

✅ 总结:Agent 技术全景图

用户请求
    │
    ▼
[规划:ReAct / Plan-and-Solve]
    │
    ▼
[思考 → 调用工具 → 观察结果]
    │
    ▼
[记忆存储 + 自我反思]
    │
    ▼
[多 Agent 协作(可选)]
    │
    ▼
输出 → 完整、准确、可执行的解决方案

🎓 Agent = LLM 的“操作系统”
它不是取代人类,而是成为人类的“超级助手”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐