Issue #4479 координация статистики использования токенов
Контекст
Issue #4477 запрашивает видимость ежедневного потребления токенов Qwen Code. В ходе обсуждения в треде было уточнено, что предпочтительнее реализовать команду CLI, поддержку экспорта, ежемесячные сводки и потребление токенов по моделям. В комментарии мейнтейнера также была отмечена необходимость координации со смежными работами по статистике:
- #4252: метрики времени генерации в
/stats, такие как TTFT, длительность генерации и TPS. - #4182: счетчики масштаба сессии без содержимого для диагностики памяти.
Решения по координации
-
Использовать
/stats, а не новую команду верхнего уровня. Использование токенов отображается через/stats daily,/stats monthlyи/stats export, что позволяет использовать существующую поверхность команд статистики совместно со статистикой сессий и будущими метриками генерации. -
Хранить счетчики токенов в локальном JSONL. Каждый ответ API добавляет одну запись без содержимого в
usage/token-usage-YYYY-MM.jsonlв рабочем каталоге. Это обеспечивает ежедневную и ежемесячную агрегацию без добавления SQLite в качестве новой зависимости. -
Сохранить семантику времени #4252 отдельно. Сводки использования токенов могут включать
apiDurationMs— существующую сквозную длительность ответа API из телеметрии. Она намеренно названа длительностью API и не должна представляться как длительность генерации, TTFT или TPS. #4252 остаётся ответственным за метрики времени генерации. -
Соблюдать границы конфиденциальности и диагностики памяти из #4182. Записи об использовании хранят только агрегированные счетчики и стабильные измерения: локальная дата, месяц, идентификатор сессии, модель, тип аутентификации, источник, счетчики токенов и длительность API. Они не хранят текст запроса, текст ответа, содержимое инструментов, пути проектов, идентификаторы запросов или идентификаторы ответов.
-
Экспорт остаётся только агрегированным. Экспорт в CSV и JSON — это сводки, а не экспорт сырых транскриптов. Они группируются по общему итогу, модели, типу аутентификации, модели/типу аутентификации и источнику.
Нецелевые задачи
- Не реализовывать инструментарий TTFT/TPS/длительности генерации из #4252 в рамках этой задачи.
- Не расширять
/doctor memoryи не реализовывать #4182 в этом изменении. - Не добавлять отдельную команду слэша верхнего уровня для токенов.