Claude Code 2.1.261 gateway policy telemetry operator 变化,代理层该补哪些检查

Claude Code 2.1.261 gateway policy telemetry operator 变化暴露了四类代理故障,包括组织策略读取、客户端 IP 解析、JSON 与 protobuf 遥测差异,以及 TLS 检查后的 Bedrock 设置探测。

发布于 来源 Claude Code Changelog

归档条目:由 AI 根据所引信源辅助生成,发布时未经逐篇审阅。责任编辑:Joe Werner。

一张克制的技术新闻配图,展示 coding agent gateway 在 provider routing 前检查策略、代理身份和遥测链路

Claude Code 2.1.261 不是一次模型发布。对把 coding agent 接进 gateway 的团队来说,它反而更值得看,因为这次 changelog 把企业代理最容易制造假安全感的几个位置点了出来,分别是 policy discovery、client identity、provider setup probes 和 OpenTelemetry export format。Claude Code 2.1.261 gateway policy telemetry operator 这件事的重点在于,gateway 的故障终于可能被用户看见,但前提是你真的把这些旁路控制面纳入 routing 和审计。

这次更新还提高了 inline output 限制,并加入 skill 成本诊断。它们有用,但不是主线。真正的运营动作,是别再把 coding-agent API path 当成一次单纯的 model request。Claude Code 的主请求周围还有一组 control-plane calls。一个只转发 completions、却漏掉这些调用的 gateway,会让 agent 看起来已经配置好,实际却没有加载企业 policy。

Claude Code 2.1.261 gateway policy telemetry operator 审计要先看 status path

/status 和 claude doctor 新增的 "Organization policy" 行,是这次最该进检查清单的变化。它会说明组织 policy 为什么没有加载成功,其中包括 proxy 没有把对应 endpoint 放行的情况。原来安静失败的 governance 问题,现在至少有机会变成可见诊断。

对 operator 来说,这个 endpoint 不是普通 URL。如果公司依赖 managed settings、model allowlists、plugin controls 或 spend rules,policy-fetch failure 就应该被视为 control plane 降级。用户仍然可以输入 prompt,但这个 session 已经没有处在组织预期的 policy posture 下。

迁移动作很小,也足够具体。过去很多 gateway health check 只停在模型 endpoint 上,CLI 能否连到 provider,streaming 是否正常,authentication 是否通过。2.1.261 之后,给托管的 Claude Code 部署加一个 policy-read check。让开发者实际使用的同一条 proxy path 跑 claude doctor 或 /status,记录 organization-policy 行,一旦它报告 proxy pass-through failure 就报警。使用 TheRouter 作为主要 OpenAI-compatible entry point 的团队,也应该把 coding-agent control-plane allowlist 和 TheRouter docs 里的 model-routing allowlist 分开管理,因为 model path 正常不代表 policy path 正常。

client IP 和 proxy headers 已经进入 access control

Claude apps gateway 修复了一个 client IP 处理问题。当 trusted proxy 在 X-Forwarded-For 里追加 port 时,如果设置了 access list,无法读取的条目现在会返回 403。这类改动看起来像管道细节,直到 allowlist 真的依赖它。

这里的 operator consequence 很明确,也可以测试。如果上游 proxy 发出 203.0.113.10:53214,而不是 203.0.113.10,旧解析逻辑可能把 client 识别错。轻一点会误拒合法开发者 session。重一点,fallback logic 可能绕过 access-list check,或者把错误的 tenant source 写进记录。新的行为把 unreadable entries fail closed 到 403,这是 access-controlled gateway 更安全的默认值。

跨 provider 的背景也重要。coding-agent stack 经常同时经过 direct Anthropic API、Bedrock、Vertex AI 和内部 LLM gateway。Cloud load balancers、corporate proxies、service meshes 对 forwarded-header formatting 的处理并不一致。router 应该在 edge 统一 normalize X-Forwarded-For,把 canonical client IP 放进自己的 trusted header,避免在更深的链路里重复解析任意用户可控的 header chains。

