Harness Engineering: La guía completa para crear agentes de IA que no fallan

@LunarResearcher
INGLÉS06 sept 2026
117K
217
30
5
381

TL;DR

Esta guía presenta Harness Engineering, una disciplina centrada en la creación de entornos estructurados alrededor de modelos de IA para garantizar la fiabilidad mediante contratos, verificación y gestión de estados duraderos.

La mayoría de la gente intenta mejorar los agentes de IA en la capa equivocada.

Cuando un agente falla, reescriben el prompt.

Cuando vuelve a fallar, añaden más instrucciones.

Antes de empezar:

Sigue mi Substack para recibir novedades frescas sobre IA, flujos de trabajo con agentes y guías paso a paso antes de que lleguen a X: [https://substack.com/@lunarresearcher

Luego cambian de modelo, añaden más herramientas, amplían la ventana de contexto y esperan que la siguiente ejecución se comporte de manera diferente.

Pero muchos fallos de los agentes no son fallos de razonamiento.

Son fallos del entorno.

El agente no sabía qué archivos eran importantes.

Usó la herramienta correcta en el lugar equivocado.

Perdió las decisiones tomadas en la sesión anterior.

Reclamó éxito sin ejecutar las comprobaciones.

Repitió una acción después de un fallo parcial.

Tenía permiso para hacer algo que debería haber requerido aprobación.

El modelo no era necesariamente el problema. El sistema alrededor del modelo estaba incompleto.

Ese sistema es el arnés.

Y diseñarlo se está convirtiendo en una disciplina de ingeniería propia.

La Ingeniería de Arnés es la práctica de construir el entorno que convierte la inteligencia del modelo en trabajo fiable.

Un prompt cambia un intento.

Un arnés cambia todos los intentos.

Esta guía explica cómo construir uno.

Lunar - inline image

1. El Modelo No Es el Agente

Un modelo puede razonar, generar, comparar y elegir.

Pero un agente también debe interactuar con un entorno real.

Necesita:

  • entender la tarea
  • encontrar el contexto relevante
  • seleccionar y usar herramientas
  • preservar el estado
  • respetar los permisos
  • inspeccionar el resultado
  • recuperarse de fallos
  • demostrar que el trabajo está completo

El modelo es el motor de razonamiento dentro de ese sistema.

El arnés es todo lo que hace operativo el razonamiento.

text
1solicitud del usuario
2 |
3 v
4+-----------------------------+
5| ARNÉS |
6| contrato | contexto | política |
7| herramientas | estado | comprobaciones |
8| trazas | recuperación |
9+-----------------------------+
10 |
11 v
12 modelo
13 |
14 v
15entorno real

Un modelo potente dentro de un arnés débil sigue siendo un agente débil.

Lunar - inline image

Puede producir respuestas individuales impresionantes, pero se comportará de manera inconsistente en tareas largas, entornos cambiantes y fallos parciales.

El objetivo de la ingeniería de arnés no es eliminar la incertidumbre del modelo.

Es contener esa incertidumbre dentro de un sistema que pueda observar, verificar y recuperarse.

2. Empieza con un Contrato de Tarea

La mayoría de las tareas de los agentes comienzan como una intención vaga:

Mejorar el flujo de incorporación.

Esa frase puede ser suficiente para una conversación.

No lo es para una ejecución autónoma.

Antes de que el agente actúe, el arnés debe convertir la solicitud en un contrato de tarea.

Un contrato útil responde a cinco preguntas:

Lunar - inline image
  1. ¿Qué resultado debe existir?
  2. ¿Qué está dentro del alcance?
  3. ¿Qué no debe cambiar?
  4. ¿Qué evidencia prueba la finalización?
  5. ¿Qué acciones requieren aprobación humana?
yaml
1objetivo: reducir el abandono en la incorporación
2
3alcance:
4 - flujo de registro
5 - análisis de incorporación
6
7restricciones:
8 - no cambiar la autenticación
9 - preservar el comportamiento móvil existente
10
11aceptación:
12 - pruebas pasan
13 - evento de análisis se emite
14 - capturas de pantalla cubren escritorio y móvil
15
16aprobación_requerida:
17 - despliegue en producción
18 - migración de base de datos

Esto cambia la pregunta del agente de:

¿Qué debería hacer después?

a:

¿Qué acción mueve el entorno hacia el resultado contratado?

Sin un contrato, el agente optimiza para una actividad plausible.

Con un contrato, puede optimizar para una finalización verificada.

3. Dale al Agente un Mapa, No un Manual

Volcar todo el repositorio, el conjunto de documentación y el historial de la conversación en el contexto no es una buena ingeniería de contexto.

Es una inundación de contexto.

Lunar - inline image

El arnés debe proporcionar primero un mapa pequeño, y luego permitir que el agente recupere los detalles cuando sean relevantes.

text
1MAPA DEL PROYECTO
2
3reglas del producto -> docs/producto/
4arquitectura -> docs/arquitectura.md
5frontend -> apps/web/
6backend -> servicios/api/
7pruebas -> tests/
8comandos -> docs/comandos.md
9reglas de lanzamiento -> docs/lanzamiento.md

Esto es divulgación progresiva:

text
1tarea
2 -> mapa del proyecto
3 -> subsistema relevante
4 -> archivos exactos
5 -> instrucciones locales

El contexto debe expandirse porque la tarea lo requiere, no porque la información exista.

Un buen compilador de contexto decide:

  • qué se necesita siempre
  • qué se puede recuperar después
  • qué se ha vuelto obsoleto
  • qué se puede resumir
  • qué debe permanecer textual

El objetivo no es el máximo contexto.

Es la máxima señal por token.

4. Construye una Puerta de Enlace de Herramientas, No un Montón de Herramientas

Darle a un agente veinte herramientas no lo hace capaz.

Le da al agente veinte maneras de cometer un error.

Lunar - inline image

Cada herramienta debe tener un contrato claro:

text
1HERRAMIENTA: editar_archivo
2
3entradas:
4 ruta
5 parche
6
7precondiciones:
8 la ruta existe
9 la ruta está dentro del espacio de trabajo permitido
10
11evidencia de éxito:
12 parche aplicado
13 diff resultante devuelto
14
15comportamiento en fallo:
16 sin sobrescritura parcial
17 error estructurado devuelto
18
19clase de riesgo:
20 reversible

El arnés debe controlar cómo se exponen y utilizan las herramientas.

Puede:

  • ocultar herramientas irrelevantes
  • validar argumentos
  • restringir rutas y dominios
  • adjuntar tiempos de espera
  • hacer que los reintentos sean idempotentes
  • normalizar las salidas
  • requerir confirmación para acciones arriesgadas
  • devolver evidencia, no solo "éxito"

Esto crea una separación importante:

text
1el modelo decide la intención
2la puerta de enlace valida la acción
3la herramienta cambia el entorno
4el sensor observa el resultado

El modelo puede proponer una acción.

La puerta de enlace de herramientas decide si esa acción es lo suficientemente válida para ejecutarse.

5. Separa el Cerebro, las Manos y el Historial

Muchos agentes frágiles mezclan todo en una transcripción que crece sin parar.

El razonamiento, las llamadas a herramientas, los archivos, las decisiones, los errores y las observaciones antiguas compiten por la misma ventana de contexto.

Un sistema más robusto separa tres responsabilidades:

Lunar - inline image
text
1CEREBRO
2planifica, razona, elige
3
4MANOS
5ejecutan herramientas dentro de un entorno controlado
6
7HISTORIAL
8almacena hechos duraderos, decisiones y estado de ejecución

El modelo no necesita cada evento en bruto en el contexto activo.

Necesita el estado actual correcto.

El sandbox no necesita entender el objetivo completo.

Necesita ejecutar de forma segura una acción acotada.

El registro de la sesión no necesita razonar.

Necesita preservar lo que sucedió después de que el contexto actual desaparezca.

Esta separación facilita reanudar, inspeccionar y reparar agentes de larga duración.

También te permite reemplazar una parte sin reconstruir todo el sistema.

6. La Memoria Debe Convertirse en Estado Duradero

El historial de la conversación no es una memoria fiable.

Es un flujo de eventos.

La memoria útil debe convertirse en un estado explícito.

Lunar - inline image

Como mínimo, preserva cuatro categorías:

text
1HECHOS
2información estable descubierta sobre el entorno
3
4DECISIONES
5elecciones tomadas y la razón detrás de ellas
6
7PROGRESO
8trabajo completado, activo, bloqueado y restante
9
10LECCIONES
11fallos que deberían cambiar el comportamiento futuro

Por ejemplo:

yaml
1hechos:
2 - la validación del pago está en servicios/pedidos
3
4decisiones:
5 - reutilizar el pipeline de validación existente
6 - razón: evita una segunda fuente de verdad
7
8progreso:
9 completado:
10 - añadida regla del lado del servidor
11 restante:
12 - actualizar prueba de integración
13
14lecciones:
15 - el comando de prueba local requiere TEST_DB_URL

Esto es mucho más útil que reproducir cincuenta páginas de transcripción esperando que el modelo note la línea importante.

Almacena el historial en bruto para auditoría.

Compila el estado duradero para la ejecución.

7. La Finalización Requiere Evidencia

Que un agente diga "listo" no es evidencia de que la tarea esté completa.

Es solo otra salida del modelo.

Lunar - inline image

La finalización debe decidirse por cambios observables en el entorno.

text
1afirmación evidencia
2--------------------------------------------------
3"el error está corregido" la prueba que fallaba ahora pasa
4"la página funciona" el flujo del navegador se completó
5"la migración es segura" la simulación y el rollback pasan
6"el informe es correcto" los valores coinciden con los datos fuente
7"la tarea está completa" cada comprobación de aceptación pasa

El arnés debe ejecutar primero las comprobaciones deterministas más baratas.

text
1sintaxis
2 -> tipos
3 -> pruebas enfocadas
4 -> pruebas de integración
5 -> revisión visual o semántica
6 -> aprobación humana

No uses otro modelo donde un compilador, esquema, suma de verificación, consulta o prueba pueda responder la pregunta.

Usa modelos para la ambigüedad.

Usa código para la fontanería.

Un modelo puede proponer que la tarea está completa.

Solo el entorno puede probarlo.

8. La Verificación Debe Atacar el Resultado

Los trabajadores y los evaluadores no deben compartir el mismo objetivo.

El trabajador intenta crear la solución más sólida.

El evaluador intenta encontrar la razón por la que debería ser rechazada.

Lunar - inline image
text
1trabajador
2 -> produce candidato
3
4verificador
5 -> comprueba el contrato
6 -> busca casos faltantes
7 -> prueba afirmaciones no respaldadas
8 -> intenta romper el resultado
9
10sobrevive
11 -> aceptar
12
13falla
14 -> devolver evidencia específica

Esta asimetría es importante.

Si le pides al mismo agente, en el mismo contexto, que "vuelva a verificar su trabajo", a menudo preserva las suposiciones que crearon el error.

Una etapa de verificación útil debe tener:

  • una rúbrica de rechazo explícita
  • acceso al artefacto producido
  • acceso al contrato de aceptación
  • herramientas independientes o contexto nuevo cuando sea necesario
  • permiso para rechazar sin reparar

La verificación no es una segunda opinión.

Es un intento de refutación.

9. El Modelo Propone, la Política Autoriza

Algunas reglas nunca deben depender de si el modelo las recuerda.

text
1nunca publicar sin aprobación
2nunca exponer un secreto
3nunca escribir fuera del espacio de trabajo
4nunca exceder el límite de gasto
5nunca marcar pruebas como pasadas a menos que se hayan ejecutado

Estas no son sugerencias de prompt.

Son políticas.

El diseño más seguro mantiene la política fuera del bucle de razonamiento.

Lunar - inline image
text
1RIESGO BAJO
2leer archivos, buscar, inspeccionar
3-> automático
4
5CAMBIO REVERSIBLE
6editar espacio de trabajo, ejecutar pruebas
7-> automático con traza
8
9EFECTO EXTERNO
10enviar mensaje, desplegar, comprar
11-> aprobación explícita
12
13IRREVERSIBLE O SENSIBLE
14eliminar datos, rotar credenciales, publicar globalmente
15-> puerta dura o prohibido

Cuanto más fuerte sea la consecuencia, más dura será la puerta.

La autonomía no es la ausencia de control.

Es la capacidad de operar libremente dentro de un límite claramente definido.

10. La Recuperación Debe Apuntar a la Clase de Fallo

La estrategia de recuperación más común es:

Algo falló. Inténtalo de nuevo.

Eso no es recuperación.

Es repetición.

Lunar - inline image

El arnés debe clasificar el fallo antes de seleccionar la siguiente acción.

text
1tiempo de espera de herramienta
2-> reintentar con retroceso
3
4argumentos inválidos
5-> reparar la llamada a la herramienta
6
7contexto faltante
8-> recuperar fuente específica
9
10prueba fallida
11-> inspeccionar comportamiento fallido
12
13permiso denegado
14-> solicitar aprobación o elegir ruta segura
15
16requisitos contradictorios
17-> escalar a humano
18
19fallo repetido sin cambios
20-> detener el bucle

Un reintento debe cambiar al menos una condición relevante.

De lo contrario, el sistema está pagando para reproducir el mismo fallo.

Un bucle de agente acotado se ve así:

text
1observar
2 -> decidir
3 -> actuar
4 -> medir
5 -> aceptar
6 -> reparar
7 -> escalar
8 -> detener

Cada bucle necesita un presupuesto:

  • máximo de intentos
  • tiempo máximo
  • gasto máximo
  • alcance destructivo máximo
  • condición de escalado

Los agentes fiables saben cómo continuar.

También saben cuándo continuar ya no es racional.

11. Las Instrucciones Deben Convertirse en Infraestructura

Las instrucciones del agente son útiles cuando explican la realidad local.

Pero las instrucciones por sí solas son una aplicación débil.

Si una regla importa repetidamente, muévela hacia abajo en la pila.

text
1"usa el formateador"
2-> ejecutar formateador automáticamente
3
4"no importes entre capas"
5-> añadir prueba de arquitectura
6
7"incluye un rollback de migración"
8-> requerir archivo de rollback en CI
9
10"no modifiques archivos generados"
11-> bloquear escrituras en rutas generadas
12
13"cita cada afirmación externa"
14-> validar cobertura de citas

Esto crea una escalera de instrucciones:

text
1explicación
2 -> lista de verificación
3 -> plantilla
4 -> comprobación automatizada
5 -> política aplicada

Mueve el conocimiento importante tan abajo en esa escalera como sea práctico.

El prompt debe explicar el juicio.

El arnés debe aplicar los invariantes.

12. Observa la Ejecución, No Solo la Respuesta Final

Un artefacto final limpio puede ocultar un proceso terrible.

El agente puede haber:

  • accedido a los datos equivocados
  • ignorado un comando fallido
  • reintentado una acción externa dos veces
  • consumido diez veces el presupuesto esperado
  • llegado a la respuesta correcta por la razón equivocada

Necesitas trazas que hagan la ejecución reconstruible.

text
109:14 contrato creado
209:15 fuente de contexto cargada: arquitectura.md
309:17 archivo editado: checkout.ts
409:18 prueba enfocada falló: cupón duplicado
509:21 implementación reparada
609:22 prueba enfocada pasó
709:24 prueba de integración pasó
809:25 despliegue externo bloqueado: aprobación requerida

Una traza útil registra:

  • transiciones de estado
  • fuentes de contexto
  • entradas y salidas de herramientas
  • cambios en el entorno
  • resultados de verificación
  • razones de reintento
  • decisiones de aprobación
  • costo y latencia

El objetivo no es la vigilancia.

El objetivo es la reparación local.

Cuando una ejecución falla en el paso 18, deberías poder reiniciar desde un punto de control fiable en lugar de reproducir toda la tarea.

13. Cada Ejecución Necesita un Recibo de Cambios

Las transcripciones largas de agentes son difíciles de revisar.

Al final de una ejecución, el arnés debe compilar un pequeño recibo de cambios.

text
1OBJETIVO
2Corregir la aplicación de cupones duplicados durante el pago.
3
4CAMBIADO
5- lógica de validación de pago
6- prueba de regresión enfocada
7
8VERIFICADO
9- lint pasó
10- pruebas unitarias pasaron
11- prueba de integración de pago pasó
12
13NO VERIFICADO
14- proveedor de pagos en producción
15
16DECISIONES
17- preservado el orden de prioridad de cupones existente
18
19RIESGOS
20- el cliente móvil heredado no estaba disponible localmente
21
22APROBACIÓN NECESARIA
23- desplegar en staging

El recibo no es un resumen de lo que dijo el modelo.

Es un resumen de lo que el sistema puede probar.

Esto le da a los humanos una superficie de revisión compacta y a la próxima sesión del agente un punto de partida fiable.

La mejor transferencia no es "aquí está la conversación".

Es "aquí está el estado, la evidencia y el riesgo no resuelto".

14. Cada Fallo Debe Mejorar el Arnés

Los equipos más débiles corrigen la salida fallida.

Los equipos más fuertes también corrigen el sistema que lo permitió.

Después de un fallo, pregúntate:

text
1¿Era ambiguo el contrato de la tarea?
2¿Era invisible el contexto importante?
3¿Se expuso la herramienta equivocada?
4¿Faltaba una precondición?
5¿Era el resultado no verificable?
6¿Se dejó la política dentro del prompt?
7¿Era la recuperación demasiado amplia?
8¿Era la traza insuficiente?

Luego convierte la lección en una mejora reutilizable.

text
1fallo
2 -> diagnóstico
3 -> nuevo sensor, regla, mapa, prueba o contrato de herramienta
4 -> las ejecuciones futuras mejoran automáticamente

Este es el volante de inercia del arnés.

El sistema se vuelve más fiable porque los fallos dejan infraestructura detrás.

Una respuesta corregida ayuda a una ejecución.

Un arnés corregido ayuda a todas las ejecuciones futuras.

Lunar - inline image

15. Los Arnses También se Deterioran

Más arnés no siempre es mejor.

Los modelos mejoran. Las herramientas mejoran. Las tareas cambian. Las salvaguardas antiguas pueden convertirse en fricción innecesaria.

Una solución alternativa creada para el modelo de ayer puede impedir que el modelo de hoy use una estrategia mejor.

Esto crea deterioro del arnés:

text
1limitación del modelo antiguo
2 -> solución alternativa del arnés
3 -> el modelo mejora
4 -> la solución alternativa permanece
5 -> el sistema se vuelve más lento o menos capaz

Trata los componentes del arnés como código de producción.

Mide si todavía proporcionan valor añadido.

Para cada enrutador, evaluador, capa de memoria y regla de reintento, pregúntate:

  • ¿Qué fallo previene esto?
  • ¿Con qué frecuencia ocurre todavía ese fallo?
  • ¿Qué latencia y complejidad añade esto?
  • ¿Se puede lograr el mismo resultado ahora de forma más simple?
  • ¿Qué pasa si lo eliminamos?

El mejor arnés no es el más grande.

Es el sistema más pequeño que cierra de forma fiable la brecha entre la intención y la evidencia.

Construye para eliminar.

16. El Arnés Mínimo Viable

No necesitas una plataforma de orquestación para empezar.

Construye el arnés por capas.

Nivel 1: Una tarea acotada

  • objetivo
  • alcance
  • restricciones
  • comprobaciones de aceptación

Nivel 2: Un entorno legible

  • mapa del proyecto
  • comandos
  • instrucciones locales
  • dependencias conocidas

Nivel 3: Acciones controladas

  • herramientas tipadas
  • validación de argumentos
  • límites de ruta y permiso
  • resultados estructurados

Nivel 4: Ejecución duradera

  • estado de ejecución explícito
  • puntos de control
  • decisiones
  • lecciones

Nivel 5: Evidencia

  • comprobaciones deterministas
  • verificación adversarial
  • recibo de cambios

Nivel 6: Recuperación y aprendizaje

  • clasificación de fallos
  • reintentos acotados
  • escalado
  • actualizaciones del arnés a partir de fallos recurrentes

Construye la capa más pequeña que elimine el fallo que realmente tienes.

No empieces con una arquitectura multi-agente porque un prompt único ocasionalmente necesita aclaración.

La complejidad debe ganarse mediante fallos observados.

17. Una Especificación de Arnés Reutilizable

Antes de darle a un agente una autonomía significativa, define esto:

text
1ESPECIFICACIÓN DEL ARNÉS DEL AGENTE
2
31. CONTRATO
4 objetivo:
5 alcance:
6 restricciones:
7 evidencia de aceptación:
8
92. CONTEXTO
10 mapa siempre cargado:
11 fuentes de recuperación:
12 instrucciones locales:
13 reglas de actualización:
14
153. HERRAMIENTAS
16 herramientas permitidas:
17 precondiciones:
18 efectos secundarios:
19 evidencia de éxito:
20 política de tiempo de espera y reintento:
21
224. ESTADO
23 hechos:
24 decisiones:
25 progreso:
26 lecciones:
27 formato del punto de control:
28
295. POLÍTICA
30 acciones automáticas:
31 acciones que requieren aprobación:
32 acciones prohibidas:
33 límites de presupuesto:
34
356. VERIFICACIÓN
36 comprobaciones deterministas:
37 comprobaciones adversariales:
38 regla de aceptación:
39
407. RECUPERACIÓN
41 clases de fallo:
42 límites de reintento:
43 condiciones de escalado:
44 rollback seguro:
45
468. OBSERVABILIDAD
47 eventos de traza:
48 métricas:
49 recibo de cambios final:

Si estos campos no están definidos, el agente no es autónomo.

Está improvisando.

18. Mide el Sistema en el Nivel Correcto

El recuento de tokens no es la métrica final.

Tampoco lo es el número de tareas intentadas.

La unidad útil es el trabajo aceptado.

Una métrica práctica es:

text
1salidas aceptadas
2------------------------------
3minutos de revisión humana + costo de ejecución

También rastrea:

  • tasa de aceptación en el primer intento
  • tasa de recuperación después de un fallo de herramienta
  • tasa de fallos repetidos
  • intervenciones humanas por tarea
  • afirmaciones de finalización no respaldadas
  • tiempo desde la solicitud hasta el resultado verificado
  • sobrecarga del arnés por componente

Esto previene una ilusión común:

Un agente puede parecer muy productivo mientras crea un costoso trabajo de revisión.

El objetivo no es más actividad del agente.

Son más resultados fiables por unidad de atención humana.

19. Cuándo No Necesitas un Arnés Pesado

No todas las llamadas al modelo necesitan un sistema operativo.

Usa un prompt simple cuando:

  • la tarea es corta
  • la salida es fácil de inspeccionar
  • el fallo es barato
  • no ocurre ningún efecto secundario externo
  • el usuario permanece en el bucle

Añade un arnés cuando:

  • el trabajo abarca múltiples herramientas o sesiones
  • el entorno puede cambiar
  • las acciones tienen consecuencias reales
  • la finalización es difícil de juzgar manualmente
  • el mismo fallo aparece repetidamente
  • la revisión humana se convierte en el cuello de botella

El propósito de un arnés no es hacer que una demo parezca sofisticada.

Es hacer que el trabajo real sea fiable.

El Cambio Real

La primera generación de productos de IA se construyó alrededor de prompts.

La próxima generación se está construyendo alrededor de entornos.

La pregunta ya no es solo:

¿Cómo hacemos que el modelo responda mejor?

Es:

¿Cómo construimos un sistema donde las buenas acciones sean fáciles, las acciones peligrosas estén controladas, los fallos sean visibles y la finalización sea demostrable?

Ese es el cambio de la ingeniería de prompts a la ingeniería de arnés.

El modelo proporciona inteligencia.

El arnés proporciona estructura.

Juntos producen una ejecución fiable.

Si tu agente sigue desmoronándose, deja de añadir adjetivos al prompt.

Construye el entorno que necesita para tener éxito.

Si Has Llegado Hasta Aquí

Guarda esta guía como favorito.

Sigue a @LunarResearcher en X

Suscríbete a mi Substack

Envía este artículo a alguien que todavía esté intentando arreglar cada fallo de agente con un prompt más largo.

Recrear en YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales