El function calling transforma un LLM de generador de texto en un agente que opera sistemas: el modelo devuelve JSON estructurado describiendo la llamada de herramienta, tu código ejecuta y el resultado vuelve al contexto. La demo es fácil; producción cobra guardrails. Los patrones siguientes separan la demostración que impresiona del agente que sobrevive a tráfico real.
La calidad del schema define la confiabilidad
Un modelo bueno llena un schema malo con basura plausible. La disciplina de schema viene antes de la elección de modelo: tipos estrictos en JSON Schema, enums en lugar de strings libres y descripción detallada por parámetro, con ejemplo de valor. Un campo date descrito como "fecha" recibe "mañana"; descrito como ISO 8601 con rango válido, recibe 2026-05-24. Un catálogo de herramientas demasiado grande en el mismo request confunde al modelo; mantenlo por debajo de 20 por llamada y compón flujos en vez de acumular opciones.
El loop del agente y el budget de pasos
El ciclo clásico: planificar, actuar, observar, repetir hasta cumplir la meta. Sin techo de pasos, una meta imposible se vuelve un loop infinito quemando tokens contra el rate limit. Cap entre 10 y 25 iteraciones, con mensaje de fallo explícito al superarlo: "no completé X tras 15 intentos" es producto; stack trace es bug. Registra el motivo de término; meta alcanzada, budget agotado y error repetido cuentan historias diferentes.
Herramientas que sobreviven al retry
- Pocas herramientas componibles le ganan a muchas superpuestas: 8 bien diseñadas superan a 40 confusas
- Las operaciones idempotentes sobreviven al retry; pasa un
request_idgenerado por el agente para deduplicar - Errores estructurados que el modelo puede razonar:
{"error": "card_declined", "retryable": false}orienta la próxima acción
Niveles de autonomía por radio de daño
La autonomía es un espectro, y el blast radius define el tier. Una consulta de lectura corre autónoma con límites; escritura en base de datos de producción pide aprobación humana; pago ejecuta con confirmación explícita. Tres tiers cubren casi todo: suggest-only, execute-with-approval, autonomous-with-limits. El cambio de tier acompaña el cambio de riesgo: una integración de pago nueva empieza suggest-only por dos semanas.
Observabilidad de cada llamada
Registra cada tool call con input, output, latencia y gasto en tokens; los spans de OpenTelemetry amarran cadenas multi-step en una trace única. Guarda el prompt montado y el resultado crudo en cada trace; el replay de incidentes depende de eso. Sin eso, depurar un agente se vuelve adivinanza; con eso, "por qué eligió el agente esa herramienta" se vuelve query.
Patrones de fallo conocidos
- Loop de retry infinito ante herramienta caída: circuit breaker en el executor, backoff con techo
- Nombre de herramienta alucinado: el dispatch valida contra lista cerrada y devuelve error descriptivo al modelo
- Desborde de context window por resultado verboso: trunca con resumen y pagina resultados grandes
¿Te gustó el contenido?
Construyo productos web y soluciones con IA de la manera correcta — arquitectura sólida, código sostenible y entrega real.
Hablemos