Anthropic: 无法发出推理令牌子集 — 跨提供商的推理成本不可见

作者: roy-tong创建于 2026年9月3日更新于 2026年9月7日

一个跨项目的发现来自 30 个项目的符合性检查 — — 与 #4449 之后的 OpenLLMetry 有关(跨包缓存差异)。 **观察结果** Anthropic 仪器包发出了推理令牌子集(OpenAI 的 `gen_ai.usage.details.reasoning_tokens` 或等价的令牌),但 Anthropic 的直接路径根本没有发出 Claude 的扩展思考推理令牌: - `packages/opentelemetry-instrumentation-Anthropic/.../Anthropic/__init__.py` 和 `streaming.py`:只提取了输入/输出/缓存读/缓存写/总计 - `usage.output_tokens_details.reasoning_tokens`(Anthropic 的 API 响应中包含扩展思考的 Claude)没有被读取 - Anthropic 模型没有发出 `gen_ai.usage.details.reasoning_tokens` 或类似的属性。 与此同时: - **OpenAI** 包(`chat_wrappers.py` ~L334-353,`responses_wrappers.py` ~L444-451)正确地从 `completion_tokens_details` 和 `output_tokens_details` 中发出了 `reasoning_tokens` - **Google Vertex AI** 包(`span_utils.py` ~L293-322)正确地从 `cached_content_token_count` 中发出了 `cached_content_token_count`(尽管 `thoughts_token_count` 也缺失)。 **后果** 在发出的远程传感器中,“输出令牌”在不同的提供商之间具有不同的语义: - OpenAI:output_tokens 包含推理;推理子集单独可见 - Anthropic:output_tokens 包含思考;推理子集不单独可见 - Google:output_tokens 包含想法(有时);想法子集不可见 对于任何消费者计算推理令牌单独(推理在某些模型上有不同的定价),Anthropic 的思考令牌是不可见的。 对于消费者比较不同提供商之间的推理比率,Anthropic 所提供的数据根本不存在。 **问题** 发出 `reasoning_tokens` 从 Anthropic 路径中,与 OpenAI 路径已经做的事情相匹配,是否有意义? 该字段在 Claude 使用扩展思考时存在于 API 响应中。 上下文:AgentMeasure 符合性检查(30 个项目/30 天);这是 #4449 之后的 OpenLLMetry 后续工作。 我们提出的 Anthropic 缓存正则化是我们审计过的最仔细实现 — — 这是最后一个缺口。

内容来源: traceloop/openllmetry