发布时间:2026/8/5 22:08:45
LangChain实战指南:从零搭建大模型应用,掌握RAG与Agent核心 这类教程最值得先看的不是标题里的“价值2W”或“7天大神”而是它到底能不能帮你把 LangChain 这个框架用起来解决实际开发里调用大模型、管理上下文、串联工具链的问题。如果你刚接触大模型应用开发或者用过一些 API 但一遇到复杂流程就不知道怎么组织代码那 LangChain 确实是个能帮你省不少事的框架。它的核心价值在于提供了一套标准化的组件和模式让你不用从零开始写每一段胶水代码。但要注意教程宣传的“终极版”和“保姆级”往往意味着内容量巨大。直接跟完全程很容易陷入细节最后工具装了一堆Demo 跑通了几个但回到自己项目里还是不知道从哪下手。我更建议换个思路先搞清楚 LangChain 到底解决了哪几类具体问题然后针对你最急用的那一个把环境搭好、跑通最小流程、再试着改参数和结构。这样哪怕只学两三天你也能立刻用起来而不是被海量知识点淹没。下面我会按实际落地的顺序拆解 LangChain 的学习路径。重点不是复现某个教程的所有步骤而是让你知道在开始写代码前需要准备哪些核心环境模型、工具、平台。如何用最少代码验证一个核心功能比如问答、检索、调用工具。单任务跑通后如何扩展到批量处理、自定义流程和简单部署。遇到报错、速度慢、结果不对时应该按什么顺序排查。1. 先想清楚你要用 LangChain 做什么再决定学哪部分很多人一上来就找最全的教程从安装配到项目部署结果学了一半发现用的组件和自己需求没关系。LangChain 模块不少但初期真正需要深入的可能就一两个。先根据你的场景做选择1.1 常见场景与对应的 LangChain 模块你想做的事最相关的 LangChain 模块初期可以不学的部分给大模型如 OpenAI GPT、国产模型写个封装方便调用LLM/ChatModel封装、PromptTemplateAgents, Memory, Indexes让模型能读取本地或网络文档PDF、TXT、网页并基于内容回答Document Loaders,Text Splitters,Vectorstores(如 Chroma),RetrievalQAChains 的复杂组合, Agents构建一个多步骤任务流比如读取用户问题 - 搜索资料 - 总结 - 生成报告Chains(尤其是SequentialChain,TransformChain),Tools底层的 Async 支持, Callbacks 高级用法让模型能调用外部工具或 API比如查天气、算数学、搜数据库Tools,Agents(如ZeroShotAgent,ReAct),Toolkits自定义 Agent 执行器, 复杂的 Memory 管理在对话中保持历史上下文让模型记得之前聊过什么Memory(如ConversationBufferMemory,ConversationSummaryMemory)分布式 Memory 存储, 高级索引策略把整个流程打包成可部署的服务提供 API 或简单界面LangServe(部署),LangSmith(监控调试)LangChain 内部源码, 所有高级配置如果你的目标只是“用大模型 API 写个自动回复”那重点学LLM/ChatModel封装和PromptTemplate就够了一两个小时就能写出可用代码。如果想做“私有知识库问答”那就要重点攻克Document Loaders、Text Splitters和Vectorstores这一套检索增强生成RAG流程。关键建议不要试图一次性掌握所有模块。先选定一个最小可行场景把这条链路打通再逐步叠加其他功能。1.2 学习前必须明确的几个前提你需要一个能访问的大模型 API无论是 OpenAI、Azure OpenAI、Anthropic还是国内的通义千问、文心一言、智谱 GLM、月之暗面 Kimi 等你都需要获得有效的 API Key 和基础调用权限。LangChain 是“调度框架”不是“模型本身”。没有可用的模型一切无从谈起。需要基本的 Python 环境LangChain 是 Python 库。你需要安装好 Python建议 3.8并会用pip安装包。熟悉虚拟环境venv或conda是良好实践能避免依赖冲突。理解“链”Chain的核心思想LangChain 的核心抽象是把一个复杂任务拆成多个可复用的“环节”如读取用户输入 - 格式化提示词 - 调用模型 - 解析输出然后把这些环节连成一条“链”。学习时脑子里要时刻有“数据流如何从一个环节流向下一个环节”的图景。2. 环境准备模型、工具和关键依赖教程里常会一股脑列出几十个安装命令。其实大部分依赖是在用到特定功能时才需要。这里给出一个分层安装策略你可以根据选定的场景来安装。2.1 基础必备环境无论做什么都需要先搭建这个基础层。Python 环境确认# 检查 Python 版本 python --version # 应为 3.8 # 检查 pip 是否可用 pip --version创建并激活虚拟环境强烈推荐# 使用 venv python -m venv langchain-env # Windows 激活 .\langchain-env\Scripts\activate # macOS/Linux 激活 source langchain-env/bin/activate安装 LangChain 核心包pip install langchain这个langchain包包含了最核心的组件Models, Prompts, Chains, Memory, Indexes 接口等。但很多具体的实现如向量数据库、文档加载器需要额外安装。2.2 按需安装功能包根据你在 1.1 中选择的场景选择性安装以下包场景调用大模型 API安装对应模型的 SDK。例如用 OpenAIpip install openai如果需要支持多个模型可能还要装langchain-openai,langchain-community等社区集成包。但初期直接用openai包并通过 LangChain 的ChatOpenAI类调用是最简单的。场景文档加载与处理RAG 基础安装文档加载器以常用格式为例pip install pypdf # 用于 PDF pip install docx2txt # 用于 Word pip install beautifulsoup4 # 用于 HTML安装文本分割器通常已包含在langchain中但某些高级的需要额外安装pip install tiktoken # 用于基于 Token 的精准分割推荐安装向量数据库以轻量级 Chroma 为例pip install chromadb场景代理Agent与工具调用安装常用工具包pip install wikipedia # 维基百科查询工具 pip install requests # 用于自定义 API 工具某些 Agent 类型可能需要额外依赖但langchain基础包已包含ZeroShotAgent等核心类。场景部署与监控本地快速部署 API 服务pip install langserve[all]调试与追踪需要注册 LangSmith 账号pip install langsmith重要提醒不要在一开始就pip install langchain[all]。这会安装大量你可能用不到的依赖容易引发版本冲突。按需安装是最稳妥的。2.3 配置模型 API 密钥这是最关键的一步很多新手在这里卡住。你需要将 API Key 设置为环境变量。方法一在代码中直接设置仅用于测试不推荐生产环境import os os.environ[OPENAI_API_KEY] 你的-sk-xxx密钥 # 如果是国内模型例如通义千问 os.environ[DASHSCOPE_API_KEY] 你的-sk-xxx密钥方法二使用.env文件推荐在项目根目录创建.env文件。写入内容OPENAI_API_KEY你的-sk-xxx密钥 DASHSCOPE_API_KEY你的-sk-xxx密钥安装python-dotenv包pip install python-dotenv在代码开头加载from dotenv import load_dotenv load_dotenv() # 这会从 .env 文件加载所有环境变量 # 现在 os.environ 中就有了你的密钥方法三在系统或终端中设置Windows (PowerShell):$env:OPENAI_API_KEY你的密钥macOS/Linux (bash):export OPENAI_API_KEY你的密钥这种方式在关闭终端后会失效。注意永远不要将写有真实 API Key 的代码提交到 Git 等版本控制系统。.env文件务必加入.gitignore。3. 核心实战从一条链开始验证端到端流程环境准备好后不要急于构建复杂应用。用最短的代码跑通一个核心流程建立信心。我们以最常见的“基于大模型的问答”和“基于文档的问答RAG”为例。3.1 最小验证直接调用模型问答目标用 LangChain 封装模型 API完成一次简单对话。# 文件simple_qa.py from langchain_openai import ChatOpenAI # 使用新的集成包 from langchain_core.prompts import ChatPromptTemplate # 1. 初始化模型假设已通过环境变量设置 OPENAI_API_KEY # temperature 控制随机性0.0 更确定1.0 更随机 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0.7) # 2. 创建提示词模板 prompt ChatPromptTemplate.from_messages([ (system, 你是一个乐于助人的助手。), (user, {input}) ]) # 3. 将模板和模型组合成一条链 chain prompt | llm # 这是 LangChain 新版 LCEL 语法非常直观 # 4. 调用链 response chain.invoke({input: LangChain 是什么}) print(response.content)运行与验证保存代码在终端运行python simple_qa.py。成功标志正常打印出关于 LangChain 的解释文本没有报错。如果报错ModuleNotFoundError: No module named langchain_openai运行pip install langchain-openai。AuthenticationError/Invalid API Key检查OPENAI_API_KEY环境变量是否正确设置。RateLimitErrorAPI 调用超频稍后再试或检查配额。这个例子虽然简单但验证了 LangChain 最核心的“提示词 - 模型”链路。prompt | llm这种管道操作符是 LangChain Expression Language (LCEL) 的写法是当前推荐的方式比旧的LLMChain更清晰。3.2 进阶验证构建一个简单的 RAG 流程目标加载本地 PDF分割、向量化存储然后根据存储的内容回答问题。# 文件simple_rag.py from langchain_community.document_loaders import PyPDFLoader from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_openai import OpenAIEmbeddings from langchain_chroma import Chroma from langchain.chains import RetrievalQA from langchain_openai import ChatOpenAI # 1. 加载文档假设当前目录下有一个 sample.pdf 文件 loader PyPDFLoader(sample.pdf) documents loader.load() # 2. 分割文本 text_splitter RecursiveCharacterTextSplitter( chunk_size500, # 每个块的大小字符数 chunk_overlap50 # 块之间的重叠字符保持上下文 ) texts text_splitter.split_documents(documents) print(f将文档切分成了 {len(texts)} 个文本块) # 3. 向量化并存储到向量数据库 embeddings OpenAIEmbeddings() # 需要 OPENAI_API_KEY vectorstore Chroma.from_documents(documentstexts, embeddingembeddings, persist_directory./chroma_db) # persist_directory 指定持久化目录下次可以直接加载 # 4. 创建检索器 retriever vectorstore.as_retriever(search_kwargs{k: 3}) # 每次检索返回最相关的 3 个块 # 5. 创建问答链 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0) qa_chain RetrievalQA.from_chain_type( llmllm, chain_typestuff, # 最常用的类型将检索到的所有内容“塞”进提示词 retrieverretriever, return_source_documentsTrue # 返回参考来源便于调试 ) # 6. 提问 result qa_chain.invoke({query: 文档中主要讲了什么}) print(答案, result[result]) print(\n参考来源) for doc in result[source_documents]: print(f- {doc.metadata.get(page, N/A)}: {doc.page_content[:100]}...)运行与验证准备一个 PDF 文件如一篇技术文章命名为sample.pdf放在同一目录。运行python simple_rag.py。首次运行会下载嵌入模型并向量化文档可能需要一些时间。成功标志程序输出切分的文本块数量并最终给出基于文档内容的答案同时列出答案所参考的原文片段。关键目录运行后会生成./chroma_db目录里面存储了向量数据。下次运行可以修改代码使用Chroma(persist_directory‘./chroma_db‘, embedding_functionembeddings)直接加载无需重新向量化。常见问题PDF 读取乱码尝试换用UnstructuredPDFLoader(pip install unstructured)。嵌入模型下载失败或速度慢如果使用 OpenAI 嵌入是网络问题。可以考虑使用本地嵌入模型如from langchain.embeddings import HuggingFaceEmbeddings但需要更多本地资源。Chroma 报错确保chromadb版本与langchain-chroma兼容。可尝试pip install --upgrade chromadb langchain-chroma。这个流程涵盖了 RAG 的核心步骤加载 - 分割 - 嵌入 - 存储 - 检索 - 生成。跑通它你就掌握了私有知识库问答系统的骨架。4. 深入核心理解链、代理与工具调用的区别当你能跑通基本流程后教程里常提到的Chain、Agent、Tool这些概念就容易混淆。这是决定你能否灵活运用 LangChain 的关键。4.1 链Chain确定性的工作流链是预先定义好的、顺序执行的一系列步骤。就像工厂流水线每一步做什么、输入输出是什么都是固定的。典型场景格式化用户输入 - 调用模型 - 解析模型输出。查询向量数据库 - 合并检索结果 - 生成最终答案这就是上面的RetrievalQA。生成 SQL - 执行 SQL - 解释结果。特点确定性给定相同输入执行路径和步骤固定。可控性强开发者完全掌控流程。适合流程清晰、无需动态决策的任务。示例代码一个自定义的简单链from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI from langchain_core.output_parsers import StrOutputParser # 定义两个子链 prompt1 ChatPromptTemplate.from_template(将以下中文翻译成英文{text}) prompt2 ChatPromptTemplate.from_template(总结以下英文文本{text}) llm ChatOpenAI(modelgpt-3.5-turbo) output_parser StrOutputParser() # 使用 LCEL 组合链翻译 - 总结 translation_chain prompt1 | llm | output_parser summarization_chain prompt2 | llm | output_parser # 顺序执行 chinese_text LangChain 是一个用于开发大语言模型应用的框架。 english_text translation_chain.invoke({text: chinese_text}) print(翻译结果, english_text) final_summary summarization_chain.invoke({text: english_text}) print(总结结果, final_summary) # 也可以组合成一个链更优雅 combined_chain prompt1 | llm | output_parser | (lambda x: {text: x}) | prompt2 | llm | output_parser result combined_chain.invoke({text: chinese_text}) print(组合链结果, result)4.2 代理Agent与工具Tool动态决策的工作流代理的核心是“让模型自己决定下一步该用什么工具”。它引入了一个决策循环模型根据当前状态用户问题、历史、工具结果决定是调用某个工具还是直接给出最终答案。工具是代理可以调用的函数比如计算器、搜索引擎、数据库查询。典型场景用户问“北京今天天气怎么样” - 代理决定调用“天气查询工具”。用户问“计算一下 12345 的平方根是多少” - 代理决定调用“计算器工具”。复杂问题“帮我找一下 LangChain 的最新版本并总结它的新特性。” - 代理可能先调用“网络搜索工具”再调用“总结工具”。特点动态性执行路径由模型在运行时决定。灵活性高可以应对开放域、多步骤问题。复杂度高调试更困难可能产生不可预测的调用序列。示例代码一个使用预设工具的代理from langchain.agents import AgentExecutor, create_react_agent from langchain_openai import ChatOpenAI from langchain_core.tools import Tool from langchain import hub # 用于拉取预设的提示词 # 1. 定义工具这里模拟两个简单工具 def search_wikipedia(query: str) - str: 模拟维基百科搜索。实际项目中应接入真实API。 # 这里返回模拟结果 return f根据维基百科{query} 是一个关于大语言模型应用开发的开源框架。 def calculator(expression: str) - str: 模拟计算器。实际项目中应使用安全评估。 try: result eval(expression) # 警告实际生产环境禁用 eval这里仅为演示 return str(result) except: return 计算错误 # 将函数包装成 LangChain Tool 对象 tools [ Tool(nameWikipediaSearch, funcsearch_wikipedia, description用于查询百科知识。), Tool(nameCalculator, funccalculator, description用于计算数学表达式。), ] # 2. 初始化模型和代理提示词 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0) prompt hub.pull(hwchase17/react-chat) # 拉取一个标准的 ReAct 代理提示词 # 3. 创建代理 agent create_react_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue) # 4. 运行代理 result agent_executor.invoke({input: LangChain 是什么它的最新版本号乘以 10 是多少}) print(最终答案, result[output])运行上述代码在verboseTrue模式下你会看到代理的思考过程Thought、行动Action和观察Observation这正是 ReAct 框架的体现。4.3 核心区别与选择建议特性链 (Chain)代理 (Agent)控制权开发者完全控制流程模型根据提示词和工具描述动态决定确定性高固定流程低依赖模型决策复杂度相对较低易于调试高调试困难可能循环或出错适用场景流程固定、清晰的业务如客服话术、报告生成开放域、需要外部信息或动态工具调用的任务如研究助手资源消耗通常更少可预测可能更多多次调用模型和工具开发速度快结构清晰慢需要精心设计提示词和工具选择建议优先使用链如果你的任务步骤是明确的。例如“读取数据 - 清洗 - 调用模型分析 - 格式化输出”这用链实现更简单、更可靠。必要时使用代理当任务需要模型“自主”决定使用哪个工具、以什么顺序执行时。例如一个通用的“研究助手”用户可能问天气、算数学、查资料你无法预知所有路径。混合使用一个复杂应用内部可能既有确定性的链如文档处理流水线也有包含代理的模块如处理用户自由提问的对话引擎。5. 走向实用性能、调试与部署考量当 Demo 跑通开始考虑实际应用时你会遇到一系列新问题速度慢、内存占用高、结果不稳定、如何给他人用。这部分是教程里容易忽略的“干货”。5.1 性能优化与排查问题请求速度慢响应时间长。排查点 1模型 API 延迟。这是最常见原因。用简单的time库测量从发起请求到收到响应的耗时。如果使用 OpenAI 等云端服务延迟在几百毫秒到几秒是正常的。如果超过 10 秒检查网络或服务状态。排查点 2本地嵌入模型。如果你使用了本地嵌入模型如HuggingFaceEmbeddings首次加载和推理会很慢。考虑使用更轻量的模型如all-MiniLM-L6-v2。将嵌入向量预先计算好并持久化就像上面 Chroma 例子做的避免每次查询都重新计算。对于生产环境考虑使用专门的嵌入 API如 OpenAI Embeddings或部署本地嵌入服务。排查点 3向量检索速度。当向量库中文档数量极大百万级时检索可能变慢。考虑使用更高效的向量索引Chroma 默认使用 HNSW已不错。调整search_kwargs如减少k返回的邻居数。对文档进行更好的分块和过滤减少无关检索。排查点 4链或代理的复杂度过高。一个代理循环调用多次模型和工具总耗时自然长。需要评估是否真的需要代理或者能否用更确定的链替代部分逻辑。问题内存或显存占用高。排查点 1大语言模型本地部署。如果你在本地运行了大模型如通过Ollama,GPT4All模型本身就会占用大量内存/显存。确保你的硬件资源足够。排查点 2文档加载时内存溢出。一次性加载非常大的 PDF 或文本文件。使用Unstructured加载器时注意它可能将整个文档读入内存。对于超大文件考虑流式加载或分页处理。排查点 3向量数据库缓存。某些向量数据库客户端会在内存中缓存数据。检查数据库配置或考虑使用纯磁盘持久化的模式。通用优化建议异步调用如果任务可并行如处理多个独立查询使用 LangChain 的异步接口 (ainvoke,abatch)。import asyncio async def process_queries(): results await chain.abatch([{input: q1}, {input: q2}]) asyncio.run(process_queries())缓存对于重复的、耗时的操作如相同查询的嵌入计算使用 LangChain 的内置缓存如InMemoryCache,SQLiteCache。from langchain.globals import set_llm_cache from langchain.cache import InMemoryCache set_llm_cache(InMemoryCache())批处理对于嵌入操作尽量批量传入文本而不是循环单条处理。5.2 调试与监控LangSmith 的价值当链或代理变得复杂出错时日志像天书你很难知道问题出在哪个环节。这就是 LangSmith 的用武之地。LangSmith 是什么它是 LangChain 官方提供的调试、测试、监控和可观测性平台。你可以把它想象成 LLM 应用的“开发者工具”。核心功能追踪Tracing自动记录每次链、模型、工具调用的输入、输出、耗时、token 使用量。以可视化时间线展示一目了然看到数据流和瓶颈。调试Debugging当结果不对时可以回放任意一步的输入输出检查提示词、模型响应、工具返回。测试与评估Testing Evaluation可以批量运行测试用例评估链的准确率、延迟等指标。数据集管理管理用于测试的输入输出对。如何使用基础访问 LangSmith 官网 注册账号并创建 API Key。安装pip install langsmith在代码中或环境变量中配置export LANGCHAIN_TRACING_V2true export LANGCHAIN_API_KEY你的-langsmith-api-key export LANGCHAIN_PROJECT你的项目名 # 可选默认为 default运行你的 LangChain 代码。所有调用会自动同步到 LangSmith 平台你可以在网页上查看详细的追踪记录。对于复杂项目LangSmith 能极大提升调试效率。但对于简单学习或 Demo可以不使用。5.3 简单部署让应用能被访问当你写好了一个链比如一个 RAG 问答系统如何让别人也能用有几种简单方式方式一使用 LangServe 快速创建 APILangServe 是 LangChain 官方用于部署链为 REST API 的工具。安装pip install langserve[all]创建一个app.pyfrom fastapi import FastAPI from langserve import add_routes from simple_rag import qa_chain # 导入你之前写好的链 app FastAPI(title我的 RAG 服务) # 将你的链添加为路由 add_routes(app, qa_chain, path/rag) if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)运行python app.py访问http://localhost:8000/rag/playground会有一个交互界面http://localhost:8000/rag/invoke是 API 端点。方式二构建简单的 Gradio 或 Streamlit 界面对于需要简单 UI 的场景这两个库非常方便。Gradio:import gradio as gr from simple_rag import qa_chain def answer(question): result qa_chain.invoke({query: question}) return result[result] iface gr.Interface(fnanswer, inputstext, outputstext) iface.launch()Streamlit:import streamlit as st from simple_rag import qa_chain st.title(我的知识库助手) question st.text_input(请输入你的问题) if question: with st.spinner(正在思考...): result qa_chain.invoke({query: question}) st.write(答案, result[result])运行streamlit run app.py。方式三封装为异步服务生产级对于高并发需求你需要使用异步框架如 FastAPI并注意使用 LangChain 的异步调用 (ainvoke)。管理好模型客户端的连接池。对向量数据库等资源进行连接复用。添加认证、限流、日志等中间件。6. 避坑指南与学习路径建议结合常见的搜索热词和实战问题这里总结几个关键避坑点。6.1 关于“LangChain 和 LangGraph 的区别”这是高频问题。简单说LangChain核心是“链”和“代理”提供构建 LLM 应用的基础组件。它关注单个任务的编排。LangGraph构建在 LangChain 之上用于编排**多个执行者Actor**之间的复杂、有状态的工作流。它引入了“图”的概念支持循环、分支、并发更适合模拟多角色对话、长流程自动化等场景。选择建议新手从 LangChain 开始掌握链和代理。当你需要构建像“客服对话系统”包含用户、坐席、知识库、外呼等多个节点或“游戏 NPC 交互”这类多角色、有复杂状态流转的系统时再研究 LangGraph。6.2 关于“工具调用速度受什么影响”在 Agent 中工具调用速度慢通常由以下因素决定模型决策时间Agent 每一步“思考”都需要调用一次 LLM这是主要耗时。工具本身执行时间如果工具是调用一个慢速的外部 API如网络搜索、复杂查询那么等待工具返回结果会很慢。串行调用默认情况下Agent 是串行执行思考 - 行动 - 观察 - 再思考。优化方向包括让工具描述更精准减少不必要的思考步骤。使用支持并行工具调用的 Agent 类型如Plan-and-Execute架构的 Agent。对于可并行的子任务拆分成多个独立的链去执行而不是全交给一个 Agent。6.3 关于“Dify 和 LangChain 的区别”这也是常见对比。LangChain是一个开发框架/库。给你提供积木需要你自己写代码来搭建应用。灵活性极高但需要较强的开发能力。Dify是一个低代码/无代码平台。提供可视化界面通过拖拽和配置来构建 LLM 应用。上手快适合快速原型或非开发者但自定义能力和深度集成可能受限。选择建议如果你想深入理解原理、需要高度定制化、或将 LLM 能力深度集成到现有系统中选 LangChain。如果你想快速搭建一个可用的聊天机器人或知识库应用且不想写太多代码选 Dify 这类平台。6.4 学习路径建议7天规划与其盲目跟随一个“终极教程”不如按这个节奏自学第1-2天建立最小认知目标跑通 3.1 和 3.2 的代码。动作配好环境Python, API Key理解ChatModel,PromptTemplate,Chain的基本用法。成功实现一次模型调用和一个简单的 RAG 流程。关键不要纠结所有参数先让程序跑起来。第3-4天深入一个核心模块目标根据你的兴趣选择RAG或Agent深入。动作RAG方向尝试不同的文档加载器TXT, HTML, Word。调整文本分割器的chunk_size和chunk_overlap观察对答案质量的影响。尝试不同的向量数据库Chroma, FAISS, Pinecone。在提示词中加入“根据上下文回答不知道就说不知道”的指令减少模型幻觉。动作Agent方向自定义一个简单的工具如获取当前时间。尝试不同的 Agent 类型ZERO_SHOT_REACT_DESCRIPTION,OPENAI_FUNCTIONS。观察verboseTrue时的完整思考过程。第5天连接外部世界目标让你的应用能读取真实数据或调用真实 API。动作连接一个真实的数据库如通过SQLDatabaseToolkit。调用一个公开的 REST API如天气、新闻。学习使用LangChain的YouTubeLoader,WebBaseLoader等加载网络内容。第6天优化与调试目标解决性能问题学会排查错误。动作使用 LangSmith 追踪一个复杂链的调用。为你的链添加缓存。尝试异步调用处理多个问题。学习查看和处理常见的错误API 限流、令牌超限、工具调用失败。第7天打包与分享目标将你的应用部署成别人能用的形式。动作用 LangServe 快速发布一个 API。或用 Gradio/Streamlit 做一个简单的网页界面。写一个清晰的README.md说明如何安装和运行。这个路径的核心是“做中学逐个击破”。每天都有可验证的输出而不是被动看完几十个小时的视频。遇到具体问题再针对性地去查官方文档或社区讨论这样积累的知识才牢固。最后记住 LangChain 本身迭代很快但核心概念模型、提示、链、代理、记忆、索引相对稳定。掌握这些概念比记住某个特定版本的 API 调用方式更重要。当你能清晰地用这些概念描述你想要构建的应用时你就已经跨过了“小白”阶段。剩下的就是在具体项目中不断实践和优化了。

