carbon-md ingest

Charge l'usage depuis un fichier ou stdin. Le chemin universel — si votre stack sait écrire du JSON, elle peut être comptabilisée.

npx carbon-md ingest <fichier>
npx carbon-md ingest -          # lire stdin

Entrées acceptées

Le format est détecté automatiquement :

EntréeDétection
JSONL usage-reportun objet JSON par ligne, avec des champs de tokens
Tableau JSONun tableau des mêmes objets
JSON OTLP / OpenTelemetryaplatit *.token.usage et gen_ai.client.token.usage

Les noms de champs et leurs alias sont documentés dans Format usage-report.

Exemples

# un journal d'usage écrit par votre agent
npx carbon-md ingest usage.jsonl

# un export OpenTelemetry — n'importe quel agent instrumenté OTel convient
npx carbon-md ingest otel-export.json

# directement depuis un pipeline
my-agent --emit-usage | npx carbon-md ingest -

Idempotence

Les lots ingérés sont suivis dans .carbon-md/sources/. Ré-ingérer le même fichier ne compte pas deux fois. Dans le doute, --dry-run d'abord :

npx carbon-md ingest usage.jsonl --dry-run

Sortie

✔ Ingested 412 events → ~1.2 kg CO2e central estimate, 2,910,004 tokens
  3 models were classified by guess — see `npx carbon-md factors`

Dépannage

SymptômeCauseCorrectif
0 events ingestedchamps non reconnusvérifiez les noms dans usage-report
Tout est en medium (guessed)chaînes de modèles inconnues du classifieurce n'est pas grave — les fourchettes s'élargissent ; envisagez une PR sur la table de facteurs
Les chiffres semblent trop élevéslectures de cache comptées comme entréeenvoyez-les en cache_read_tokens ; elles sont alors exclues
Des totaux qui semblent dupliquésmêmes données ingérées par deux cheminsune seule source par flux (sync ou ingest)

Estimations, pas des mesures — les fourchettes sont voulues. carbon.md ne revendique jamais la neutralité carbone.

Porté par Agentic Realism · MIT · Éditer sur GitHub