# osmani-agent-harness-engineering-2026-04-19

## Veille

Synthese von Addy Osmani (Google, Chrome/Cloud) zum aufkommenden Feld des *Harness Engineering*: die Gleichung `agent = model + harness`, das *Ratchet*-Prinzip („jeder Fehler wird zu einer Regel“), die HumanLayer-Umdeutung „skill issue“, die Terminal-Bench-Belege (Top 30 → Top 5 allein durch eine Änderung des Harness), die geschichtete Claude-Code-Architektur, Anthropics Vision „Harnesses schrumpfen nicht, sie verschieben sich“ sowie Harness-as-a-Service (Claude Agent SDK, Codex SDK, OpenAI Agents SDK). Schlüsselartikel, der Trivedy, HumanLayer, Anthropic und Böckeler zu einer Doktrin verdichtet.

## Titre Article

Agent Harness Engineering

## Date

2026-04-19

## URL

https://addyosmani.com/blog/agent-harness-engineering/

## Keywords

harness engineering, agent harness, Addy Osmani, Viv Trivedy, HumanLayer, Dex Horthy, Anthropic engineering, Birgitta Böckeler, agent = model + harness, ratchet principle, skill issue reframe, Terminal Bench, Claude Code architecture, Fareed Khan, Ralph Loop, planner evaluator split, AGENTS.md, hooks lifecycle, sandboxes, context rot, compaction, tool offloading, progressive disclosure, full context resets, model-harness training loop, Harness-as-a-Service, Claude Agent SDK, Codex SDK, OpenAI Agents SDK, just-in-time tool assembly

## Authors

Addy Osmani (Software Engineer at Google, Cloud + Gemini)

## Ton

