学习笔记 · Obsidian
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,流式通道可能已经泄漏内容。
生产组合原则
- 按数据流明确顺序:身份/权限 → 输入 guardrail → cache/routing → model → tool guardrail → 输出 guardrail → audit。
- 默认 fail-closed 的项目要区分 provider outage、policy reject 和 parser error;避免把安全服务不可用静默当通过。
- Provider middleware 只接收完成任务所需的最小内容,日志不保存未脱敏 prompt、tool result 或凭证。
- bash/editor/payment 等高风险能力叠加 HITL、资源范围、预算和确定性 allowlist;prompt 中的“不要做”不是控制。
- 固定 integration/provider/model/profile 版本,对顺序、重试、fallback、async 和 streaming 做组合测试。
验证边界
已精读 7 个官方 Markdown 路由及版本/preview/experimental 提示。没有以真实 provider 运行 moderation、cache、routing 或 payment,命中率、费用和故障降级必须在目标环境验证。