La lógica de orquestación que envuelve al LLM produce hoy más variación de rendimiento que el propio modelo.
Slide 2 · El hallazgo
de diferencia en rendimiento.
La lógica de orquestación que envuelve al LLM produce hoy más variación de rendimiento que el propio modelo.
Modificando solo la infraestructura del harness, su coding agent saltó del puesto 30+ al puesto 5.
Slide 3 · El arnés del caballo
Un LLM en bruto es un caballo desbocado capaz de generar miles de líneas de código. El arnés son las riendas que le pones para que el galope sea útil — el ingeniero ya no escribe el código, diseña el arnés que sujeta al modelo.
Qué información ve el modelo y en qué orden.
Qué acciones puede ejecutar — pocas, simples, generales.
Qué recuerda fuera de su ventana de contexto.
Cómo demuestra que su trabajo es correcto.
Slide 4 · La ecuación
Si no eres el modelo, eres el harness. — LangChain
"Todo lo que no son pesos del modelo" — prompts del sistema, herramientas, orquestación, memoria, verificación, seguridad.
Slide 5 · Los 5 patrones canónicos · Anthropic
Todo agente en producción combina varios. Esas decisiones arquitectónicas son las que generan el gap de 6×.
Cadena lineal: cada paso usa la salida del anterior.
Útil: Pipelines deterministas con etapas claras.
Un clasificador decide a qué especialista delegar.
Útil: Triaje de entradas heterogéneas.
Distribución paralela a trabajadores y agregación al final.
Útil: Recuperación multifuente, ensembles.
Maestro descompone, trabajadores ejecutan, maestro integra.
Útil: Tareas complejas con sub-objetivos dinámicos.
Bucle generador-evaluador con criterio de aceptación.
Útil: Cuando hay un "está bien" objetivable.
Slide 6 · Antes de los papers
Dos sistemas que nominalmente diferían en una decisión de diseño, en realidad diferían simultáneamente en prompts, herramientas, verificadores y semántica de estado. Imposible aislar qué cambio causa qué efecto.
Cuatro variables cambiando a la vez. Atribuir el delta a uno solo es estadística — no es ingeniería.
El agente intenta resolver toda la tarea en un único disparo y agota el contexto antes de cerrar el último paso.
parse → plan → write → test → fix → 💥 context exhaustedUna sesión posterior ve progreso parcial (3/6) y declara victoria sin verificar el resto.
load_state(3/6) → "looks done ✓" — y nunca lo estuvo.Slide 7 · Paper 1 · NLAH · Tsinghua · Marzo 2026
Pan et al. proponen escribir la lógica de control del agente en lenguaje natural estructurado, separada en tres capas con responsabilidades distintas.
ContractsRolesStagesFailure taxonomySe intercambia entre tareas. Es lo que defines tú para tu dominio.
contractsstateCompartido entre tareas. Las "leyes físicas" del runtime.
spawn & waitLa infraestructura de bajo nivel. Igual para todos los arneses.
Fijas el Charter, intercambias el NLAH → testeas diseño del harness. Fijas el NLAH, cambias el Charter → testeas política del runtime.
Execution Contracts (firmas de función para agentes) + File-Backed State (memoria con la ruta del fichero como dirección).
Slide 8 · El experimento de migración · OS-Symphony → NLAH
Tomas un harness escrito en código nativo. Lo migras a representación NLAH. No tocas el algoritmo. No cambias el modelo. Solo cambias cómo se expresa.
screenshot()
find_element()
click()
verify()
// bucle de reparación ↺ Task Definition ✓ objective & scope completion contract State Schema ✓ file-backed runtime state artifact paths Completion Criteria ✓ artifact-backed verification
La representación es decisión arquitectónica, no estilística. Cómo escribes el harness vale tanto como qué hace.
Slide 9 · The Ablation Surprise
SWE-Bench Verified · GPT-5.4 · razonamiento máximo. ~75% resueltos con 6 módulos activos — y también con LLM + herramientas y nada más. 14× el cómputo para el mismo resultado.
" Estrechar con disciplina vence a ensanchar con dinero, siempre. "
Slide 10 · Paper 2 · Meta-Harness · Stanford · Marzo 2026
DSPy (Khattab, 2023) ajusta prompts dentro de un pipeline fijo. Meta-Harness reescribe el pipeline entero: estructura, recuperación, memoria, topología.
Las trazas son irremplazables. Sin ellos: 50% → 34.6% (−15.4 pts). Con resúmenes en lugar de en bruto: 34.9% (−15.1 pts). La señal vive en los detalles en bruto. No hay atajo.
Slide 11 · Lo que cambia el cálculo
El activo reutilizable ya no es el modelo. Es el harness. Optimizas con uno, mejoras los otros cinco.
Cambia la economía del producto. Invertir en el harness rinde más que esperar al próximo modelo.
Reduce la dependencia del proveedor. El activo portable es la lógica del harness, no el contrato con el proveedor.
Reabre el mercado para modelos pequeños. Haiku batiendo a Opus es la prueba.
Slide 12 · Las tres eras
Tres disciplinas en cuatro años. Cada una contiene a la previa y añade una capa de control.
El harness engineering no reemplaza saber escribir prompts ni gestionar contexto. Los incluye — y añade orquestación, memoria, verificación y seguridad como problemas de primer orden.
Slide 13 · La forma extraña que toma la disciplina
Cada componente del harness codifica una asunción sobre lo que el modelo no puede hacer solo. Cuando el modelo aprende a hacerlo, el componente debe morir — o pasa a estorbar.
Quitó el 80% de las herramientas de un agente
Reescribió su harness 5 veces en 6 meses
Eliminó context resets cuando Opus 4.6 dejó de necesitarlos
El espacio del harness no se encoge a medida que los modelos mejoran. Se mueve.
El trabajo maduro de harness engineering no es construir estructura — es podarla a medida que el modelo absorbe lo que antes la justificaba.
Slide 14 · Cómo se ve un arnés mínimo
Toda la teoría aterriza en una estructura de ficheros sorprendentemente pequeña. Esto es lo que copia BettaTech en su repo de ejemplo — y lo que cualquier equipo puede tener montado en una tarde.
proyecto/
├── AGENTS.md
├── init.sh
├── featurelist.json
├── progress/
│ ├── current.md
│ └── history.md
└── .claude/agents/
├── leader.md
├── implementer.md
└── reviewer.mdAGENTS.md Reglas, mapa del repo, convenciones. Lo primero que cada agente lee.
init.sh Verifica entorno y tests antes de dejar trabajar. Si falla → para.
featurelist.json Lista pendiente con criterios de aceptación. Estado: done · pendiente.
progress/ Los subagentes escriben aquí — anti teléfono descompuesto.
.claude/agents/ leader · implementer · reviewer. Cada uno con su .md de contrato.
El repo es el sistema. No hay magia — todo son ficheros que el agente lee antes de empezar y donde escribe lo que va aprendiendo.
Slide 15 · Conclusiones
La pregunta operativa cambia: deja de ser "qué modelo elijo" y pasa a ser "qué estructura quito". Invierte el reflejo de añadir verificadores y multi-candidate.
Si un harness mejora 5 modelos sin retoque, vale más que cualquier modelo individual. Cambia la economía del producto y reduce la dependencia del proveedor.
El +16.8 pts de NLAH solo por cambiar de código a lenguaje natural estructurado implica que la elección de DSL/prompt-as-code es un parámetro de rendimiento, no estilístico.
Añadir verificadores y búsqueda multi-candidato empeora el rendimiento mientras dispara el coste. Lo único que ayuda consistentemente es estrechar el loop del propio agente.
Vercel −80% herramientas. Manus 5 reescrituras. Anthropic eliminando reinicios de contexto. El harness se mantiene vivo podándolo, no engordándolo.
Si construyes agentes, ya eres un harness engineer — lo llames así o no. La pregunta deja de ser qué modelo elegir. Pasa a ser qué estructura eliminar.
Slide 16 · Cierre