LangChain 入门教学:一张地图搞懂模型、链、RAG、图与智能体

简介: 本文是一份面向初学者的LangChain系统性入门指南,以“认知地图”为主线,清晰梳理LangChain 1.0、LangGraph、RAG、智能体(`create_agent`)等核心模块的定位与协作关系,摒弃过时API,聚焦2026年官方推荐架构,助开发者快速建立正确心智模型。(239字)

LangChain 入门教学:一张地图搞懂模型、链、RAG、图与智能体

这是一篇面向"想系统学 LangChain 但被各种名词绕晕"的开发者的教学文章。我们不从某段代码开始,而是先建立一张认知地图:LangChain 到底有哪些零件、各自解决什么问题、什么时候该用哪个。文中代码均为示意代码(教学用途),聚焦理解,不追求完整可跑。
image.png

一、先建立地图,再学工具

如果你搜过 LangChain 的教程,大概率会陷入混乱:有人说用 Chain,有人说用 LangGraph,有人说 create_react_agent,还有人说 AgentExecutor——这些其实都是历史遗留造成的"版本差"

好消息是,2026 年的今天,官方路线已经非常清晰:

  • LangChain 1.0 是核心框架(模型抽象、提示词、工具、RAG 组件);
  • LangGraph 1.0 是官方编排运行时(把流程变成图,支持持久化、人工介入、流式);
  • 智能体的标准入口是 create_agent(来自 langchain.agents),旧的 AgentExecutor 已废弃、create_react_agent 已不再推荐;
  • LangSmith 是官方可观测与评测平台(追踪每一步、评测智能体轨迹)。

换句话说:别再看老教程了,认准"LangChain 1.0 + LangGraph + create_agent"这条主线,剩下的都是细节。

二、一张图看懂 LangChain 生态

flowchart TD
    subgraph LC[LangChain 1.0 核心包]
        CM[ChatModel<br/>统一模型接口<br/>init_chat_model]
        PR[Prompt 与输出解析]
        TL[Tool 工具系统<br/>@tool 装饰器]
        RAG[RAG 组件<br/>Loader / Splitter / Embedding / Retriever]
        LCEL[LCEL 声明式管道]
    end
    subgraph LG[LangGraph 1.0]
        SG[StateGraph<br/>节点 / 边 / 条件边]
        AG[create_agent<br/>智能体工厂 + 中间件]
        CK[Checkpointer<br/>持久化 / thread_id]
    end
    subgraph INT[集成包]
        O[langchain-openai]
        AN[langchain-anthropic]
        GG[langchain-google-genai]
        CM2[langchain-community<br/>文档加载器 / 向量库]
    end
    subgraph LS[LangSmith]
        TR[追踪 / 评测 / 数据集]
    end
    INT --> CM
    LC --> AG
    LG --> LS

学习顺序建议:ChatModel → Prompt → Tool → RAG → LCEL → LangGraph → create_agent。下面按这个顺序一课一课讲。

第一课:ChatModel——所有应用的起点

一切 AI 应用的第一步都是"调一个模型"。LangChain 的价值之一,就是把各家模型的差异抹平:你写的业务代码不需要知道背后是 OpenAI、Anthropic、谷歌还是国产模型。

from langchain.chat_models import init_chat_model

# 统一接口,模型标识格式:provider:model
model = init_chat_model("openai:gpt-4o")          # OpenAI
model = init_chat_model("claude-sonnet-4-6")      # Anthropic
model = init_chat_model("google_genai:gemini-2.5-flash-lite")  # 谷歌
model = init_chat_model("ollama:llama3")          # 本地模型

# 三种基本调用方式
resp = model.invoke("LangChain 是什么?")          # 一次调用
for chunk in model.stream("讲个故事"):            # 流式输出
    print(chunk.text, end="")
results = model.batch(["问题1", "问题2"])          # 批量调用

聊天模型以"消息"为单位,记住这四种消息类型,后面所有概念都建立在它们之上:

