412 Euro für zwei Wochen Testbetrieb. So viel hat mich ein Assistent gekostet, den ich im Oktober gebaut habe – nicht für besonders kluge Antworten, sondern für einen Agenten, der 61 Mal dieselbe Datei gelesen hat, weil er nach jedem Schritt vergessen hatte, dass er sie schon kennt.
Ich hatte mit einem Bruchteil gerechnet, und die Differenz hat mich eine Woche gekostet, in der ich Token-Zahlen in Logs sortiert habe. Was ich dabei gelernt habe, ist weniger über Modelle als über Schleifen.
Wie ein Tool-Call zur Rechnung wird
Ein Agent ist eine Schleife: Modell aufrufen, Werkzeug ausführen, Ergebnis anhängen, wieder aufrufen. Der Preis jedes Durchlaufs ist nicht die neue Frage, sondern der gesamte bisherige Verlauf. Nach zehn Schritten zahlst du zehnmal für die ersten neun.
Das ist keine Intransparenz des Anbieters, sondern die Mechanik von Kontextfenstern. Der Preis pro Schritt wächst linear, die Summe quadratisch. Dazu kommt, dass ein Modell mehrere Werkzeuge in einem Schritt aufrufen kann: Drei Aufrufe sind drei Ergebnisse im Verlauf, und der nächste Schritt zahlt alle drei mit. Bei einem Agenten mit zwanzig Schritten und einem Werkzeug, das eine 3.000-Token-Datei zurückgibt, ist der letzte Aufruf teurer als die ersten fünf zusammen.
Die Schleife, die niemand sieht

| Schritt | Kontext (Tokens) | Kosten kumuliert |
|---|---|---|
| 1 | 1.800 | 0,01 € |
| 5 | 9.400 | 0,09 € |
| 10 | 21.000 | 0,28 € |
| 20 | 44.000 | 0,81 € |
| 40 | 91.000 | 2,60 € |
Die Zahlen sind aus meinem Testlauf und nicht allgemeingültig, aber die Form ist es. Vierzig Schritte kosten das Dreiundzwanzigfache von zehn, obwohl die Arbeit nicht viermal so groß ist. Und vierzig Schritte erreicht man schnell, wenn ein Werkzeug bei jedem Aufruf eine Fehlermeldung zurückgibt, die der Agent als neuen Anlass zum Nachfragen versteht.
Bei mir waren es 61 Lesezugriffe auf dieselbe Datei, und die Ursache stand nicht im Code, sondern im Systemprompt: „Prüfe bei Unsicherheit die Quelle erneut.“ Ein Satz, der vernünftig klingt und in einer Schleife 61 Mal befolgt wird. Ich habe zwei Tage in der falschen Schicht gesucht – erst im Werkzeug, dann im Modell, zuletzt im Prompt, wo er stand.
Was ich eingebaut habe
Drei Bremsen, alle unspektakulär, alle wirksam. Erstens: ein hartes Limit pro Auftrag, das nicht der Agent selbst zurücksetzen kann. Zweitens: ein Cache für Werkzeugergebnisse, der auf Argument und Dateiversion schlüsselt. Drittens: eine Kürzung des Verlaufs, die alte Werkzeugausgaben durch eine Zusammenfassung ersetzt.
MAX_SCHRITTE = 12
MAX_KOSTEN = 0.40 # Euro pro Auftrag
def lauf(auftrag, tools, budget=MAX_KOSTEN):
verlauf, kosten = [auftrag], 0.0
for schritt in range(MAX_SCHRITTE):
antwort = modell(verlauf)
kosten += antwort.kosten
if kosten > budget:
return "abgebrochen: Budget erschoepft"
if not antwort.tool_calls:
return antwort.text
for call in antwort.tool_calls:
key = (call.name, call.argumente, call.dateiversion)
ergebnis = cache.get(key) or tools[call.name](**call.argumente)
cache[key] = ergebnis
verlauf.append(ergebnis)
return "abgebrochen: Schritlimit"
Der Cache war der größte Effekt: 61 Lesezugriffe auf dieselbe Datei wurden zu drei. Das Schritlimit hat die zweite Erkenntnis gebracht, nämlich dass ein Abbruch nach zwölf Schritten in neun von zehn Fällen eine bessere Antwort liefert als ein Durchlauf mit vierzig – weil der Agent ab Schritt fünfzehn anfängt, sich selbst zu wiederholen.
Der Preis der Autonomie
Jede dieser Bremsen nimmt dem Agenten eine Freiheit. Ein Limit von zwölf Schritten verhindert Aufgaben, die wirklich siebzehn brauchen. Ein Cache liefert veraltete Ergebnisse, wenn sich eine Datei ändert und die Version nicht mitzählt. Eine Kürzung des Verlaufs kann die Information entfernen, die den Fall entschieden hätte.
Das ist der eigentliche Trade-off: Autonomie ist nicht kostenlos, sie ist eine Wette darauf, dass der Agent den richtigen Pfad findet, bevor das Budget endet. Für einen Assistenten, der mir Dateien zusammenfasst, ist die Wette gut. Für einen, der eine Migration ausführt, würde ich sie nicht eingehen – dort ist ein Abbruch nach zwölf Schritten kein Sparen, sondern ein halb fertiger Zustand.
Fazit
Die Kosten eines Agenten stehen nicht im Modellpreis, sondern in der Schleife: jeder Schritt zahlt den ganzen Verlauf. Wenn du einen Agenten baust, baue zuerst die Bremse – Schrittzahl, Budget, Cache – und dann die Fähigkeiten. Ein Agent ohne Limit ist kein autonomes System, sondern eine Rechnung, die du nicht kontrollierst.
Und du: Weißt du bei deinem letzten Agentenlauf, wie viele Schritte er gebraucht hat – oder nur, dass die Antwort gut war?
gretasander
61 mal dieselbe datei lesen ist eine schleife, die ich in meinem eigenen agenten wiedererkenne
bilalaydin
hast du die 412 euro aufgeschlüsselt, wie viel davon die wiederholten reads waren?
yaraosman
412 euro für zwei wochen ist billiger als ich dachte und teurer als du dachtest
jurikowal
der agent vergisst die datei, weil der kontext jedes mal neu aufgebaut wird, das ist keine dummheit
elifdemir
ich würde das nicht als kostenproblem bezeichnen, es ist ein problem der schleife, und das ist ein unterschied
nadiabehrens
wie hast du es am ende gelöst, caching im agenten oder kleinere kontexte?
marwankhalil
260 davon waren die reads, der rest war der summarizer, der bei jedem schritt den ganzen verlauf neu geschrieben hat
marwankhalil
beides, ich cache die datei-hashes und schneide den verlauf nach zehn schritten ab