相关新闻

2026/8/5 22:08:44

Flutter自动化测试日志在鸿蒙设备的适配与优化

1. 项目背景与核心挑战去年接手公司跨平台App测试任务时,我遇到了一个棘手的问题:Flutter应用的自动化测试日志在鸿蒙设备上完全无法解析。传统的日志分析工具在面对混合渲染架构时,就像试图用螺丝刀拧开葡萄酒瓶塞——工具根本不匹配。这促使…

2026/8/5 22:03:43

Yoke2/yoke核心功能解析:从包管理到部署的完整流程

Yoke2/yoke核心功能解析:从包管理到部署的完整流程 【免费下载链接】yoke Kubernetes Package Management as Code; infrastructure as code, but actually. 项目地址: https://gitcode.com/gh_mirrors/yoke2/yoke Yoke2/yoke是一款以航空为主题的Kubernetes…

2026/8/6 0:44:27

ZGI Runtime:Agent 上线后要看哪些指标?

Agent 上线后至少要观察五类结果:业务是否完成、执行链是否健康、输出是否合格、风险控制是否生效、资源消耗是否可接受。调用次数和模型响应时间只能说明服务被使用,任务有没有真正办完,还要看工具回执、审批状态和业务系统结果。ZGI Runtim…

2026/8/6 0:44:27

