Pinguy Learning
Temario · lección 20 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
Herramientas· 8 min de lectura

Diseña buenas herramientas

En 30 segundos

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:

  1. Deja al modelo tokens suficientes para «pensar» antes de que se meta en un callejón sin salida.
  2. Mantén el formato cerca de lo que aparece de forma natural en internet.
  3. 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")
Comprueba lo aprendido

¿Qué cambio resolvió los errores con rutas relativas en el agente de SWE-bench?

Es un ejemplo de poka-yoke: cambiar el argumento para que el error sea difícil. Con rutas absolutas el modelo las usó sin fallar.

Fuentes: Anthropic, Building effective agents (apéndice 2)