消息类型 含义
SystemMessage 系统角色设定(你是谁、什么规矩)
HumanMessage 用户输入
AIMessage 模型回复(可能含工具调用请求 tool_calls
ToolMessage 工具执行结果,回填给模型

第二课:Prompt 与工具——给模型“说明书”和“双手”

Prompt 模板让提示词可复用、可参数化:

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一位{role}专家,回答问题要简洁。"),
    ("user", "{question}"),
])
final_prompt = prompt.invoke({
   "role": "Python", "question": "什么是装饰器?"})

工具让模型从"只会说"变成"能做事"。定义一个工具,本质上就是写一个带文档字符串的普通函数:

from langchain.tools import tool

@tool
def add(a: int, b: int) -> int:
    """计算两个整数的和。"""
    return a + b

# 把工具"绑定"到模型:模型会判断何时需要调用它
model_with_tools = model.bind_tools([add])
resp = model_with_tools.invoke("23 + 45 等于多少?")
for tc in resp.tool_calls:
    print(tc["name"], tc["args"])   # -> add {"a": 23, "b": 45}

注意一个关键点:工具描述写得好不好,直接决定模型会不会用、什么时候用——它相当于给模型的"产品说明书"。

第三课:RAG——让模型“知道”你的私有数据

模型训练完就定格了,不知道你公司的文档。RAG(检索增强生成)的思路很简单:先把你的文档切成块、向量化、存进向量库;用户提问时,先检索出相关片段,再连同问题一起交给模型

索引阶段(一次性的):

from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS

# 1. 加载文档
docs = TextLoader("product_manual.txt").load()

# 2. 切块(块大小与重叠率是 RAG 效果的第一影响因素)
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)

# 3. 向量化 + 存入向量库
vector_store = FAISS.from_documents(chunks, OpenAIEmbeddings())

查询阶段(每次问答):

retriever = vector_store.as_retriever(search_kwargs={
   "k": 4})
relevant_docs = retriever.invoke("怎么给产品充值?")   # 拿到最相关的 4 个片段
# 然后把片段拼进提示词,交给模型生成答案

到这里你会发现:RAG 只是"检索"和"生成"的组合。但生产级 RAG 远不止这三行——问题重写、混合检索、精排、相关性校验、来源引用,每一步都有学问(想深入可以看本系列的《企业知识库实战》篇)。

第四课:LCEL——把零件“管道”式组合

当你有了模型、提示词、输出解析器,怎么把它们拼起来?LCEL(LangChain 表达式语言)用 | 像管道一样连接:

from langchain_core.output_parsers import StrOutputParser

chain = prompt | model | StrOutputParser()   # 提示词 → 模型 → 字符串解析
result = chain.invoke({
   "role": "Python", "question": "什么是 GIL?"})

LCEL 适合"顺序固定的简单流程":输入进去、一路到底、没有分支。一旦流程有分支、有循环、有重试,就该升级到图。

第五课:LangGraph——把流程变成一张图

LangGraph 的核心心智模型只有三样东西:State(共享状态)、Node(节点)、Edge(边)

  • State:一份贯穿全程的共享数据(通常是消息列表);
  • Node:一个步骤(调模型、跑工具、写数据库……),读 State、改 State;
  • Edge:控制流,还可以是条件边——"模型要调工具就走工具节点,否则直接结束"。
from langgraph.graph import StateGraph, START, END

builder = StateGraph(MyState)            # 定义图,绑定状态类型
builder.add_node("call_model", call_model_node)
builder.add_node("run_tool", run_tool_node)
builder.add_edge(START, "call_model")
builder.add_conditional_edges(           # 条件边:根据模型输出决定走向
    "call_model",
    needs_tool,                          # 判断函数,返回下一节点名
    {
   "tool": "run_tool", "end": END},
)
builder.add_edge("run_tool", "call_model")   # 工具结果回填,形成循环
graph = builder.compile()

那"一个模型反复调工具直到完成任务"的智能体呢?——这正是 LangGraph 最经典的一个图,而官方已经帮你把它封装好了,那就是下一课的 create_agent

第六课:智能体——create_agent 与中间件

到了 2026 年,建智能体的标准姿势就是一行 create_agent

