Base: anatomía del loop|INEMA.CLUB-PRO

Clase 2 · 15 min

Harness: lo que queda alrededor del modelo

El modelo solo predice texto: no recuerda, no ve tus archivos, no actúa y no comprueba. Quien hace el trabajo en Claude Code y en Codex es el harness, el programa que rodea al modelo. Cuando el agente falla, la pregunta útil casi nunca es "inténtalo de nuevo": es qué pieza del harness falta. En esta lección haces el inventario del tuyo.

Empezar la lección
Chip de procesador en el centro de una carcasa de aluminio oscuro, rodeado de conectores, cables, un seguro y un indicador.

En esta lección vas a

  1. 1Lo que el modelo hace solo y lo que no
  2. 2Las cinco piezas del harness y el loop que las une
  3. 3Dónde vive cada pieza en tu Claude Code y en tu Codex
  4. 4Leer una falla del agente como una pieza que falta

Objetivo: listar las piezas del harness de tu máquina (contexto, memoria, herramientas, verificación, permisos) y decir cuál de ellas sostiene cada falla.

01El modelo y lo que queda alrededor

Haz clic en cada bloque: qué hace la pieza y dónde vive en tu máquina.

Desplázate por la página: cada etapa de abajo ilumina su parte del diagrama.

  1. 1/7

    Contexto

    Al inicio de cada sesión el modelo no sabe nada de tu proyecto. El harness carga las reglas (CLAUDE.md en Claude Code, AGENTS.md en Codex), la estructura de carpetas y lo que cambió. Lo escribes una vez; él lo lee en cada sesión.

  2. 2/7

    Memoria

    Cuanto más larga la sesión, más llena la ventana de contexto. El harness compacta: mantiene el objetivo y encoge los pasos antiguos. Compactar demasiado pierde detalle; por eso los loops largos guardan el estado en un archivo (lección 5) y el curso 2 trata de los rangos de contexto.

  3. 3/7

    Herramientas

    El modelo solo produce texto. Cuando ese texto es un pedido de herramienta (leer un archivo, correr un comando, editar), el harness lo ejecuta y le devuelve el resultado al modelo. MCP es la forma estándar de conectar herramientas de otros sistemas.

  4. 4/7

    Verificación

    Sin verificación, el modelo mira el código y dice "se ve bien". Con ella, corre la prueba y lee el resultado. Un resultado real vale más que la IA diciendo que está bien. Es la pieza que más necesita el loop (clases 1 y 6; curso 1).

  5. 5/7

    Permisos

    El harness revisa cada acción antes de ejecutarla: editar pasa, borrar pregunta. Los hooks corren tus scripts antes y después de las herramientas; el sandbox limita hasta dónde llega un comando. En un loop sin que tú mires, es lo que contiene el radio de daño (curso 4).

  6. 6/7

    Loop del agente

    Juntando todo: el modelo piensa y pide una herramienta, el permiso la revisa, el harness la corre, el resultado vuelve y el ciclo sigue hasta lograr el objetivo. El harness no vuelve al modelo más inteligente; lo vuelve más útil.

  7. 7/7

    ¿Falló? Busca la pieza

    Olvidó la regla del proyecto: contexto. Perdió el hilo después de horas: memoria. No logró hacerlo: herramienta. Dijo listo sin estarlo: verificación. Hizo lo que no debía: permisos.

Claude Code y Codex son harnesses. El mismo modelo en harnesses distintos da resultados distintos.

02Dos lecciones de quienes construyen harnesses

De posts de ingeniería públicos (investigación del 19/10/2026).

1. Pregunta qué falta

En el post "Harness engineering", la lección central es: cuando el agente falla, preguntar qué capacidad, contexto o estructura falta, en vez de mandarlo a intentar más.

En la práctica: la corrección va al harness (una regla en el AGENTS.md, una herramienta, una prueba), no a un prompt más enfático.

03Inventario de tu harness

Solo lectura: no se altera nada. Córrelo en tu máquina y anota lo que apareció.

