Zurück zum Blog

KostenoptimierungAnalyse

Wie man die Kosten eines KI-Agenten schätzt

Warum Agent-Rechnungen von Input-Tokens dominiert werden, eine Formel, die Sie vor dem Agenten ausführen können, ein durchgerechnetes 30-Schritte-Beispiel und sieben Wege, die Kosten zu senken.

Von CheapTokens TeamVeröffentlicht am 3 Min. Lesezeit

Diagramm der schrittweise wachsenden Input-Tokens in einer Agent-Sitzung, neben der Kostenformel
Auf dieser Seite
  1. Die Formel
  2. Warum Agenten input-lastig sind
  3. Ein durchgerechnetes Beispiel
  4. Schätzen Sie es im Code
  5. Messen statt raten
  6. Sieben Wege, die Kosten zu senken

Ein KI-Agent stellt nicht eine Anfrage – er stellt Dutzende, und jeder Schritt sendet die wachsende Konversation erneut. Deshalb werden Agent-Rechnungen von Input-Tokens dominiert, und deshalb funktioniert die Intuition „Preis pro Antwort“ aus Chat-Apps hier nicht. Hier erfahren Sie, wie Sie die Kosten schätzen, bevor der Agent läuft, und wohin das Geld tatsächlich fließt.

Die Formel#

Die Kosten einer Anfrage sind Input-Tokens mal Input-Preis plus Output-Tokens mal Output-Preis. Preise werden pro Million Tokens angegeben:

text
request_cost = input_tokens / 1,000,000 × input_price
             + output_tokens / 1,000,000 × output_price

Die Kosten einer Aufgabe sind die Summe über alle Anfragen, die der Agent während ihrer Lösung stellt.

Warum Agenten input-lastig sind#

Bei jedem Schritt sendet der Agent dem Modell:

  • den System-Prompt und die Tool-Definitionen;
  • die gesamte bisherige Historie – frühere Nachrichten, die vorherigen Antworten des Modells und Tool-Ergebnisse (Dateiinhalte, Befehlsausgaben, Suchergebnisse);
  • die neue Anweisung.

Das Modell antwortet normalerweise mit einer kurzen Nachricht oder einem Tool-Aufruf. Dann wird das Tool-Ergebnis an die Historie angehängt, und der nächste Schritt sendet alles erneut. So wächst der Input mit jedem Schritt, während der Output klein bleibt.

Ein durchgerechnetes Beispiel#

Bedingungen (Annahmen – ersetzen Sie sie durch Zahlen aus Ihrem Agenten):

  • System-Prompt und Tool-Definitionen: 6.000 Tokens;
  • jeder Schritt fügt 1.500 Tokens an Tool-Ergebnissen und 500 Tokens an Modell-Output zur Historie hinzu;
  • die Aufgabe dauert 30 Schritte;
  • Modell: DeepSeek-V4-Flash zu $0.0221 pro 1M Input-Tokens und $0.10 pro 1M Output-Tokens (aktuelle Preise).

Der Input von Schritt n ist 6.000 + (n − 1) × 2.000 Tokens. Über 30 Schritte:

  • Gesamt-Input: 30 × 6.000 + 2.000 × (0 + 1 + … + 29) = 180.000 + 870.000 = 1.050.000 Tokens;
  • Gesamt-Output: 30 × 500 = 15.000 Tokens;
  • Kosten: 1,05 × $0.0221 + 0,015 × $0.10 ≈ $0.0247 pro Aufgabe.

Input macht 98,6 % der Tokens und fast die gesamten Kosten aus. Wie stark der Input dominiert, hängt vom Szenario ab: Lange Antworten, generierte Dateien und Reasoning-Modelle erhöhen den Output-Anteil, während eine gekürzte Historie und kurze Tool-Ausgaben den Input-Anteil senken.

Dieselbe Aufgabe auf jedem Modell zu aktuellen Preisen, mit den Referenzpreisen von OpenRouter zum Vergleich:

