2026年LangChain使用指南——开发AI智能应用

LangChain使用指南——开发AI智能应用大模型 LLM 虽强大 但存在无记忆 无外部能力 易幻觉 三大缺陷 无法直接落地企业级应用 LangChain 是大模型应用开发的标准框架 通过模块化设计补齐 LLM 短板 让开发者快速搭建聊天机器人 私有知识库 自主智能体等 AI 应用 相比于 LangChain 的使用

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



大模型(LLM)虽强大,但存在无记忆、无外部能力、易幻觉三大缺陷,无法直接落地企业级应用。LangChain 是大模型应用开发的标准框架,通过模块化设计补齐 LLM 短板,让开发者快速搭建聊天机器人、私有知识库、自主智能体等 AI 应用。

相比于LangChain的使用,我认为更重要的是理解Agent和RAG的工作机制,LangChain的各个模块间分别起到了什么作用。


LangChain 是基于大语言模型构建 AI 应用的开发框架,核心价值是模块化、流程化、标准化大模型应用开发,屏蔽底层差异,让开发者专注业务逻辑。

  • 统一对接各类大模型(GPT、通义千问、文心一言等)
  • 给 AI 添加上下文记忆,实现多轮对话
  • 接入外部工具(搜索、计算、数据库)
  • 搭建私有知识库,解决大模型幻觉
  • 实现自主决策智能体,完成复杂任务

LangChain 采用模块化设计,6 大核心组件可自由组合,适配不同业务场景。



1.1 核心作用

LangChain 与大模型的交互入口,负责提示词管理、模型调用、输出解析,统一屏蔽不同 LLM 的 API 差异。

1.2 核心组件

  • PromptTemplate:提示词模板,动态传参,标准化指令
  • ChatModels:对接各类对话大模型
  • OutputParser:输出解析器,将自由文本转为 JSON / 列表等结构化数据

1.3 实战代码

 from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser import os # 配置大模型 os.environ["OPENAI_API_KEY"] = "你的API_KEY" llm = ChatOpenAI(model="gpt-4o-mini", temperature=0) # 1. 定义提示词模板 prompt = ChatPromptTemplate.from_messages([ ("system", "你是专业的Java后端开发助手,回答简洁专业"), ("user", "{question}") ]) # 2. 定义输出解析器 parser = StrOutputParser() # 3. 组装链路:提示词 → 模型 → 解析器 chain = prompt | llm | parser # 调用 result = chain.invoke({"question": "Java后端有哪些常用锁?"}) print(result) 

1.4 适用场景

所有 LangChain 应用的基础入口,所有模块都依赖 Model IO 对接大模型。


2.1 核心作用

Prompt + LLM + 组件 串成固定流程流水线,是 LangChain 最基础的执行单元,适合硬编码、固定顺序的任务。

2.2 核心特点

  • 流程固定,执行稳定
  • 开发简单,开箱即用
  • 与 Agent 的区别:Chain 无自主决策,Agent 可动态规划

2.3 常用 Chain 类型

  • LLMChain:基础单步调用
  • ConversationChain:带记忆的对话链
  • SimpleSequentialChain:多步骤顺序执行

2.4 实战代码(顺序链)

 from langchain.chains import LLMChain, SimpleSequentialChain # 步骤1:总结技术文章 prompt1 = ChatPromptTemplate.from_template("总结这段技术文章:{text}") chain1 = LLMChain(llm=llm, prompt=prompt1) # 步骤2:将总结转为面试题 prompt2 = ChatPromptTemplate.from_template("根据这段总结生成1道面试题:{summary}") chain2 = LLMChain(llm=llm, prompt=prompt2) # 组装顺序链(自动传递上一步结果) total_chain = SimpleSequentialChain( chains=[chain1, chain2], verbose=True # 打印执行流程 ) # 执行 total_chain.invoke("Redis分布式锁的实现原理是SETNX+过期时间,Redisson实现可重入和锁续约") 

2.5 适用场景

固定步骤的简单任务:文本总结、翻译、格式转换、单轮问答。


3.1 核心作用

大模型本身无记忆,Memory 负责存储对话历史,将历史拼入 Prompt,实现多轮上下文对话

3.2 核心工作流程

读历史 → 拼 Prompt → 写新历史

3.3 常用记忆类型(企业级选型)

表格

