📖 本章预览
本章为预览版本,展示部分核心内容。完整内容包含详细源码解析、实战代码和面试要点,加入知识星球即可解锁全部章节。
第15章 Agent 智能体:AI 自己会思考了
15.1 什么是 Agent
15.1.1 Agent vs 普通 LLM 调用
普通 LLM 调用:
用户提问 → LLM 回答 → 结束(一问一答)
Agent:
用户提问 → LLM 思考 → 调用工具 → 观察结果 → 继续思考 → 调用工具 → ... → 最终回答
(自主循环,直到任务完成)
核心区别:Agent 有"自主决策"能力,能决定下一步做什么
15.1.2 Agent 架构模式
三种主流架构:
1. ReAct(Reasoning + Acting)
思考 → 行动 → 观察 → 思考 → 行动 → ...
适合:通用任务,工具调用场景
2. Plan-and-Execute
先制定完整计划 → 逐步执行 → 根据结果调整计划
适合:复杂多步骤任务
3. Reflexion
执行 → 反思 → 改进 → 重新执行
适合:需要自我纠错的场景
15.1.3 深入理解:ReAct 的底层机制
ReAct 是目前最主流的 Agent 架构,理解它的底层机制是理解所有 Agent 的基础。
ReAct 的核心思想来自一篇论文(Yao et al., 2022):
让 LLM 交替进行"推理"(Reasoning)和"行动"(Acting),
而不是一步到位给出答案。
为什么这样做有效?
- 纯推理(Chain-of-Thought):LLM 只靠自己想,容易幻觉
- 纯行动(直接调工具):没有思考过程,不知道该调什么工具
- ReAct:先想清楚要做什么(Thought),再去做(Action),
看到结果后再想下一步(Observation → Thought),形成闭环
这就像一个人解决问题的自然过程:
"我需要查天气"(思考)→ 打开天气App(行动)→ 看到28°C晴(观察)
→ "天气不错,再查下航班"(思考)→ 打开携程(行动)→ ...
ReAct 在底层是怎么实现的?答案是:Prompt 工程 + Function Calling 的循环。
第一轮 Prompt(系统指令 + 用户问题 + 工具列表):
┌─────────────────────────────────────────────────────────┐
│ System: 你是一个助手。你可以使用以下工具: │
│ - getWeather(city): 查询城市天气 │
│ - searchFlight(from, to, date): 搜索航班 │
│ 请按照以下格式思考和行动: │
│ Thought: 我需要做什么 │
│ Action: 调用什么工具 │
│ Observation: 工具返回了什么 │
│ ... (重复直到任务完成) │
│ Final Answer: 最终回答 │
│ │
│ User: 帮我查下明天北京天气和去上海的航班 │
└─────────────────────────────────────────────────────────┘
LLM 第一轮输出:
Thought: 用户需要天气和航班信息,先查天气
Action: getWeather({"city": "北京"})
→ Spring AI 拦截 tool_call,执行函数,把结果作为 Observation 追加到消息列表
第二轮 Prompt(追加了上一轮的 Action + Observation):
... 之前的消息 ...
Assistant: [tool_call: getWeather({"city":"北京"})]
Tool: {"temperature": 28, "description": "晴"}
LLM 第二轮输出:
Thought: 天气查到了,接下来查航班
Action: searchFlight({"from":"北京","to":"上海","date":"2026-03-31"})
→ 再次执行函数...
第三轮:
Thought: 信息都齐了,可以回答了
Final Answer: 北京明天晴,28°C。推荐 MU5678 航班...
关键认知:
1. Agent 的"思考"不是什么神秘的东西,就是 LLM 生成的文本
2. Agent 的"循环"就是多轮 Function Calling
3. Agent 的"自主决策"就是 LLM 根据 Prompt 中的指令和历史上下文,
决定下一步调什么工具或者直接给出最终答案
4. maxIterations 限制是必须的——LLM 可能陷入死循环(反复调同一个工具)
🔒 解锁完整内容
本章剩余内容需要解锁后查看
以上仅为本章部分预览内容,完整内容包含更多深度源码解析、实战代码和面试要点。
加入知识星球你将获得:
- ✅ 全部 26 章完整内容 + 持续更新
- ✅ 配套源码 + 实战项目
- ✅ 一对一答疑 + 面试辅导
- ✅ 简历优化 + 内推机会
📚 本章完整目录
以下为本章完整目录结构,加入知识星球即可解锁全部内容。