YouMind
Iniciar sesión

Ingeniería de Arneses: Cómo construir agentes de IA que realmente funcionan

@0xjmori
INGLÉS27 sept 2026
328K
196
24
17
638

TL;DR

Este artículo introduce la 'Ingeniería de Arneses', argumentando que la fiabilidad de los agentes de IA depende del sistema circundante (contratos, herramientas, estado, verificación) y no solo del modelo o el prompt. Ofrece una guía completa para construir infraestructuras robustas de agentes.

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

Cuando un agente falla, reescriben el prompt. Cuando vuelve a fallar, añaden más instrucciones, cambian de modelo, amplían la ventana de contexto o conectan otra herramienta.

Y entonces regresan los mismos problemas.

El agente olvida una decisión importante. Usa la herramienta incorrecta. Pierde el hilo de lo que pasó tres pasos atrás. Afirma que la tarea terminó sin verificar el resultado. Reintenta la misma acción fallida hasta agotar el presupuesto.

El problema no siempre es el modelo.

El problema es el entorno que lo rodea.

Ese entorno es el harness.

La Ingeniería de Harness (Harness Engineering) es la práctica de construir el sistema alrededor de un modelo que decide qué puede ver, qué puede hacer, qué recuerda, qué cuenta como éxito y qué sucede cuando algo falla.

Un mejor prompt puede mejorar una respuesta.

Un mejor harness mejora cada ejecución.

Sigue mi Substack para más análisis prácticos sobre agentes de IA, automatización y sistemas en producción:

substack.com/@lunarresearcher

1. El modelo no es el agente

Un modelo puede razonar, generar, comparar y elegir.

Eso no lo convierte en un agente confiable.

Un agente real también necesita encontrar el contexto adecuado, usar herramientas, preservar el estado, respetar permisos, verificar su propio trabajo y recuperarse cuando el entorno se comporta de forma distinta a la esperada.

El modelo es solo el motor de razonamiento.

El harness es todo aquello que transforma ese razonamiento en ejecución real.

text
1SOLICITUD DEL USUARIO
2 |
3 v
4+-----------------------------+
5| HARNESS |
6| |
7| contrato contexto |
8| herramientas estado |
9| política verificación |
10| trazas recuperación |
11+-----------------------------+
12 |
13 v
14 MODELO
15 |
16 v
17ENTORNO REAL

Pon el mismo modelo dentro de un chat y responderá preguntas.

Mori - inline image

Ponlo dentro de un repositorio con acceso a terminal, pruebas, herramientas de navegador, memoria del proyecto, permisos controlados y un ciclo de revisión, y podrá completar trabajo real.

El modelo no cambió.

El harness sí.

2. Convierte cada solicitud en un contrato

El lenguaje natural es flexible.

La ejecución autónoma no debería serlo.

Una solicitud como:

Mejora el flujo de onboarding.

está bien cuando hay un humano sentado junto al modelo.

Es pésima como instrucción para producción.

Antes de que el agente actúe, convierte la solicitud en un contrato de tarea acotado.

Mori - inline image
yaml
1objetivo: reducir el abandono en el onboarding
2
3entradas:
4 - resumen del producto
5 - datos de analítica
6 - repositorio
7
8restricciones:
9 - conservar la autenticación
10 - no cambiar el esquema de la base de datos
11 - mantener el comportamiento actual en móvil
12
13entregable:
14 - pull request revisable
15
16terminado_cuando:
17 - las pruebas pasen
18 - el evento de analítica se dispare correctamente
19 - el flujo de escritorio pase la revisión
20 - el flujo móvil pase la revisión
21
22aprobacion_requerida:
23 - despliegue a producción

La parte importante es terminado_cuando.

Sin ella, el agente puede resolver una versión ligeramente más fácil del problema y aun así afirmar con total seguridad que la tarea está completa.

Con ella, la finalización se vuelve medible.

El agente no debería preguntar:

¿Qué hago ahora?

Debería preguntar:

¿Qué acción acerca el entorno actual al resultado pactado en el contrato?

Ese es un ciclo mucho más sólido.

3. Dale al agente un mapa, no una ventana de contexto gigante

Una reacción común ante los errores de un agente es darle más contexto al modelo.

Más documentación.

Más historial de conversación.

Más archivos.

Más resultados de herramientas.

Al final, el agente recibe absolutamente todo y entiende cada vez menos.

El contexto no es almacenamiento.

Es un presupuesto de atención.

Mori - inline image

En lugar de volcar todo el proyecto en cada ejecución, dale al agente un mapa pequeño de dónde vive la información útil.

text
1MAPA DEL PROYECTO
2
3reglas de producto -> docs/product/
4arquitectura -> docs/architecture.md
5frontend -> apps/web/
6backend -> services/api/
7pruebas -> tests/
8comandos -> docs/commands.md
9seguridad -> docs/security.md

Luego expándelo solo cuando sea necesario.

text
1TAREA
2 |
3 v
4MAPA DEL PROYECTO
5 |
6 v
7SISTEMA RELEVANTE
8 |
9 v
10ARCHIVOS EXACTOS
11 |
12 v
13INSTRUCCIONES LOCALES

El material original describe esto como divulgación progresiva: el harness debe cargar más información porque la tarea lo necesita, no simplemente porque esa información existe.

El objetivo no es maximizar el contexto.

El objetivo es maximizar la señal útil.

4. Pon una puerta de enlace entre el modelo y sus herramientas

Un modelo con veinte herramientas no es automáticamente veinte veces más capaz.

Quizá solo tenga veinte formas más de fallar.

Cada herramienta debería tener un contrato.

text
1HERRAMIENTA: edit_file
2
3ENTRADAS
4ruta
5parche
6
7PRECONDICIONES
8la ruta existe
9la ruta está dentro del espacio de trabajo
10
11ÉXITO
12parche aplicado
13diff devuelto
14
15FALLO
16error estructurado
17sin sobrescritura parcial
18
19RIESGO
20reversible

Entonces la ruta de ejecución se convierte en:

text
1EL MODELO PROPONE
2 |
3 v
4LA PUERTA DE ENLACE VALIDA
5 |
6 v
7LA POLÍTICA AUTORIZA
8 |
9 v
10LA HERRAMIENTA EJECUTA
11 |
12 v
13EL HARNESS REGISTRA EL RESULTADO

El modelo decide qué acción quiere realizar.

El harness decide si esa acción es válida, permitida y segura.

Mori - inline image

Esa distinción se vuelve crítica cuando las herramientas pueden enviar mensajes, modificar producción, gastar dinero o borrar datos.

Una buena puerta de enlace de herramientas también puede añadir tiempos de espera, validar argumentos, restringir rutas de archivos, normalizar errores y hacer que los reintentos sean seguros.

Las buenas herramientas reducen la cantidad de cosas que el modelo tiene que adivinar.

5. Saca la memoria de la conversación

La conversación no debería ser el registro oficial del sistema.

Los agentes de larga duración tarde o temprano alcanzan los límites de contexto, colapsan, se reinician o traspasan el trabajo a otra sesión.

Si cada decisión importante existe únicamente dentro de la transcripción, el flujo de trabajo es frágil.

Almacena el estado persistente por separado.

Mori - inline image
json
1{
2 "id_tarea": "feature_042",
3 "estado": "verificando",
4 "paso_actual": "revision_movil",
5
6 "completado": [
7 "implementacion",
8 "pruebas_unitarias",
9 "revision_escritorio"
10 ],
11
12 "decisiones": [
13 "reutilizar el endpoint de exportacion existente",
14 "mantener el formato de fecha actual"
15 ],
16
17 "artefactos": [
18 "export.csv",
19 "desktop-after.png"
20 ],
21
22 "riesgos_abiertos": [
23 "la barra de herramientas movil podria desbordarse"
24 ],
25
26 "siguiente_accion": "renderizar viewport movil"
27}

Un sistema útil separa la memoria en cuatro categorías:

text
1HECHOS
2conocimiento estable
3
4DECISIONES
5qué se eligió y por qué
6
7ESTADO
8en qué punto va la ejecución actual
9
10LECCIONES
11fallos que deberían afectar ejecuciones futuras

La siguiente sesión del agente debería heredar el estado del trabajo, no un resumen comprimido de la conversación anterior.

6. Haz que la evidencia sea la puerta hacia la finalización

Que un agente diga "listo" no demuestra que el trabajo esté hecho.

Mori - inline image

Es simplemente otra salida del modelo.

El harness necesita evidencia observable.

text
1AFIRMACIÓN EVIDENCIA
2
3"el bug está arreglado" la prueba que fallaba ahora pasa
4
5"la página funciona" el flujo en el navegador se completó
6
7"los datos son correctos" los valores coinciden con la fuente
8
9"la migración es segura" simulación + rollback exitosos
10
11"la tarea está completa" todas las verificaciones de aceptación pasan

Usa primero comprobaciones deterministas.

text
1sintaxis
2 |
3 v
4tipos
5 |
6 v
7pruebas focalizadas
8 |
9 v
10pruebas de integración
11 |
12 v
13revisión visual / semántica
14 |
15 v
16aprobación humana

No le pidas a otro modelo que responda algo que un compilador, una prueba, un esquema o una consulta a la base de datos puede demostrar.

Usa los modelos para juzgar.

Usa sistemas deterministas para los hechos.

El modelo crea el artefacto.

El entorno genera evidencia sobre ese artefacto.

El harness decide si la evidencia es suficiente.

7. Separa al constructor del verificador

Hay otro problema con la autorrevisión.

El agente que cometió el error suele arrastrar las mismas suposiciones a la revisión.

Mori - inline image

Una arquitectura más robusta separa al trabajador del verificador.

text
1CONSTRUCTOR
2 |
3 v
4crea el candidato
5 |
6 v
7VERIFICADOR
8 |
9 +-- comprueba el contrato
10 +-- busca casos faltantes
11 +-- pone a prueba afirmaciones sin respaldo
12 +-- intenta romper el resultado
13 |
14 +------ ÉXITO ------> ACEPTAR
15 |
16 +------ FALLO ------> DEVOLVER EVIDENCIA

El verificador no debería preguntar:

¿Esto se ve bien?

Debería preguntar:

¿Qué haría que esto fuera inaceptable?

Eso transforma la revisión: deja de ser una confirmación para convertirse en un intento de refutación.

El material original recomienda explícitamente darle a la verificación sus propios criterios de rechazo y la independencia suficiente para cuestionar las suposiciones que generaron el primer resultado.

8. Saca los permisos del modelo

Algunas reglas nunca deberían depender de que el modelo las recuerde.

text
1nunca publicar sin aprobación
2nunca exponer secretos
3nunca exceder el límite de gasto
4nunca escribir fuera del espacio de trabajo
5nunca afirmar que las pruebas pasaron si no se ejecutaron

Estas no son sugerencias para el prompt.

Mori - inline image

Son políticas.

Una escala de permisos sencilla:

text
1RIESGO BAJO
2
3leer
4buscar
5inspeccionar
6
7-> automático
8
9REVERSIBLE
10
11editar espacio de trabajo
12ejecutar pruebas
13crear borrador
14
15-> automático + traza
16
17EFECTO EXTERNO
18
19enviar
20desplegar
21comprar
22
23-> requiere aprobación
24
25IRREVERSIBLE / SENSIBLE
26
27borrar datos
28rotar credenciales
29publicar globalmente
30
31-> bloqueo estricto o prohibido

Cuanto mayor sea la consecuencia, más fuerte debe ser el control.

El modelo puede recomendar la acción.

El harness la autoriza.

La herramienta la ejecuta.

La autonomía no es la ausencia de control.

Es libertad dentro de un límite impuesto.

9. Deja de reintentar a ciegas

Una de las peores políticas de recuperación es:

Algo falló. Inténtalo de nuevo.

Si nada cambia, el sistema simplemente está pagando por reproducir el mismo fallo.

Los fallos deben clasificarse primero.

