Aller au contenu
Runic
Français
Esc
naviguerouvrir⌘Japerçu
Sur cette page

Benchmarks

Deux benchmarks qui répondent à deux questions différentes — économies réelles d’API et exactitude du mécanisme à grande échelle.

Deux benchmarks se trouvent dans benchmarks/ du dépôt, et ils ne sont délibérément pas de même nature — ne considérez pas l’un comme représentatif de l’autre.

openrouter-savings — appels API réels, comptages de jetons réels

Effectue de vrais appels à OpenRouter et enregistre les véritables total_tokens renvoyés par OpenRouter. Il est volontairement réduit — une poignée de décisions, dont certaines répétées — car les appels réels coûtent de l’argent et atteignent les limites de débit. Chaque nombre affiché provient d’une réponse API réelle.

OPENROUTER_API_KEY=sk-... pnpm --filter @runic-labs/benchmarks run start
OPENROUTER_API_KEY=sk-... pnpm --filter @runic-labs/benchmarks run start -- --json

Augmentez le nombre de répétitions pour élargir l’échantillon sans modifier le fichier :

OPENROUTER_API_KEY=sk-... REPEATS_PER_DECISION=6 pnpm --filter @runic-labs/benchmarks run start -- --json

Une exécution réelle, non modifiée :

{
  "model": "openai/gpt-oss-20b:free",
  "decisions": 48,
  "uniqueDecisions": 8,
  "apiCalls": 8,
  "cacheHits": 40,
  "tokensSpent": 2582,
  "tokensSaved": 12910,
  "tokensWithoutRunic": 15492,
  "savingsPercent": 83
}

48 décisions résolues, seulement 8 appels réels effectués, et 83 % de jetons dépensés en moins que pour résoudre les 48 de manière habituelle — mesuré à partir du propre usage.total_tokens d’OpenRouter, sans estimation.

reuse-sweep — synthétique, prouve le mécanisme à grande échelle

N’effectue aucun appel réseau. Il sert à répondre à une question plus restreinte et honnête : pour N décisions et un taux de répétition de R %, le cache réutilise-t-il exactement les entrées qu’il doit réutiliser, et la comptabilité du registre est-elle parfaitement correcte ? Il utilise un coût synthétique fixe et clairement indiqué par décision (320 jetons) au lieu d’une réponse API réelle — il s’agit d’une preuve de correction, pas d’une estimation des économies réelles.

pnpm run benchmark            # table
pnpm run benchmark -- --json  # machine-readable

Modifiez la forme du balayage sans éditer le fichier :

SWEEP_DECISIONS=10,50 SWEEP_REUSE_PCTS=0,50,90 pnpm run benchmark

Une exécution réelle :

Runic reuse-sweep (synthetic — proves the mechanism, not real-world savings)
Synthetic cost per unique decision: 320 tokens

 decisions  reuse%   unique     hits      spent      saved  savings%
---------- ------- -------- -------- ---------- ---------- ---------
        10       0       10        0       3200          0         0
        10      25        7        3       2240        960        30
        10      50        5        5       1600       1600        50
        10      75        2        8        640       2560        80
        10      90        1        9        320       2880        90
       100       0      100        0      32000          0         0
       100      25       75       25      24000       8000        25
       100      50       50       50      16000      16000        50
       100      75       25       75       8000      24000        75
       100      90       10       90       3200      28800        90
      1000       0     1000        0     320000          0         0
      1000      25      750      250     240000      80000        25
      1000      50      500      500     160000     160000        50
      1000      75      250      750      80000     240000        75
      1000      90      100      900      32000     288000        90
     10000       0    10000        0    3200000          0         0
     10000      25     7500     2500    2400000     800000        25
     10000      50     5000     5000    1600000    1600000        50
     10000      75     2500     7500     800000    2400000        75
     10000      90     1000     9000     320000    2880000        90

Le fait que la colonne savings% suive la colonne reuse% à l’identique, à chaque échelle, est précisément l’objectif — cela confirme que le cache fait exactement ce qu’il prétend faire, sans promouvoir un chiffre.

Lequel dois-je utiliser pour mon cas d’usage ?

Aucun, directement — vos économies réelles dépendent de la fréquence à laquelle votre agent repose la même décision, ce que la colonne reuse% de reuse-sweep modélise sans pouvoir le prédire pour vous. Exécutez openrouter-savings sur votre propre ensemble de décisions réelles si vous souhaitez un chiffre spécifique à votre charge de travail.

Suite

  • Fonctionnement — les mécanismes de signature et de registre que les deux benchmarks exercent
  • Démarrage rapide — intégrez ceci à votre propre agent pour obtenir vos propres chiffres réels

Cette page vous a-t-elle été utile ?