1Lany2a/rapport-utilisation-tokens

Compétence pour agent : rapporter l'utilisation de tokens par conversation, le taux de cache et le coût estimé (tarification DeepSeek heures pleines/creuses) pour ZCode, Codex, Claude Code, OpenCode.

Qu'est-ce que rapport-utilisation-tokens ?

Cette compétence lit les fichiers de rollout locaux de l'agent et imprime l'utilisation du segment de conversation le plus récent **plus** de toute la session (deux lignes). Elle est utile pour que l'utilisateur puisse vérifier par tour le nombre de tokens et le coût estimé, permettant de comparer avec la facture réelle du fournisseur. Le script prend en charge les agents ZCode, Codex, Claude Code, OpenCode et DeepSeek Harness (DSH). Il calcule localement les totaux de session sans appels de modèle supplémentaires, ce qui ajoute une surcharge de tokens négligeable. Les limitations incluent l'estimation des coûts par rapport à la facture réelle, l'application des tarifs heures pleines/creuses en fonction de l'heure de début de session, et l'absence de données segment pour Codex (rapport uniquement session entière). La compétence s'intègre via un script Python standard (Python 3.9+), avec une dépendance optionnelle pour les logs DeepSeek compressés.

Compatible avec✓Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add 1Lany2a/token-usage-report

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Rapport d'utilisation des tokens

Lit les fichiers de rollout locaux de l'agent et imprime l'utilisation du segment de conversation le plus récent plus de toute la session (deux lignes) :

本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50

Pourquoi les deux lignes ? Les nombres de la session entière sont calculés localement par le script (sans appels de modèle supplémentaires), donc les rapporter ne coûte que quelques dizaines de caractères supplémentaires dans la réponse — une surcharge de tokens négligeable, et l'utilisateur peut comparer le tour actuel au total de la session.

Quand exécuter

  • Exécuter avant de composer la réponse finale de chaque session.
  • Formulations déclencheurs : "token usage", "用量", "费用", "cost", "billing", "多少 tokens", "汇报", "spent".
  • Pourquoi : cela donne à l'utilisateur une ligne d'utilisation par tour qu'il peut recouper avec la facture réelle du fournisseur. Le coût est une estimation (instantané de tarification), pas la facture.

Comment exécuter

Script : scripts/usage_report.py — Python 3.9+, bibliothèque standard uniquement (rien à installer), sauf le package optionnel zstandard nécessaire pour les logs DeepSeek Harness (dsh).

python3 <chemin-absolu-de-ce-dossier>/scripts/usage_report.py --latest   # segment/session le plus récent (par défaut)
python3 <chemin-absolu-de-ce-dossier>/scripts/usage_report.py --whole    # toute la session la plus récente
python3 <chemin-absolu-de-ce-dossier>/scripts/usage_report.py --all      # liste par session
python3 <chemin-absolu-de-ce-dossier>/scripts/usage_report.py --agent zcode|codex|claude|opencode|dsh
python3 <chemin-absolu-de-ce-dossier>/scripts/usage_report.py --session <sous-chaîne>   # cibler une session

Utilisez toujours le chemin absolu vers le dossier de cette compétence. Ne faites pas cd ailleurs d'abord. Passez --agent explicitement lorsque vous l'exécutez depuis une session d'agent (la détection automatique prend le fichier le plus récemment modifié, qui peut appartenir à un agent différent exécuté simultanément) ; --session épingle un fichier de session spécifique.

Ajoutez la sortie du script à la réponse finale textuellement — les deux lignes, sur des lignes séparées (本段会话 ci-dessus, 整个会话 ci-dessous). Si la réponse est en markdown, un seul saut de ligne s'affiche comme un espace et fusionne les deux lignes, donc placez-les dans un bloc de code (ou laissez une ligne vide entre elles) :

