Descubra ferramentas existentes antes de adicionar uma; prefira uma chamada de ferramenta direta para trabalho único. custom_tool_list encontra workflows salvos. Use custom_tool_create para uma sequência reutilizável nomeada. Nomes começam com user_. Descreva seu propósito preciso e defina parâmetros tipados com nomes, tipos, descrições e bandeiras de obrigatoriedade. Os tipos suportados são string, number, boolean, object e array.
Cada etapa precisa de um ID único, um nome de ferramenta folha existente e argumentos que correspondam ao esquema dessa ferramenta. Nos argumentos, {"$input":"expression"} substitui uma entrada nomeada. {"$step":"etapa_anterior","path":"result"} lê o data.result de uma etapa anterior. Outro JSON é literal. Referências devem apontar para trás; verifique a forma real do resultado primeiro. Entradas opcionais precisam de literais fixos em qualquer etapa que as exija, ou devem ser entradas obrigatórias.
Exemplo: parâmetros [{"name":"expression","type":"string","description":"Aritmética numérica","required":true}], etapas [{"id":"resposta","tool":"calculate","arguments":{"expression":{"$input":"expression"}}}]. Descubra calculate primeiro, depois crie e teste com entrada inofensiva.
Novas ferramentas são imediatamente descobertas e sobrevivem à reinicialização do aplicativo. Workflows são executados através do registry existente: concessões, modo privado/incógnito, restrições de edição, cancelamento e disponibilidade em tempo de execução ainda se aplicam. Uma etapa com falha interrompe a execução e retorna as etapas concluídas junto com o erro para você; inspecione efeitos colaterais antes de tentar novamente. Nunca repita cegamente uma ação externa concluída. Gateways, outros workflows e ferramentas de autoria não podem ser etapas. Para nova lógica executável, crie e teste um script de workspace com ferramentas de arquivo/terminal permitidas, depois encapsule a chamada real de terminal; isso é apenas para desktop onde o acesso ao terminal está disponível. Não afirme que uma skill ou definição JSON cria uma nova capacidade nativa. Exclua ferramentas obsoletas somente quando solicitado usando custom_tool_delete.