---
type: study
status: verified
created: 2026-08-11
updated: 2026-08-11
sensitivity: standard
tags:
  - study
  - langchain
  - python
  - integrations
  - middleware
  - guardrails
topic: LangChain Python Provider Middleware 缓存安全与路由
sources:
  - https://docs.langchain.com/oss/python/integrations/middleware
  - https://docs.langchain.com/oss/python/integrations/middleware/anthropic
  - https://docs.langchain.com/oss/python/integrations/middleware/aws
  - https://docs.langchain.com/oss/python/integrations/middleware/azure_ai
  - https://docs.langchain.com/oss/python/integrations/middleware/index
  - https://docs.langchain.com/oss/python/integrations/middleware/nvidia
  - https://docs.langchain.com/oss/python/integrations/middleware/openai
last_verified: 2026-08-11
---
# Provider Middleware：缓存、安全与路由

## 定位

这组路由只覆盖 provider-specific middleware，不替代 LangChain middleware 的通用 hook、顺序和状态文档。`/middleware` 与 `/middleware/index` 当前同正文；索引同时列官方/featured 与大量社区中间件，出现于表中不等于 LangChain 维护或安全认证。

## 7 个路由

| 路由 | 包 | 能力与关键边界 |
|---|---|---|
| `middleware`、`index` | 生态索引 | 分享/发现 provider 与 community middleware。引入前审计维护者、依赖、可见数据和失败语义。 |
| `anthropic` | `langchain-anthropic` | prompt cache、Claude native bash、text editor、memory、file search。text editor/memory 有 state 和 filesystem 变体。 |
| `aws` | `langchain-aws`；Payments 另需 `bedrock-agentcore[langgraph]>=1.18.0` | Bedrock prompt cache；AgentCore Payments 自动处理 x402 paid API，含 allowlist、bearer auth、error handler、auto-session，当前为 preview。 |
| `azure_ai` | `langchain-azure-ai` | Azure AI Content Safety 的 text/image moderation、Prompt Shield、Protected Material、Groundedness；上游标注 experimental。 |
| `nvidia` | `deepagents>=0.7.0`、`langchain-nvidia-ai-endpoints`；Switchyard 需 `deepagents>=0.7.4` | Nemotron 3 Ultra harness profile；NeMo Switchyard model routing 和 routing decision inspection，集成标注 experimental。 |
| `openai` | `langchain-openai` | `OpenAIModerationMiddleware`；可注入同步和异步 OpenAI client。 |

## 不可混淆的语义

- Prompt caching 只复用重复 prefix 以降低延迟/费用，**不是 conversation memory**。跨 invocation 持久化仍需 checkpointer/store。
- Anthropic bash/editor 让模型真正执行命令和改文件；它们不是普通文本增强，必须经过工作区、命令和权限门禁。
- Moderation/groundedness 是模型或服务判定，存在误报、漏报、区域/语言差异；不能替代确定性权限、数据分类和业务规则。
- NVIDIA profile 会改变 agent harness 行为；Switchyard routing 会改变实际模型、成本和输出分布，必须纳入版本和评测。
- Payments middleware 的自动付款不等于业务授权。工具 allowlist、预算、收款方、金额和幂等仍由应用服务端控制。

## 同步与异步

AWS Payments 页面明确同时提供 sync/async 路径；LangGraph 会按 `invoke`/`ainvoke` 选择。NVIDIA 以 `ainvoke` 为规范路径并支持同步包装。OpenAI moderation 可复用 sync/async client。其余页面未给出跨 provider 的统一 async 保证。

Middleware 的“包住一次模型/工具调用”不等于 token streaming 安全。输入、增量输出、最终输出、tool args 和 tool result 应分别确定检查点；如果只在最终消息后 moderation，流式通道可能已经泄漏内容。

## 生产组合原则

1. 按数据流明确顺序：身份/权限 → 输入 guardrail → cache/routing → model → tool guardrail → 输出 guardrail → audit。
2. 默认 fail-closed 的项目要区分 provider outage、policy reject 和 parser error；避免把安全服务不可用静默当通过。
3. Provider middleware 只接收完成任务所需的最小内容，日志不保存未脱敏 prompt、tool result 或凭证。
4. bash/editor/payment 等高风险能力叠加 HITL、资源范围、预算和确定性 allowlist；prompt 中的“不要做”不是控制。
5. 固定 integration/provider/model/profile 版本，对顺序、重试、fallback、async 和 streaming 做组合测试。

## 验证边界

已精读 7 个官方 Markdown 路由及版本/preview/experimental 提示。没有以真实 provider 运行 moderation、cache、routing 或 payment，命中率、费用和故障降级必须在目标环境验证。

