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

## Veille

Síntesis de Addy Osmani (Google, Chrome/Cloud) sobre el campo emergente de la *harness engineering*: la ecuación `agent = model + harness`, el principio *ratchet* ("cada error se convierte en una regla"), el replanteamiento "skill issue" de HumanLayer, la evidencia de Terminal Bench (de Top 30 a Top 5 solo con un cambio de harness), la arquitectura en capas de Claude Code, la visión de Anthropic "los harnesses no se reducen, se desplazan", y Harness-as-a-Service (Claude Agent SDK, Codex SDK, OpenAI Agents SDK). Artículo bisagra que consolida a Trivedy, HumanLayer, Anthropic y Böckeler en una doctrina.

## 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, agente = modelo + harness, principio ratchet, replanteamiento skill issue, Terminal Bench, arquitectura de Claude Code, Fareed Khan, Ralph Loop, separación planner-evaluator, AGENTS.md, ciclo de vida de los hooks, sandboxes, context rot, compaction, tool offloading, progressive disclosure, full context resets, bucle de entrenamiento model-harness, Harness-as-a-Service, Claude Agent SDK, Codex SDK, OpenAI Agents SDK, ensamblaje de herramientas just-in-time

## Authors

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

## Ton

**Perfil**: Un artículo de síntesis firmado por un ingeniero de software reconocido (Addy Osmani, Google, ex-Chrome) en su blog personal. Registro tecno-editorial de alta densidad conceptual, narración en primera persona ("he visto cómo se desarrolla esto", "en mis propios flujos de trabajo"). Público objetivo: ingenieros sénior y tech leads que construyen u operan agentes de codificación en producción, lectores de Trivedy/HumanLayer/Böckeler que buscan una pieza de consolidación. Autoridad construida a través del cargo en Google y de una práctica personal reivindicada abiertamente.

**Estilo**: Artículo extenso estructurado en ocho secciones (ecuación bisagra → "skill issue" → ratchet → 7 primitivas del harness → arquitectura de producción → el movimiento del harness → bucle de entrenamiento → HaaS → preguntas abiertas). Frases precisas, metáforas ajustadas (*"enseñarle a alguien a usar un único utensilio de cocina frente a darle una cocina completa"* para bash, *"lista de verificación de piloto, no guía de estilo"* para AGENTS.md, *"GANs para prosa"* para la separación planner/evaluator). Cita explícita y atribuida de cada fuente (Trivedy, Horthy/HumanLayer, Anthropic, Böckeler, Willison, Khan). Tono firme y programático, sin hype. La fuerza del documento reside en su **función agregadora**: Osmani no propone un nuevo framework, reúne en una doctrina lo que los pioneros publicaron por separado. Es la pieza que hace que la harness engineering pase de ser una disciplina emergente a un consenso compartido. Las cifras bisagra circulan ("de Top 30 a Top 5", "máximo 60 líneas en AGENTS.md") y la frase de Anthropic *"los harnesses no se reducen, se desplazan"* se convierte en el aforismo estructurador del debate de 2026.

## Pense-betes

- **Fecha y autor**: 19 de abril de 2026, Addy Osmani (Google, Cloud + Gemini, ex-Chrome).
- **Ecuación bisagra** (atribuida a Viv Trivedy): ***"Agente = Modelo + Harness. Si no eres el modelo, eres el harness."*** Reformulación de Osmani: *"un modelo decente con un gran harness supera a un gran modelo con un mal harness"*.
- Créditos explícitos:
- **Viv Trivedy**: acuñó el término *harness engineering*; la publicación "Anatomy of an Agent Harness" es la derivación más clara.
- **Dex Horthy / HumanLayer**: el planteamiento "skill issue" — la mayoría de los fallos de los agentes son problemas de configuración, no problemas de pesos del modelo.
- **Anthropic Engineering**: el mejor desglose público sobre el diseño de harnesses de larga duración.
- **Birgitta Böckeler**: una buena perspectiva desde el lado del usuario.
- **Principio ratchet**: *"Cada línea de un buen AGENTS.md debería poder rastrearse hasta algo concreto que salió mal."* Una restricción se añade solo después de un fallo real. Se elimina solo cuando un modelo más capaz la ha vuelto redundante.
- **Replanteamiento skill issue (HumanLayer)**: *"No es un problema del modelo. Es un problema de configuración."* Se rechaza explícitamente la actitud por defecto de "esperar a la próxima versión".
- **Datos de Terminal Bench** (citados por Trivedy/HumanLayer): en Terminal Bench 2.0, **Claude Opus 4.6 dentro de Claude Code obtiene una puntuación notablemente inferior a la del mismo modelo dentro de un harness personalizado**. El equipo de Trivedy llevó a un agente de codificación **del puesto 30 al puesto 5 cambiando solo el harness**. Prueba empírica contundente.
- El patrón *"working backwards from behaviour"*: *"comportamiento que queremos (o que queremos corregir) → diseño del harness para ayudar al modelo a lograrlo"*. Si no puedes nombrar el comportamiento que aporta un componente, ese componente no debería estar ahí.
- **7 primitivas del harness**: 1. **Sistema de archivos y Git**: estado duradero, espacio de trabajo compartido entre humano y agente, versionado gratuito. 2. **Bash y ejecución de código**: *"la diferencia entre enseñarle a alguien a usar un único utensilio de cocina y darle una cocina completa."* Cita a Willison. 3. **Sandboxes**: aislamiento, buenas configuraciones por defecto (runtimes preinstalados, navegador headless para verificación). 4. **Memoria y búsqueda**: AGENTS.md recargado en cada turno + MCP/Context7 para cubrir el corte de conocimiento. 5. **La lucha contra el context rot**: 3 técnicas — *compaction* (resúmenes inteligentes), *tool-call offloading* (tokens de cabecera/cola, salida completa conservada en disco), *skills con progressive disclosure* (revelar herramientas/instrucciones bajo demanda). Anthropic añade el *full context reset* con un archivo estructurado de traspaso. 6. **Ejecución de largo horizonte**: Ralph Loop (un hook que reinyecta el prompt original en una ventana de contexto nueva), planificación con un archivo de plan, **separación planner/generator/evaluator** (Anthropic afirma explícitamente: *"separar la generación de la evaluación supera a la autoevaluación"*), contrato de sprint (negociar la condición de "terminado" antes de escribir código). 7. **Hooks**: capa de aplicación de reglas. Principio de HumanLayer: ***"el éxito es silencioso, los fallos son verbosos"***. Bloquear comandos bash destructivos, ejecutar el typecheck tras cada edición, exigir aprobación antes de hacer push a main.
- **AGENTS.md**: *"un manual de reglas en markdown plano en la raíz de tu repo... que aterriza en el system prompt en cada turno."* HumanLayer mantiene el suyo en menos de **60 líneas**. *"Lista de verificación de piloto, no guía de estilo. Cada línea debe ganarse su lugar."*
- **Economía de herramientas**: *"Diez herramientas enfocadas superan a cincuenta que se solapan, porque el modelo puede retener el menú completo en su cabeza."* Seguridad de MCP: las descripciones de las herramientas son texto de confianza; un MCP malicioso puede hacer prompt-injection antes de que escribas nada.
- **Arquitectura en capas de Claude Code** (referencia de Fareed Khan): capa de entrada (UI, gestor de sesiones, permission gate) → capa de conocimiento (registro de skills, compresor de contexto, grafo de tareas, almacén de memoria) → capa de integración (runtime de MCP) → capa de ejecución (despacho de herramientas, runtime de streaming, prompt cache) → capa de salida → capa de observabilidad → capa multiagente (creación de subagentes, mailboxes, protocolo FSM, panel autónomo, aislador de worktrees). El bucle del agente maestro en el centro.
- **"Los harnesses no se reducen, se desplazan"** (Anthropic): el aforismo que estructura el debate. Opus 4.6 eliminó el modo de fallo de *context-anxiety* de Sonnet 4.5 → todo el scaffolding de "mitigación de la ansiedad" es ahora código muerto. Pero el techo se desplazó: se desbloquearon nuevas tareas → nuevos modos de fallo → nuevo scaffolding (política de memoria multidía, coordinación entre 3 agentes especializados, evaluadores de calidad de diseño).
- **Cita clave de Anthropic**: *"cada componente de un harness codifica una suposición sobre lo que el modelo no puede hacer por sí solo."*
- **Bucle de entrenamiento model-harness**: una primitiva descubierta en el harness → se estandariza en el producto → se usa para el post-training del siguiente modelo → el siguiente modelo mejora en esa primitiva. Ciclo. Genera *co-entrenamiento* / overfitting: *"a un modelo verdaderamente general le daría igual si usas apply_patch o str_replace, pero el co-entrenamiento genera overfitting."* Explica por qué Opus 4.6 *"se siente diferente dentro de Claude Code que dentro del harness de otro"*.
- **Harness-as-a-Service (HaaS)**: el planteamiento de Trivedy. Paso de "construir sobre APIs de LLM (completion)" a "construir sobre APIs de harness (runtime)". Tríada citada: **Claude Agent SDK, Codex SDK, OpenAI Agents SDK**. Cuatro pilares de configuración: system prompt, herramientas, contexto, subagentes. Aforismo de Trivedy: *"construir buenos agentes es un ejercicio de iteración. No puedes iterar si no tienes una v0.1."*
- **3 preguntas abiertas sobre lo que viene**: 1. Orquestación multiagente sobre una base de código compartida. 2. Harnesses autoanalizantes que detectan y corrigen sus propios modos de fallo. 3. Ensamblaje JIT de herramientas/contexto — *"los harnesses dejan de ser configuración estática y empiezan a parecerse más a un compilador."*
- Observación de fondo: *"Si comparas los principales agentes de codificación (Claude Code, Cursor, Codex, Aider, Cline), se parecen más entre sí que sus modelos subyacentes. Los modelos son distintos. Los patrones de harness están convergiendo."*
- Posicionamiento de la fiche: una pieza de **consolidación doctrinal** que reúne a Trivedy (acuñó el término, marzo de 2026), Böckeler (perspectiva del usuario, abril de 2026), Seale (agente semántico, abril de 2026). Osmani agrega y estabiliza el vocabulario compartido.

