Issue #4479 token 用量统计协调
背景
Issue #4479 要求提供每日 Qwen Code token 消耗的可视化。该 issue 线程中明确了范围,倾向于使用 CLI 命令、导出支持、月度汇总以及按模型的 token 消耗。一位维护者评论还指出需要与相邻的统计工作进行协调:
- #4252:
/stats中的生成时序指标,如 TTFT、生成时长和 TPS。 - #4182:用于内存诊断的无内容会话级计数器。
协调决策
-
使用
/stats,而不是新的顶级命令。 Token 用量通过/stats daily、/stats monthly和/stats export暴露,因此它与现有的统计命令表面共享,包括会话统计和未来的生成指标。 -
将 token 计数器持久化为本地 JSONL。 每个 API 响应会在运行时目录下的
usage/token-usage-YYYY-MM.jsonl中追加一条无内容的记录。这满足日/月聚合的需求,无需添加 SQLite 作为新依赖。 -
保持 #4252 时序语义的独立性。 Token 用量摘要可能包含
apiDurationMs,这是来自遥测的现有端到端 API 响应时长。它被特意命名为 API 时长,不得作为生成时长、TTFT 或 TPS 呈现。#4252 仍然是生成时序指标的负责人。 -
保持 #4182 隐私和内存诊断的边界。 用量记录仅存储聚合计数器和稳定维度:本地日期、月份、会话 ID、模型、认证类型、来源、token 计数器和 API 时长。它们不存储提示文本、响应文本、工具内容、项目路径、提示 ID 或响应 ID。
-
导出仍仅为汇总。 CSV 和 JSON 导出是汇总,而非原始日志导出。它们按总计、模型、认证类型、模型/认证类型以及来源进行分组。
非目标
- 不要在此处实现 #4252 的 TTFT/TPS/生成时长检测。
- 不要在此变更中扩展
/doctor memory或实现 #4182。 - 不要添加独立的 token 用量顶级斜杠命令。
Last updated on