Ferramentas personalizadas permitem escrever suas próprias funções JavaScript e disponibilizá-las como ferramentas invocáveis em blocos Agent. Isso é útil quando você precisa de funcionalidade que as integrações nativas do Zoen não cobrem — por exemplo, chamar uma API interna, fazer um cálculo customizado ou transformar dados de uma forma específica.
Como as ferramentas personalizadas funcionam
Uma ferramenta personalizada tem duas partes:
- Schema — Uma definição JSON descrevendo o nome, a descrição e os parâmetros da ferramenta (no formato de function-calling da OpenAI). Isso diz ao agente de IA o que a ferramenta faz e quais entradas espera.
- Code — Um corpo de função JavaScript que roda quando o agente chama a ferramenta. Os parâmetros definidos no schema ficam disponíveis como variáveis no seu código.
Quando um bloco Agent tem acesso a uma ferramenta personalizada, o modelo de IA decide quando chamá-la com base na descrição do schema e no contexto da conversa — como nas ferramentas nativas.
Criando uma ferramenta personalizada
Abra as configurações de Custom Tools
Vá em Settings → Custom Tools no seu workspace e clique em Add.
Defina o schema
Na aba Schema, defina sua ferramenta usando JSON no formato de function-calling da OpenAI:
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city name"
},
"units": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Temperature units"
}
},
"required": ["city"]
}
}
}Você pode usar o botão de varinha de IA para gerar um schema a partir de uma descrição em linguagem natural do que a ferramenta deve fazer.
Escreva o código
Mude para a aba Code e escreva o corpo da função JavaScript. Os parâmetros do schema ficam disponíveis diretamente como variáveis:
const response = await fetch(
`https://api.openweathermap.org/data/2.5/weather?q=${city}&units=${units === 'celsius' ? 'metric' : 'imperial'}&appid={{OPENWEATHER_API_KEY}}`
);
const data = await response.json();
return {
temperature: data.main.temp,
description: data.weather[0].description,
humidity: data.main.humidity
};Você também pode usar a varinha de IA para gerar código a partir de uma descrição. Variáveis de ambiente são referenciadas com a sintaxe {{KEY}}.
Salve
Clique em Save para criar a ferramenta. Ela fica disponível para uso em qualquer bloco Agent do workspace.
Usando ferramentas personalizadas em workflows
Depois de criadas, as ferramentas personalizadas aparecem junto com as nativas ao configurar um bloco Agent:
- Abra um bloco Agent
- Clique em Add Tools
- Encontre sua ferramenta personalizada na lista
- O agente chamará a ferramenta quando determinar que ela é relevante para a tarefa
Ambiente de código
Recursos disponíveis
- Async/await — Seu código roda em um contexto async, então você pode usar
awaitdiretamente - fetch() — Faça requisições HTTP a APIs externas
- Built-ins do Node.js — Acesso a
crypto,Buffere outros módulos padrão - Variáveis de ambiente — Use a sintaxe
{{KEY}}para injetar segredos
Limitações
- Sem pacotes npm — Bibliotecas externas como
axiosoulodashnão estão disponíveis. Use as APIs nativas - Parâmetros por nome — Parâmetros do schema ficam disponíveis diretamente como variáveis (ex.:
city), não via um objetoparams
Retornando resultados
Retorne um valor do seu código para enviá-lo de volta ao agente:
const result = await fetch(`https://api.example.com/data?q=${query}`);
const data = await result.json();
return data;O valor retornado se torna a saída da ferramenta que o agente vê e pode usar na resposta.
Gerenciando ferramentas personalizadas
Em Settings → Custom Tools você pode:
- Buscar ferramentas por nome, nome da função ou descrição
- Editar o schema ou o código de qualquer ferramenta
- Excluir ferramentas que não são mais necessárias
Excluir uma ferramenta personalizada a remove de todos os blocos Agent que a referenciam. Certifique-se de que nenhum workflow ativo depende da ferramenta antes de excluir.
Permissões
| Ação | Permissão necessária |
|---|---|
| Ver ferramentas personalizadas | Read, Write ou Admin |
| Criar ou editar ferramentas | Write ou Admin |
| Excluir ferramentas | Admin |