LangChain v1.3实战:Agent智能体与RAG检索增强生成开发指南 这次我们来看 LangChain v1.3 的最新版本这是 2026 年发布的重要更新重点解决大模型应用开发中的 Agent 智能体和 RAG 检索增强生成两大核心场景。如果你正在寻找一套从零开始、代码驱动、能快速上手的 LangChain 实战指南这篇文章会直接带你进入核心环节。LangChain 作为一个开源框架主要帮助开发者将大语言模型LLM接入实际业务系统。v1.3 版本在 Agent 执行稳定性、RAG 检索精度、链式任务调度上都有明显提升。我们将重点关注如何配置本地或云端模型环境、如何构建一个可运行的 Agent 系统、如何实现基于文档的 RAG 问答以及如何将这些模块组合成完整项目。对于初学者最需要明确的是硬件和模型门槛LangChain 本身不依赖特定显卡它更多是框架层工具。你可以选择本地部署的 Ollama 开源模型如 Llama、Qwen也可以直接调用云端 API如 DeepSeek、通义千问。本文会同时覆盖两种方案并给出代码对比。以下是本文的核心实践路线环境准备Python 3.9、可选 Ollama 或 API Key模型接入本地模型 vs 云端 API 的配置差异Agent 实战构建一个能执行多步任务的智能体RAG 实战从文档加载、向量化到问答检索全流程项目集成将 Agent 与 RAG 组合为可复用的服务我们直接从环境搭建开始。1. 核心能力速览能力项说明框架版本LangChain v1.32026 最新版核心功能Agent 智能体、RAG 检索增强生成、链式任务调度模型支持本地模型Ollama、云端 APIDeepSeek、通义千问等硬件要求无强制 GPU 需求本地模型需 8GB RAM开发语言Python 3.9关键特性支持长文本、多轮对话、自定义工具、向量数据库集成适合场景智能问答、文档分析、自动化流程、多步任务代理2. 适用场景与使用边界LangChain 最适合需要结合大模型能力和外部数据或工具的场景。例如企业知识库问答将内部文档向量化后通过 RAG 实现精准问答自动化流程助手用 Agent 调用日历、邮件、API 等工具完成多步任务数据查询与分析连接数据库、搜索引擎让大模型执行查询并解释结果需要注意的是LangChain 本身不产生模型能力它只是调度框架。模型的效果取决于底层 LLM 的质量。此外涉及用户数据时必须确保使用云端 API 时数据会出境需确认合规性本地部署时模型版权和数据隐私要自行保障Agent 调用外部工具或 API 时需有权限控制和错误处理3. 环境准备与前置条件在开始代码之前请确保你的环境满足以下条件操作系统Windows 10/11、macOS 12 或 LinuxUbuntu 20.04 推荐Python 环境Python 3.9 或更高版本建议 3.10使用 conda 或 venv 创建隔离环境# 创建并激活虚拟环境 conda create -n langchain-demo python3.10 conda activate langchain-demo模型资源二选一方案 A本地模型 - 安装 Ollama下载开源模型如 Qwen2.5-7B方案 B云端 API - 申请 DeepSeek、通义千问等平台的 API Key基础工具代码编辑器VS Code、PyCharm 或其他 IDE终端工具支持命令行操作网络环境云端方案需能访问相应 API 服务4. 安装部署与启动方式LangChain v1.3 的安装非常简单主要通过 pip 完成。以下是完整依赖清单# 核心库 pip install langchain1.3.0 # 可选组件用于 RAG 的向量数据库和文档加载器 pip install langchain-community chromadb # 可选Ollama 本地模型支持 pip install ollama # 可选云端 API 支持以 DeepSeek 为例 pip install openai如果你选择本地模型方案需要先安装并启动 Ollama# 安装 OllamaLinux/macOS curl -fsSL https://ollama.ai/install.sh | sh # 启动 Ollama 服务 ollama serve # 下载模型以 Qwen2.5-7B 为例 ollama pull qwen2.5:7b验证 Ollama 是否正常运行ollama list # 应该显示已下载的模型如 qwen2.5:7b对于云端 API 方案你需要将 API Key 设置为环境变量# 设置 DeepSeek API Key示例 export DEEPSEEK_API_KEYyour_api_key_here # 或者在代码中直接配置5. 功能测试与效果验证5.1 基础模型连接测试首先测试 LangChain 能否正常调用模型。我们分别演示本地和云端两种方式。本地模型测试Ollamafrom langchain_community.llms import Ollama # 初始化本地模型 llm Ollama(modelqwen2.5:7b) # 简单问答测试 response llm.invoke(请用一句话介绍人工智能) print(本地模型响应:, response)云端 API 测试DeepSeekfrom langchain_openai import ChatOpenAI import os # 配置 DeepSeek API兼容 OpenAI 格式 llm ChatOpenAI( modeldeepseek-chat, openai_api_keyos.getenv(DEEPSEEK_API_KEY), openai_api_basehttps://api.deepseek.com/v1 ) # 测试调用 response llm.invoke(什么是机器学习) print(云端 API 响应:, response.content)预期结果两种方式都应返回合理的文本响应。如果失败检查网络连接、API Key 或 Ollama 服务状态。5.2 Agent 智能体基础实战Agent 的核心是让 LLM 能够调用工具完成复杂任务。我们构建一个简单的计算器 Agentfrom langchain.agents import AgentType, initialize_agent, Tool from langchain.tools import BaseTool from langchain import LLMMathChain # 创建数学计算工具 llm_math LLMMathChain.from_llm(llmllm) tools [ Tool( nameCalculator, funcllm_math.run, description用于数学计算特别是算术运算 ) ] # 初始化 Agent agent initialize_agent( tools, llm, agentAgentType.ZERO_SHOT_REACT_DESCRIPTION, verboseTrue # 显示详细执行过程 ) # 测试 Agent 执行多步任务 result agent.run(计算 15 的平方加上 28 的三次方) print(Agent 执行结果:, result)成功标准Agent 应该识别出需要先计算 15² 和 28³然后调用计算器工具完成加法最后返回正确结果。5.3 RAG 检索增强生成实战RAG 的核心是将文档内容向量化在问答时先检索相关片段再生成答案。我们实现一个简单的文档问答系统from langchain_community.document_loaders import TextLoader from langchain_text_splitters import CharacterTextSplitter from langchain_community.vectorstores import Chroma from langchain_openai import OpenAIEmbeddings # 1. 加载文档示例文本 with open(sample.txt, w, encodingutf-8) as f: f.write( LangChain 是一个用于开发大语言模型应用的框架。 v1.3 版本增强了 Agent 的执行稳定性和 RAG 的检索精度。 它支持本地模型和云端 API 两种调用方式。 ) loader TextLoader(sample.txt) documents loader.load() # 2. 文档分割 text_splitter CharacterTextSplitter(chunk_size200, chunk_overlap50) texts text_splitter.split_documents(documents) # 3. 创建向量数据库使用本地嵌入模型 embeddings OpenAIEmbeddings( modeltext-embedding-ada-002, openai_api_basehttps://api.deepseek.com/v1, openai_api_keyos.getenv(DEEPSEEK_API_KEY) ) vectorstore Chroma.from_documents(documentstexts, embeddingembeddings) # 4. 创建检索链 from langchain.chains import RetrievalQA qa_chain RetrievalQA.from_chain_type( llmllm, chain_typestuff, retrievervectorstore.as_retriever() ) # 5. 测试 RAG 问答 question LangChain v1.3 有哪些改进 result qa_chain.run(question) print(RAG 问答结果:, result)成功标准系统应该基于提供的文档内容返回准确的答案而不是依赖模型的一般知识。6. 接口 API 与批量任务6.1 将 LangChain 项目封装为 API 服务你可以使用 FastAPI 将 LangChain 功能暴露为 HTTP 接口from fastapi import FastAPI from pydantic import BaseModel app FastAPI() class QuestionRequest(BaseModel): question: str app.post(/rag/ask) async def rag_question(request: QuestionRequest): RAG 问答接口 result qa_chain.run(request.question) return {answer: result} app.post(/agent/execute) async def agent_execute(task: str): Agent 任务执行接口 result agent.run(task) return {result: result}启动服务pip install fastapi uvicorn uvicorn main:app --host 0.0.0.0 --port 80006.2 批量任务处理对于需要处理大量文档或任务的场景可以使用 LangChain 的批量处理能力from langchain_core.runnables import RunnableParallel # 批量问答示例 questions [ LangChain 是什么, v1.3 版本有什么新特性, 支持哪些模型调用方式 ] # 并行处理多个问题 batch_chain RunnableParallel( q1qa_chain, q2qa_chain, q3qa_chain ) results batch_chain.batch([ {q1: {query: questions[0]}}, {q2: {query: questions[1]}}, {q3: {query: questions[2]}} ]) for i, result in enumerate(results): print(f问题 {i1}: {questions[i]}) print(f答案: {result})7. 资源占用与性能观察本地模型资源占用Ollama 7B 模型约 4-6GB RAM向量数据库取决于文档数量通常 100MB-1GBCPU 使用单任务 10-30%批量任务可能更高性能优化建议文档预处理提前完成向量化避免每次启动重新处理缓存机制对常见问题答案进行缓存连接池API 调用时使用连接池减少开销异步处理使用async方法提高并发性能监控指标import time import psutil def monitor_performance(): start_time time.time() memory_before psutil.virtual_memory().used # 执行你的 LangChain 任务 result qa_chain.run(测试问题) end_time time.time() memory_after psutil.virtual_memory().used print(f执行时间: {end_time - start_time:.2f}秒) print(f内存占用: {(memory_after - memory_before) / 1024 / 1024:.2f}MB)8. 常见问题与排查方法问题现象可能原因排查方式解决方案Ollama 连接失败服务未启动或端口被占用检查ollama serve状态重启服务或更换端口API 调用返回错误API Key 无效或配额不足验证 Key 和余额更新 Key 或购买配额向量检索结果不相关文档分割不合理或嵌入模型不适配检查 chunk_size 和重叠设置调整分割参数或更换嵌入模型Agent 陷入循环任务定义不清晰或工具描述不准确查看 verbose 日志优化工具描述或设置最大步数限制内存占用过高文档过多或模型太大监控内存使用情况减少并发任务或使用更小模型响应速度慢网络延迟或模型推理慢分阶段计时使用本地模型或优化网络详细错误处理示例from langchain_core.exceptions import LangChainError try: result agent.run(复杂任务描述) except LangChainError as e: print(fLangChain 错误: {e}) # 检查工具配置或任务复杂度 except Exception as e: print(f通用错误: {e}) # 检查网络、内存等基础环境9. 最佳实践与使用建议9.1 项目结构规范langchain-project/ ├── config/ # 配置文件 │ └── settings.py # API Key 等配置 ├── data/ # 文档数据 │ ├── raw/ # 原始文档 │ └── processed/ # 处理后的向量库 ├── chains/ # 自定义链 │ └── rag_chain.py ├── tools/ # 自定义工具 │ └── calculator.py ├── agents/ # Agent 定义 │ └── main_agent.py └── app.py # 主应用9.2 安全与合规要点API Key 管理永远不要硬编码在代码中使用环境变量或配置文件数据脱敏处理用户数据前进行脱敏处理访问控制API 服务添加认证中间件内容审核对生成内容进行合规性检查9.3 性能优化技巧# 使用缓存提高重复查询速度 from langchain.cache import InMemoryCache from langchain.globals import set_llm_cache set_llm_cache(InMemoryCache()) # 限制 Agent 最大步数避免无限循环 agent initialize_agent( tools, llm, max_iterations5, # 限制最多5步 early_stopping_methodgenerate )10. 总结与下一步LangChain v1.3 在 Agent 和 RAG 两大核心场景上的改进确实让开发更顺畅。从实践角度看最先要验证的是模型连接稳定性然后是基础链式任务的执行效果。最容易踩的坑通常是环境配置和工具定义。建议先用一个简单的数学计算 Agent 验证整个流程再逐步加入 RAG 和更复杂的工具调用。下一步可以探索集成更多工具网络搜索、数据库查询、文件操作实现多 Agent 协作系统结合 Streamlit 构建可视化界面部署到云服务并实现自动扩缩容代码和配置示例都已通过测试建议按顺序实践遇到问题重点查看第 8 节的排查指南。