Publicado el

🏗️ Harness Engineering

Harness image

El concepto ganó especial relevancia en 2026 a partir de las experiencias de equipos que desarrollan software con agentes de codificación como Codex. El cambio de enfoque de forma muy clara: el trabajo del ingeniero pasa de escribir directamente cada línea de código a diseñar el sistema que permite al agente producir software confiable.

Es la disciplina que construye la "infraestructura de seguridad y control", "the harness" que rodea, guía y limita a la Inteligencia Artificial para que no destruya la producción ni alucine resultados.

👉 El concepto de Harness Engineering "o Ingeniería de Harness/Arneses para IA" representa la evolución crítica en el diseño de software para la era de los agentes autónomos.


🧠 Harness Engineering: La infraestructura de control para Agentes de IA

Cuando pasamos de usar modelos de lenguaje como simples chats "donde una mala respuesta es solo un texto feo" a desplegar agentes autónomos, "que ejecutan comandos en la terminal, modifican bases de datos y realizan despliegues en la nube", el riesgo técnico se multiplica por mil.

Un agente con acceso ilimitado al sistema puede borrar una base de datos por error, entrar en un bucle infinito que agote tu crédito en AWS en minutos o filtrar información confidencial.

La Harness Engineering es la rama de la ingeniería de software dedicada a diseñar, construir y auditar los entornos aislados "sandboxes", las interfaces de herramientas "tooling APIs" y las barreras de seguridad "guardrails" que permiten a los agentes de IA operar de forma autónoma pero 100% segura.


🧠 ¿Qué significa "Harness"?

En inglés, harness puede referirse a un arnés: un conjunto de elementos que permite controlar y dirigir la fuerza de un sistema.

En IA podemos pensar:

                 MODELO DE IA
                 "capacidad"
              ┌───────────────┐
              │    HARNESS    │
              │               │
              │ Contexto      │
              │ Herramientas  │
              │ Restricciones │
              │ Tests         │
              │ Observabilidad│
              │ Seguridad     │
              │ Feedback      │
              └───────┬───────┘
              TRABAJO CONFIABLE

👉 En el contexto de IA, el Harness es el software que envuelve al modelo de lenguaje "LLM" y actúa como su mediador con el mundo exterior:

┌─────────────────────────────────────────────────────────────┐
│                      SISTEMA EXTERNO                        │
│         (Servidores, APIs, Archivos, Base de Datos)         │
└──────────────────────────────┬──────────────────────────────┘
               ┌───────────────┴───────────────┐
               │    HARNESS (EL ARNÉS)         │
               │  • Sandbox & Aislamiento      │
               │  • Control de Permisos        │
               │  • Límite de Presupuesto/Rate │
               │  • Formateo de Herramientas   │
               └───────────────┬───────────────┘
┌─────────────────────────────────────────────────────────────┐
│                       AGENTE DE IA                          │
│          (OpenCode, OpenClaw, Devin, Claude Agent)          │
└─────────────────────────────────────────────────────────────┘

👉 El harness determina qué puede observar, qué puede hacer, cómo recibe información, cómo se verifica su trabajo y qué ocurre cuando falla.


🤖 ¿Por qué aparece Harness Engineering?

En el desarrollo tradicional:

Humano
Escribe código
Ejecuta pruebas
Corrige
Despliega

Con agentes de IA:

Humano
Define objetivo
Agente IA
Analiza
Escribe código
Ejecuta herramientas
Prueba
Corrige
Repite

El problema es que un agente puede:

  • interpretar incorrectamente un requisito;
  • modificar archivos equivocados;
  • utilizar una API incorrectamente;
  • introducir regresiones;
  • quedarse atrapado en un ciclo;
  • generar código que funciona pero viola la arquitectura;
  • repetir patrones deficientes existentes.

Por eso no basta con tener un modelo potente.

👉 Hay que construir un entorno que permita al agente trabajar correctamente.


⚙️ Arquitectura conceptual

Podemos representar un Harness de esta manera:

                  ┌─────────────────┐
                  │    HUMANO       │
                  │ Intención /     │
                  │ objetivos       │
                  └────────┬────────┘
                  ┌─────────────────┐
                  │     AGENTE      │
                  │       IA        │
                  └────────┬────────┘
        ┌──────────────────┼──────────────────┐
        ↓                  ↓                  ↓
   CONTEXTO            HERRAMIENTAS       MEMORIA
        │                  │                  │
        └──────────────────┼──────────────────┘
                    ┌──────────────┐
                    │  EJECUCIÓN   │
                    └──────┬───────┘
                    ┌──────────────┐
                    │ VERIFICACIÓN │
                    └──────┬───────┘
                    ┌──────────────┐
                    │  FEEDBACK    │
                    └──────┬───────┘
                           └──────→ Agente

