理解 Agent 的基本元素
从 LLM 这个"大脑"开始,到工具、记忆、规划——逐一拆解 Agent 的关键能力。
大型语言模型 (LLM)
Agent 的"大脑"。基于 Transformer 架构,从海量文本中学习统计规律,并通过自回归方式生成下一个 token。
- 从 GPT-3 到 GPT-4o/Claude/Gemini 的演进
- Token、上下文窗口、温度、Top-p 等关键参数
- 幻觉现象与边界:知道 LLM 不能做什么
提示工程 (Prompt Engineering)
通过精心构造的文本指令,引导 LLM 输出更准确、更可靠的响应。这是与 LLM 交互的"语言艺术"。
- Zero-shot / Few-shot / Chain-of-Thought
- System Prompt 的角色与最佳实践
- Structured Output 与 JSON 模式
工具调用 (Function Calling)
让 LLM 突破纯文本限制,可以调用外部 API、查询数据库、执行代码。Agent "行动能力"的来源。
- OpenAI Function Calling / Tool Use
- 工具描述的编写规范
- 多工具选择与参数生成
推理 (Reasoning)
不只是模式匹配。LLM 通过 Chain-of-Thought、Self-Consistency、Tree-of-Thoughts 等方法在 token 间"推理"。
- CoT / ReAct / Self-Refine
- 推理时计算 (Inference-time Compute)
- o1/o3 类推理模型的范式转变
记忆 (Memory)
短期对话缓冲、长期事实存储、向量语义记忆——Agent 持续进化的关键。
- 短期记忆:上下文窗口内的对话
- 长期记忆:向量数据库 + 知识图谱
- 情景记忆、语义记忆、程序性记忆
规划 (Planning)
把复杂任务拆解为可执行步骤,选择合适的工具,处理执行中的异常并动态调整计划。
- Plan-and-Execute 模式
- 任务分解 (Task Decomposition)
- 反思与重规划 (Re-planning)
主流 Agent 运行范式
理解每种范式的设计动机、适用场景和典型实现。
ReAct:思考 - 行动 - 观察循环
最经典的 Agent 范式。模型在每一轮循环中:先思考 (Thought) 当前状况,决定下一步行动 (Action), 执行后观察结果 (Observation),再进入下一轮循环,直到任务完成。
Thought: 思考
LLM 分析当前状态,决定下一步要做什么。这一步决定了 Agent 的"智能性"。
Action: 行动
选择工具、生成参数、调用外部系统。这是 Agent 的"动手能力"。
Observation: 观察
接收工具返回的结果,作为下一轮循环的输入。
循环 / 终止
判断任务完成则输出最终答案;否则回到 Thought 继续循环。
# 极简 ReAct 实现
def react_agent(query, max_steps=8):
history = f"问题: {query}\n"
for step in range(max_steps):
# 1. Thought
thought = llm(f"{history}\n思考下一步:")
# 2. Action
action = parse_action(thought)
# 3. Observation
observation = tools[action.tool](**action.args)
history += f"思考: {thought}\n行动: {action}\n观察: {observation}\n"
# 4. 判断完成
if action.tool == "Finish":
return observation
return "未完成"
ReAct 的"思考"质量直接决定 Agent 上限。这是为什么 OpenAI o1/o3 类推理模型在大工具调用场景也持续领先。
Plan-and-Execute:先规划,后执行
适合复杂、可分解任务。先用 LLM 生成完整执行计划,再逐项执行。 典型代表:BabyAGI、AutoGPT、LangGraph 的规划器。
- 更适合需要长链推理的复杂任务
- 可缓存规划结果,节省 token
- 易于调试:可读出完整计划
- 失败回滚更可控
# Plan-and-Execute 模式
def run(task):
# 阶段 1: 生成计划
plan = planner.invoke(f"任务: {task}\n生成步骤:")
results = []
# 阶段 2: 逐项执行
for step in plan.steps:
result = executor.invoke(step, context=results)
results.append(result)
# 阶段 3: 必要时重规划
if result.need_replan:
plan = replanner.invoke(plan, results)
return results[-1]
多 Agent 协作:分而治之
将复杂任务交给多个专门化 Agent,通过协作、辩论、监督完成。CrewAI、AutoGen、MetaGPT 是代表。
典型协作模式
多 Agent 不总是更强。它增加 token 成本和复杂度。任务明确时单 Agent 更高效。
graph LR
M[👔 Manager] -->|分派任务| E1[🧑💻 Engineer A]
M -->|分派任务| E2[🧑💻 Engineer B]
E1 -->|交付代码| R[🧐 Reviewer]
E2 -->|交付代码| R
R -->|反馈意见| E1
R -->|反馈意见| E2
R -->|汇总报告| M
图编排:状态化的 Agent 构造
LangGraph 将 Agent 抽象为有向图 (DAG),节点是动作,边是条件。天然支持状态管理、人工干预、并行分支。
核心优势
- 状态显式:每个节点共享全局状态,可检查点
- 条件分支:根据状态决定下一步走向
- 循环天然支持:图结构允许节点回到自身
- Human-in-the-loop:可暂停等待人工输入
stateDiagram-v2
[*] --> 输入
输入 --> 分析: query
分析 --> 规划: 任务明确
分析 --> 澄清: 信息不足
澄清 --> 分析: 再次分析
规划 --> 执行
执行 --> 评估
评估 --> 完成: 通过
评估 --> 重规划: 未通过
重规划 --> 规划
完成 --> [*]
你是不是真的掌握了?
完成下面的清单。如果有不确定的,回到对应章节复习。
🧠 第一阶段自检清单
-
能用一段话向非技术人员解释什么是 AI Agent不是"能调用工具的 LLM",而是包含感知、推理、行动、记忆的自主系统。
-
能区分 LLM、Agent、AI Assistant、AI Workflow 的差异Agent 的核心是"自主决策做什么",而 LLM 只是"被调用的模型"。
-
能说出 ReAct、Plan-and-Execute、多 Agent 三种范式的差异与适用场景能针对具体任务选择最合适的范式,并说出理由。
-
能独立设计一个高质量的 Tool 描述(含参数 schema)tool description 是 LLM 决策的关键输入,需要像写 API 文档一样对待。
-
理解 Function Calling 的内部流程(从用户输入到工具返回)不只是"调个 API",而是模型如何解析、参数如何生成、结果如何回到上下文。
-
知道短期记忆和长期记忆的本质区别与实现方式短期记忆 = 上下文窗口内容;长期记忆 = 持久化的向量/结构化数据。
清单勾完,进入下一阶段学习:
进入 Phase 2 · 技能与工具栈 →