变了什么

Anthropic 的 Platform 文档说,Claude API 和 SDK 可以把 Messages API 请求、工具调用和 Managed Agents 会话追踪到你已经在运行的可观测性平台。一条 trace 是一次请求的完整记录。一个 span 是其中一步,例如一次模型请求或一次工具调用。span 使用 GenAI 语义约定属性,因此支持这些约定的平台无需额外设置就能识别它们。文档写明的用途是调试失败或缓慢的请求、跟踪 token 花费和延迟,以及用真实流量做评测,并把每个请求关联到发出它的用户或功能。

发布文章说,同样的 trace 可以来自 Claude Managed Agents、Messages API 和 Claude SDK,而且在 Platform 上构建的智能体可以出现在已经接收 Claude Code 或 Cowork trace 的工具里。Platform 文档把 Claude Code、Agent SDK 和 Cowork 指到各自的监控页面。文章说,在 Console 添加目的地后,每一次智能体回合、模型调用和工具使用都会作为标准 OpenTelemetry trace 送达,并带有延迟、token 和 ID。文档说投递是 best effort,span 可能丢失。调用方也可以关掉该请求 traceparent 标头中的 sampled 标志,从而去掉该请求的 span。这个标头携带该请求的采样决定。

面向谁,以及什么会离开账户

任何接受 OTLP(OpenTelemetry 导出协议)的平台都可以作为目的地。文档点名 Arize AI、Braintrust、Databricks、Datadog、Grafana Cloud、Honeycomb、Langfuse、LangSmith、New Relic、PostHog、Sentry 和 Splunk,并把 Langfuse 描述为开源。发布文章把 Grafana Cloud、Honeycomb、Sentry 和 Splunk 归到日志与指标旁边的调试;把 Arize AI、Braintrust、Datadog、Langfuse、LangChain 的 LangSmith、New Relic 和 PostHog 归到评测;把 Databricks Unity Gateway 归到按团队查看 token 用量。文档把最后这个合作方写成 Databricks。

与 Anthropic 订有 HIPAA、FERPA 或 K-12 数据处理限制的组织,无论内容模式如何设置,目的地都只导出元数据。文档说 SDK span 不受该限制影响。在零数据保留下,Messages API 请求仍然可以使用 Full content,API 只把导出内容保存在内存中,直到完成投递。Claude Managed Agents 不具备零数据保留资格,文档说使用 OpenTelemetry 不会改变这一保留方式。

Platform OpenTelemetry 文档写明的内容模式与大小上限
选择文档所写
仅元数据(metadata_only)默认。包含标识符、时间信息、状态、token 计数,以及你选择的文本,例如智能体与工具的名称和描述、MCP 服务器名称。提示词和回复不包含在内。
完整内容(content)增加模型提示词和回复。可观测性平台按自己的访问与保留设置存储它们。
默认大小每个 span 0.75 MB。文档说这装得下 200k token 的英文上下文,并低于平台和代理常见的 1 MB 限制。
1M token 窗口完整的 1M token 上下文窗口大约需要 4 MB。当平台接受更大载荷时,提高或取消该限制。
将合作方设为 ProviderConsole 中的另一项选择。你把一家合作平台选为 Provider,Console 会设置该平台接受的限制。
更小的上限当可观测性平台或其前面的代理拒绝大请求时,降低限制。
超过上限内容会被缩短,并且 anthropic.content.truncated 设为 true。请求 span 先去掉系统提示词和最早的消息。工具 span 从结果末尾去掉块。图片和文档只显示其类型。
在哪里修改SDK:traces.max_content_bytes。Console:先设为 Full content,再在 Advanced settings 中设置 Maximum content size in MB。

如何打开,以及如何只把 token 算一次

SDK 追踪是指安装 SDK 并注册 tracer provider。文档把这一注册步骤写成让 SDK 能够发出 span 的步骤。API 追踪是指在 Claude Console 添加目的地。发布文章说,Managed Agents 和 Messages API 需要这个 Console 目的地,而 Claude SDK 会自动导出 trace。文档仍然要求为 SDK span 注册 tracer provider。两者都设置后,才能在同一条 trace 里看到一次请求的 SDK span 和 API span。对于发往 Claude Platform on AWS 的请求,文档说 API span 留在各自的 trace 中。

文档比较了 SDK 追踪、API 追踪和两者同时开启。按这个列顺序,设置方式依次是代码、Console、两者都要;所需权限依次是 None、Admin、Admin;覆盖范围依次是使用 SDK 的客户端、任意客户端、任意客户端。

在文档的 Messages 示例中,应用程序调用 tool runner。tool runner 是运行工具并把结果送回的 SDK 辅助程序。SDK 发出 tool-runner span、自定义客户端工具 span,以及每个请求的客户端 create span。API 发出服务端 create span、每次模型请求的 span,以及 API 所运行的每个服务器工具或 MCP 连接器工具的工具 span。

当一条 Messages API 请求同时有 SDK span 和 API span 时,合计 API span。两者都叫 anthropic.messages.create。用 kind 区分:SDK span 是 CLIENT,它的子 span、也就是 API span,是 SERVER。对于 API Messages span,合计是两组之一:anthropic.messages.create span,或 anthropic.model_request span。对于 Managed Agents 会话,合计 anthropic.model_request 与 anthropic.session.outcome_evaluation span。一个会话的 span 可以分布在多条 trace 中。开启 multiagent 时,gen_ai.conversation.id 归组一条线程,anthropic.session.id 归组整个会话。gen_ai.usage.input_tokens 已经包含提示缓存的读取和写入。如果重试再次送来同一个 span,按 trace ID 和 span ID 只计一次。下表是每个来源只计一次的清单。

在 SDK 的 create span 上,还要加上 anthropic.usage.compaction.input_tokens 和 anthropic.usage.compaction.output_tokens,因为 gen_ai.usage.* 不包含 compaction token。如果由 fallback 模型处理了请求,该 SDK span 只有实际给出回复的那个模型的用量。在 API Messages span 上,加上该请求的 anthropic.compaction span,并且不要把 create span 的 anthropic.usage.compaction.* 属性计入同一合计,因为它们保存的是同一批 token。

Platform 文档要求每个来源只计一次的 token 合计
来源计入合计的 spancompaction 与 fallback
同时有 SDK span 和 API span 的 Messages 请求kind 为 SERVER 的 API anthropic.messages.create span。同名的 SDK span 的 kind 为 CLIENT。接着使用 API Messages 那一行。
SDK create spananthropic.messages.create还要加上 anthropic.usage.compaction.input_tokens 和 anthropic.usage.compaction.output_tokens。fallback span 只有实际给出回复的那个模型的用量。
API Messages spananthropic.messages.create 或 anthropic.model_request,二选一还要加上 anthropic.compaction span。create span 的 anthropic.usage.compaction.* 属性保存同一批 token,因此不计入这个合计。
Managed Agents 会话anthropic.model_request 和 anthropic.session.outcome_evaluation计数规则没有为这些 span 单列 compaction 加项。一个会话的 span 可以分布在多条 trace 中。

价格、日期,以及引语在衡量什么

OpenTelemetry 文档和发布文章都没有写出价格、套餐层级、导出配额或正式可用日期。文章正文自身也没有发布日期。Beta 说明称,这项导出依照你与 Anthropic 的协议提供,其中包括 Service Specific Terms 中的 Beta Services 一节。

Ramp 的 David Traina 说,给 Langfuse trace 打分的 Reflect 已经在部分智能体上把 token 用量降低了 10–20%,并使会话加快了 30%。他说,来自 Claude API 的原生导出可以进入这个改进循环,而 Reflect 只能改进它所观察到的东西。这些百分比是他对 Reflect 已有结果的陈述。文章还引用了 Foxglove 的 Roman Shtylman 关于在产品用量旁边使用 PostHog 的话,Sterling Labs 的 Hyon Lee 关于 Langfuse 在没有自定义插桩的情况下接收每一条 trace 的话,以及未写明所属组织的基础设施负责人 Ankush Sharma 关于在对账和日记账分录工作流旁边使用 Grafana Cloud 的话。Lee 所说的每一条 trace 都会到达,与文档的 best effort 投递并置。

Claude Code 更新日志另外在 Claude Code 的 trace span 上加入了 GenAI 属性,其中包括 gen_ai.provider.name、gen_ai.conversation.id、gen_ai.tool.name 和 error.type,并在 api_request 事件上加入了 cache_creation_5m_tokens 和 cache_creation_1h_tokens。这些条目没有写出版本,它们属于 Claude Code 遥测,而不是这个 Console 目的地。

来源

Claude Developers · @ClaudeDevs

相关来源

资料与编写依据

这篇简报依据的是 2026 年 10 月 15 日的 ClaudeDevs 帖子、Anthropic 的 Platform OpenTelemetry 文档,以及发布文章《Trace agents with OpenTelemetry on the Claude Platform》,三者都在当天阅读。Claude Code 更新日志里关于 GenAI span 属性的一段,只为了把它和 Platform 导出分开而收入。那些条目没有版本标题。Beta Services 条款、span 属性参考、token 用量属性页面,以及 Claude Code、Agent SDK 和 Cowork 的监控页面,不在这次阅读范围内。没有配置目的地,也没有导出 trace。