LangChain 到底帮你干了什么活?——Agent 开发框架完全解读
1. 引言LangChain 到底解决了什么问题很多初学者第一次接触 LangChain 时都会被它庞大的模块体系吓到模型封装、提示词模板、记忆、工具调用、Agent、检索……看起来什么都有却又说不清它到底帮你干了什么活。本文不打算罗列 API而是从「它替你省掉了哪些重复劳动」这个角度把 LangChain 在 Agent 开发中的价值讲透并给出可运行的代码实战。一句话总结LangChain 帮你把「调模型」这件小事升级成了「编排一套会思考、会调用工具、会记忆、会检索的完整系统」这件大事。它把 AI 应用开发中大量重复、易错、与业务无关的胶水代码抽象成标准组件让你专注于业务逻辑本身。2. 核心价值拆解LangChain 替你干了五类活在进入代码之前先建立整体认知。LangChain 在 Agent 开发中主要替你承担以下五类工作模型接入的统一封装无论你用的是 OpenAI、Anthropic 还是本地模型LangChain 都提供一致的调用接口切换模型时业务代码几乎不用改。提示词工程的结构化把提示词从「裸字符串」升级为「可复用、可组合、可版本管理的模板」并自动处理变量注入。对话记忆的自动管理帮你维护历史消息、控制上下文窗口长度避免「聊着聊着就忘了前面说了什么」。工具调用的协议标准化把普通 Python 函数包装成模型可识别的 Tool让模型能按需调用外部能力。Agent 决策循环的编排模型「思考 → 决定调用哪个工具 → 观察结果 → 再思考」的循环由框架替你跑起来。下面我们逐一用代码验证这些能力。3. 环境准备与基础依赖本文所有代码基于 Python 3.10 和 LangChain 0.3.x。建议先创建虚拟环境并安装依赖pip install langchain langchain-openai langchain-community如果你使用 OpenAI 兼容接口例如本地部署的模型服务可以通过环境变量或直接传入参数配置 API Key 和 Base URLimport os os.environ[OPENAI_API_KEY] your-api-key os.environ[OPENAI_BASE_URL] https://api.openai.com/v14. 第一类活模型接入的统一封装没有 LangChain 时你直接调用各家 SDK代码风格完全不同。有了 LangChain你只需要面向统一的ChatModel接口编程。from langchain_openai import ChatOpenAI 统一接口换模型只改这一行 llm ChatOpenAI(modelgpt-4o-mini, temperature0.7) response llm.invoke(用一句话解释什么是 Agent) print(response.content)如果你想换成 Anthropic 的 Claude只需要把导入和实例化部分替换为ChatAnthropic下游的调用方式llm.invoke(...)完全不变。这就是「统一封装」带来的直接收益模型供应商被抽象成可替换的插件。5. 第二类活提示词工程的结构化裸字符串拼接提示词容易出错且难以维护。LangChain 的PromptTemplate把提示词变成可复用的模板from langchain_core.prompts import ChatPromptTemplate prompt ChatPromptTemplate.from_messages([ (system, 你是一位资深的{domain}专家回答要简洁、准确。), (human, 请解释一下{question}), ]) 渲染模板 messages prompt.invoke({ domain: 人工智能, question: 什么是检索增强生成RAG, }) print(messages)更进一步LangChain 还支持FewShotPromptTemplate少样本示例、PipelinePromptTemplate模板组合等高级能力让提示词像代码一样具备结构性和可维护性。6. 第三类活对话记忆的自动管理大模型本身是无状态的每次调用都是「全新对话」。LangChain 的 Memory 模块帮你维护历史上下文并自动处理窗口截断。from langchain.memory import ConversationBufferMemory from langchain_core.chat_history import InMemoryChatMessageHistory from langchain_core.messages import HumanMessage, AIMessage 使用内存消息历史 history InMemoryChatMessageHistory() history.add_user_message(我叫小明是一名后端工程师。) history.add_ai_message(你好小明很高兴认识你。) 把历史注入到下一次对话 llm ChatOpenAI(modelgpt-4o-mini) messages [ {role: system, content: 你是一个友好的助手。}, *history.messages, {role: user, content: 我叫什么名字}, ] response llm.invoke(messages) print(response.content) # 输出你叫小明对于长对话ConversationSummaryMemory会自动总结早期内容以节省 TokenConversationBufferWindowMemory则只保留最近 N 轮。这些策略如果手写既繁琐又容易出错。7. 第四类活工具调用的协议标准化Agent 的核心能力是「调用工具」。LangChain 用tool装饰器把普通函数变成模型可识别的工具并自动生成 JSON Schema 描述。from langchain_core.tools import tool tool def get_weather(city: str) - str: 查询指定城市的当前天气。 # 这里可以替换为真实天气 API return f{city}今天晴气温 26℃适合出行。 tool def calculate(expression: str) - str: 计算数学表达式例如 12*3。 return str(eval(expression)) 查看工具自动生成的 Schema print(get_weather.name) print(get_weather.description) print(get_weather.args)LangChain 会自动从函数签名和 docstring 中提取参数名、类型和描述生成符合 OpenAI Function Calling 规范的 JSON Schema。你不需要手写任何协议代码。8. 第五类活Agent 决策循环的编排把前面所有组件组合起来就得到了一个完整的 Agent。它会在「思考 → 调用工具 → 观察结果 → 再思考」的循环中自主完成任务。from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain_core.prompts import ChatPromptTemplate 1. 准备工具列表 tools [get_weather, calculate] 2. 定义提示词 prompt ChatPromptTemplate.from_messages([ (system, 你是一个智能助手可以调用工具来回答问题。), (human, {input}), (placeholder, {agent_scratchpad}), ]) 3. 创建 Agent agent create_tool_calling_agent(llm, tools, prompt) 4. 创建执行器 executor AgentExecutor(agentagent, toolstools, verboseTrue) 5. 运行 result executor.invoke({input: 帮我算一下 (2345)*2 等于多少顺便查一下北京的天气。}) print(result[output])运行这段代码你会看到 Agent 自动完成以下动作先调用calculate计算表达式再调用get_weather查询天气最后把两个结果整合成自然语言回答。整个过程你只写了十几行代码决策循环、工具选择、结果解析全部由框架替你完成。9. 进阶实战带检索能力的 RAG Agent真实业务中Agent 往往还需要结合私有知识库。下面演示如何把向量检索RAG接入 Agent让它能回答「训练数据之外」的问题。from langchain_openai import OpenAIEmbeddings from langchain_community.vectorstores import FAISS from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_core.tools import tool 1. 准备知识库文档 documents [ LangChain 是一个用于构建大语言模型应用的框架。, Agent 是能够自主决策并调用工具的智能体。, RAG 通过检索外部知识来增强模型的回答能力。, ] 2. 切分并向量化 splitter RecursiveCharacterTextSplitter(chunk_size50, chunk_overlap10) chunks splitter.create_documents(documents) embeddings OpenAIEmbeddings() vectorstore FAISS.from_documents(chunks, embeddings) 3. 把检索封装成工具 tool def search_knowledge(query: str) - str: 从内部知识库检索与问题相关的信息。 docs vectorstore.similarity_search(query, k2) return \n.join([d.page_content for d in docs]) 4. 构建带检索能力的 Agent tools [search_knowledge] prompt ChatPromptTemplate.from_messages([ (system, 你是企业内部知识助手优先使用检索到的知识回答。), (human, {input}), (placeholder, {agent_scratchpad}), ]) agent create_tool_calling_agent(llm, tools, prompt) executor AgentExecutor(agentagent, toolstools, verboseTrue) result executor.invoke({input: 什么是 RAG它有什么作用}) print(result[output])这个例子展示了 LangChain 的另一个关键价值组件可插拔。检索、记忆、工具、模型都是独立模块你可以像搭积木一样自由组合构建出适合自己业务的复杂系统。10. 常见坑与避坑建议在实际开发中有几个高频问题值得注意上下文窗口溢出Agent 每轮循环都会把历史追加到 prompt 中长任务容易超限。建议使用ConversationSummaryMemory或限制最大迭代次数。工具调用失败无重试默认情况下工具抛异常会导致整个 Agent 失败。建议在工具内部做异常捕获返回友好的错误信息让模型自行调整。过度依赖模型判断Agent 的决策质量取决于底层模型能力。复杂任务建议用更强的模型如 gpt-4o简单任务用轻量模型以节省成本。忽略安全校验如果 Agent 能调用执行类工具如执行 Shell 命令务必做好权限控制和输入校验防止注入攻击。11. 总结回到开篇的问题LangChain 到底帮你干了什么活答案是它把 AI 应用开发中的重复性、易错性、与业务无关的胶水工作全部抽象成了标准组件。你不再需要手写各家模型的 SDK 适配、不再需要手工拼接提示词、不再需要自己维护对话历史、不再需要为工具调用设计协议、更不需要自己实现 Agent 的决策循环。你只需要专注于两件事定义好你的工具以及设计好你的提示词。剩下的编排工作交给 LangChain。希望本文的代码实战能帮你建立起对 LangChain 的整体认知。下一步建议你从自己的业务场景出发挑一个最简单的工具比如查天气、算日期把它接入 Agent跑通第一个端到端的智能体应用。

