> ## 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.

# Segurança e validação de chamadas de ferramentas

> Valide os argumentos das ferramentas, reforce a execução e evite ações inseguras do modelo.

Trate os argumentos de ferramentas gerados pelo modelo como entradas não confiáveis.

## Checklist de segurança

* Mantenha os schemas de ferramentas mínimos e explícitos.
* Valide os argumentos analisados antes de executar a ferramenta.
* Permita apenas nomes de ferramentas autorizados e rejeite os desconhecidos.
* Adicione timeouts e novas tentativas para chamadas externas.
* Registre o ID da chamada, o nome da ferramenta e as falhas de validação.

## Exemplo de validação de solicitação (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);
}
```

## Estratégia para falhas

Se a validação falhar:

1. Não execute a ferramenta.
2. Retorne um erro controlado na próxima rodada do modelo.
3. Peça ao modelo para tentar novamente com argumentos corrigidos.

## Observação sobre streaming

Chamadas de ferramentas em streaming dependem do suporte do modelo e do provedor. Acumule todos os fragmentos de argumentos antes de analisar, validar ou executar uma chamada. Veja [Streaming](./streaming.mdx).


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