Marcio Cunha

Cómo implementar Function Calling seguro con guardrails en LLMs

Aprenda a blindar llamadas de herramientas de inteligencia artificial validando esquemas JSON, sanitizando parámetros y previniendo ataques de inyección de prompt.

Marcio Cunha•6 min
También disponible en:PortuguêsEnglish
Resumen
  • Los modelos de lenguaje aceptan cualquier texto del usuario y pueden ser manipulados para ejecutar comandos peligrosos en sistemas conectados.
  • Los esquemas estrictos impiden que el modelo envíe parámetros inesperados o claves maliciosas a las APIs internas.
  • Sanitizar los datos de entrada y salida garantiza que los caracteres de control y comandos arbitrarios sean neutralizados antes del procesamiento.
  • La validación en capas separa la interpretación de la IA de la ejecución real en bases de datos o servicios corporativos.
  • Los sistemas empresariales exigen una auditoría rigurosa de todas las llamadas generadas por herramientas autónomas de IA.

¿Por qué Function Calling necesita guardrails en la empresa?

Cuando permitimos que los modelos de inteligencia artificial interactúen con el mundo real a través de llamadas de herramientas, abrimos una puerta potente pero también un vector de riesgo considerable. En la práctica, el recurso conocido como Function Calling permite que la IA elija una función programada y rellene sus parámetros basándose en la conversación con el usuario. Sin embargo, sin barreras de seguridad adecuadas —los llamados guardrails o cercas de protección—, el modelo puede ser engañado para borrar datos, consultar información confidencial o ejecutar código malicioso en el servidor.

Para entender la gravedad del problema, imagine un asistente virtual de atención al cliente conectado a una API de base de datos para cancelar suscripciones. Si un usuario malintencionado escribe un comando disfrazado pidiendo ignorar instrucciones anteriores y borrar todas las cuentas, una IA desprevenida puede intentar pasar ese comando directamente a la herramienta. Tal como detallamos en nuestra guía sobre cómo usar Function Calling en LLMs para integrar APIs externas, conectar modelos a sistemas corporativos exige vigilancia constante sobre los datos que transitan entre la interfaz de conversación y el código backend.

La seguridad en los sistemas corporativos no puede depender únicamente de la buena voluntad del modelo de lenguaje. Incluso los modelos más modernos sufren ocasionalmente de desviaciones de comportamiento o manipulaciones maliciosas conocidas como inyección de prompt. Por lo tanto, la ingeniería de software moderna exige un enfoque de defensa en profundidad, donde el modelo es tratado como un usuario externo no confiable cuyas solicitudes deben ser rigurosamente inspeccionadas antes de tocar cualquier base de datos o microservicio crítico.

Validando esquemas JSON con rigor estricto

El primer paso para garantizar la seguridad en el uso de herramientas es imponer un contrato rígido entre la inteligencia artificial y su aplicación a través de esquemas estructurados. En lugar de aceptar texto libre generado por el modelo, la arquitectura debe utilizar especificaciones rigurosas como JSON Schema para definir exactamente qué campos están permitidos, qué tipos de datos se aceptan y qué parámetros son obligatorios para cada función disponible.

En la práctica, esto significa que si la herramienta espera un número de identificación de cliente como un entero, cualquier respuesta generada por la IA que contenga texto corrupto o código ejecutable será rechazada inmediatamente por la biblioteca de validación antes de llegar a la función de backend. Esta barrera impide que las inyecciones de texto crucen la frontera del modelo hacia la lógica de negocio. Además, cuando combinamos esta validación con estrategias eficientes de optimización de costos y latencia, como implementar caché semántico en LLMs para reducir costos, garantizamos que las respuestas seguras y validadas también aporten ahorros operativos.

Las herramientas de desarrollo modernas ofrecen soporte nativo para la validación estricta de esquemas directamente en la capa de API del proveedor de IA. Sin embargo, depender únicamente de la API externa no es suficiente; la aplicación receptora debe revalidar el JSON recibido utilizando bibliotecas locales robustas y confiables. Esta doble verificación asegura que, incluso si el proveedor de IA sufre inestabilidades o cambios de comportamiento, su sistema interno permanezca protegido contra cargas útiles malformadas o maliciosas.

Sanitización y limpieza de parámetros en la práctica

Validar la estructura del JSON no es suficiente si el contenido interno de los parámetros contiene datos peligrosos o maliciosos. La sanitización consiste en el proceso de limpiar, filtrar o escapar caracteres especiales que podrían ser interpretados de manera indeseada por bases de datos, intérpretes de shell o bibliotecas de terceros. Cada parámetro generado por la IA debe ser tratado como una entrada de usuario estándar y sometido a las mismas reglas de higiene de software.

Considere el siguiente ejemplo simplificado en Python utilizando validación de esquemas y tratamiento de parámetros antes de ejecutar una consulta interna:

import json
from jsonschema import validate, ValidationError

# Esquema estricto para la herramienta de búsqueda de usuarios
USER_SCHEMA = {
    "type": "object",
    "properties":
        "username": {"type": "string", "pattern": "^[a-zA-Z0-9_]{3,20}$"}
    },
    "required": ["username"],
    "additionalProperties": False
}

def execute_safe_query(tool_call_arguments):
    try:
        # Valida el formato contra el esquema rígido
        validate(instance=tool_call_arguments, schema=USER_SCHEMA)
        
        # Sanitización adicional contra inyecciones
        username = tool_call_arguments["username"].strip()
        
        # Ejecuta la operación de forma segura
        return f"Consultando base de datos para el usuario: {username}"
    except ValidationError as e:
        return f"Error de seguridad: parámetros inválidos detectados. {e.message}"

En este ejemplo, el uso de una expresión regular restringida en el esquema garantiza que solo se acepten caracteres alfanuméricos y guiones bajos en el nombre de usuario, bloqueando intentos de insertar caracteres especiales o comandos SQL maliciosos. Si la IA intenta pasar una cadena con comandos adicionales, la validación fallará inmediatamente y el sistema registrará una alerta de seguridad.

Prevención contra inyección de prompt en entornos corporativos

La inyección de prompt ocurre cuando instrucciones maliciosas se incrustan en datos procesados por la inteligencia artificial —como correos electrónicos recibidos, archivos subidos o páginas web leídas por un agente autónomo—, haciendo que el modelo interprete dichos datos como órdenes directas. Cuando el modelo es engañado de esta manera, puede activar herramientas legítimas con argumentos fraudulentos creados por el atacante.

Para mitigar este riesgo en entornos corporativos, es fundamental implementar barreras de aislamiento de contexto y separar claramente las instrucciones del sistema de los datos del usuario y del contenido externo no confiable. El uso de delimitadores claros y el entrenamiento de modelos de monitoreo secundarios para inspeccionar las intenciones del agente antes de la ejecución física de las herramientas ayudan a contener acciones no deseadas.

Además, cuando los agentes autónomos realizan operaciones financieras o transacciones sensibles, los guardrails deben exigir la aprobación humana obligatoria (el concepto de human-in-the-loop) siempre que el monto o el riesgo superen un umbral preestablecido. Esta capa final de supervisión garantiza que los fallos en la inteligencia artificial no se traduzcan en pérdidas operativas o financieras reales para la organización. Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre ChatGPT Wallet: Cómo los agentes de IA hacen pagos seguros.

Consideraciones finales sobre la gobernanza de IA

Implementar Function Calling seguro no es solo una tarea técnica puntual, sino un pilar fundamental de la gobernanza de la inteligencia artificial en cualquier empresa moderna. A medida que los agentes autónomos ganan más autonomía para interactuar con sistemas internos, APIs de pagos y bases de datos, la responsabilidad de la seguridad de los datos abarca tanto el código tradicional como el comportamiento impredecible de los modelos de lenguaje.

Al combinar la validación estricta de esquemas JSON, la sanitización profunda de parámetros, el aislamiento riguroso de contextos y la aprobación humana en flujos críticos, las organizaciones pueden extraer el máximo potencial de la inteligencia artificial sin exponer sus infraestructuras a riesgos inaceptables. La inversión continua en el monitoreo y la auditoría de estas llamadas garantiza un ecosistema digital resiliente, preparado para un crecimiento seguro y predecible.