Skip to Content
ДизайнПроблема #4479: координация статистики использования токенов

Проблема #4479: координация статистики использования токенов

Контекст

Проблема #4479 требует ежедневной видимости потребления токенов Qwen Code. Область была уточнена в обсуждении: предпочтение отдано команде CLI, поддержке экспорта, ежемесячным сводкам и потреблению токенов по моделям. В комментарии мейнтейнера также была упомянута необходимость координации со смежными работами по статистике:

  • #4252: метрики времени генерации в /stats, такие как TTFT, длительность генерации и TPS.
  • #4182: счетчики сессий без содержимого для диагностики памяти.

Решения по координации

  1. Использовать /stats, а не новую команду верхнего уровня. Использование токенов предоставляется через /stats daily, /stats monthly и /stats export, чтобы разделить существующую поверхность команд статистики со статистикой сессий и будущими метриками генерации.

  2. Хранить счетчики токенов как локальные JSONL. Каждый ответ API добавляет одну запись без содержимого в usage/token-usage-YYYY-MM.jsonl в директории выполнения. Это обеспечивает ежедневную и ежемесячную агрегацию без добавления SQLite в качестве новой зависимости.

  3. Сохранить семантику таймингов #4252 отдельно. Сводки использования токенов могут включать apiDurationMs — существующую сквозную длительность ответа API из телеметрии. Она намеренно названа как длительность API и не должна представляться как длительность генерации, TTFT или TPS. #4252 остаётся ответственным за метрики времени генерации.

  4. Соблюдать границы конфиденциальности и диагностики памяти из #4182. Записи об использовании хранят только агрегированные счетчики и стабильные измерения: локальная дата, месяц, идентификатор сессии, модель, тип аутентификации, источник, счетчики токенов и длительность API. Они не хранят текст запроса, текст ответа, содержимое инструментов, пути проектов, идентификаторы запросов или идентификаторы ответов.

  5. Экспорт остаётся только агрегированным. Экспорт в CSV и JSON — это сводки, а не сырые транскрипты. Они группируются по общему итогу, модели, типу аутентификации, модели/типу аутентификации и источнику.

Нецелевые задачи

  • Не реализовывать инструментарий TTFT/TPS/длительности генерации из #4252 здесь.
  • Не расширять /doctor memory и не реализовывать #4182 в этом изменении.
  • Не добавлять отдельную команду верхнего уровня для токенов.
Last updated on