中间件提供了一种更紧密地控制智能体内部发生事情的方式。中间件可用于以下场景: 通过将中间件传递给 createAgent 来添加它们:

智能体循环

核心的智能体循环涉及调用模型,让其选择要执行的工具,然后在模型不再调用工具时完成: 核心智能体循环图 中间件在每个步骤前后暴露钩子: 中间件流程图

在 LangGraph 工作流中使用中间件

中间件并非一个独立的运行时:钩子运行在 create_agent 返回的编译后的 LangGraph 内部。您可以将整个智能体(包括中间件)作为一个节点或子图放入更大的 StateGraph 中,并且每个中间件钩子都会继续运行。 当周围的拓扑结构不仅仅是标准的“循环直到完成”时,请采用这种模式:在路由到多个智能体之一之前对输入进行分类、并行展开工作,或者将智能体调用与确定性步骤拼接在一起。 HumanInTheLoopMiddleware 匹配每个工具的 .name。在 Python 中,使用 @tool 装饰的函数其名称来自函数名(因此下面的键是 "send_email");在 TypeScript 中,键匹配您传递给 tool({...}, { name }) 的 name。
人工介入(HITL)中断、摘要生成、PII 脱敏、重试以及任何自定义钩子都与智能体节点一同迁移。请参阅使用子图了解完整的组合模式,包括子图检查点作用域(按调用还是按线程)。

其他资源

内置中间件

探索用于常见用例的内置中间件。

自定义中间件

使用钩子和装饰器构建您自己的中间件。

中间件 API 参考

中间件的完整 API 参考。

中间件集成

针对 Anthropic、AWS、OpenAI 等提供商的特定中间件。

测试智能体

使用 LangSmith 测试您的智能体。