记忆类型 特点 适用场景 ConversationBufferMemory 全量保存对话 短对话 ConversationBufferWindowMemory 保留最近 k 轮 普通长对话 ConversationTokenBufferMemory 按 Token 限制 严格控 Token ConversationSummaryBufferMemory 最新原文 + 旧数据摘要 生产环境首选

3.4 实战代码(生产级摘要记忆)

 from langchain.memory import ConversationSummaryBufferMemory from langchain.chains import ConversationChain # 初始化摘要记忆(最大Token限制) memory = ConversationSummaryBufferMemory( llm=llm, max_token_limit=1000 # 超过则自动生成摘要 ) # 创建带记忆的对话链 conversation = ConversationChain( llm=llm, memory=memory, verbose=True ) # 多轮对话测试 conversation.invoke("我是Java后端开发,正在学LangChain") conversation.invoke("我适合做什么AI应用?") # 能记住上一轮信息 

3.5 适用场景

所有多轮对话应用:智能客服、聊天助手、交互式 AI 工具。


4.1 核心作用

给大模型扩展外部能力,打破 LLM 知识边界,让 AI 能联网、计算、查数据库、调用业务接口。

4.2 核心分类

  • 内置工具:搜索(Tavily)、计算器(PythonREPL)、代码执行
  • 自定义工具:封装业务接口、数据库操作、内部系统

4.3 实战代码(自定义业务工具)

 from langchain.tools import Tool # 自定义工具:Java后端技术推荐 def java_tech_recommend(level: str) -> str: """根据开发水平推荐Java后端技术栈""" if level == "初级": return "SpringBoot、MyBatis、MySQL、Redis基础" elif level == "中级": return "SpringCloud、Redis分布式、MQ、分库分表" elif level == "高级": return "微服务架构、ServiceMesh、云原生、可观测性" else: return "请输入正确的开发级别" # 创建工具对象 java_tool = Tool( name="JavaTechRecommend", func=java_tech_recommend, description="用于根据Java开发级别推荐技术栈,参数为初级/中级/高级" ) # 工具列表 tools = [java_tool] 

4.4 适用场景

需要外部能力的 AI 应用:联网问答、数据计算、业务系统对接。


5.1 核心概念与定位

Agent(智能体)是 LangChain 的高阶核心模块,是以大语言模型 LLM 作为决策大脑,能够自主理解任务、拆解目标、选择工具、规划执行步骤、自主推进并完成复杂任务的系统。

与固定流程的 Chain 不同,Agent 没有写死的执行步骤,而是像人一样思考、决策、行动,处理开放、复杂、无固定规则的任务。

5.2 AI 能力等级类比(自动驾驶分级)

表格

AI 等级 名称 特点 代表产品 L1 Tool 人类完成全部工作,AI 仅作为工具 计算器、普通软件 L2 Chatbot 人类主导,AI 仅提供信息 / 回答 基础版 ChatGPT L3 Copilot 人机协作,AI 辅助完成 GitHub Copilot、Midjourney L4 Agent AI 主导,人类仅监督 AutoGPT、LangChain Agent L5 Species 完全自主,无需人类干预 未来通用人工智能 AGI

5.3 Agent 与 Chain 核心区别

表格

特性 Chain Agent 执行流程 固定、硬编码、线性执行 动态、自主决策、多步推理 决策能力 无,按顺序执行 有推理、反思、规划能力 任务类型 简单、固定、确定流程 复杂、多变、开放问题 依赖外部 不需要自主选工具 自主选择并调用工具 灵活性 低 高

5.4 Agent 核心组成(六要素)

  • LLM 大脑:推理、决策、规划、判断
  • Memory 记忆:短期上下文记忆 + 长期向量记忆
  • Tools 工具:搜索、计算、代码、数据库、API
  • Planning 规划:拆解任务、反思纠错、多步推进
  • Action 执行:调用工具、获取结果、处理信息
  • Collaboration 协作:多智能体协同完成复杂任务

5.5 Agent 两大核心工作模式

5.5.1 ReAct 模式(最通用)

全称:Reasoning + Acting原理:先思考推理,再行动调用工具,用自然语言描述思考过程。

  • 优点:通用性强、所有模型都支持、可解释性好
  • 缺点:速度稍慢、依赖格式解析

典型类型:

  • ZERO_SHOT_REACT_DESCRIPTION(零样本推理)
  • CONVERSATIONAL_REACT_DESCRIPTION(对话记忆版)
  • STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION
5.5.2 Tool Calling 模式(高效)

原理:LLM 直接输出结构化 JSON,指定调用哪个工具、传什么参数。

  • 优点:速度快、格式稳定、不易出错
  • 缺点:需要模型原生支持工具调用能力

典型类型:

  • OPENAI_TOOLS
  • OPENAI_MULTI_TOOLS

表格

特性 ReAct Tool Calling 输出格式 自然文本 结构化 JSON 执行速度 较慢 快 模型支持 全部模型 支持工具调用的模型 稳定性 一般,需解析 高,不易乱 可解释性 高,能看完整思考 低,仅保留调用记录

5.6 Agent 关键组件详解

5.6.1 Tool(工具)

工具是 Agent 与外部世界交互的接口:

  • 联网搜索:TavilySearch、DuckDuckGo
  • 数学计算:Calculator、PythonREPL
  • 代码执行:Python、Shell
  • 自定义能力:API、数据库、文件操作、企业内部系统接口

必备三要素:

  • name:工具名称
  • func:具体执行函数
  • description:功能描述(Agent 依靠描述自主选择工具)
5.6.2 Memory(记忆)
  • ConversationBufferMemory(原始完整记忆)
  • ConversationSummaryMemory(摘要压缩记忆)
  • ConversationBufferWindowMemory(滑动窗口记忆)
  • VectorStoreRetrieverMemory(长期向量持久记忆)
5.6.3 AgentExecutor(执行器)
  • 运行 Agent 实例
  • 调度工具流转
  • 维护思考 - 行动 - 观察循环
  • 错误捕获、格式容错
  • 控制最大迭代次数,防止死循环

5.7 Agent 创建方式

5.7.1 传统快速方式(initialize_agent)
 agent_executor = initialize_agent( tools=tools, llm=llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True, memory=memory, handle_parsing_errors=True ) 
5.7.2 通用灵活方式
 prompt = hub.pull("hwchase17/react")//直接拉取提示词 agent = create_react_agent(llm, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) 

5.8 执行完整流程

  1. Thought:自主判断需要做什么、是否调用工具
  2. Action:选定工具并传入参数
  3. Observation:接收工具返回结果
  4. 循环多轮 → 信息足够
  5. Final Answer:输出最终答案

5.9 关键参数详解

  • verbose=True:打印完整思考链,调试必开
  • handle_parsing_errors=True:解析失败自动修复,生产必备
  • max_iterations=3:限制循环次数,避免死循环
  • return_intermediate_steps=True:返回中间思考过程

5.10 带记忆的多轮对话 Agent(完整代码)

 from langchain_openai import ChatOpenAI from langchain.agents import initialize_agent, AgentType from langchain_community.tools.tavily_search import TavilySearchResults from langchain.memory import ConversationBufferMemory import os # 配置密钥 os.environ["TAVILY_API_KEY"] = "你的密钥" os.environ["OPENAI_API_KEY"] = "你的密钥" # 1. 工具 search = TavilySearchResults(max_results=2) tools = [search] # 2. 记忆 memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True ) # 3. 大模型 llm = ChatOpenAI(model="gpt-4o-mini", temperature=0) # 4. 创建Agent agent_executor = initialize_agent( tools=tools, llm=llm, agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION, memory=memory, verbose=True, handle_parsing_errors=True ) # 5. 多轮对话 agent_executor.invoke("2026年人工智能发展趋势") agent_executor.invoke("有哪些对应的大模型") agent_executor.invoke("这些模型如何用于后端开发") 

5.11 典型应用场景

  • 智能问答(联网搜索 + 多步推理)
  • 自动化信息收集、总结、分析
  • 代码自动编写、调试、运行
  • 股票 / 行业数据分析(搜索 + 计算)
  • 智能客服、任务机器人、决策助手
  • 复杂业务流程自动化

5.12 优势与价值

  • 无需硬编码流程,自适应多变任务
  • 可独立完成人类才能处理的复杂任务
  • 降低开发成本,提升系统智能上限
  • 可扩展、可记忆、可反思、可协作

6.1、RAG 到底是什么?

RAG = Retrieval-Augmented Generation检索增强生成。

大白话:先去私有知识库检索相关内容 → 把内容塞给大模型 → 让大模型只根据检索到的内容回答

作用:

  • 解决大模型幻觉(胡编乱造)
  • 接入私有数据(PDF、Excel、Word、知识库)
  • 保证答案真实、可追溯、可更新