Mori - inline image
text
1TIEMPO DE ESPERA AGOTADO EN HERRAMIENTA
2-> reintentar con backoff
3
4ARGUMENTOS INVÁLIDOS
5-> reparar la llamada a la herramienta
6
7CONTEXTO FALTANTE
8-> recuperar la fuente ausente
9
10PRUEBA FALLIDA
11-> inspeccionar el comportamiento defectuoso
12
13PERMISO DENEGADO
14-> solicitar aprobación
15
16REQUISITOS CONTRADICTORIOS
17-> escalar
18
19FALLO REPETIDO SIN CAMBIOS
20-> detener

Un ciclo de agente útil se ve así:

text
1OBSERVAR
2 |
3 v
4DECIDIR
5 |
6 v
7ACTUAR
8 |
9 v
10MEDIR
11 |
12 +---- ACEPTAR
13 |
14 +---- REPARAR
15 |
16 +---- ESCALAR
17 |
18 +---- DETENER

Cada ciclo debería tener límites de intentos, tiempo, gasto y alcance destructivo.

Un agente confiable necesita saber cómo continuar.

También necesita saber cuándo otro intento ya no vale la pena.

10. Convierte las instrucciones repetidas en infraestructura

Supongamos que el prompt contiene:

Ejecuta siempre el formateador.

Esa regla es mucho más sólida si el formateador se ejecuta automáticamente.

Supongamos que las instrucciones dicen:

El código de UI no puede acceder directamente a la base de datos.

Eso es más fuerte como una prueba de arquitectura que falla cuando se rompe la regla.

La progresión se ve así:

text
1EXPLICACIÓN
2 |
3 v
4LISTA DE VERIFICACIÓN
5 |
6 v
7PLANTILLA
8 |
9 v
10COMPROBACIÓN AUTOMATIZADA
11 |
12 v
13POLÍTICA IMPUESTA

El prompt debería explicar el criterio.

El harness debería imponer las invariantes.

Cada error recurrente debería avanzar un poco más en esta escalera.

Eventualmente, el modelo ya no necesitará recordar la lección.

El entorno la recordará por él.

11. Registra la ejecución

Un artefacto final perfecto puede ocultar una ruta de ejecución terrible.

Quizá el agente accedió a la fuente equivocada.

Quizá ignoró un comando fallido.

Quizá repitió una acción externa dos veces.

Quizá gastó diez veces el presupuesto esperado.

Quizá dio la respuesta correcta por el motivo equivocado.

Registra suficiente información para reconstruir lo que sucedió.

text
109:14 contrato de tarea creado
209:15 architecture.md cargado
309:17 checkout.ts editado
409:18 prueba focalizada falló
509:21 implementación reparada
609:22 prueba focalizada pasó
709:24 prueba de integración pasó
809:25 despliegue bloqueado: se requiere aprobación

Las trazas útiles incluyen fuentes de contexto, llamadas a herramientas, cambios de estado, resultados de verificación, motivos de reintento, decisiones de aprobación, costo y latencia.

La idea no es recolectar logs por diversión.

La idea es localizar el fallo.

Si el paso 18 se rompe, deberías poder reparar el paso 18.

No deberías tener que reproducir toda la ejecución.

12. Dale un recibo a cada ejecución

No obligues al humano a revisar una transcripción de cuarenta mensajes.

Compila el resultado en un recibo breve.

text
1OBJETIVO
2
3Corregir la aplicación duplicada de cupones.
4
5MODIFICADO
6
7validación de checkout
8prueba de regresión
9
10VERIFICADO
11
12lint pasó
13pruebas unitarias pasaron
14prueba de integración pasó
15
16NO VERIFICADO
17
18proveedor de pagos en producción
19
20RIESGOS
21
22cliente móvil heredado no disponible
23
24SE NECESITA APROBACIÓN
25
26desplegar en staging

Este no es un resumen de lo que el modelo afirma que pasó.

Es un resumen de lo que el harness puede demostrar que pasó.

Esa diferencia hace que el recibo sea útil para revisiones, traspasos y futuras sesiones del agente.

13. Haz que cada fallo mejore el harness

La mayoría de los equipos corrige el resultado fallido.

El mejor enfoque es corregir el sistema que permitió el fallo.

text
1CONTEXTO FALTANTE
2-> mejorar el mapa del proyecto
3
4HERRAMIENTA INCORRECTA
5-> mejorar el enrutamiento o el contrato de la herramienta
6
7RESULTADO DEFICIENTE
8-> añadir un validador
9
10CICLO REPETITIVO
11-> añadir un límite de reintentos
12
13ACCIÓN INSEGURA
14-> añadir una puerta de enlace de permisos
15
16DECISIÓN PERDIDA
17-> persistir el estado
18
19FALLO DESCONOCIDO
20-> mejorar el trazado

Aquí es donde la ingeniería de harness empieza a generar un efecto compuesto.

Un resultado reparado ayuda a una sola ejecución.

Un harness reparado mejora todas las ejecuciones posteriores.

Los mejores sistemas de agentes se vuelven más confiables porque los errores dejan infraestructura a su paso.

14. Empieza con el harness útil más pequeño

No necesitas una plataforma de orquestación enorme para comenzar.

Construye por capas.

text
1NIVEL 0
2
3prompt
4modelo
5
6NIVEL 1
7
8contrato de tarea
9mapa del proyecto
10herramientas
11
12NIVEL 2
13
14estado estructurado
15verificación
16ciclo acotado
17
18NIVEL 3
19
20permisos
21trazas
22recuperación
23puertas de enlace humanas

Una tarea corta de investigación quizá solo necesite un prompt y una revisión.

Una tarea de programación de seis horas con acceso a archivos, red y capacidad de despliegue necesita mucho más.

Añade complejidad cuando la superficie de fallo lo justifique.

No porque la arquitectura de agentes se vea genial.

La lista de verificación de la Ingeniería de Harness

Antes de darle a un agente una autonomía significativa, pregúntate:

text
1[ ] ¿El éxito está definido antes de la ejecución?
2
3[ ] ¿Puede el agente encontrar el contexto correcto
4 sin cargar absolutamente todo?
5
6[ ] ¿Tiene cada herramienta un propósito claro,
7 un esquema y un estado de fallo?
8
9[ ] ¿Se almacenan las decisiones importantes
10 fuera de la conversación?
11
12[ ] ¿Requiere evidencia la finalización?
13
14[ ] ¿Están las acciones riesgosas protegidas por políticas?
15
16[ ] ¿Tiene cada ciclo un límite de reintentos?
17
18[ ] ¿Puede reanudarse la ejecución tras una interrupción?
19
20[ ] ¿Puedes reconstruir cada acción importante?
21
22[ ] ¿Mejora el fallo alguna regla, herramienta,
23 prueba, mapa o permiso?
24
25[ ] ¿Se puede revertir el cambio final?

Si varias respuestas son negativas, un modelo más potente no hará automáticamente que el agente sea confiable.

Simplemente podría hacer que el fallo sea más rápido y más caro.

El verdadero cambio

La ingeniería de prompts pregunta:

¿Qué debo decirle al modelo?

La ingeniería de contexto pregunta:

¿Qué debería saber el modelo en este momento?

La ingeniería de harness pregunta:

¿Qué sistema le permite al modelo actuar, verificar su trabajo, recuperarse de los fallos y operar de forma segura?

text
1PROMPT
2-> instrucción
3
4CONTEXTO
5-> vista de trabajo
6
7HARNESS
8-> entorno operativo
9
10CICLO
11-> corrección local
12
13GRAFO
14-> coordinación

Los modelos seguirán cambiando.

La ventaja duradera vive a su alrededor.

Tus contratos mejoran.

Tus herramientas mejoran.

Tus pruebas mejoran.

Tu estado se vuelve más limpio.

Tus permisos se vuelven más seguros.

Tu lógica de recuperación se vuelve más inteligente.

Tus fallos se transforman en infraestructura.

Así es como los modelos capaces se convierten en agentes confiables.

Eso es la Ingeniería de Harness.

Si llegaste hasta aquí

Guarda esta guía en tus marcadores.

Sígueme en X: x.com/0xjmori

Suscríbete a mi Substack: substack.com/@lunarresearcher

Envíale este artículo a alguien que todavía intenta solucionar cada fallo de sus agentes con un prompt más largo.

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora 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