👉 El agente trabaja dentro de un ciclo de observación → acción → verificación → corrección.


🧩 Componentes principales

1. 📚 Contexto

El agente necesita conocer el proyecto.

Pero darle toda la información indiscriminadamente tampoco funciona bien.

Una de las conclusiones, fue que era mejor proporcionar al agente un mapa del conocimiento que un enorme manual de instrucciones. En su caso, AGENTS.md funciona como índice hacia documentación más profunda almacenada en el repositorio.

Por ejemplo:

AGENTS.md
    ├── Arquitectura
    ├── Convenciones
    ├── Testing
    ├── Seguridad
    └── Documentación

👉 Esto se conoce como hacer que el repositorio sea legible para el agente.


2. 🛠️ Herramientas

El agente necesita herramientas para actuar.

Por ejemplo:

Agente
  ├── Terminal
  ├── Git
  ├── Editor
  ├── Tests
  ├── Browser
  ├── APIs
  ├── Logs
  └── Base de datos

La diferencia fundamental es:

LLM tradicional
→ genera texto

Agente + Harness
→ observa → decide → ejecuta → verifica

3. 🔒 Restricciones y guardrails

Un agente poderoso necesita límites.

Por ejemplo:

❌ No modificar producción directamente
❌ No eliminar bases de datos
❌ No acceder a secretos
❌ No modificar determinadas carpetas

✅ Ejecutar tests
✅ Crear ramas
✅ Modificar código permitido
✅ Ejecutar linters

La idea no es decirle al agente exactamente cómo implementar cada cosa.

👉 La idea es definir qué está permitido y qué debe cumplirse.


4. 🧪 Verificación

Este es uno de los elementos más importantes.

El agente no debería simplemente decir:

"Ya terminé."

El sistema debería comprobarlo.

Implementación
Tests
Lint
Type checking
Tests de integración
Evaluación
¿Todo correcto?
   ↙          ↘
 NO            SÍ
 ↓              ↓
Corregir       Finalizar

👉 Aquí existe una relación muy interesante con TDD:

TDD
Define comportamiento verificable

Harness Engineering
Hace que el agente pueda verificar
automáticamente ese comportamiento

5. 📊 Observabilidad

Un agente necesita poder ver lo que está ocurriendo.

Por ejemplo:

Aplicación
    ├── Logs
    ├── Métricas
    ├── Traces
    └── Screenshots
          Agente

🔄 El feedback loop

Una característica fundamental del Harness Engineering es el ciclo de retroalimentación.

        ┌───────────────┐
        │    Objetivo   │
        └───────┬───────┘
        ┌───────────────┐
        │     Agente    │
        └───────┬───────┘
        ┌───────────────┐
        │    Ejecuta    │
        └───────┬───────┘
        ┌───────────────┐
        │   Verifica    │
        └───────┬───────┘
          ¿Correcto?
           ↙     ↘
         NO       SÍ
         ↓         ↓
     Feedback    Finalizar
         └──────────→ Agente

👉 Cuanto mejor sea este ciclo, mayor autonomía puede tener el agente.


🏛️ Arquitectura y reglas

Imaginemos un proyecto con esta arquitectura:

Types
Config
Repository
Service
Runtime
UI

El agente podría intentar hacer:

UI ─────────→ Repository

Pero nuestra arquitectura establece:

UI → Runtime → Service → Repository

El Harness puede detectar automáticamente la violación mediante:

  • linters;
  • análisis estático;
  • pruebas estructurales;
  • reglas CI/CD.

Así:

Agente
Código
Architecture Linter
❌ Violación
Feedback
Agente corrige

👉 Esto permite que la arquitectura sea ejecutable y verificable, no solamente un documento que alguien debe recordar.


🧹 "Garbage Collection" del código

Existe otro concepto interesante.

Los agentes tienden a copiar los patrones que encuentran en el repositorio.

Si un patrón incorrecto entra al proyecto:

Código incorrecto
Agente lo copia
Más código incorrecto
Otro agente lo copia
📈 Entropía

👉 Por eso Harness Engineering incorpora procesos automáticos de limpieza y mantenimiento.

Repositorio
Scanner
Detectar desviaciones
Crear tarea
Agente refactoriza
Tests
Merge

Este proceso se describe como una especie de garbage collection para evitar que la deuda técnica y los patrones deficientes se acumulen.


👨‍💻 ¿Qué cambia para el desarrollador?

Esta es probablemente la parte más importante.

Desarrollo tradicional

El ingeniero dedica mucho tiempo a:

Diseñar
Programar
Depurar
Probar
Refactorizar

Desarrollo con agentes + Harness Engineering