相关新闻

Redis桌面管理革命:Another Redis Desktop Manager完整实战指南

Redis桌面管理革命:Another Redis Desktop Manager完整实战指南

Redis桌面管理革命:Another Redis Desktop Manager完整实战指南 【免费下载链接】AnotherRedisDesktopManager 🚀🚀🚀A faster, better and more stable Redis desktop manager [GUI client], compatible with Linux, Windows, Ma…

2026/8/4 17:42:04 阅读更多 →
NsEmuTools终极指南:一键搞定任天堂Switch模拟器安装与管理

NsEmuTools终极指南:一键搞定任天堂Switch模拟器安装与管理

NsEmuTools终极指南:一键搞定任天堂Switch模拟器安装与管理 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 还在为复杂的NS模拟器配置而烦恼吗?每次想玩Switch游戏…

2026/8/4 17:42:04 阅读更多 →
现在不启动AI转型,半年后将丧失客户响应权:基于Gartner 2024预警的3类生存级场景推演

现在不启动AI转型,半年后将丧失客户响应权:基于Gartner 2024预警的3类生存级场景推演

更多请点击: https://codechina.net 第一章:现在不启动AI转型,半年后将丧失客户响应权:基于Gartner 2024预警的3类生存级场景推演 Gartner 2024年《AI驱动的客户体验临界点报告》指出:当行业头部企业平均客户首次响应…

