Die meisten versuchen, KI-Agenten auf der falschen Ebene zu reparieren.
Wenn ein Agent scheitert, schreiben sie den Prompt um. Scheitert er erneut, fügen sie weitere Anweisungen hinzu, wechseln das Modell, vergrößern das Kontextfenster oder binden ein anderes Tool an.
Und dann kehren dieselben Probleme zurück.
Der Agent vergisst eine wichtige Entscheidung. Er nutzt das falsche Tool. Er verliert den Überblick darüber, was drei Schritte zuvor passiert ist. Er behauptet, die Aufgabe sei erledigt, ohne das Ergebnis zu prüfen. Er wiederholt dieselbe fehlgeschlagene Aktion so lange, bis das Budget aufgebraucht ist.
Das Problem liegt nicht immer am Modell.
Das Problem ist die Umgebung rund um das Modell.
Diese Umgebung ist der Harness.
Harness Engineering ist die Praxis, das System um ein Modell herum so aufzubauen, dass es bestimmt, was das Modell sehen kann, was es tun darf, woran es sich erinnert, was als Erfolg gilt und was bei einem Fehler passiert.
Ein besserer Prompt kann eine einzelne Antwort verbessern.
Ein besserer Harness verbessert jeden einzelnen Durchlauf.
Folge mir auf Substack für mehr praxisnahe Analysen zu KI-Agenten, Automatisierung und Produktivsystemen:
1. Das Modell ist nicht der Agent
Ein Modell kann schlussfolgern, generieren, vergleichen und auswählen.
Das macht es noch nicht zu einem zuverlässigen Agenten.
Ein echter Agent muss außerdem den richtigen Kontext finden, Tools nutzen, Zustände erhalten, Berechtigungen respektieren, seine eigene Arbeit überprüfen und sich erholen, wenn sich die Umgebung anders verhält als erwartet.
Das Modell ist nur die Denkmaschine.
Der Harness ist alles, was dieses Denken in echte Ausführung verwandelt.
1BENUTZERANFRAGE2 |3 v4+-----------------------------+5| HARNESS |6| |7| Vertrag Kontext |8| Tools Zustand |9| Richtlinie Verifizierung |10| Traces Wiederherst. |11+-----------------------------+12 |13 v14 MODELL15 |16 v17REALE UMGEBUNG
Steck dasselbe Modell in eine Chatbox, und es beantwortet Fragen.

Steck es in ein Repository mit Terminalzugriff, Tests, Browser-Tools, Projektgedächtnis, kontrollierten Berechtigungen und einer Review-Schleife – und es kann echte Arbeit erledigen.
Das Modell hat sich nicht verändert.
Der Harness schon.
2. Mach aus jeder Anfrage einen Vertrag
Natürliche Sprache ist flexibel.
Autonome Ausführung sollte das nicht sein.
Eine Anfrage wie:
Verbessere den Onboarding-Prozess.
ist völlig in Ordnung, solange ein Mensch neben dem Modell sitzt.
Als Produktionsanweisung ist sie katastrophal.
Bevor der Agent handelt, solltest du die Anfrage in einen klar abgegrenzten Aufgabenvertrag verwandeln.

1objective: Abbruchrate beim Onboarding senken23inputs:4 - Produktbeschreibung5 - Analytics-Daten6 - Repository78constraints:9 - Authentifizierung beibehalten10 - Datenbankschema nicht ändern11 - aktuelles Verhalten auf Mobilgeräten beibehalten1213deliverable:14 - überprüfbarer Pull Request1516done_when:17 - Tests bestehen18 - Analytics-Event wird korrekt ausgelöst19 - Desktop-Ablauf besteht die Prüfung20 - Mobile-Ablauf besteht die Prüfung2122approval_required:23 - Deployment in Produktion
Der entscheidende Teil ist done_when.
Ohne ihn kann der Agent eine etwas einfachere Version des Problems lösen und trotzdem voller Überzeugung behaupten, die Aufgabe sei erledigt.
Mit ihm wird der Abschluss messbar.
Der Agent sollte nicht fragen:
Was soll ich als Nächstes tun?
Er sollte fragen:
Welche Aktion bringt die aktuelle Umgebung näher an das vertraglich vereinbarte Ergebnis?
Das ergibt eine deutlich stärkere Schleife.
3. Gib dem Agenten eine Karte, kein riesiges Kontextfenster
Eine typische Reaktion auf Fehler von Agenten ist, dem Modell mehr Kontext zu geben.
Mehr Dokumentation.
Mehr Gesprächsverlauf.
Mehr Dateien.
Mehr Tool-Output.
Irgendwann erhält der Agent alles und versteht weniger.
Kontext ist kein Speicher.
Er ist ein Aufmerksamkeitsbudget.

