Temario · lección 20 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
Diseña buenas herramientas
Una herramienta se diseña como una interfaz para el modelo (ACI). Nombres claros, formatos fáciles de escribir y parámetros a prueba de errores valen tanto como el prompt.
El cuadro de mandos del coche
Si los botones de un coche no tuvieran etiquetas y el de las luces estuviera pegado al del limpiaparabrisas, te equivocarías a menudo. Los humanos invertimos mucho esfuerzo en diseñar interfaces de persona a ordenador (HCI). Anthropic propone invertir lo mismo en la interfaz agente-ordenador (ACI, agent-computer interface): las herramientas que usa el modelo.
Dato de su propia experiencia: al construir su agente para SWE-bench, dedicaron más tiempo a optimizar las herramientas que el prompt general.
Elige formatos que el modelo escriba bien
Una misma acción se puede expresar de varias formas. Para humanos son equivalentes; para un modelo, no. Ejemplos de la fuente:
- Editar un archivo con un diff exige saber cuántas líneas cambian en la cabecera antes de escribir el código nuevo. Reescribir el archivo entero evita eso.
- Devolver código dentro de JSON obliga a escapar saltos de línea y comillas; dentro de markdown, no.
Tres reglas:
- Deja al modelo tokens suficientes para «pensar» antes de que se meta en un callejón sin salida.
- Mantén el formato cerca de lo que aparece de forma natural en internet.
- Evita el sobrecoste de formato: contar miles de líneas con exactitud o escapar todo el código.
Ponte en el lugar del modelo
Pregúntate si el uso de la herramienta es obvio a partir de su descripción y parámetros. Si tú tendrías que pensarlo, el modelo también. Una buena definición suele incluir:
- ejemplos de uso,
- casos límite,
- requisitos del formato de entrada,
- y límites claros respecto a otras herramientas parecidas.
Piensa en ello como escribir un buen docstring para un desarrollador junior. Es crucial cuando hay muchas herramientas similares.
Poka-yoke: que sea difícil equivocarse
Poka-yoke es un término japonés de fabricación: diseñar para que el error sea difícil. Aplícalo cambiando los argumentos. El ejemplo de Anthropic: el modelo fallaba con rutas relativas cuando el agente se había movido fuera del directorio raíz. Solución: exigir siempre rutas absolutas. Después el modelo las usaba sin fallar.
Mal: editar_archivo(ruta="src/app.py") # ¿relativa a qué?
Bien: editar_archivo(ruta_absoluta="/proyecto/src/app.py")
¿Qué cambio resolvió los errores con rutas relativas en el agente de SWE-bench?
Fuentes: Anthropic, Building effective agents (apéndice 2)