from langchain.agents import create_agent
from langchain.tools import tool

@tool
def get_weather(city: str) -> str:
    """返回指定城市的天气。"""
    return f"{city} 晴,31℃"

agent = create_agent(
    model="openai:gpt-4o",
    tools=[get_weather],
    system_prompt="你是天气助手,要用工具查询,不要瞎猜。",
)
result = agent.invoke({
   "messages": [{
   "role": "user", "content": "北京天气?"}]})
print(result["messages"][-1].content)

这一行背后发生的事:模型节点 ↔ 工具节点 + 条件边 + 循环,也就是第七课那张图,只是你不用手画了。再叠加两个关键能力:

  1. 持久化(记忆):传一个 checkpointer + 每次带 thread_id,多轮对话就自动记住了:
from langgraph.checkpoint.memory import InMemorySaver

agent = create_agent(model="openai:gpt-4o", tools=[...],
                     checkpointer=InMemorySaver())
agent.invoke({
   "messages": [...]}, config={
   "configurable": {
   "thread_id": "conv-001"}})
  1. 中间件(自定义扩展点):限流、历史裁剪、Token 预算、人工审批、重试兜底……这些"每次都必须、又不能靠提示词保证"的生产级逻辑,都通过 AgentMiddleware 挂在智能体循环上,互不耦合、可插拔(本系列第一篇《用 LangChain 新 Agent API 与中间件机制,构建生产级 AI 智能体》详细讲过)。

第七课:什么时候用 Chain、图还是智能体?

这是新手最容易纠结的问题,一张表说清楚:

场景 选型 原因
固定流程,一路到底(总结、翻译、格式化) LCEL Chain 简单直接,没有分支
有分支、循环、人工介入、可恢复的流程 LangGraph 自定义图 状态与控制流是显式的
"让模型自主决定调用哪些工具完成任务" create_agent 官方标准,内置循环与中间件
长代码任务、长文档研究 create_deep_agent 官方预置的深度智能体栈

一句话记忆:LCEL 是"流水线",LangGraph 是"流程图",create_agent 是"官方预装好的那张智能体流程图"。

第八课:给新手的避坑清单

  1. 别看老教程:凡是教你 AgentExecutorcreate_react_agentConversationBufferMemory 的旧文章,API 多半已废弃,认准 create_agent + checkpointer
  2. 按需安装pip install langchain "langchain[openai]",别一把梭装全家桶;集成包按需加。
  3. 工具描述即说明书:工具 docstring 写得好,模型才用得准;写不好,模型会瞎调用或不用。
  4. RAG 效果瓶颈常在切分:chunk_size / overlap 不是拍脑袋定的,要按文档类型试。
  5. 别把所有逻辑塞进提示词:限流、鉴权、PII 过滤这类确定性逻辑,用中间件;提示词是软约束。
  6. 从第一天就接观测:LangSmith(或自建日志)记录每次模型调用与工具调用,出问题才有得查。
  7. 模型切换是"换字符串"model="provider:model" 改一行就行——这正是抽象层给你的红利。

结语

LangChain 最大的价值不是"少写代码",而是给了你一套稳定、可组合、可观测的抽象:模型统一接口、工具即函数、流程即图、智能体即工厂函数。把这套心智模型装进脑子,再看任何具体 API,都不会迷路。

学习路径建议:先用 create_agent 做出第一个能调工具的智能体(半小时),再用 init_chat_model + LCEL 做一条简单 Chain,然后上手 LangGraph 手写一个多节点流程,最后回头研究中间件与生产化。先跑通,再拆开,最后做深——这是学任何框架都通用的顺序。