Modell Kosten OpenRouter
GLM-5.3-Flash $0.0296 $0.0534
DeepSeek-V4-Flash $0.0247 $0.0264
MiniMax-M2.7 $0.0548 $0.333

1.050.000 Input- und 15.000 Output-Tokens insgesamt. Die Preise pro 1 Mio. Tokens sind aktuell und ändern sich zusammen mit unseren Tarifen; die OpenRouter-Spalte zeigt Referenzpreise für dieselbe Arbeitslast.

Schätzen Sie es im Code#

Dieselbe Berechnung als Funktion – ändern Sie die Annahmen und die Preise:

python
def estimate(steps, base_tokens, tool_tokens, out_tokens, price_in, price_out):
    """Token totals and cost of one agent task. Prices: $ per 1M tokens."""
    grow = tool_tokens + out_tokens            # what each step adds to the history
    total_in = steps * base_tokens + grow * steps * (steps - 1) // 2
    total_out = steps * out_tokens
    cost = (total_in * price_in + total_out * price_out) / 1_000_000
    return total_in, total_out, round(cost, 5)

# example rates, $ per 1M tokens — put in the current ones from the pricing table below
print(estimate(30, 6_000, 1_500, 500, price_in=0.10, price_out=0.40))
# (1050000, 15000, 0.111)

Beachten Sie den quadratischen Term: Eine Verdopplung der Schrittzahl vervierfacht ungefähr den Input. Lange Sitzungen werden nicht wegen eines einzelnen Schritts teuer, sondern weil jeder Schritt die gesamte Historie trägt.

Messen statt raten#

Jede Antwort enthält usage.prompt_tokens (Input) und usage.completion_tokens (Output). Protokollieren Sie sie für jeden Schritt einer echten Aufgabe, multiplizieren Sie mit den aktuellen Sätzen, und Sie haben die tatsächlichen Kosten. Das Dashboard zeigt außerdem die Nutzung nach Modell und nach Tag.

Aktuelle Sätze – dieselben Daten wie auf der Preisseite:

Modell Kontext Input $/1M Output $/1M OpenRouter Input OpenRouter Output
GLM-5.3-Flash reasoning 390K $0.027 $0.08 $0.048 $0.20
DeepSeek-V4-Flash 380K $0.0221 $0.10 $0.016 $0.64
MiniMax-M2.7 200K $0.05 $0.15 $0.30 $1.20

Preise in USD pro 1 Mio. Token. OpenRouter-Zahlen dienen dem Vergleich und können sich ändern.

Sieben Wege, die Kosten zu senken#

  1. Starten Sie eine neue Aufgabe für unabhängige Arbeit. Eine frische Sitzung trägt nicht die Historie der vorherigen mit sich.
  2. Geben Sie dem Agenten Fragmente, keine ganzen Dateien. Eine Funktion und ihre Aufrufer statt eines 3.000-Zeilen-Moduls.
  3. Kürzen Sie Tool-Ausgaben. Lange Logs und Befehlsausgaben bleiben für den Rest der Sitzung in der Historie – begrenzen Sie sie, zum Beispiel mit | tail -n 50.
  4. Fassen Sie lange Sitzungen zusammen. Viele Agenten können die Historie komprimieren; nutzen Sie das, bevor der Kontext lang wird.
  5. Begrenzen Sie die Antwortlänge mit max_tokens, wo lange Antworten nicht nötig sind.
  6. Verwenden Sie das richtige Modell für den Schritt. Routine-Schritte brauchen kein Reasoning-Modell.
  7. Halten Sie ein Prepaid-Budget. Das Guthaben ist vorausbezahlt: Wenn es aufgebraucht ist, stoppen Anfragen mit HTTP 402, statt eine offene Rechnung auflaufen zu lassen.

Um zu sehen, wie dieselbe Arbeitslast über Modelle hinweg und mit OpenRouter abschneidet, nutzen Sie den Kostenvergleich auf der Startseite.