Skip to Content
设计Issue #4479 token 用量统计协调

Issue #4479 token 用量统计协调

背景

Issue #4479 要求提供每日 Qwen Code token 消耗的可视化。该 issue 线程中明确了范围,倾向于使用 CLI 命令、导出支持、月度汇总以及按模型的 token 消耗。一位维护者评论还指出需要与相邻的统计工作进行协调:

  • #4252:/stats 中的生成时序指标,如 TTFT、生成时长和 TPS。
  • #4182:用于内存诊断的无内容会话级计数器。

协调决策

  1. 使用 /stats,而不是新的顶级命令。 Token 用量通过 /stats daily/stats monthly/stats export 暴露,因此它与现有的统计命令表面共享,包括会话统计和未来的生成指标。

  2. 将 token 计数器持久化为本地 JSONL。 每个 API 响应会在运行时目录下的 usage/token-usage-YYYY-MM.jsonl 中追加一条无内容的记录。这满足日/月聚合的需求,无需添加 SQLite 作为新依赖。

  3. 保持 #4252 时序语义的独立性。 Token 用量摘要可能包含 apiDurationMs,这是来自遥测的现有端到端 API 响应时长。它被特意命名为 API 时长,不得作为生成时长、TTFT 或 TPS 呈现。#4252 仍然是生成时序指标的负责人。

  4. 保持 #4182 隐私和内存诊断的边界。 用量记录仅存储聚合计数器和稳定维度:本地日期、月份、会话 ID、模型、认证类型、来源、token 计数器和 API 时长。它们不存储提示文本、响应文本、工具内容、项目路径、提示 ID 或响应 ID。

  5. 导出仍仅为汇总。 CSV 和 JSON 导出是汇总,而非原始日志导出。它们按总计、模型、认证类型、模型/认证类型以及来源进行分组。

非目标

  • 不要在此处实现 #4252 的 TTFT/TPS/生成时长检测。
  • 不要在此变更中扩展 /doctor memory 或实现 #4182。
  • 不要添加独立的 token 用量顶级斜杠命令。
Last updated on