学习笔记 · Obsidian

Provider Middleware:缓存、安全与路由

LangChainPython

定位

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

7 个路由

路由包能力与关键边界
middleware、index生态索引分享/发现 provider 与 community middleware。引入前审计维护者、依赖、可见数据和失败语义。
anthropiclangchain-anthropicprompt cache、Claude native bash、text editor、memory、file search。text editor/memory 有 state 和 filesystem 变体。
awslangchain-aws;Payments 另需 bedrock-agentcore[langgraph]>=1.18.0Bedrock prompt cache;AgentCore Payments 自动处理 x402 paid API,含 allowlist、bearer auth、error handler、auto-session,当前为 preview。
azure_ailangchain-azure-aiAzure AI Content Safety 的 text/image moderation、Prompt Shield、Protected Material、Groundedness;上游标注 experimental。
nvidiadeepagents>=0.7.0、langchain-nvidia-ai-endpoints;Switchyard 需 deepagents>=0.7.4Nemotron 3 Ultra harness profile;NeMo Switchyard model routing 和 routing decision inspection,集成标注 experimental。
openailangchain-openaiOpenAIModerationMiddleware;可注入同步和异步 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,命中率、费用和故障降级必须在目标环境验证。