Anstatt bei jedem Durchlauf das gesamte Projekt hineinzuwerfen, gib dem Agenten eine kleine Karte, auf der steht, wo nützliche Informationen liegen.
1PROJEKTKARTE23Produktregeln -> docs/product/4Architektur -> docs/architecture.md5Frontend -> apps/web/6Backend -> services/api/7Tests -> tests/8Befehle -> docs/commands.md9Sicherheit -> docs/security.md
Dann erweitere nur, wenn es nötig ist.
1AUFGABE2 |3 v4PROJEKTKARTE5 |6 v7RELEVANTES SYSTEM8 |9 v10EXAKTE DATEIEN11 |12 v13LOKALE ANWEISUNGEN
Die Quelle beschreibt das als „progressive disclosure“ (schrittweise Offenlegung): Der Harness sollte mehr Informationen laden, weil die Aufgabe sie braucht – nicht einfach, weil diese Informationen existieren.
Das Ziel ist nicht maximaler Kontext.
Das Ziel ist maximales nützliches Signal.
4. Schalte ein Gateway zwischen Modell und Tools
Ein Modell mit zwanzig Tools ist nicht automatisch zwanzigmal leistungsfähiger.
Es hat vielleicht einfach zwanzig zusätzliche Möglichkeiten zu scheitern.
Jedes Tool sollte einen Vertrag haben.
1TOOL: edit_file23INPUTS4Pfad5Patch67VORAUSSETZUNGEN8Pfad existiert9Pfad liegt innerhalb des Workspace1011ERFOLG12Patch angewendet13Diff zurückgegeben1415FEHLER16strukturierter Fehler17kein teilweises Überschreiben1819RISIKO20umkehrbar
Dann sieht der Ausführungspfad so aus:
1MODELL SCHLÄGT VOR2 |3 v4GATEWAY PRÜFT5 |6 v7RICHTLINIE AUTORISIERT8 |9 v10TOOL FÜHRT AUS11 |12 v13HARNESS PROTOKOLLIERT ERGEBNIS
Das Modell entscheidet, welche Aktion es durchführen möchte.
Der Harness entscheidet, ob diese Aktion gültig, erlaubt und sicher ist.

Dieser Unterschied wird kritisch, sobald Tools Nachrichten senden, die Produktion verändern, Geld ausgeben oder Daten löschen können.
Ein gutes Tool-Gateway kann zudem Timeouts hinzufügen, Argumente validieren, Dateipfade einschränken, Fehler normalisieren und Retrys absichern.
Gute Tools reduzieren die Anzahl der Dinge, die das Modell erraten muss.
5. Verlagere das Gedächtnis aus der Konversation heraus
Die Konversation sollte nicht das führende System sein.
Lang laufende Agenten stoßen irgendwann an Kontextgrenzen, stürzen ab, starten neu oder übergeben die Arbeit an eine andere Session.
Wenn jede wichtige Entscheidung nur im Chatverlauf existiert, ist der Workflow extrem fragil.
Speichere dauerhafte Zustände separat.

1{2 "task_id": "feature_042",3 "status": "verifying",4 "current_step": "mobile_check",56 "completed": [7 "implementation",8 "unit_tests",9 "desktop_check"10 ],1112 "decisions": [13 "bestehenden Export-Endpunkt wiederverwenden",14 "aktuelles Datumsformat beibehalten"15 ],1617 "artifacts": [18 "export.csv",19 "desktop-after.png"20 ],2122 "open_risks": [23 "Mobile Toolbar könnte überlaufen"24 ],2526 "next_action": "Mobile Viewport rendern"27}
Ein sinnvolles System unterteilt das Gedächtnis in vier Kategorien:
1FAKTEN2stabiles Wissen34ENTSCHEIDUNGEN5was gewählt wurde und warum67ZUSTAND8wo der aktuelle Durchlauf steht910LEKTIONEN11Fehler, die künftige Durchläufe beeinflussen sollten
Die nächste Agenten-Session sollte den Arbeitszustand erben – keine komprimierte Zusammenfassung der vorherigen Konversation.
6. Mach Nachweise zum Tor zum Abschluss
Dass ein Agent „fertig“ sagt, ist kein Beweis dafür, dass die Arbeit erledigt ist.

