Pinguy Learning
Temario · lección 60 de 74
0Empieza aquí
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
Harness reales· 8 min de lectura

Claude Code por dentro

En 30 segundos

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:

AlcanceDónde vivePara qué
OrganizaciónRuta gestionada por ITNormas de toda la empresa
Usuario~/.claude/CLAUDE.mdTus preferencias en todos los proyectos
Proyecto./CLAUDE.mdEstructura, stack y comandos de verificación
Local./CLAUDE.local.mdTus 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 hook Stop salta 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.
Comprueba lo aprendido

Quieres garantizar que el agente no pueda dar una tarea por terminada sin pasar los tests. ¿Qué mecanismo de Claude Code encaja mejor?

Los hooks son deterministas: los ejecuta el programa, no depende de que el modelo se acuerde ni de que se autoevalúe bien.

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)