ZGI Runtime:切换模型后 Agent 为什么失效?

切换模型后 Agent 失效,常见原因落在任务契约:字段格式变了,工具参数没有通过校验,长资料被截断,错误返回也和原模型不同。迁移前需要固定输入、输出、工具协议与验收样本,再逐层检查差异。ZGI Runtime 把模…

2026/8/6 0:44:27

Linux rsh 命令超详细教程|远程 Shell 命令用法与安全须知

Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8 1. 命令简介 rsh - 远程 Shell rsh(Remote Shell)命令用于连接到远程主机并在该主机上执行指定的命令。它通过网络与远程主机建立连接,允许用户在本地终端输入…

2026/8/6 0:44:26

langgraph教程系列-12-把agent跑成服务-部署与可观测

本文是「LangGraph 教程系列」第 12 篇。写作时基于 langgraph 1.2.10、langchain 1.3.14、langchain-openai 1.4.1、Python 3.12。配套代码仓库 https://github.com/wxj006007/deep-research-assistant ,本篇对应 tag v5。v4 的 Supervisor 已经能把研究员、审稿人…

2026/8/6 0:44:26

langgraph教程系列-11-从单兵到团队-多智能体模式

本文是「LangGraph 教程系列」第 11 篇。写作时基于 langgraph 1.2.10、langchain 1.3.14、langchain-openai 1.4.1、Python 3.12。配套代码仓库 https://github.com/wxj006007/deep-research-assistant ,本篇对应 tag v4。v3 已经把规划、研究和写作拆成了边界清晰…