本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50
  • Code de sortie 0 → incluez toujours les lignes, même si les nombres semblent identiques au rapport précédent (l'utilisateur les veut à chaque tour).
  • Codex rapporte une seule ligne (session entière) — il n'y a pas de données de segment.
  • Code de sortie 1 / "No usage data found" → ignorez silencieusement ; ne demandez pas à l'utilisateur.
  • Toute autre erreur → corrigez la cause (Python manquant, dossier de compétence déplacé) avant de répondre ; n'ignorez pas silencieusement.

Agents pris en charge

AgentSource de donnéesSignification de --latest
ZCode~/.zcode/cli/rollout/model-io-*.jsonldernier segment : enregistrements depuis la dernière requête dont le dernier message est une invite utilisateur (ce tour incluant ses appels d'outils)
Codex~/.codex/sessions/**/rollout-*.jsonldernière session (entière) — les rollouts Codex stockent des totaux cumulatifs, donc seul le total final est rapporté, comme une seule ligne ; les données de segment ne sont pas disponibles
Claude~/.claude/projects/**/*.jsonldernier segment : enregistrements depuis le dernier enregistrement "type":"user"
OpenCode<data>/opencode/opencode.db (SQLite ; %LOCALAPPDATA% sur Windows, $XDG_DATA_HOME ou ~/.local/share autrement)dernier segment de la session la plus récente (depuis le dernier message utilisateur)
DSH~/.dsh/sessions/**/session.jsonl[.zstd] (compressé zstd ; nécessite zstandard optionnel)dernier tour (un échange utilisateur) + session entière

Tous sont analysés à partir de formats documentés, vérifiés localement ou bien connus. DeepSeek Harness (dsh) et d'autres agents peuvent être ajoutés avec un petit analyseur — voir README.md pour la recette.

Précision et limites

Le rapport est une estimation à partir des données de rollout locales + prix catalogue, pas la facture du fournisseur. Les écarts par rapport à la page d'utilisation officielle peuvent provenir de :

  • Les totaux Codex sont cumulatifs : chaque enregistrement total_token_usage est le total de session cumulé, donc le script utilise le dernier enregistrement (ne fait jamais la somme). Les nombres par requête et par segment ne sont pas disponibles pour Codex.
  • Le tarif heures pleines/creuses est appliqué par heure de début de session, tandis que le fournisseur facture chaque requête à son propre horaire. Une session traversant une limite de période (09:00–12:00 / 14:00–18:00 heure de Pékin) est mal tarifée pour la partie traversée.
  • Les tokens de sortie de raisonnement sont inclus dans output pour Codex (facturés au taux de sortie) ; les rollouts ZCode n'exposent aucun champ de raisonnement.
  • Les rollouts locaux peuvent ne pas capturer toutes les requêtes sur la clé (flux interrompus, appels non interactifs), donc les totaux peuvent être inférieurs à l'utilisation complète de la clé.
  • Les tarifs sont un instantané ; une clé de passerelle/agrégateur ou un ID de modèle différent peut facturer à des prix différents.

Modèle de coût

Tarification officielle DeepSeek heures pleines/creuses, effective 2026-08-17 00:00 heure de Pékin (annoncée 2026-08-13). Heures de pointe : 09:00–12:00 et 14:00–18:00 heure de Pékin ; tous les autres horaires sont creuses à moitié prix. Les sessions avant 2026-08-17 utilisent les anciens tarifs forfaitaires.

ModèlePériodecache-inmiss-insortie(CNY / 1M tokens)
deepseek-v4-flashcreuses0,051,54,5
deepseek-v4-flashpointe0,103,09,0
deepseek-v4-procreuses0,154,513,5
deepseek-v4-propointe0,309,027,0

La période de facturation provient de l'heure de début de session (heure locale de la machine). Si les tarifs officiels changent, mettez à jour les tables PRICES_* dans scripts/usage_report.py ; la source faisant autorité est platform.deepseek.com.

Intégration (rapport automatique à chaque session)

Ajoutez cette règle au fichier d'instructions utilisateur de l'agent (~/.zcode/AGENTS.md, ~/.codex/AGENTS.md, CLAUDE.md, ou un fichier AGENTS.md de projet) :

Exécutez python3 <dossier-compétence>/scripts/usage_report.py --agent <votre-agent> --latest (passez TOUJOURS --agent — la détection automatique peut lire les données d'un autre agent exécuté simultanément) avant chaque réponse finale et ajoutez ses deux lignes de sortie textuellement : 本段会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M 整个会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M. Ignorez uniquement lorsque le script affiche "No usage data found".

Sécurité

  • Le script lit uniquement les fichiers JSON de rollout locaux sous le répertoire personnel de l'utilisateur. Il ne lit, n'imprime ni ne nécessite de clés API, fichiers .env ou identifiants.
  • Les fichiers de rollout peuvent contenir du texte d'invite — ne faites jamais écho à leur contenu. Imprimez uniquement les nombres agrégés que le script produit.

Skills associés