Проблема #4479: координация статистики использования токенов
Контекст
Проблема #4479 требует ежедневной видимости потребления токенов 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 в этом изменении. - Не добавлять отдельную команду верхнего уровня для токенов.