Skip to content

[Bug]: 工具调用场景下 token metrics 统计可能不准确 #38

Description

@chenyme

Affected area

Billing / payments

Version or commit

v0.1.1

Environment

OS:MacOS
Browser:Chrome
Deployment:待补充
Model provider:支持工具调用的模型渠道
Tools:MCP 工具或模型原生工具

Reproduction steps

  1. 配置一个可用的 MCP 工具或启用模型原生工具,例如网页搜索。
  2. 选择支持工具调用的聊天模型。
  3. 发送一条会触发工具调用的问题。
  4. 观察生成过程中的 token metrics、消息底部用量展示、用量日志或账单统计。
  5. 对比普通无工具调用的请求和工具调用后的多轮请求用量。

Expected behavior

  • 工具调用触发的多轮模型请求 token 应完整计入本轮消息 metrics。
  • 流式生成过程中的 token 展示应与最终入库和账单统计一致。
  • 如果一次回复包含多轮 LLM 调用,例如首次请求、工具结果回传、最终总结,input/output/cache/reasoning token 应按总量展示。
  • 原生 server-side tools 如果上游返回独立工具用量,也应在统计或调试信息中有明确体现。
  • 用户不应看到“最终账单统计”和“对话底部 token 展示”明显不一致的情况。

Actual behavior

当前疑似存在 token metrics 不准确的情况,尤其是工具调用场景下:

  • 后端工具循环中最终 totalUsage 有累加逻辑,但流式 usage 事件是逐次上游调用直接推送。
  • 前端收到 usage 事件后是覆盖当前 token 值,而不是累计。
  • 因此工具调用触发多次 LLM 请求时,实时展示可能只保留最后一轮 usage,看起来像工具相关 token 没有被计入。
  • 上游原生工具的 ServerSideToolUsage 已在协议层解析,但业务统计链路中没有明显用于最终 metrics 展示或账单明细。

Logs, screenshots, or request samples

建议额外补充一组包含工具调用的请求日志,重点保留:

  • 模型协议
  • 是否启用 MCP / 原生工具
  • 工具调用次数
  • 每轮上游 usage
  • 最终消息 inputTokens / outputTokens / cacheReadTokens / cacheWriteTokens / reasoningTokens
  • billing usage ledger 中的对应记录

注意移除 API Key、Authorization header、上游 Base URL 和用户隐私内容。

Configuration and deployment context

需要重点排查:

  • 流式 usage 事件是否应该推送累计值,而不是单轮值。
  • 前端收到多次 usage 事件时是否应该累计,或以后端 completed 返回为准。
  • 工具循环中的多轮 GenerateOutput.Usage 是否在所有分支都被累加。
  • 原生 server-side tools 的 ServerSideToolUsage 是否需要进入 metrics、账单快照或调试详情。
  • 中断、失败、fallback 到非流式等场景是否会丢失部分 usage。

Pre-submit checklist

  • I searched existing issues and pull requests.
  • I removed secrets, tokens, credentials, and personal data from this report.
  • This is not a security vulnerability report.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions