Temario · lección 39 de 74
1Por qué fallan los agentes
2Qué es un harness
3Patrones de agentes
4Herramientas
5Ingeniería de contexto
6El repositorio como memoria
7Tareas largas
8Alcance y “hecho” de verdad
9Observabilidad y estado limpio
10Loops y grafos
11Harness reales
12Proyecto final
- Proyecto 1, solo prompt contra harness mínimo
- Proyecto 2, un workspace legible
- Proyecto 3, continuidad entre sesiones
- Proyecto 4, feedback de runtime e indexado
- Proyecto 5, que el agente verifique su trabajo
- Proyecto 6, el harness completo (capstone)
- Proyecto 7, tu primer loop automático
- Proyecto 8, dibuja tu flujo como un grafo
- Checklist final y plantillas
El contrato de inicialización
Un documento corto y un script init que dicen cómo instalar, arrancar y probar, cómo se organiza el proyecto y qué tareas hay. Es lo primero que lee cada sesión nueva.
Las instrucciones de la lavadora
Cuando compras una lavadora, el manual dice dónde enchufarla, cómo ponerla en marcha y cómo saber si funciona. Nadie lo adivina probando botones.
El contrato de inicialización (en la lección, «contrato de bootstrap») es ese manual para el proyecto. Recoge las condiciones bajo las que una sesión nueva puede trabajar sin ambigüedad: puede arrancar, puede probar, ve el progreso y sabe por dónde seguir.
Pieza 1: el documento del contrato
Tres partes: comandos, estado y estructura. Ejemplo para copiar y adaptar:
# Contrato de inicialización
## Comandos
- Instalar dependencias: `make setup`
- Arrancar en desarrollo: `make dev`
- Ejecutar pruebas: `make test`
- Verificación completa: `make check`
## Estado actual
- Dependencias instaladas y bloqueadas
- Pruebas configuradas (Vitest + React Testing Library)
- Prueba de ejemplo pasando (1/1)
- Reglas de lint configuradas
## Estructura
- src/ código fuente
- src/components/ componentes
- src/api/ cliente de la API
- tests/ pruebas
Los nombres de herramientas son del ejemplo de la lección; sustitúyelos por los de tu proyecto. Lo importante es que haya un único comando canónico de arranque y uno de verificación.
Pieza 2: el script de arranque
La plantilla init.sh del curso es un script corto que hace tres cosas: sincroniza dependencias, ejecuta la verificación base y muestra el comando de arranque (solo lo lanza si se lo pides con RUN_START_COMMAND=1). Su esqueleto:
#!/usr/bin/env bash
set -euo pipefail
INSTALL_CMD=(npm install)
VERIFY_CMD=(npm test)
START_CMD=(npm run dev)
"${INSTALL_CMD[@]}" # 1. dependencias
"${VERIFY_CMD[@]}" # 2. verificación base
echo "Arranque: ${START_CMD[*]}" # 3. cómo arrancar
La versión completa está en las plantillas del curso; cambia las tres variables por las de tu repo. Para Windows existe la misma idea en PowerShell. Así «arrancar el proyecto» deja de ser un conjunto de pasos que hay que recordar y pasa a ser un solo comando.
Pieza 3: el desglose de tareas
El proyecto entero se divide en una lista ordenada de tareas, cada una con su criterio de aceptación:
## Tarea 1: Autenticación básica
- Implementar middleware JWT
- Añadir endpoints de login y registro
- Aceptación: pytest tests/test_auth.py pasa entero
## Tarea 2: Página de perfil
- CRUD de perfil y formulario de edición
- Aceptación: pytest tests/test_profile.py pasa entero
Más adelante veremos que este desglose evoluciona hacia la lista de funciones en formato de máquina. De momento basta con que cada tarea diga cómo se comprueba.
Revisión de salida del inicializador
Antes de cerrar la sesión de inicialización pregúntate:
- ¿Hay un comando de arranque canónico?
- ¿Hay un comando de verificación canónico?
- ¿Existe un primer artefacto de progreso?
- ¿Hay un primer commit estable?
- ¿Hay una lista de funciones visible para las sesiones posteriores?
Cinco síes y tienes unos cimientos útiles.
¿Qué debe ofrecer el contrato de inicialización para cada acción clave (arrancar, verificar)?
Fuentes: Learn Harness Engineering, lección 06 · Learn Harness Engineering, plantilla init.sh · Anthropic, Effective harnesses for long-running agents