**Profil**: Ein Synthese-Artikel, verfasst von einem anerkannten Software-Ingenieur (Addy Osmani, Google, ex-Chrome) auf seinem persönlichen Blog. Tech-redaktionelles Register mit hoher konzeptioneller Dichte, Ich-Erzählung („I've watched this play out“, „in my own workflows“). Zielgruppe: Senior Engineers und Tech Leads, die Coding-Agenten in Produktion bauen oder betreiben, sowie Leser von Trivedy/HumanLayer/Böckeler, die einen konsolidierenden Beitrag suchen. Autorität entsteht durch die Position bei Google und die offen beanspruchte persönliche Praxis.

**Stil**: Langform-Artikel, gegliedert in acht Abschnitte (Schlüsselgleichung → „Skill Issue“ → Ratchet → 7 Harness-Primitive → Produktionsarchitektur → Verschiebung des Harness → Trainingsschleife → HaaS → offene Fragen). Prägnante Sätze, dichte Metaphern (*„jemandem ein einzelnes Küchengerät beibringen vs. ihm eine Küche geben“* für Bash, *„Checkliste eines Piloten, kein Styleguide“* für AGENTS.md, *„GANs für Prosa“* für die Trennung von Planner und Evaluator). Explizite, mit Quellenangabe versehene Zitation jeder Quelle (Trivedy, Horthy/HumanLayer, Anthropic, Böckeler, Willison, Khan). Fester, programmatischer Ton, kein Hype. Die Stärke des Dokuments liegt in seiner **aggregierenden Funktion**: Osmani schlägt kein neues Framework vor, sondern bündelt zur Doktrin, was die Pioniere getrennt voneinander veröffentlicht haben. Es ist der Beitrag, der Harness Engineering von einer aufkommenden Disziplin zu einem geteilten Konsens macht. Die Schlüsselzahlen zirkulieren („Top 30 → Top 5“, „maximal 60 Zeilen in AGENTS.md“), und der Anthropic-Satz „Harnesses schrumpfen nicht, sie verschieben sich“ wird zum strukturierenden Aphorismus der Debatte von 2026.

## Pense-betes

- **Datum und Autor**: 19. April 2026, Addy Osmani (Google, Cloud + Gemini, ex-Chrome).
- **Schlüsselgleichung** (Viv Trivedy zugeschrieben): ***„Agent = Model + Harness. Wenn du nicht das Modell bist, bist du der Harness.“*** Osmanis Umformulierung: *„ein solides Modell mit einem großartigen Harness schlägt ein großartiges Modell mit einem schlechten Harness“*.
- Explizite Nennungen:
- **Viv Trivedy**: prägte den Begriff *Harness Engineering*; der Beitrag „Anatomy of an Agent Harness“ ist die klarste Herleitung.
- **Dex Horthy / HumanLayer**: „Skill-Issue“-Framing – die meisten Agenten-Fehlschläge sind Konfigurationsprobleme, keine Gewichtsprobleme.
- **Anthropic Engineering**: beste öffentliche Aufschlüsselung zum Design langlaufender Harnesses.
- **Birgitta Böckeler**: guter Blick aus Anwendersicht.
- **Ratchet-Prinzip**: *„Jede Zeile in einer guten AGENTS.md sollte auf etwas Konkretes zurückführbar sein, das schiefgelaufen ist.“* Eine Einschränkung wird nur nach einem echten Fehlschlag hinzugefügt. Sie wird erst entfernt, wenn ein leistungsfähigeres Modell sie überflüssig gemacht hat.
- **Skill-Issue-Umdeutung (HumanLayer)**: *„Es ist kein Modellproblem. Es ist ein Konfigurationsproblem.“* Die Standardhaltung „auf die nächste Version warten“ wird explizit abgelehnt.
- **Terminal-Bench-Daten** (zitiert nach Trivedy/HumanLayer): Bei Terminal Bench 2.0 **schneidet Claude Opus 4.6 innerhalb von Claude Code deutlich schlechter ab als dasselbe Modell innerhalb eines maßgeschneiderten Harness**. Das Trivedy-Team brachte einen Coding-Agenten allein durch eine Änderung des Harness von **Top 30 auf Top 5**. Massiver empirischer Beweis.
- Das Muster *„working backwards from behaviour“*: *„gewünschtes (oder zu korrigierendes) Verhalten → Harness-Design, das dem Modell hilft, dies zu erreichen“*. Wenn man das Verhalten, das eine Komponente liefert, nicht benennen kann, gehört sie nicht dorthin.
- **7 Harness-Primitive**: 1. **Dateisystem & Git**: dauerhafter Zustand, gemeinsamer Arbeitsbereich für Mensch und Agent, kostenlose Versionierung. 2. **Bash & Codeausführung**: *„der Unterschied zwischen jemandem beizubringen, ein einzelnes Küchengerät zu benutzen, und ihm eine Küche zu geben.“* Willison wird zitiert. 3. **Sandboxes**: Isolation, gute Standardeinstellungen (vorinstallierte Laufzeitumgebungen, Headless-Browser zur Verifikation). 4. **Memory & Suche**: bei jedem Zug neu geladene AGENTS.md + MCP/Context7, um den Cutoff zu füllen. 5. **Bekämpfung von Context Rot**: 3 Techniken – *Compaction* (intelligente Zusammenfassungen), *Tool-Call-Offloading* (Tokens am Anfang/Ende, vollständige Ausgabe auf der Festplatte gehalten), *Skills mit Progressive Disclosure* (Tools/Anweisungen bei Bedarf offenlegen). Anthropic ergänzt den *vollständigen Context-Reset* mit einer strukturierten Übergabedatei. 6. **Ausführung über lange Zeiträume**: Ralph Loop (ein Hook, der den ursprünglichen Prompt in ein frisches Context-Fenster reinjiziert), Planung mit einer Plandatei, **Trennung von Planner/Generator/Evaluator** (Anthropic sagt explizit: *„die Trennung von Generierung und Bewertung übertrifft Selbstbewertung“*), Sprint-Vertrag (die „fertig“-Bedingung aushandeln, bevor Code geschrieben wird). 7. **Hooks**: Durchsetzungsschicht. HumanLayer-Prinzip: ***„Erfolg ist stumm, Fehlschläge sind wortreich“***. Destruktives Bash blockieren, Typecheck nach jeder Änderung ausführen, Freigabe vor einem Push auf main verlangen.
- **AGENTS.md**: *„flaches Markdown-Regelwerk im Root des Repos … landet bei jedem Zug im System-Prompt.“* HumanLayer hält ihre eigene unter **60 Zeilen**. *„Checkliste eines Piloten, kein Styleguide. Jede Zeile muss man sich verdienen.“*
- **Tool-Ökonomie**: *„Zehn fokussierte Tools schlagen fünfzig überlappende, weil das Modell die Speisekarte im Kopf behalten kann.“* MCP-Sicherheit: Tool-Beschreibungen sind vertrauenswürdiger Text, ein bösartiger MCP kann bereits Prompt-Injection betreiben, bevor man selbst etwas eingegeben hat.
- **Geschichtete Claude-Code-Architektur** (Referenz Fareed Khan): Input-Schicht (UI, Session-Manager, Permission Gate) → Wissensschicht (Skill-Registry, Context-Compressor, Task-Graph, Memory-Store) → Integrationsschicht (MCP-Runtime) → Ausführungsschicht (Tool-Dispatch, Streaming-Runtime, Prompt-Cache) → Output-Schicht → Observability-Schicht → Multi-Agent-Schicht (Subagent-Spawning, Mailboxes, FSM-Protokoll, autonomes Board, Worktree-Isolator). Master-Agent-Loop im Zentrum.
- **„Harnesses schrumpfen nicht, sie verschieben sich“** (Anthropic): der strukturierende Aphorismus der Debatte. Opus 4.6 hat Sonnet 4.5s Fehlermodus *Context-Anxiety* beseitigt → das gesamte Gerüst zur „Anxiety-Minderung“ ist jetzt toter Code. Aber die Obergrenze hat sich verschoben: neue Aufgaben freigeschaltet → neue Fehlermodi → neues Gerüst (Memory-Policy über mehrere Tage, Koordination zwischen 3 spezialisierten Agenten, Evaluatoren für Design-Qualität).
- **Zentrales Anthropic-Zitat**: *„jede Komponente in einem Harness kodiert eine Annahme darüber, was das Modell nicht von allein kann.“*
- **Trainingsschleife zwischen Modell und Harness**: ein im Harness entdecktes Primitiv → im Produkt standardisiert → für das Post-Training des nächsten Modells verwendet → nächstes Modell wird bei diesem Primitiv besser. Kreislauf. Erzeugt *Co-Training*/Overfitting: *„ein wirklich generelles Modell wäre es egal, ob man apply_patch oder str_replace verwendet, aber Co-Training erzeugt Overfitting.“* Erklärt, warum Opus 4.6 sich *„innerhalb von Claude Code anders anfühlt als im Harness eines anderen“*.
- **Harness-as-a-Service (HaaS)**: Trivedys Framing. Verschiebung von „auf LLM-APIs bauen (Completion)“ → „auf Harness-APIs bauen (Runtime)“. Genannte Trias: **Claude Agent SDK, Codex SDK, OpenAI Agents SDK**. Vier Konfigurationssäulen: System-Prompt, Tools, Context, Subagenten. Trivedys Aphorismus: *„gutes Agenten-Bauen ist eine Übung in Iteration. Man kann nicht iterieren, wenn man kein v0.1 hat.“*
- **3 offene Fragen für die Zukunft**: 1. Multi-Agent-Orchestrierung auf einer gemeinsamen Codebasis. 2. Sich selbst analysierende Harnesses, die ihre eigenen Fehlermodi erkennen und beheben. 3. JIT-Zusammenstellung von Tools/Context – *„Harnesses hören auf, statische Konfiguration zu sein, und werden zu etwas, das eher einem Compiler ähnelt.“*
- Grundlegende Beobachtung: *„Schaut man sich die führenden Coding-Agenten nebeneinander an (Claude Code, Cursor, Codex, Aider, Cline), ähneln sie sich mehr als ihre zugrunde liegenden Modelle. Die Modelle sind unterschiedlich. Die Harness-Muster konvergieren.“*
- Einordnung im Watch-File: ein Beitrag zur **doktrinären Konsolidierung** über Trivedy (prägte den Begriff, März 2026), Böckeler (Anwendersicht, April 2026), Seale (semantischer Agent, April 2026) hinweg. Osmani aggregiert und stabilisiert das gemeinsame Vokabular.

## RésuméDe400mots

Addy Osmani (Google) veröffentlichte am 19. April 2026 einen Artikel, der zur Doktrin verdichtet, was Viv Trivedy, HumanLayer, Anthropic und Birgitta Böckeler seit Anfang 2026 getrennt voneinander publiziert haben: *Harness Engineering*. Seine These lässt sich in einer Gleichung zusammenfassen, die er Trivedy zuschreibt:

> *„Agent = Model + Harness. Wenn du nicht das Modell bist, bist du der Harness.“*

Von Osmani umformuliert: Ein korrektes Modell in einem großartigen Harness schlägt ein großartiges Modell in einem schlechten Harness. Der empirische Beweis stammt aus Terminal Bench 2.0: Claude Opus 4.6 innerhalb von Claude Code schneidet deutlich schlechter ab als dasselbe Modell innerhalb eines maßgeschneiderten Harness, und das Trivedy-Team brachte einen Coding-Agenten allein **durch eine Änderung des Harness von Top 30 auf Top 5**.

Osmani formuliert drei methodische Prinzipien. Die ***Skill-Issue-Umdeutung*** (HumanLayer): Die meisten Fehlschläge sind keine Modellbeschränkungen, sondern Konfigurationsprobleme. Das ***Ratchet-Prinzip***: Jede Zeile einer AGENTS.md muss auf einen konkreten, vergangenen Fehler zurückführbar sein – *„füge nur hinzu, wenn du einen echten Fehlschlag beobachtet hast, entferne nur, wenn ein leistungsfähigeres Modell sie überflüssig gemacht hat“*. Der Ansatz ***working backwards from behaviour***: Man baut Infrastruktur nicht im Voraus, sondern leitet jede Komponente aus dem erwarteten Verhalten ab.

Daraus folgen sieben Harness-Primitive: Dateisystem und Git (dauerhafter Zustand), Bash und Codeausführung (*„gib ihnen eine Küche, kein einzelnes Küchengerät“*), Sandboxes (Isolation und Standardeinstellungen), Memory und Suche (bei jedem Zug neu geladene AGENTS.md, MCP, Context7), Bekämpfung von Context Rot (Compaction, Tool-Call-Offloading, Progressive-Disclosure-Skills, Anthropics vollständige Context-Resets), Ausführung über lange Zeiträume (Ralph Loop, Planung, **Trennung von Planner und Evaluator** – *„GANs für Prosa“*), Hooks (*„Erfolg ist stumm, Fehlschläge sind wortreich“*).

Zu AGENTS.md gibt es zwei Lehren: unter 60 Zeilen (HumanLayer), *„Checkliste eines Piloten, kein Styleguide“*. Zu Tools: *„zehn fokussierte Tools schlagen fünfzig überlappende“* – einschließlich MCP-Sicherheit.

Osmani greift anschließend auf Fareed Khans Aufschlüsselung der Claude-Code-Architektur in sieben Schichten zurück (Input, Wissen, Integration, Ausführung, Output, Observability, Multi-Agent), um zu zeigen, dass jedes zuvor genannte Konzept einen konkreten Ort in der Produktion hat.

Dann folgt der Anthropic-Satz, der die Debatte rahmt: *„Harnesses schrumpfen nicht, sie verschieben sich.“* Wenn sich ein Modell verbessert, verschwindet das Gerüst, das seine Beschränkungen kodierte, aber die Obergrenze verschiebt sich, und es entsteht neues Gerüst. Hinzu kommt die **Trainingsschleife zwischen Modell und Harness**: nützliche Primitive werden zum Standard, fließen ins Post-Training des nächsten Modells ein und erzeugen Co-Training und Overfitting (Opus 4.6 *„fühlt sich innerhalb von Claude Code anders an“*).

Der Artikel schließt mit *Harness-as-a-Service* (Claude Agent SDK, Codex SDK, OpenAI Agents SDK) und drei offenen Fragen: Multi-Agent-Orchestrierung auf einer gemeinsamen Codebasis, sich selbst analysierende Harnesses, JIT-Zusammenstellung von Tools/Context *„näher an einem Compiler als an einer statischen Konfiguration“*.

Ein Konsolidierungsbeitrag, der das gemeinsame Vokabular des Feldes stabilisiert und Harness Engineering von einer aufkommenden Disziplin zu einem geteilten Konsens macht.

## GrapheDeConnaissance

- Addy Osmani —publie→ Agent Harness Engineering (DOCUMENT, 0.98)
- Addy Osmani —travaille_chez→ Google (ORGANISATION, 0.97)
- Addy Osmani —affirme_que→ un modèle correct dans un excellent harnais bat un excellent modèle dans un mauvais harnais (AFFIRMATION, 0.97)
- Viv Trivedy —a_créé→ Harness engineering (METHODOLOGIE, 0.97)
- Viv Trivedy —a_créé→ équation Agent = Model + Harness (CONCEPT, 0.97)
- Harness engineering —est_basé_sur→ ratchet principle (CONCEPT, 0.95)
- Ratchet principle —est_basé_sur→ AGENTS.md (CONCEPT, 0.95)
- HumanLayer —recommande→ reframe skill issue pour échecs d'agent (CONCEPT, 0.95)
- Dex Horthy —dirige→ HumanLayer (ORGANISATION, 0.92)
- Terminal Bench 2.0 —mesure→ passage Top 30 → Top 5 par changement de harnais seul (MESURE, 0.97)
- Harnais custom (Trivedy) —surpasse→ Claude Code (même modèle Claude Opus 4.6, Terminal Bench 2.0) (TECHNOLOGIE, 0.93)
- Anthropic —affirme_que→ "harnesses don't shrink, they move" (CITATION, 0.97)
- Anthropic —recommande→ planner generator evaluator split (METHODOLOGIE, 0.95)
- Ralph Loop —utilise→ hook qui ré-injecte prompt dans fresh context window (CONCEPT, 0.93)
- HumanLayer —recommande→ garder AGENTS.md sous 60 lignes (AFFIRMATION, 0.92)
- Hooks —est_basé_sur→ Success is silent failures are verbose (CONCEPT, 0.95)
- Fareed Khan —publie→ architecture Claude Code en 7 couches (DOCUMENT, 0.92)
- Claude Code —est_basé_sur→ architecture en 7 couches (input, knowledge, integration, execution, output, observability, multi-agent) (CONCEPT, 0.93)
- Model-harness training loop —permet→ co-training et overfitting (CONCEPT, 0.95)
- Claude Agent SDK —fait_partie_de→ Harness-as-a-Service (CONCEPT, 0.95)
- Codex SDK —fait_partie_de→ Harness-as-a-Service (CONCEPT, 0.95)
- OpenAI Agents SDK —fait_partie_de→ Harness-as-a-Service (CONCEPT, 0.95)
- Addy Osmani —affirme_que→ les patterns de harnais convergent entre Claude Code, Cursor, Codex, Aider et Cline (AFFIRMATION, 0.92)
- Birgitta Böckeler —publie→ vue utilisateur du harness engineering (DOCUMENT, 0.9)

---
Canonical: https://www.thekb.eu/de/fiches/osmani-agent-harness-engineering-2026-04-19/