## RésuméDe400mots

Addy Osmani (Google) publicó un artículo el 19 de abril de 2026 que consolida en doctrina lo que Viv Trivedy, HumanLayer, Anthropic y Birgitta Böckeler han publicado por separado desde principios de 2026: la *harness engineering*. Su tesis se resume en una ecuación, atribuida a Trivedy:

> *"Agente = Modelo + Harness. Si no eres el modelo, eres el harness."*

Reformulado por Osmani: un modelo correcto en un gran harness supera a un gran modelo en un mal harness. La prueba empírica proviene de Terminal Bench 2.0: Claude Opus 4.6 dentro de Claude Code obtiene una puntuación notablemente inferior a la del mismo modelo dentro de un harness personalizado, y el equipo de Trivedy llevó a un agente de codificación **del puesto 30 al puesto 5 cambiando solo el harness**.

Osmani articula tres principios metodológicos. El ***replanteamiento skill issue*** (HumanLayer): la mayoría de los fallos no son limitaciones del modelo sino problemas de configuración. El ***principio ratchet***: cada línea de un AGENTS.md debe poder rastrearse hasta un fallo real concreto del pasado — *"añade solo cuando hayas visto un fallo real, elimina solo cuando un modelo más capaz los haya vuelto redundantes"*. El enfoque ***working backwards from behaviour***: no construir infraestructura de antemano, sino derivar cada componente del comportamiento esperado.

A continuación, siete primitivas del harness: sistema de archivos y Git (estado duradero), bash y ejecución de código (*"dales una cocina completa, no un solo utensilio de cocina"*), sandboxes (aislamiento y configuraciones por defecto), memoria y búsqueda (AGENTS.md recargado, MCP, Context7), la lucha contra el context rot (compaction, tool-call offloading, skills de progressive disclosure, los full context resets de Anthropic), ejecución de largo horizonte (Ralph Loop, planificación, **separación planner/evaluator** — *"GANs para prosa"*), hooks (*"el éxito es silencioso, los fallos son verbosos"*).

Sobre AGENTS.md, dos lecciones: menos de 60 líneas (HumanLayer), *"lista de verificación de piloto, no guía de estilo"*. Sobre las herramientas: *"diez herramientas enfocadas superan a cincuenta que se solapan"* — incluyendo la seguridad de MCP.

A continuación, Osmani recurre al desglose de Fareed Khan de la arquitectura de Claude Code en siete capas (entrada, conocimiento, integración, ejecución, salida, observabilidad, multiagente) para mostrar que cada concepto anterior tiene un lugar concreto en producción.

Luego llega la frase de Anthropic que enmarca el debate: *"Los harnesses no se reducen, se desplazan."* Cuando un modelo mejora, el scaffolding que codificaba sus limitaciones desaparece, pero el techo se desplaza y surge nuevo scaffolding. A esto se suma el **bucle de entrenamiento model-harness**: las primitivas útiles se convierten en estándar, se incorporan mediante post-training en el siguiente modelo, creando co-entrenamiento y overfitting (Opus 4.6 *"se siente diferente dentro de Claude Code"*).

El artículo cierra con *Harness-as-a-Service* (Claude Agent SDK, Codex SDK, OpenAI Agents SDK) y tres preguntas abiertas: la orquestación multiagente sobre una base de código compartida, los harnesses autoanalizantes, el ensamblaje JIT de herramientas/contexto *"más cercano a un compilador que a una configuración estática"*.

Un artículo de consolidación que estabiliza el vocabulario compartido del campo y hace que la harness engineering pase de ser una disciplina emergente a un consenso compartido.

## 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/es/fiches/osmani-agent-harness-engineering-2026-04-19/