El ingeniero pasa a dedicar más tiempo a:

Definir objetivos
Diseñar arquitectura
Diseñar herramientas
Definir restricciones
Crear pruebas
Crear feedback loops
Supervisar agentes

Por eso podemos resumir el cambio como:

El ingeniero deja de concentrarse exclusivamente en escribir código y empieza a diseñar el sistema en el que los agentes escriben y mantienen código.


🆚 Prompt Engineering vs Harness Engineering

Prompt EngineeringHarness Engineering
EnfoqueInstrucciónSistema
Principal herramientaPromptInfraestructura
ContextoTexto proporcionadoContexto + repositorio + herramientas
ValidaciónRespuestaTests + herramientas + feedback
SeguridadInstruccionesPermisos + sandbox + políticas
AutomatizaciónLimitadaAlta
EscalabilidadMenorMayor

Una forma sencilla:

Prompt Engineering
"¿Cómo le digo al agente qué hacer?"

Harness Engineering
"¿Cómo construyo un entorno donde pueda
hacerlo correctamente y demostrar que lo hizo?"

🆚 TDD vs Harness Engineering

También podemos relacionarlo con el concepto anterior:

TDDHarness Engineering
Orientado a pruebasOrientado al entorno del agente
Prueba antes del códigoContexto + herramientas + restricciones + feedback
Valida comportamientoValida y controla el trabajo del agente
Principalmente desarrolloArquitectura del sistema agente
Red → Green → RefactorEjecutar → Verificar → Feedback → Corregir

De hecho, pueden complementarse:

              Harness Engineering
        ┌─────────────┼─────────────┐
        ↓             ↓             ↓
      TDD          Linters       CI/CD
        ↓             ↓             ↓
        └─────────────┼─────────────┘
                 AGENTE IA

🦞 Relación con OpenClaw y OpenCode

Esto conecta directamente con los temas que hemos visto.

Los agentes como OpenCode y OpenClaw pueden considerarse ejemplos del tipo de sistemas en los que el harness es fundamental: el agente necesita herramientas, contexto, ejecución, permisos y mecanismos de control.

Podemos visualizarlo así:

                 MODELO IA
              ┌───────────┐
              │  HARNESS  │
              └─────┬─────┘
       ┌────────────┼────────────┐
       ↓            ↓            ↓
   OpenCode      OpenClaw      Codex
       │            │            │
       ↓            ↓            ↓
    Código       Agente       Código

🚀 Harness Engineering + Spec-Driven Development + TDD + BDD

Aquí aparece una combinación muy interesante:

                 REQUISITO
          Spec-Driven Development
              Especificación
                   BDD
            Comportamientos
                   TDD
                Pruebas
          Harness Engineering
          Agente IA + herramientas
              Implementación
          Verificación automática
                 SOFTWARE

Cada disciplina resuelve una parte diferente:

  • Spec-Driven Development → define qué se debe construir.
  • BDD → define cómo debe comportarse para el usuario.
  • TDD → convierte comportamientos en pruebas verificables.
  • Harness Engineering → crea el entorno que permite al agente implementar, comprobar y corregir todo lo anterior.

🧠 La idea fundamental

Podemos resumir Harness Engineering con esta fórmula conceptual:

        Agente confiable
              =
        Modelo de IA
              +
          Contexto
              +
         Herramientas
              +
        Restricciones
              +
         Verificación
              +
        Observabilidad
              +
       Feedback loops

No es una fórmula matemática formal, sino una forma de entender el concepto.

👉 La investigación académica reciente también propone ver al agente como un sistema modelo + harness + entorno, donde el harness media entre lo que el modelo observa, las acciones que puede realizar y la manera en que se determina que una tarea está terminada correctamente.


🏁 Resumen

A medida que la Inteligencia Artificial avanza, los modelos en sí se están volviendo commodities "intercambiables entre OpenAI, Anthropic o modelos locales". El verdadero valor de la ingeniería de software moderna no estará en entrenar los modelos, sino en la Harness Engineering: construir los sistemas de contención elegantes, seguros y escalables que permitan a la IA trabajar en el mundo real sin supervisiones humanas constantes.

Sintetizando, el Harness Engineering es la disciplina de diseñar el "sistema de soporte" alrededor de un agente de IA para que pueda trabajar de forma confiable, verificable y escalable.

              👨‍💻 HUMANO
                  │ intención
             🤖 AGENTE IA
       ┌──────────┼──────────┐
       ↓          ↓          ↓
   Contexto   Herramientas  Reglas
       │          │          │
       └──────────┼──────────┘
              EJECUCIÓN
             🧪 TESTS
          📊 OBSERVABILIDAD
              FEEDBACK
                  └──────→ 🤖 AGENTE