Posso desenvolver uma ferramenta Python customizada?

Viewed 2

Tenho um caso de uso específico que precisa consultar nossa API interna. Posso fazer uma tool?

1 Answers

Sim. Uma Tool é um arquivo Python com uma classe Tools. Estrutura mínima:

"""
title: Consulta CRM
author: Sua Empresa
version: 1.0.0
requirements: httpx
"""

import httpx
from pydantic import BaseModel, Field

class Tools:
    def __init__(self):
        self.valves = self.Valves()

    class Valves(BaseModel):
        api_url: str = Field(default="")
        api_key: str = Field(default="")

    async def buscar_cliente(self, cnpj: str) -> dict:
        """Busca cliente pelo CNPJ no CRM."""
        headers = {"Authorization": f"Bearer {self.valves.api_key}"}
        async with httpx.AsyncClient() as client:
            r = await client.get(f"{self.valves.api_url}/clientes", params={"cnpj": cnpj}, headers=headers)
        return r.json()

Regras essenciais:

  1. Classe deve se chamar Tools
  2. Type hints em tudo (o modelo lê pra saber como chamar)
  3. Docstrings descritivas (o modelo decide quando chamar)
  4. Use async para chamadas externas
  5. Secrets sempre via Valves (nunca hardcoded)

⚠️ Segurança: Tools executam código arbitrário no servidor. Apenas administradores de confiança devem criá-las.

📖 Documentação completa na Wiki:

Related