Terminal · contexto y memoria
ls -la ~/.claude/CLAUDE.md ~/.codex/AGENTS.md 2>&1
wc -l ~/.claude/CLAUDE.md ~/.codex/AGENTS.md 2>/dev/null
ls CLAUDE.md AGENTS.md 2>&1   # en el proyecto actual
Terminal · herramientas (MCP) y skills
claude mcp list
ls ~/.claude/skills 2>/dev/null | wc -l
Terminal · permisos y hooks de Claude Code (usuario y proyecto; ejecútalo en la carpeta del proyecto)
python3 - <<'PY'
import json, pathlib
for p in (pathlib.Path.home() / ".claude/settings.json",   # usuario
          pathlib.Path(".claude/settings.json"),            # proyecto (va al git)
          pathlib.Path(".claude/settings.local.json")):     # proyecto, solo en esta máquina
    if not p.exists():
        print(f"{p}: não existe")
        continue
    d = json.loads(p.read_text())
    perm = d.get("permissions", {})
    print(f"{p}: hooks {sorted(d.get('hooks', {})) or 'nenhum'} · allow {len(perm.get('allow', []))} · deny {len(perm.get('deny', []))}")
PY
Terminal · sandbox y aprobación de Codex
grep -nE '^(sandbox_mode|approval_policy)' ~/.codex/config.toml || echo "padrão do Codex (sem chave no config)"
harness.md · modelo para completar
# Mi harness — <fecha>
contexto: <archivos de reglas que el agente lee al empezar>
memória: <cómo guardo lo que no se puede perder: handoff, archivos de estado, nada>
ferramentas: <MCP y skills que uso de verdad>
verificação: <el comando que prueba que salió bien en mi proyecto principal>
permissões: <hooks y reglas allow/deny; sandbox de Codex>
peça mais fraca: <cuál y por qué>

04Video: el harness por dentro

Contexto, memoria, herramientas, verificación, permisos y el loop del agente, una pieza por capítulo (10/10/2026).

AI harness: quién hace el trabajo de la IA · 7 minPágina del video con guion →

05Práctica

En tu máquina. Pasa al siguiente solo cuando el "listo cuando" sea verdad.

E1 · Inventario

15 min

Ejecuta los cuatro bloques del inventario y completa el harness.md con lo que apareció, una línea por pieza. Escribe las marcas del comienzo de la línea exactamente como están en el modelo: el grep del "listo cuando" las busca.

Listo cuando: grep -cE '^(contexto|memória|ferramentas|verificação|permissões):' harness.md → 5, y grep -c '<' harness.md → 0 (ningún marcador de la plantilla quedó sin completar).

E2 · ¿Realmente se lee el contexto?

10 min

Agrega al CLAUDE.md (o AGENTS.md) del proyecto una regla fácil de comprobar, por ejemplo "toda respuesta termina con la palabra CONFERIDO". Abre una sesión nueva y pide cualquier cosa.

Listo cuando: La respuesta de la sesión nueva termina con CONFERIDO sin que tú lo pidas. Después borra la regla: grep -c CONFERIDO CLAUDE.md → 0.

E3 · Una falla, una pieza

10 min

Recuerda una falla real del agente en las últimas semanas. Escribe en harness.md la línea "peça mais fraca:" con la pieza dueña de la falla y la corrección que va al harness, no al prompt.

Listo cuando: grep '^peça mais fraca:' harness.md → una línea que cite una de las cinco piezas y un archivo, comando o herramienta concreta.

06Prueba de la lección

Pregunta 1 de 4

En cada sesión nueva el agente olvida que el proyecto usa pnpm y ejecuta npm. ¿Qué pieza del harness lo resuelve?competencia

07En tres frases

El modelo decide, el harness haceContexto, memoria, herramientas, verificación y permisos están alrededor del modelo y el loop los une.
Toda falla tiene dueñaAntes de intentarlo de nuevo, pregunta qué pieza faltó y corrígela en el harness.
Reevalúa con cada modeloCada pieza codifica una suposición sobre el modelo; un modelo nuevo pide revisión.

Para ir más allá

Clase anteriorPróxima clase