> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Seguridad y validación de llamadas a herramientas

> Valida los argumentos de las herramientas, protege su ejecución y evita acciones inseguras del modelo.

Trata los argumentos de herramientas generados por el modelo como datos no confiables.

## Lista de comprobación de seguridad

* Mantén los esquemas de herramientas mínimos y explícitos.
* Valida los argumentos analizados antes de ejecutar la herramienta.
* Permite solo los nombres de herramientas autorizados y rechaza los desconocidos.
* Añade tiempos de espera y reintentos a las llamadas externas.
* Registra el ID de llamada, el nombre de la herramienta y los fallos de validación.

## Ejemplo de validación de solicitudes (TypeScript + Zod)

```typescript theme={null}
import { z } from "zod";

const WeatherArgs = z.object({
  city: z.string().min(1),
});

function executeToolCall(name: string, rawArgs: string) {
  if (name !== "get_weather") {
    throw new Error(`Unsupported tool: ${name}`);
  }

  const parsed = WeatherArgs.parse(JSON.parse(rawArgs));
  return getWeather(parsed.city);
}
```

## Estrategia ante fallos

Si falla la validación:

1. No ejecutes la herramienta.
2. Devuelve un mensaje de error controlado en el siguiente turno del modelo.
3. Pide al modelo que lo intente de nuevo con argumentos corregidos.

## Nota sobre streaming

Las llamadas a herramientas en streaming dependen de la compatibilidad del modelo y del proveedor. Acumula todos los fragmentos de argumentos antes de analizarlos, validarlos o ejecutar una llamada. Consulta [Streaming](./streaming.mdx).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.