2026/8/4 17:42:04 阅读更多 →

最新新闻

Flutter RTL布局适配:circular_bottom_navigation右到左界面实现指南

Flutter RTL布局适配:circular_bottom_navigation右到左界面实现指南

Flutter RTL布局适配:circular_bottom_navigation右到左界面实现指南 【免费下载链接】circular_bottom_navigation Circular bottom navigation is a bottom navigation library for flutter with circular indicator and cool animations. 项目地址: https://gi…

2026/8/4 20:36:12 阅读更多 →
阿里巴巴Dragonwell17 JDK架构深度解析:企业级Java运行环境的性能突破

阿里巴巴Dragonwell17 JDK架构深度解析:企业级Java运行环境的性能突破

阿里巴巴Dragonwell17 JDK架构深度解析:企业级Java运行环境的性能突破 【免费下载链接】dragonwell17 Alibaba Dragonwell17 JDK 项目地址: https://gitcode.com/gh_mirrors/dr/dragonwell17 阿里巴巴Dragonwell17作为基于OpenJDK深度优化的企业级Java运行环…

2026/8/4 20:36:12 阅读更多 →
EMANet核心突破:期望最大化注意力机制(EMA)如何超越传统自注意力?

EMANet核心突破:期望最大化注意力机制(EMA)如何超越传统自注意力?

EMANet核心突破:期望最大化注意力机制(EMA)如何超越传统自注意力? 【免费下载链接】EMANet The code for Expectation-Maximization Attention Networks for Semantic Segmentation (ICCV2019 Oral) 项目地址: https://gitcode.…

2026/8/4 20:36:12 阅读更多 →
Citra 3DS模拟器:深度架构解析与高级性能优化完全指南

Citra 3DS模拟器:深度架构解析与高级性能优化完全指南

Citra 3DS模拟器:深度架构解析与高级性能优化完全指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra Citra作为当前最优秀的任天堂3DS模拟器,通过先进的硬件模拟技术让经典3DS游戏在PC平台…

2026/8/4 20:36:12 阅读更多 →
PDF补丁丁OCR功能终极指南:如何用免费工具识别20+种语言文本

PDF补丁丁OCR功能终极指南:如何用免费工具识别20+种语言文本

PDF补丁丁OCR功能终极指南:如何用免费工具识别20种语言文本 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等 项目地址: https…

2026/8/4 20:36:12 阅读更多 →
解锁SMF高级特性:BBCode、Markdown与附件系统深度应用

解锁SMF高级特性:BBCode、Markdown与附件系统深度应用

解锁SMF高级特性:BBCode、Markdown与附件系统深度应用 【免费下载链接】SMF Simple Machines Forum — SMF in short — is free and open-source community forum software, delivering professional grade features in a package that allows you to set up your …

2026/8/4 20:35:11 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →