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