6.2、RAG 标准六步流程(必背)

1. Source 数据源

支持:PDF、Word、CSV、JSON、TXT、HTML、Markdown、数据库、网页

2. Load 文档加载

DocumentLoader 把文件转成 LangChain 统一的 Document 对象。

常见加载器:

  • TextLoader:txt
  • PyPDFLoader:PDF
  • CSVLoader:表格
  • JSONLoader:JSON
  • UnstructuredXXXLoader:Word/HTML/Markdown
3. Transform 文本切分(最关键)

长文本切成小块(chunk),才能向量化。

常用切分器:

  • RecursiveCharacterTextSplitter(最常用、最通用)
  • CharacterTextSplitter(按字符切)
  • TokenTextSplitter(按 Token 切)
  • MarkdownTextSplitter / HTMLHeaderTextSplitter(结构化文档)
  • SemanticChunker(语义切分,效果最好)
4. Embed 文本转向量

把文本块变成 向量(embedding)

常用嵌入模型:

  • text-embedding-ada-002(OpenAI)
  • text-embedding-3-large
  • 开源:BGE、m3e、bge-m3
5. Store 向量存储

把向量存入 向量数据库

常用向量库:

  • FAISS(本地内存,简单)
  • Chroma(轻量持久化)
  • Milvus、Pinecone、Redis、ES
6. Retrieve 检索召回

用户提问 → 转向量 → 在向量库找最相似的文本块 → 塞给模型回答。


6.3、RAG 核心组件超详细讲解

1. DocumentLoader(文档加载器)

作用:把任何文件 → 统一的 Document 对象。

Document 只有两个东西:

  • page_content:文本内容
  • metadata:来源、页码、行数等

示例(加载 PDF):

 loader = PyPDFLoader("xxx.pdf") documents = loader.load() 

2. Text Splitter(文本切分器)

为什么要切分?

  • 模型有 Token 限制
  • 太长检索不精准

最常用:RecursiveCharacterTextSplitter

段落 → 换行 → 空格 → 字符 递归切分,尽可能保持语义完整。

 text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, # 每块最大长度 chunk_overlap=50, # 重叠字符,避免切断语义 separators=[" ", " ", "。", "!", "?", ""] ) texts = text_splitter.split_documents(documents) 

3. Embedding Model(向量模型)

把文本变成高维向量

相似文本 → 向量距离近。

 embedding = OpenAIEmbeddings(model="text-embedding-3-large") 

4. Vector Store(向量数据库)

存储向量 + 快速相似度检索。

FAISS(最简单)
 db = FAISS.from_documents(texts, embedding) 
Chroma(持久化)
 db = Chroma.from_documents( texts, embedding, persist_directory="./chroma_db" ) 

5. Retriever(检索器)

从向量库获取相关文本块。

 retriever = db.as_retriever( search_kwargs={"k": 3} # 返回最相似3条 ) 

检索方式

  • similarity_search:普通相似度
  • similarity_score_threshold:分数阈值过滤
  • max_marginal_relevance_search(MMR):平衡相似度 + 多样性

6.4、RAG 完整实战代码

 # 1. 加载文档 loader = PyPDFLoader("mybook.pdf") documents = loader.load() # 2. 切分 splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=50 ) chunks = splitter.split_documents(documents) # 3. 向量模型 embedding = OpenAIEmbeddings() # 4. 存入向量库 db = FAISS.from_documents(chunks, embedding) # 5. 获取检索器 retriever = db.as_retriever(search_kwargs={"k=3"}) # 6. 构建RAG问答链 qa = RetrievalQA.from_chain_type( llm=ChatOpenAI(model="gpt-4o-mini"), chain_type="stuff", retriever=retriever, return_source_documents=True ) # 7. 提问 result = qa.invoke("分布式锁怎么实现?") print(result["result"])

业务场景 核心模块组合 推荐组件 单轮问答 Model IO + Chains LLMChain 多轮对话 Model IO + Chains + Memory ConversationSummaryBufferMemory 私有知识问答 Model IO + Chains + Retrieval RAG 全流程 联网 / 工具调用 Model IO + Tools + Agents ReAct 模式 Agent 自主决策任务 Model IO + Tools + Agents + Memory 带记忆的 Conversational Agent

小讯
上一篇 2026-04-27 08:36
下一篇 2026-04-27 08:34

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/280372.html