Temario · lección 60 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
Claude Code por dentro
El núcleo de Claude Code es un bucle sencillo; lo que lo hace fiable es todo lo que lo rodea: memoria por capas, compactación en niveles, permisos, hooks y subagentes.
Un bucle pequeño dentro de un edificio grande
Piensa en una cafetera de cápsulas. El gesto es sencillo: meter cápsula, pulsar, sale café. Pero la máquina lleva dentro bomba, termostato, sensores y un depósito que avisa cuando se vacía. Eso es Claude Code: el corazón es un bucle (llamar al modelo, ejecutar herramientas, mirar el resultado, volver a llamar), y casi todo el código está en lo que rodea al bucle.
Esta lección recorre sus piezas con el marco del curso: instrucciones, contexto, herramientas, verificación y estado. Si no recuerdas qué es cada subsistema, repásalo en los cinco subsistemas.
Instrucciones: memoria por capas
Cada sesión de Claude Code empieza con la ventana de contexto vacía. Lo que sabe de tu proyecto lo lee de archivos CLAUDE.md, que se reparten por alcance:
| Alcance | Dónde vive | Para qué |
|---|---|---|
| Organización | Ruta gestionada por IT | Normas de toda la empresa |
| Usuario | ~/.claude/CLAUDE.md | Tus preferencias en todos los proyectos |
| Proyecto | ./CLAUDE.md | Estructura, stack y comandos de verificación |
| Local | ./CLAUDE.local.md | Tus preferencias en este proyecto (fuera de git) |
Los CLAUDE.md de subcarpetas no se cargan al arrancar: entran cuando Claude lee un archivo de esa carpeta. Además existe la auto memory, notas que Claude toma de tus correcciones (carga como máximo las primeras 200 líneas o 25 KB). Así evita el problema del archivo gigante: carga lo cercano, no todo.
Contexto: compactar en varios niveles
Cuando la conversación crece, Claude Code no se limita a «resumir cuando se llena». Según el análisis de código que recoge el repo, usa un embudo de cinco niveles: primero poda sin pérdida (quita resultados repetidos de herramientas), luego extracción estructurada y solo al final un resumen con pérdida hecho por el modelo, con un freno para no compactar de más. Es como ordenar un armario: primero tiras lo que sobra, después doblas, y solo al final comprimes en bolsas al vacío.
El historial se guarda añadiendo líneas (history.jsonl) y /resume lo recupera o lo bifurca. Comandos como /compact, /clear y /init te dejan gestionar el contexto tú mismo; /init analiza el código y genera un CLAUDE.md inicial.
Herramientas: cuatro tipos de extensión
Cada extensión resuelve una pregunta distinta:
- CLAUDE.md: qué es este proyecto.
- Skills: cómo se hace algo (se cargan al activarse, no antes).
- MCP: a qué sistemas externos conectarse.
- Hooks: cuándo imponer una regla.
Si mezclas capas (por ejemplo, metes en CLAUDE.md lo que debería ser una conexión MCP), el contexto se llena de cosas fuera de sitio.
Verificación: reglas que no dependen del modelo
- Permisos: siete modos y un clasificador; lo de bajo riesgo pasa, lo de alto riesgo se pregunta o se rechaza. El límite lo impone el programa, no una frase en el prompt.
- Hooks: scripts deterministas enganchados a eventos (
PreToolUse,PostToolUse,Stop). Un hookStopsalta cuando el agente dice «ya está» y puede obligarle a comprobar. Anthropic observó que los agentes alaban con seguridad su propio trabajo, así que la comprobación no puede depender de su opinión. - Subagentes: su conversación va a un archivo aparte y no engorda el contexto del agente padre.
Un hook mínimo, a modo de idea (la sintaxis exacta consúltala en la documentación oficial):
Evento: Stop
Regla: antes de aceptar "terminado", ejecutar ./init.sh y
rechazar el cierre si los tests fallan.
Quieres garantizar que el agente no pueda dar una tarea por terminada sin pasar los tests. ¿Qué mecanismo de Claude Code encaja mejor?
Fuentes: Learn Harness Engineering, harness-designs/claude-code · Documentación oficial de Claude Code (según el repo) · Anthropic, Effective harnesses for long-running agents (según el repo)