TheRouter 用户如果要测试 Claude Code custom endpoint,先确认 Claude Code router path 的普通请求可用,再做一次负向测试,传入 malformed forwarded-for entry,预期应当是 403,不能是 silent fallback。如果日志里看不到到底哪个 parsed IP 触发了拦截,审计链路仍然不完整。

telemetry format mismatch 会抹掉 billing 和 incident 线索

这次还修复了 Claude apps gateway 指示 Claude Desktop 以 JSON 导出 OpenTelemetry 的问题。若 terminal CLI 使用 protobuf,而 collector 只接收 protobuf,Desktop telemetry 就会被拒收。这不是显示格式不一致。对 coding-agent operator 来说,telemetry 负责把 model choice、latency、retries、user attribution 和 cost 串起来。

一个 gateway 即使正确 route 了 model traffic,只要丢掉 Desktop spans,就会低估非终端用户最常用的工作流。更麻烦的是,如果 collector 没有大声报告 rejected payloads,这种缺失看起来会像正常的空白。团队环境里,CLI users 变得可度量,Desktop users 却成了 accounting blind spot。

2.1.261 之后的迁移动作,是按 deployment lane 固定 telemetry protocol。如果 collector 只接 OTLP/protobuf,就验证 Desktop、terminal CLI、cloud sessions 和 SDK sessions 是否都发同一协议。如果同时支持 JSON 和 protobuf,也要给 ingestion path 打 tag,让 billing 和 incident reports 能分清 protocol conversion issue 和真实 request failure。changelog 还提到 resumed sessions 曾丢失 parallel tool calls 附近的 hook output 与上下文,这也应该进同一轮审计,因为 hook output 常常承载 policy 或 cost attribution,后面会变成争议记录。

Claude Code 2.1.261 gateway policy telemetry operator 检查不能漏掉 provider setup

Bedrock setup 现在会在 AWS 或 credential helper 长时间无响应时清楚 timeout,model checks 也不会再仅仅因为 TLS-inspecting proxy 就失败。这里的 operator angle 要落在 provider-readiness probes 上,它们需要自己的 timeout 和 proxy test budget。

在修复前,挂起的 helper 可能无限消耗用户注意力,TLS-inspection failure 也可能被误读成 Bedrock model unavailability。修复后,gateway team 应该在 logs 和 dashboards 里拆开三种结果,credential-helper timeout、TLS/proxy validation failure、provider model-list failure。它们对应的处理完全不同。重试 model routing 修不好 credential helper。切换 provider 也修不好拦截 setup check 的 corporate TLS policy。

bashOutputMaxChars 和 taskOutputMaxChars 现在最高可配置到 128K inline characters,也应该和这次 rollout 放在一起加 guardrail。更多 inline command output 对 debug 有帮助,但也会增加 secrets、stack traces 或大型 generated artifacts 进入 model context 的概率。如果你要调高这些限制,就同时配 redaction rules,并给 untrusted workspaces 保留更低上限。/skill-doctor 也在这个位置发挥作用,它能让团队看到哪些 loaded skills 占了 context 却从未运行,prompt-cache 和 context-window 成本才有地方剪。

现在该改的 routing 规则

把 Claude Code 2.1.261 当作一次 control-plane release。给 coding-agent gateway checklist 增加四个 probes。/status 里 policy fetch 可见,forwarded-for 解析失败返回 403,每个 client surface 的 OTEL protocol 都能被 collector 接收,Bedrock setup checks 与 model invocation checks 分开统计。

现在也该停止把所有 coding-agent events 合并成一个 "Claude Code request" metric。真正有用的 router record 应该拆开 model calls、policy calls、plugin sync、telemetry export、provider setup probes 和 remote-control delivery。这次更新触及了这些表面。如果它们在指标里坍成一个 success counter,下一次 incident 只会告诉你 Claude Code 是 up 的,而 governance 或 billing 依赖的那一段其实已经不见了。

帮助与联系