LangChain中间件:让Agent从聊天机器人变“智能神经网络”
1、什么是中间件?
Middleware(中间件),简单说就是Agent 执行过程中的钩子函数,是 LangChain 1.x 的“王牌”工程化能力。
借助中间件,开发者可以高度定制和控制Agent运行的每一个环节,是处理 Agent 生命周期的标准方式
中间件的使用场景:
-
• 通过日志记录、分析和调试跟踪Agent行为
-
• 转换提示符、工具选择和输出格式
-
• 添加重试、回退和提前终止逻辑
-
• 应用速率限制、防护栏和 PII 检测
2、怎么调用中间件
通过 create_agent 来添加中间件:
from langchain.agents import create_agent
from langchain.agents.middleware import SummarizationMiddleware, HumanInTheLoopMiddleware
agent = create_agent(
model="gpt-5.5",
tools=[...],
middleware=[
SummarizationMiddleware(...),
HumanInTheLoopMiddleware(...)
],
)
3、Agent 调用中间件 VS. 无调用中间件
Agent 核心循环流程:调用模型,由模型选择要执行的工具,当模型不再调用工具时,流程结束。

中间件会在每一个步骤的前后暴露钩子函数:

4、为什么需要中间件?
如果没有中间件,Agent 的执行流程通常比较直接:
用户输入 → 拼接提示词/消息 → 调用模型 → 如有需要调用工具 → 返回结果
这种方式对于简单场景已经足够,但一旦进入真实项目,往往会遇到很多额外需求,例如:
-
• 想根据问题复杂度
动态切换模型 -
• 想限制某些用户
只能调用部分工具 -
• 想在工具报错时
自动重试或返回兜底结果 -
• 想在模型调用
前插入额外的系统提示 -
• 想记录每一步的
执行日志,方便排查问题 -
• 想在敏感信息出现时
阻断执行 -
• 想在正式执行工具前增加
人工审批
5、中间件的分类
自定义中间件:允许开发者自定义,
内置中间件:LangChain实现并提供的
-
• 模型供应商定制的中间件:依赖于特定模型服务的实现
-
• 模型供应商无关的中间件:由LangChian提供
6、LangChain官方提供的中间件
参考链接:https://docs.langchain.com/oss/python/langchain/middleware/built-in

7、LangChain官方提供的中间件分类
LangChain 提供了六类与模型供应商无关的内置中间件,分别解决 Agent 在生产环境中的不同问题:
1. 成本与资源控制类
核心目标:控成本、控配额、避免无限调用
解决 Agent 太贵、太能跑、停不下来的问题,包括:
-
• Model call limit:限制模型调用次数,防止费用失控
-
• Tool call limit:限制工具调用次数,避免死循环
-
• Summarization:上下文快满时自动总结,减少 token 消耗
-
• Context editing:裁剪上下文,节省成本
适用场景:生产环境成本治理、长会话优化、SaaS 产品控费。
2. 稳定性与容错保障类
核心目标:保证服务不中断,失败后自动恢复
解决调用失败、模型挂了、工具超时的问题,包括:
-
• Model fallback:主模型失败时切换备用模型
-
• Model retry / Tool retry:调用失败后自动重试
适用场景:线上生产系统,尤其是多模型、多工具依赖的 Agent,本质是构建高可用、容灾能力。
3. 安全与合规风控类
核心目标:让 Agent 可控、可审、合规
解决乱执行、泄露敏感信息、做危险操作的问题,包括:
-
• Human-in-the-loop:关键工具调用前暂停,等待人工审批
-
• PII detection:检测和处理个人敏感信息
适用场景:企业内部系统、客服系统、审批流,尤其是涉及发邮件、调数据库、导出敏感信息等高风险操作。
4. 决策增强与智能编排类
核心目标:提升 Agent 的决策质量和任务拆解能力
解决不够聪明、不会规划、不会筛选工具的问题,包括:
-
• To-do list:增强任务规划和状态跟踪
-
• LLM tool selector:工具过多时,用子模型筛选最相关的工具
-
• Subagent:生成子 Agent,拆分复杂任务给不同角色
适用场景:研究型 Agent、多步骤分析、多角色协作等复杂任务流,本质是增强 Agent 的"组织能力"。
5. 执行能力扩展类
核心目标:给 Agent 更多"手脚"
解决**只能聊天,不能操作环境**的问题,包括:
-
• Shell tool:提供持久 shell,执行命令
-
• File search:提供 Glob/Grep 文件搜索能力
-
• Filesystem:提供文件读写与长期存储能力
适用场景:工程 Agent、代码 Agent、运维自动化,本质是将 Agent 从"纯推理"扩展为"可操作环境的执行体"。
6. 开发调试与测试辅助类
核心目标:方便开发、测试、验证 Agent 行为
主要**服务研发和调试阶段**,包括:
-
• LLM tool emulator:用 LLM 模拟工具执行,便于测试
-
• Summarization / Context editing:辅助调试长会话和上下文裁剪效果
-
• Human-in-the-loop:调试高风险步骤
适用场景:开发阶段快速验证流程、做 mock、减少对真实工具的依赖。
8、总结
-
• 中间件是什么? 它是 Agent 执行过程中的钩子函数,是 LangChain 1.x 最核心的工程化能力。
-
• 为什么需要它? 没有中间件,Agent 只是个“直来直去”的聊天机器人;有了中间件,才能应对真实生产环境中的动态路由、容错重试、安全风控和成本控制。
-
• 官方六件套:LangChain 提供了六大类与供应商无关的内置中间件,覆盖了从控本、维稳、安保、提智、扩能到调试的全链路需求。
一句话概括:如果说 Agent 是大脑,工具是手脚,那中间件就是神经系统和免疫系统。
中间件用得好,下班回家早。 欢迎在评论区分享你的实战经验,如果觉得这篇总结够干,别忘了点赞、在看、转发三连支持~
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)