🔗 LangChain 完全解读
AI 应用开发的主流框架 · 从入门到理解
一、LangChain 是什么?
LangChain 是一个开源的 AI 应用开发框架,由 Harrison Chase 于 2022 年 10 月创建。它的核心理念很简单:
"把大语言模型的能力 串起来(Chain),让它能干更复杂的事。"
2026年6月的今天,LangChain 已经从最初的一个 Python 库,发展成了覆盖开发、调试、部署、监控全链路的工具生态:
二、LangChain 解决了什么问题?
在 LangChain 出现之前,用 LLM 写一个稍微复杂的应用,开发者需要自己处理:
Prompt 管理
拼字符串、版本混乱
工具调用
LLM 输出→解析→选择工具
文档加载
PDF/网页/数据库格式各异
多模型切换
OpenAI/Claude/Local API 不统一
记忆管理
跨对话记忆难维护
RAG 流程
分块→向量化→检索→生成
LangChain 把这些重复性的"脏活累活"都封装成了标准组件,开发者只需要"搭积木"就能完成复杂的 AI 应用。
三、核心概念深度拆解
3.1 Chain(链)
Chain 是 LangChain 最原始的概念——把多个步骤像链条一样串起来,前一步的输出是后一步的输入。
2024 年起,LangChain 引入了 LangGraph,用有向图代替线性链,支持分支、循环、并行——更灵活,也更复杂。
⚡ Chain vs Graph
Chain 是"一条直线":A → B → C → D
Graph 是"一张流程图":可以 A → (B 或 C) → 如果失败则重试 → D
现在官方推荐用 LangGraph,Chain 已是旧模式。
3.2 Agent(智能体)
Agent 是 LangChain 里面最强大、也是最有争议的概念。它的核心思想:让 LLM 自己决定下一步做什么。
Agent 的典型工作循环:
- 收到用户问题:"帮我查一下 AAPL 今天的股价"
- LLM 思考:我需要调用「股票查询工具」,参数是 AAPL
- 调用工具 → 获取结果 → 将结果送回给 LLM
- LLM 思考:结果拿到了,用户问的是股价,我组织一下语言回答
- 输出最终回答
→ 这就是 ReAct(Reason + Act) 范式
LangChain 支持多种 Agent 类型:
- OpenAI Tools Agent: 基于 OpenAI 的函数调用能力,最稳定
- ReAct Agent: 通用的"思考-行动-观察"循环
- Structured Chat Agent: 支持多参数工具调用
- Custom Agent: 自己写 Prompt 定义行为
3.3 Tool(工具)
工具是 Agent 操作外部世界的接口。一个 Tool 本质上就是一个带描述的 Python 函数:
LangChain 内置了 100+ 预置工具,涵盖:
- 网页搜索(Google、Bing、DuckDuckGo)
- 文件操作(PDF、CSV、JSON)
- 数据库查询(SQL、向量数据库)
- API 调用(Wikipedia、Arxiv、Python REPL)
- 图像生成、代码执行……
3.4 RAG(检索增强生成)
RAG 是 LangChain 使用率最高的能力之一。它的核心流程:
↓
向量化(Embeddings) → 存入向量数据库(VectorStore)
↓
用户提问 → 语义检索 → 取回相关片段
↓
片段 + 原问题 → LLM → 生成回答
LangChain 的 RAG 组件生态:
| 组件 | 支持的选项(部分) |
|---|---|
| Document Loaders | PDF / HTML / Markdown / CSV / JSON / Notion / Confluence / S3 / 数据库 |
| Text Splitters | 按字符 / 按 token / 按句 / 递归分割 / 语义分割 |
| Embedding Models | OpenAI / HuggingFace / Cohere / Google / Ollama 等 30+ 种 |
| Vector Stores | Chroma / FAISS / Pinecone / Weaviate / Milvus / Qdrant / PGVector |
| Retrievers | 向量检索 / BM25 全文检索 / 混合检索 / 时间感知检索 / 多查询检索 |
3.5 Memory(记忆)
LLM 本身是无状态的——每次调用都是独立的。Memory 模块让 AI 能"记住":
| 类型 | 怎么记 | 适合 |
|---|---|---|
| Buffer Memory | 直接把全部对话历史塞进 Prompt | 简短对话 |
| Summary Memory | 定期把历史浓缩成摘要 | 长对话 |
| Vector Store Memory | 向量化存储,检索相关记忆 | 超长/长期记忆 |
| Entity Memory | 提取并记住实体信息(人名、喜好) | 个性化助手 |
四、LangGraph:Agent 2.0
LangGraph 是 LangChain 目前最核心的产品。它把 Agent 的每一步定义为一个"节点"(Node),节点之间的跳转逻辑定义为"边"(Edge),形成一张可执行的有向图。
典型的 LangGraph Agent 流程图
↓
LLM 决策节点
┌──────┼──────┐
↓ ↓ ↓
查天气 查日历 搜网页
└──────┼──────┘
↓
汇总输出
↓
最终回答
LangGraph 相比传统 Agent 的优势:
- 可控制: 每一步都能插入断点、人工审核、回退
- 可观察: 每一轮思考/工具调用都能输出日志
- 可并行: 支持多分支并行执行
- 可嵌套: 一个图中的节点可以是另一个子图
- 流式输出: 支持实时的 token 流、状态流
五、LangChain vs 其他框架
六、LangChain 典型应用场景
客服机器人
RAG 查知识库+Agent 调用工单系统
数据分析助手
Agent 写 SQL → 查数据库 → 画图表
文档生成
多步 Chain:提纲→初稿→润色→格式
自动化工作流
邮件处理→分类→回复→归档
七、关于 LangChain 的主流评价
👍 支持方
- 生态无可替代——接入 500+ 模型/工具/向量库
- 社区活跃——Issue 响应快,案例多
- LangGraph 是 Agent 框架里最成熟的之一
- 从原型到生产一条龙
👎 反对方
- 过度抽象——简单的 API 调用被封装得复杂
- 版本不兼容——0.1→0.2→0.3 每次大改都破坏性
- "LLM 的 OS 抽象层"争议——是否真的需要这么厚一层
- 对于简单应用,直接调 API 比用 LangChain 更快
🤔 虾虾的视角:
LangChain 适合开发复杂的 Agent 应用,但如果你只是用 AI 聊天、问问题,不需要直接接触它。
OpenClaw 之所以能让你"下令就干活",底层其实做了类似 LangChain 做的事情——把 LLM 调用、工具编排、记忆管理、RAG 都封装好了。
学 LangChain 是为了理解原理和自己造东西,用 OpenClaw 是为了高效工作。两者不冲突 🦐
📌 记住三句话
LangChain 是 "搭积木的工具包"
核心是 Chain → Graph → Agent 的演进
不用纠结要不要学——需要造复杂 AI 应用时再来
登录后才能评论哦 ~ 立即登录