4.1
GA
~65 min · Intermediário · Hands-on
🛠️ Tool/function calling provider-neutral
Como o modelo invoca funções estruturadas. JSON Schema como contrato, tratamento de erro, sandbox obrigatório.
1 📋 JSON Schema: o contrato do tool ▾
O que é: Cada tool tem schema declarativo: nome, descrição, parâmetros tipados (string, number, enum, etc.) com required.
Por que aprender: Schema bom = chamada confiável. Modelo usa descrição para escolher e schema para formatar argumentos.
Conceitos-chave: JSON Schema 2020-12, parameter validation, required fields, oneOf.
2 ✏️ Descrição do tool: o prompt do prompt ▾
O que é: Texto livre que descreve quando usar o tool. É lido pelo LLM ao decidir ferramenta.
Por que aprender: Modelos escolhem tool com base na descrição. 'busca_web' vs 'busca_web_para_eventos_recentes_e_notícias' muda comportamento.
Conceitos-chave: Tool description, disambiguation, when-to-use clauses.
3 🚦 Erro tipado: sucesso, retry, abort ▾
O que é: Resultado do tool inclui campo de status. Modelo lê e decide retry, fallback ou parar.
Por que aprender: Sem tipo de erro, modelo tenta de novo cegamente ou desiste. Estrutura permite recovery inteligente.
Conceitos-chave: Result types, ToolError, retry-able vs fatal, exponential backoff.
4 🔒 Sandbox obrigatório (PLAN item 62a) ▾
O que é: Toda tool que toca FS/rede/processo roda dentro de FilesystemSandbox + NetworkPolicy do fec_sdk.
Por que aprender: Prompt injection consegue fazer tool ler ~/.aws/credentials se não houver sandbox. PLAN item 62a é gate de GA.
Conceitos-chave: Path traversal, deny-by-default, allowlist, jail.
5 🔄 Loop: tool → resultado → próximo passo ▾
O que é: Modelo decide chamar tool → executa → resultado vira mensagem do role 'tool' → modelo continua.
Por que aprender: Esse é o building block de agentes. Um loop simples já resolve muitas tarefas.
Conceitos-chave: Tool result message, role=tool, tool_use_id, conversation continuation.
6 🎚️ Tool choice: forçar ou deixar o modelo decidir ▾
O que é: Parâmetro que controla quando o modelo pode chamar tool: auto (decide), any (deve chamar algum), specific (deve chamar X).
Por que aprender: Em alguns fluxos você QUER forçar uso de tool (ex.: extract). Em outros, deixar livre é melhor.
Conceitos-chave: tool_choice, parallel tool calls, required tool.