Temario · lección 31 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
Gestionar el estado con principios ACID
Una analogía con las bases de datos da cuatro reglas prácticas para el estado del agente: commits atómicos, verificar la consistencia, aislar a los agentes en paralelo y guardar lo importante en archivos.
Una transferencia a medias
Imagina que transfieres 100 euros y el banco resta el dinero de tu cuenta, pero se cae antes de sumarlo en la otra. Dinero perdido. Los bancos evitan esto con reglas muy estrictas para sus operaciones, conocidas por las siglas ACID.
El curso toma prestada esa idea para el estado de un agente: todo lo que ha hecho, en qué punto está y qué ha cambiado. Parece complicado, pero se reduce a cuatro hábitos.
Atomicidad: todo o nada
Cada operación lógica (por ejemplo «añadir un endpoint y actualizar sus tests») recibe un commit de git. Si falla a la mitad, se revierte (con git stash o descartando cambios). No existe el «medio hecho».
Consistencia: nunca guardes un estado roto
Define qué es un estado consistente: todos los tests pasan, el linter no da errores. El agente comprueba esto tras cada operación y no hace commit de estados intermedios inconsistentes. Como la transferencia: no puedes restar sin sumar.
Aislamiento: no pisarse entre agentes
Cuando varios agentes trabajan a la vez, sus archivos de estado deben evitar choques. Soluciones simples: que cada agente tenga su propio archivo de progreso, o usar ramas de git separadas. Dos cocineros no sazonan la misma olla a la vez: si queda salada, no se sabe quién fue.
Durabilidad: lo importante, escrito
El conocimiento clave del proyecto vive en archivos versionados con git. El estado temporal puede quedarse en la memoria de la sesión, pero lo que debe sobrevivir entre sesiones se guarda en archivos. Lo que está en la «cabeza» del agente no cuenta; cuenta lo escrito.
| Letra | Principio | Hábito práctico |
|---|---|---|
| A | Atomicidad | Un commit por operación lógica; revertir si falla |
| C | Consistencia | Tests y lint tras cada paso; no commitear a medias |
| I | Aislamiento | Un archivo de progreso o una rama por agente |
| D | Durabilidad | Lo importante en archivos versionados |
Ejemplo mínimo
Un flujo de trabajo en el AGENTS.md que aplica los cuatro principios:
## Al terminar cada tarea
1. Ejecuta `npm run check` (tests + lint).
2. Si falla, corrige o revierte; nunca hagas commit en rojo.
3. Haz un commit por tarea con mensaje descriptivo.
4. Apunta el resultado en PROGRESS.md.
¿Qué resuelve el principio de atomicidad aplicado a un agente?
Fuentes: Learn Harness Engineering, lección 03