📖 完整技术文档:docs.gjbjai.com/docs/intro/
官网链接:https://gjbjai.com/
作者注:本文为「硅基边界」零代码构建平台(https://ai.gjbjai.com/)旗下 Silicon-AI 实战复盘系列的教学基础篇。文中代码均为示意代码(教学用途),非任何项目真实源码。系列其他篇目:《用 LangChain 新 Agent API 与中间件机制,构建生产级 AI 智能体》《企业知识库实战:RAG 全链路设计》,欢迎联动阅读。

相关实践学习
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
29天前
|
存储 监控 API
基于 RAG + LangChain 搭建企业级私有知识库问答系统(2026 实战版)
本文是作者基于多个企业RAG知识库落地经验的实战总结,提供完整可运行代码与十年避坑指南。涵盖文档解析、混合检索、向量存储、DeepSeek接入、结果重排、拒答机制及效果评估,助你构建本地可运行、生产可扩展的企业级私有知识库系统。(239字)
381 1
|
30天前
|
人工智能 JSON NoSQL
从零构建 AI Agent:基于 LangGraph 的多工具智能体实战(含完整代码)
本文详解如何用LangGraph从零构建生产级AI Agent:支持自主规划、多工具调用(天气/搜索/计算/笔记)、失败重试与Redis会话记忆。代码开箱即用,涵盖架构设计、状态图实现及流式输出等核心能力,助企业突破RAG局限,落地真实业务场景。
253 0
|
7月前
|
人工智能 JSON JavaScript
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
17468 20
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
|
3月前
|
人工智能 缓存 JavaScript
2026 年开源 Agent 工具包选型指南:延迟、审计、可移植性与语言栈
本文系统梳理2026年构建AI Agent的7层开源工具栈,围绕四大核心约束——延迟预算、审计追踪、模型可移植性与语言栈(Python/TS),对比LangGraph、CrewAI、Mem0、Zep、OpenHands、Langfuse、vLLM等主流方案的适用场景、替换成本及开源性质,助力团队按需选型,避免“一刀切”组合陷阱。
885 1
2026 年开源 Agent 工具包选型指南:延迟、审计、可移植性与语言栈
|
23天前
|
机器学习/深度学习 数据采集 人工智能
企业知识库搭建实战:RAG 从文档导入到检索调优全流程拆解
本文详解企业知识库搭建实战:以RAG为核心,覆盖文档导入、智能解析分段、语义/增强检索调优全流程。结合硅基边界平台案例,直击解析策略、分段长度、相似度阈值等关键参数调优要点,助技术/产品/运营团队两周内快速验证AI问答效果,让私域资料真正变成“会回答的AI”。
|
1月前
|
设计模式 Web App开发 人工智能
【AI】Agent 全栈进阶|系统化学习路线专题
描述 Agent 的概念、核心构成,规划出一套循序渐进的 Agent 开发学习路径,从大模型调用、工具调用、RAG、运行模式、记忆机制再到工程化调试,同时附上多款适合入门钻研的开源参考项目
1437 6
|
24天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
2486 1
|
3月前
|
存储 人工智能 前端开发
【AI Agent】65题 AI Agent 全栈开发最新技术面试宝典(含高频+必背+真题)
AI Agent全栈开发面试宝典:内容体系完整,从基础概念(Agentic Loop、ReAct/ToT演进)到工程落地(死循环三层防御、SSE流式输出、分布式状态同步),再到前沿协议(MCP/A2A),并配有代码级解决方案与架构图。全文聚焦“可落地性”,强调分层防御、可观测性、成本控制与安全防呆,助力候选人展现扎实的全栈能力与生产思维。
2716 2
【AI Agent】65题 AI Agent 全栈开发最新技术面试宝典(含高频+必背+真题)
|
1月前
|
SQL 人工智能 文字识别
阿里把内部用了两年的 AI 代码审查工具开源了——我跑了一遍 Open Code Review
阿里开源的 Open Code Review 是一款工程化 AI 代码审查工具,采用“确定性模块 + LLM Agent”混合架构,精准定位问题、严控误报率,支持 Git 差异审查与全量扫描,已落地服务数万开发者。周增星 4750,Apache-2.0 协议,轻量易集成。(239 字)
606 2
|
5月前
|
人工智能 安全 API
深度解析 Claude Code 在 Prompt / Context / Harness 的设计与实践
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
4145 75
深度解析 Claude Code 在 Prompt / Context / Harness 的设计与实践

热门文章

最新文章