AI Agent白手起家17: LangChain框架入门与核心概念解析
纲要
- LangChain 是什么
- 定义与定位:大模型与AI应用的“粘合剂”
- 核心设计理念:React(Reason + Action)
- 发展历程与版本现状(v0.1 到 v0.3 的演变)
- LangChain 能做什么
- 统一的多模型调用接口
- 提示词管理与优化
- 链式调用(Chains)
- 检索增强生成(RAG)
- Agent 与工具调用
- Memory 持久化状态
- 评估与质量保障
- 核心组件速览
- 模型 I/O:Prompt、LLM、Output Parser
- Chains:端到端流程封装
- RAG 与外部知识库
- Agent 智能体
- 优劣势分析
- 优势:多模型无缝切换、轻量级SDK、多模态与推理模型支持、生态丰富
- 劣势:学习曲线陡峭、文档与版本变化问题
- 开发环境搭建与第一个示例
- 项目目录结构
- 环境准备与依赖安装
- 最小可运行链:翻译助手
- 总结与展望
LangChain 是什么
想象一下,大型语言模型(LLM)像一个能力超群但缺乏手脚的大脑。你直接通过 Web 界面与它对话只能得到文本回复,想把它的能力整合进自动化流程、串联多个模型或工具就非常困难。LangChain 正是为了给这个“大脑”装上四肢与工具链而生的开源框架。
LangChain 的目标是简化使用大语言模型构建端到端应用程序的过程。它被定义为一款大模型与AI应用的粘合剂:将提示词、模型调用、结果解析、外部工具、知识库等组件像搭积木一样组合起来,从而构建出可复用、可维护的智能应用。
它的核心理念源自 React(Reason + Action) 范式。Reason 代表推理——让 AI 系统进行逻辑思考;Action 代表行动——基于推理结果执行具体操作(例如调用搜索引擎、查询数据库、运行代码)。这种“思考-行动-观察-再思考”的循环,模仿了人类解决问题的过程,是 LangChain 中 Agent 智能体工作的基础。
LangChain 于 2022 年 10 月开源,迅速获得大量开发者关注,目前 GitHub Star 数量增长极快,种子轮即获千万美元融资。项目主要维护两个语言版本:Python 和 TypeScript,社区也涌现出 Go、Java 等第三语言实现。当前最新大版本为 0.3,但注意整个框架尚未发布 1.0 稳定版,版本更迭非常活跃。
LangChain 能做什么
LangChain 提供了从底层模型调用到上层智能体应用的完整能力栈,主要包括以下几个方面:
1. 统一的模型调用
支持几乎所有主流大模型:OpenAI、DeepSeek、Claude、Gemini、通义千问等。无论底层模型 API 差异多大,开发者都使用同一套接口进行调用,模型切换只需修改一行代码。
2. 提示词工程
将提示词模板化、参数化,支持动态构造提示,并提供提示词版本管理与优化工具。你可以把提示词看作“操作说明书”,LangChain 让它可编程、可复用。
3. 链式调用(Chains)
将“提示词 → 模型 → 输出解析”封装为一个链(Chain),并允许多个链串联或并行,形成更复杂的处理流程。例如一个翻译链可以组合“文件读取链 → 批量翻译链 → 格式转换链”。
4. 检索增强生成(RAG)
大模型的预训练数据有截止日期,无法回答私域或实时信息。RAG 模式会先到外部知识源(向量数据库、文档库等)检索相关信息,再与用户问题一同喂给模型,从而大幅降低幻觉,获得最新、领域专属的答案。
5. Agent 智能体
Agent 是更高级的封装:它能够自动拆分任务、决定调用哪些工具、观察结果并调整行动,直至完成目标。LangChain 内置了标准 Agent 开发范式,也提供了与 LangGraph(图驱动工作流)的结合路径。
6. Memory 状态记忆
为对话添加持久化的上下文记忆,支持多种存储后端(内存、数据库),让智能应用具有“记住”多轮对话的能力。
7. 评估(Evaluation)
提供自动化评估工具,可以用一个模型测评另一个模型的输出质量、正确性,方便生产环境下的持续监测。
下面用一张流程图展示 LangChain 应用中一次典型的交互过程:
核心组件速览
LangChain 的设计高度模块化,核心组件可以按不同层级理解:
| 组件 | 作用 | 示例 |
|---|---|---|
| Prompt | 定义与模型的交互方式、角色和指令 | 你是一个专业翻译,将以下中文翻译为英文:{text} |
| LLM / ChatModel | 调用具体大模型 | ChatOpenAI(model="gpt-4") 、ChatDeepSeek(model="deepseek-chat") |
| Output Parser | 将模型原始输出解析为结构化数据 | 解析出 JSON、Python 对象、列表等 |
| Chain | 组合上述组件形成端到端流程 | 翻译链、问答链、多步推理链 |
| Retriever | 从外部知识源检索相关文档 | 向量数据库相似度搜索 |
| Agent | 动态决策,调用工具,循环执行 | 自主分析任务、决定用计算器还是搜索引擎 |
| Memory | 会话上下文持久化 | 对话历史存储 |
优劣势分析
LangChain 能力强大,但在实际生产中也要客观看待其优劣。
优势
- 多模型无缝切换
一套代码适应不同模型,甚至可以实现故障自动切换(例如 OpenAI 额度耗尽自动切到 DeepSeek)。 - 轻量级 SDK
Python 和 TypeScript 的原生集成,学习成本相对较低,前端后端开发者均可快速上手。 - 多模态与推理模型支持
文字、图像、音视频统一处理接口;新近的推理型模型(如 DeepSeek-R1、OpenAI o 系列)也能直接调用。 - 活跃的社区与生态
大量现成模板、工具集成和第三方应用,加速开发。
劣势
- 学习曲线较陡
涉及提示工程、链组合、记忆管理、Agent 决策等众多概念,新手容易迷失。 - 文档不完善且变化快
官方文档仍在快速迭代,v0.1 和 v0.3 的 API 存在较大断裂,老代码可能需要重构。 - 架构演化剧烈
从单一包langchain到拆分为多个子包(langchain-core、langchain-community等),又新推出langgraph,增加了选择困难。
简单应用(单链、多步提示)推荐直接使用
langchain基础模块;复杂工作流或生产级 Agent 推荐探索langgraph。
开发环境搭建与第一个示例
下面我们基于 Python 搭建一个最小可运行的 LangChain 应用——自动翻译链。用户输入一段中文,链自动翻译为英文并返回。
项目结构
langchain-demo/
├── main.py
└── requirements.txt
环境准备
确保 Python 版本 >= 3.9,新建虚拟环境后安装依赖。
python -m venv venv
source venv/bin/activate # Windows 使用 venv\Scripts\activate
pip install langchain langchain-openai python-dotenv
如果你打算使用 DeepSeek 模型,可额外安装 langchain-deepseek。为方便演示,这里采用 DeepSeek 的 deepseek-chat 模型(需注册并获取 API Key,有免费额度)。在项目根目录创建 .env 文件:
DEEPSEEK_API_KEY=你的API密钥
完整代码
新建 main.py,写入以下内容:
import os
from dotenv import load_dotenv
from langchain_core.prompts import ChatPromptTemplate
from langchain_deepseek import ChatDeepSeek
from langchain_core.output_parsers import StrOutputParser
# 加载环境变量
load_dotenv()
api_key = os.getenv("DEEPSEEK_API_KEY")
if not api_key:
raise ValueError("请在 .env 文件中设置 DEEPSEEK_API_KEY")
# 初始化模型
llm = ChatDeepSeek(
model="deepseek-chat",
temperature=0.3, # 控制生成随机性,越低越确定
api_key=api_key
)
# 构造提示词模板:翻译任务
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个专业的翻译助手,请将用户输入的中文准确翻译为英文。"),
("human", "{text}")
])
# 输出解析器:直接取出字符串
output_parser = StrOutputParser()
# 构建链:prompt -> llm -> output_parser
chain = prompt | llm | output_parser
# 测试运行
if __name__ == "__main__":
chinese_text = "人工智能正在改变我们的工作和生活方式。"
print("原文:", chinese_text)
result = chain.invoke({"text": chinese_text})
print("翻译:", result)
运行
python main.py
预期输出类似:
原文: 人工智能正在改变我们的工作和生活方式。
翻译: Artificial intelligence is changing the way we work and live.
代码解析
ChatDeepSeek:封装了对 DeepSeek 聊天模型的调用,也可替换为ChatOpenAI等。ChatPromptTemplate:通过system和human消息定义对话角色和占位符。StrOutputParser:将模型的 AIMessage 对象直接转为字符串。- 链式操作符
|:LangChain 使用 LCEL(LangChain Expression Language)构建链,清晰表达数据流向。
这个例子虽简单,但完整展示了 LangChain 的基本骨架。你可以轻松扩展链,比如在翻译前先做语言检测,或翻译后调用 TTS 服务朗读结果。
总结
本文从 LangChain 的诞生背景、核心能力、组件构成到实际编码,完整梳理了一个 AI Agent 开发工程师需要掌握的基础知识。虽然 LangChain 的学习曲线和版本变化带来一定挑战,但其多模型统一调用、组件化设计、丰富的工具生态,仍然使其成为当前构建大模型应用的主流选择。
建议初学者从简单的链开始,逐步增加记忆、RAG、Agent 等高级功能,稳扎稳打地进入 AI 应用开发的世界。
更多推荐


所有评论(0)