2026/8/6 0:39:26

开源目标检测数据集深度汇总|全网独家整理多尺度样本适配方案、通用航拍遥感工业全覆盖、助力YOLO小目标检测与工业缺陷高精度落地

目录 一、研究前言:目标检测数据集选型核心痛点与优化价值 二、目标检测数据集分类逻辑与核心评价维度 三、六大类开源目标检测数据集全维度详解 3.1 通用基准类数据集(学术评测、模型预训练、基线对比首选) 3.1.1 Pascal VOC2007+2012 3.1.2 MS COCO 2017 3.1.3 Ope…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/6 0:04:22

电力系统调度中的源荷不确定性建模与优化实践

1. 电力系统调度中的源荷不确定性挑战现代电力系统正面临前所未有的复杂性,其中源荷不确定性(Source-Load Uncertainty)已成为调度决策中最棘手的难题之一。我在参与某省级电网调度系统升级时,曾遇到风电预测误差导致日内调度计划…

2026/8/6 0:04:22

VGG-T3技术解析:3D重建速度的革命性突破

1. 项目概述:VGG-T3如何重新定义3D重建速度在计算机视觉领域,3D场景重建一直是个计算密集型任务。传统方法重建1000帧图像规模的场景往往需要数小时甚至更长时间,而英伟达最新发布的VGG-T3技术将这个时间压缩到了惊人的54秒。这个突破性进展来…

2026/8/6 0:04:22

深度解析旅游网站建设的意义及其对行业发展的深远影响与核心价值体现

在这个数字化浪潮席卷全球的今天,我们似乎已经忘记了,曾经有一段时间,人们想要去一个陌生的地方,只能靠在书桌前翻阅厚厚的旅游杂志,或者向刚从那里回来的朋友询问那些模糊不清的印象。那时候,“远方”是一个需要精打细算才能抵达的奢侈概念。而现在,只需要一部手机,轻…

2026/8/5 19:21:13

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/5 19:21:13

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/5 19:21:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…