¿Cómo se asegura un agente LLM que usa herramientas y function calling?
Respuesta breve
Un agente LLM convierte texto en acciones mediante herramientas y function calls, así que una prompt injection se convierte en una acción real: el riesgo de excessive agency. Asegúralo dando a cada herramienta el mínimo privilegio y alcance que necesite, validando y acotando los argumentos de las herramientas, exigiendo confirmación humana para acciones sensibles o irreversibles, ejecutando en sandbox, limitando la tasa y presupuestando las llamadas, y registrando cada invocación de herramienta. Nunca dejes que la salida del modelo, influida por datos no confiables, autorice directamente una acción de alto impacto.
Un agente es un LLM cableado a herramientas: funciones que puede invocar para leer correo, consultar bases de datos, llamar APIs, ejecutar código o mover dinero. Ahí es donde la prompt injection deja de ser un problema de contenido y se convierte en un problema de acción. Si un atacante puede influir en la entrada del modelo (directamente, o indirectamente mediante un documento o página web recuperados), puede potencialmente hacer que haga cosas. OWASP llama a la versión sobreempoderada de esto excessive agency.
La amenaza
La excessive agency tiene tres variantes: demasiadas herramientas (funcionalidad que no necesitas), demasiados permisos (una herramienta con un alcance más amplio que el que la tarea requiere) y demasiada autonomía (acciones irreversibles ejecutadas sin confirmación). Combina cualquiera de estas con una inyección y obtienes exfiltración de datos, operaciones destructivas o movimiento lateral.
Controles
- Mínimo privilegio por herramienta. Cada función recibe el alcance más estrecho, el acceso a datos más estrecho y las credenciales de vida más corta posibles. Prefiere herramientas de grano fino frente a una herramienta genérica de «ejecuta cualquier cosa».
- Validar los argumentos de las herramientas. Trata los argumentos generados por el modelo como no confiables: comprueba tipos, aplica listas de permitidos y acótalos del lado del servidor antes de ejecutar.
- Humano en el bucle para acciones sensibles o irreversibles (pagos, borrados, envíos externos).
- Sandboxing para cualquier ejecución de código; controles de salida de red para limitar la exfiltración y el SSRF.
- Presupuestos y límites de tasa para acotar el denial-of-wallet y los bucles descontrolados.
- Registro de auditoría completo de cada llamada a herramienta con sus argumentos y el contexto que la disparó.
Qué buscan los entrevistadores
Una cadena clara —inyección más herramientas igual a acciones reales—, nombrar la excessive agency, y una respuesta de mínimo privilegio, humano en el bucle, defensa en profundidad, en lugar de confiar en el system prompt para mantener al agente a raya.
Posibles preguntas de seguimiento
- ¿Qué es la «excessive agency» y cómo reducir su alcance?
- ¿Cómo se vuelve peligrosa la prompt injection indirecta específicamente en un agente?
- ¿Cuándo debería una llamada a herramienta exigir aprobación con humano en el bucle?