核心概念
更新: 4/9/2026 字数: 0 字 时长: 0 分钟
本章介绍 LangChain Agent 的核心概念,包括 Agent 定义、与 Chain 的区别、工作流程等。
什么是 Agent?
定义
Agent(智能体) 是能够自主感知环境、做出决策、执行动作的系统。在 LLM 语境下:
Agent = LLM (大脑) + Tools (工具) + Memory (记忆) + State (状态)Agent 的自主能力
┌─────────────────────────────────────────────────────────────┐
│ Agent 自主能力 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 🔍 感知 (Perceive) │
│ └── 接收用户输入、工具返回结果、外部信息 │
│ │
│ 🧠 推理 (Reason) │
│ └── 分析上下文、制定行动计划、评估结果 │
│ │
│ 🎯 决策 (Decide) │
│ └── 选择使用哪个工具、如何组合操作 │
│ │
│ ⚡ 执行 (Act) │
│ └── 调用工具、处理响应、生成回复 │
│ │
│ 📝 记忆 (Remember) │
│ └── 保持对话上下文、跨会话持久化 │
│ │
└─────────────────────────────────────────────────────────────┘为什么需要 Agent?
| 场景 | 传统方式 | Agent 方式 |
|---|---|---|
| 查天气 | 需要写死的 if-else | "帮我查天气" → 自动调用天气 API |
| 订机票 | 预设流程 | "帮我订去北京的机票" → 搜索→比较→预订 |
| 数据分析 | 固定流程 | "分析这份报告" → 阅读→理解→计算→总结 |
核心优势:从「预设流程」到「自主规划」的范式转变。
Agent vs Chain
基本对比
| 特性 | Chain | Agent |
|---|---|---|
| 执行模式 | 固定顺序 | 动态决策 |
| 工具调用 | ❌ 不支持 | ✅ 支持 |
| 适应性 | 低 | 高 |
| 复杂度 | 简单 | 复杂 |
| 调试难度 | 容易 | 较难 |
| 适用场景 | 固定流程 | 开放任务 |
Chain 示例
python
# Chain:固定流程,无法自主决策
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
prompt = PromptTemplate.from_template(
"把以下文本翻译成{language}: {text}"
)
chain = LLMChain(llm=llm, prompt=prompt)
# 每次都是:输入 → 翻译 → 输出
# 无法根据上下文选择其他操作
result = chain.invoke({"language": "中文", "text": "Hello"})Agent 示例
python
# Agent:动态决策,自主选择工具
from langchain.agents import create_agent
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=[search, translate, calculator],
system_prompt="你是助手,选择合适的工具完成任务"
)
# 执行流程:
# 1. 用户: "帮我搜索 AI 新闻,然后用中文总结"
# 2. Agent: 搜索新闻 → 判断需要总结 → 总结 → 返回
# 3. 用户: "1+1等于多少"
# 4. Agent: 直接调用 calculator → 返回 "2"何时选择?
决策流程
────────────────────────────────────────────────────────
用户输入
│
▼
┌─────────────────────────────────────────┐
│ 任务是否需要调用外部工具? │
└─────────────────────────────────────────┘
│ │
Yes No
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Agent │ │ Chain │
│ │ │ │
│ • 搜索引擎 │ │ • 简单问答 │
│ • 数据库查询 │ │ • 固定翻译 │
│ • API 调用 │ │ • 格式转换 │
│ • 多步骤任务 │ │ • 模板填充 │
└───────────────┘ └───────────────┘LangChain 生态定位
LangChain 家族
┌─────────────────────────────────────────────────────────────┐
│ LangChain Ecosystem │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ LangChain │ │ LangGraph │ │ LangSmith │ │
│ │ (高级抽象) │ │ (底层框架) │ │ (调试) │ │
│ └────────┬────────┘ └────────┬────────┘ └─────────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ LangChain.js │ │
│ │ (JS/TS) │ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘框架对比
| 框架 | 定位 | 抽象级别 | 适用场景 |
|---|---|---|---|
| LangChain | 高级 API | 高 | 快速构建标准 Agent |
| LangGraph | 底层框架 | 低 | 复杂工作流、深度定制 |
| Deep Agents | 内置功能 | 高 | 开箱即用的完整功能 |
Agent 工作流程
完整循环
LangChain Agent Execution Loop
────────────────────────────────────────────────────────────
┌────────────────────────────────────────────────────┐
│ │
│ ┌──────────┐ │
│ │ User │ │
│ │ Input │ │
│ └────┬─────┘ │
│ │ │
│ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ LLM │───▶│ Think │ │
│ │ (Reason) │ │ │ │
│ └────┬─────┘ └──────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ Decision Point │ │
│ │ "需要调用工具吗?" │ │
│ └───────────┬──────────────┘ │
│ │ │
│ ┌──────┴──────┐ │
│ │ │ │
│ Yes No │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────┐ ┌──────────┐ │
│ │ Tool │ │ Final │ │
│ │ Call │ │ Answer │ │
│ └───┬─────┘ └────┬─────┘ │
│ │ │ │
│ ▼ │ │
│ ┌─────────┐ │ │
│ │ Execute │ │ │
│ │ Tool │ │ │
│ └───┬─────┘ │ │
│ │ │ │
│ ▼ │ │
│ ┌─────────┐ │ │
│ │ Obs. │───────┘ │
│ │(结果) │ (Loop) │
│ └─────────┘ │
│ │
└─────────────────────────────────────────────────────┘ReAct 模式
什么是 ReAct?
ReAct = Reason + Act
是一种结合推理和行动的 Prompt 方法论,让 LLM 能够:
- 显式推理过程(Thought)
- 选择性地执行行动(Action)
- 从行动结果中学习(Observation)
ReAct vs 其他模式
| 模式 | 特点 | 适用场景 |
|---|---|---|
| ReAct | Thought → Action → Obs | 需要工具调用 |
| CoT | Chain of Thought | 复杂推理 |
| ToT | Tree of Thought | 探索多方案 |
| Reflexion | 反思机制 | 从错误中学习 |
核心组件
组件概览
Agent Core Components
────────────────────────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ Agent │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ LLM │ │ Tools │ │ Memory │ │
│ │ (模型) │ │ (工具) │ │ (记忆) │ │
│ │ │ │ │ │ │ │
│ │ • GPT-4 │ │ • search │ │ • Checkpointer │ │
│ │ • Claude │ │ • calculator │ │ • Vector Store │ │
│ │ • Gemini │ │ • API calls │ │ • Session │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Prompt │ │ Output │ │ State │ │
│ │ (提示) │ │ Parser │ │ (状态) │ │
│ │ │ │ (解析) │ │ │ │
│ │ • System │ │ │ │ • Messages │ │
│ │ • Examples │ │ • JSON │ │ • Context │ │
│ │ • Instructions│ │ • Pydantic │ │ • Variables │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘本章小结
关键要点
────────────────────────────────────────────────────────
✅ Agent = LLM + Tools + Memory + State
✅ Agent vs Chain: 动态决策 vs 固定流程
✅ ReAct 模式: Thought → Action → Observation
✅ LangChain 生态: LangChain / LangGraph / LangSmith
✅ 核心组件: Model, Tools, Memory, Prompt, Parser