Es ist nur ein weiterer Output des Modells.
Der Harness braucht beobachtbare Nachweise.
1BEHAUPTUNG NACHWEIS23„Bug ist behoben“ fehlschlagender Test läuft jetzt durch45„Seite funktioniert“ Browser-Ablauf abgeschlossen67„Daten sind korrekt“ Werte stimmen mit Quelle überein89„Migration ist sicher“ Dry Run + Rollback erfolgreich1011„Aufgabe ist erledigt“ alle Akzeptanzprüfungen bestanden
Nutze zuerst deterministische Prüfungen.
1Syntax2 |3 v4Typen5 |6 v7gezielte Tests8 |9 v10Integrationstests11 |12 v13visuelle / semantische Prüfung14 |15 v16menschliche Freigabe
Bitte kein weiteres Modell, etwas zu beantworten, das ein Compiler, ein Test, ein Schema oder eine Datenbankabfrage beweisen kann.
Nutze Modelle für Urteile.
Nutze deterministische Systeme für Fakten.
Das Modell erstellt das Artefakt.
Die Umgebung erzeugt Nachweise über das Artefakt.
Der Harness entscheidet, ob die Nachweise ausreichen.
7. Trenne den Erbauer vom Prüfer
Selbstkontrolle hat noch ein weiteres Problem.
Der Agent, der den Fehler gemacht hat, bringt oft genau dieselben Annahmen in die Überprüfung mit.

Eine robustere Architektur trennt den Arbeiter vom Prüfer.
1ERBAUER2 |3 v4erstellt Kandidat5 |6 v7PRÜFER8 |9 +-- prüft Vertrag10 +-- sucht nach fehlenden Fällen11 +-- testet unbelegte Behauptungen12 +-- versucht, das Ergebnis zu brechen13 |14 +------ BESTANDEN ------> AKZEPTIEREN15 |16 +------ FEHLGESCHLAGEN --> NACHWEIS ZURÜCKGEBEN
Der Prüfer sollte nicht fragen:
Sieht das gut aus?
Er sollte fragen:
Was würde dies inakzeptabel machen?
Das verwandelt die Überprüfung von einer Bestätigung in einen Widerlegungsversuch.
Die Quelle empfiehlt ausdrücklich, der Verifizierung eigene Ablehnungskriterien und genug Unabhängigkeit zu geben, um die Annahmen infrage zu stellen, die zum ersten Ergebnis geführt haben.
8. Verlagere Berechtigungen aus dem Modell heraus
Manche Regeln sollten niemals davon abhängen, dass das Modell sich an sie erinnert.
1niemals ohne Freigabe veröffentlichen2niemals Secrets offenlegen3niemals das Ausgabenlimit überschreiten4niemals außerhalb des Workspace schreiben5niemals behaupten, Tests seien bestanden, wenn sie nicht liefen
Das sind keine Vorschläge für den Prompt.

Das sind Richtlinien.
Eine einfache Berechtigungsleiter:
1NIEDRIGES RISIKO23lesen4suchen5prüfen67-> automatisch89UMKEHRBAR1011Workspace bearbeiten12Tests ausführen13Entwurf erstellen1415-> automatisch + Trace1617EXTERNE WIRKUNG1819senden20deployen21kaufen2223-> Freigabe erforderlich2425IRREVERSIBEL / SENSIBEL2627Daten löschen28Credentials rotieren29global veröffentlichen3031-> harte Sperre oder verboten
Je schwerer die Konsequenz, desto strenger die Kontrolle.
Das Modell darf die Aktion empfehlen.
Der Harness autorisiert sie.
Das Tool führt sie aus.
Autonomie bedeutet nicht das Fehlen von Kontrolle.
Sie ist Freiheit innerhalb eines durchgesetzten Rahmens.
9. Hör auf, blind zu wiederholen
Eine der schlechtesten Strategien zur Fehlerbehebung lautet:
Etwas ist fehlgeschlagen. Versuch es nochmal.
Wenn sich nichts ändert, bezahlt das System lediglich dafür, denselben Fehler zu reproduzieren.
Fehler sollten zuerst klassifiziert werden.

1TOOL-TIMEOUT2-> Retry mit Backoff34UNGÜLTIGE ARGUMENTE5-> Tool-Aufruf reparieren67FEHLENDER KONTEXT8-> fehlende Quelle abrufen910FEHLGESCHLAGENER TEST11-> fehlerhaftes Verhalten untersuchen1213BERECHTIGUNG VERWEIGERT14-> Freigabe anfordern1516WIDERSPRÜCHLICHE ANFORDERUNGEN17-> eskalieren1819UNVERÄNDERTER WIEDERHOLTER FEHLER20-> stoppen
Eine sinnvolle Agenten-Schleife sieht so aus:
1BEOBACHTEN2 |3 v4ENTSCHEIDEN5 |6 v7HANDELN8 |9 v10MESSEN11 |12 +---- AKZEPTIEREN13 |14 +---- REPARIEREN15 |16 +---- ESKALIEREN17 |18 +---- STOPPEN
Jede Schleife sollte Grenzen für Versuche, Zeit, Kosten und zerstörerische Reichweite haben.
Ein zuverlässiger Agent muss wissen, wie er weitermacht.
Er muss aber auch wissen, wann sich ein weiterer Versuch nicht mehr lohnt.
10. Mach aus wiederholten Anweisungen Infrastruktur
Angenommen, der Prompt enthält:
Lass immer den Formatter laufen.
Diese Regel ist stärker, wenn der Formatter automatisch ausgeführt wird.
Angenommen, die Anweisungen sagen:
UI-Code darf nicht direkt auf die Datenbank zugreifen.
Das ist als Architekturtest, der bei einem Verstoß fehlschlägt, viel wirkungsvoller.
Die Entwicklung sieht so aus:
1ERKLÄRUNG2 |3 v4CHECKLISTE5 |6 v7TEMPLATE8 |9 v10AUTOMATISIERTE PRÜFUNG11 |12 v13DURCHGESETZTE RICHTLINIE
Der Prompt sollte Urteilsvermögen erklären.
Der Harness sollte Invarianten erzwingen.
Jeder wiederkehrende Fehler sollte eine Stufe weiter auf dieser Leiter nach unten wandern.
Irgendwann muss das Modell sich die Lektion gar nicht mehr merken.
Die Umgebung merkt sie sich für das Modell.
11. Protokolliere den Durchlauf
Ein perfektes Endergebnis kann einen katastrophalen Ausführungsweg verbergen.
Vielleicht hat der Agent auf die falsche Quelle zugegriffen.
Vielleicht hat er einen fehlgeschlagenen Befehl ignoriert.
Vielleicht hat er eine externe Aktion doppelt ausgeführt.
Vielleicht hat er das Zehnfache des geplanten Budgets verbraucht.
Vielleicht hatte er aus dem falschen Grund recht.
Protokolliere genug Informationen, um rekonstruieren zu können, was passiert ist.
109:14 Aufgabenvertrag erstellt209:15 architecture.md geladen309:17 checkout.ts bearbeitet409:18 gezielter Test fehlgeschlagen509:21 Implementierung repariert609:22 gezielter Test bestanden709:24 Integrationstest bestanden809:25 Deployment blockiert: Freigabe erforderlich
Nützliche Traces umfassen Kontextquellen, Tool-Aufrufe, Zustandsänderungen, Verifizierungsergebnisse, Gründe für Retrys, Freigabeentscheidungen, Kosten und Latenz.
Es geht nicht darum, zum Spaß Logs zu sammeln.
Es geht darum, Fehler lokal zu machen.
Wenn Schritt 18 scheitert, solltest du Schritt 18 reparieren können.
Du solltest nicht den gesamten Durchlauf neu abspielen müssen.
12. Gib jedem Durchlauf einen Beleg
Zwinge Menschen nicht, einen Chatverlauf mit vierzig Nachrichten zu prüfen.
Fasse das Ergebnis in einem kurzen Beleg zusammen.
1ZIEL23Doppelte Anwendung von Gutscheinen beheben.45GEÄNDERT67Checkout-Validierung8Regressionstest910VERIFIZIERT1112Lint bestanden13Unit-Tests bestanden14Integrationstest bestanden1516NICHT VERIFIZIERT1718Zahlungsanbieter in Produktion1920RISIKEN2122Legacy-Mobile-Client nicht verfügbar2324FREIGABE ERFORDERLICH2526Deployment auf Staging
Das ist keine Zusammenfassung dessen, was laut Modell passiert ist.
Es ist eine Zusammenfassung dessen, was der Harness nachweisen kann.
Genau dieser Unterschied macht den Beleg wertvoll für Reviews, Übergaben und zukünftige Agenten-Sessions.
13. Lass jeden Fehler den Harness verbessern
Die meisten Teams reparieren das fehlerhafte Ergebnis.
Der bessere Ansatz ist, das System zu reparieren, das den Fehler zugelassen hat.
1FEHLENDER KONTEXT2-> Projektkarte verbessern34FALSCHES TOOL5-> Routing oder Tool-Vertrag verbessern67SCHLECHTES ERGEBNIS8-> Validator hinzufügen910ENDLOSE SCHLEIFE11-> Retry-Limit hinzufügen1213UNSICHERE AKTION14-> Berechtigungssperre hinzufügen1516VERLORENE ENTSCHEIDUNG17-> Zustand persistieren1819UNBEKANNTER FEHLER20-> Tracing verbessern
Hier beginnt Harness Engineering, sich zu verzinsen.
Ein repariertes Ergebnis hilft einem einzigen Durchlauf.
Ein reparierter Harness verbessert jeden darauffolgenden Durchlauf.
Die besten Agenten-Systeme werden zuverlässiger, weil Fehler Infrastruktur hinterlassen.
14. Starte mit dem kleinsten nützlichen Harness
Du brauchst zum Start keine riesige Orchestrierungsplattform.
Baue in Schichten auf.
1LEVEL 023Prompt4Modell56LEVEL 178Aufgabenvertrag9Projektkarte10Tools1112LEVEL 21314strukturierter Zustand15Verifizierung16begrenzte Schleife1718LEVEL 31920Berechtigungen21Traces22Wiederherstellung23menschliche Sperren
Eine kurze Rechercheaufgabe braucht vielleicht nur einen Prompt und ein Review.
Eine sechsstündige Coding-Aufgabe mit Datei-, Netzwerk- und Deployment-Zugang braucht deutlich mehr.
Füge Komplexität erst hinzu, wenn die Fehleranfälligkeit es rechtfertigt.
Nicht, weil Agenten-Architektur cool aussieht.
Die Harness-Engineering-Checkliste
Bevor du einem Agenten echte Autonomie gibst, frage dich:
1[ ] Ist der Erfolg vor der Ausführung definiert?23[ ] Kann der Agent den richtigen Kontext finden,4 ohne alles laden zu müssen?56[ ] Hat jedes Tool einen klaren Zweck,7 ein Schema und einen Fehlerzustand?89[ ] Werden wichtige Entscheidungen10 außerhalb der Konversation gespeichert?1112[ ] Erfordert der Abschluss Nachweise?1314[ ] Sind riskante Aktionen durch Richtlinien geschützt?1516[ ] Hat jede Schleife ein Retry-Limit?1718[ ] Kann der Durchlauf nach einer Unterbrechung fortgesetzt werden?1920[ ] Kannst du jede wichtige Aktion rekonstruieren?2122[ ] Verbessert ein Fehler eine Regel, ein Tool,23 einen Test, eine Karte oder eine Berechtigung?2425[ ] Kann die finale Änderung rückgängig gemacht werden?
Wenn mehrere Antworten „Nein“ lauten, wird ein stärkeres Modell den Agenten nicht automatisch zuverlässig machen.
Es macht den Fehler vielleicht nur schneller und teurer.
Der eigentliche Wandel
Prompt Engineering fragt:
Was soll ich dem Modell sagen?
Context Engineering fragt:
Was sollte das Modell genau jetzt wissen?
Harness Engineering fragt:
Welches System lässt das Modell handeln, seine Arbeit überprüfen, sich von Fehlern erholen und sicher arbeiten?
1PROMPT2-> Anweisung34KONTEXT5-> Arbeitssicht67HARNESS8-> Betriebsumgebung910SCHLEIFE11-> lokale Korrektur1213GRAPH14-> Koordination
Modelle werden sich weiter verändern.
Der dauerhafte Vorteil entsteht um sie herum.
Deine Verträge werden besser.
Deine Tools werden besser.
Deine Tests werden besser.
Dein Zustand wird sauberer.
Deine Berechtigungen werden sicherer.
Deine Wiederherstellungslogik wird intelligenter.
Deine Fehler werden zu Infrastruktur.
So werden leistungsfähige Modelle zu zuverlässigen Agenten.
Das ist Harness Engineering.
Wenn du bis hierhin gelesen hast
Speichere dir diesen Guide als Lesezeichen.
Folge mir auf X: x.com/0xjmori
Abonniere meinen Substack: substack.com/@lunarresearcher
Schick diesen Artikel jemandem, der immer noch versucht, jeden Agenten-Fehler mit einem längeren Prompt zu beheben.



![[Entschuldigung] Ich empfehle Freelancing nicht mehr für Unabhängigkeit.](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1790615558140_ndvona_HTQ9s6laYAAX4J7.jpg)

