Integrando Agentes Externos
Integre agentes de IA personalizados com o Edison Watch usando o SDK Python ou a API HTTP para rastreamento, controle e monitoramento da atividade do agente.
O Edison Watch fornece APIs e SDKs para integrar agentes de IA externos, permitindo que você rastreie chamadas de ferramentas, imponha políticas de segurança e monitore a atividade do agente em tempo real.
Pré-requisitos
Antes de integrar seu agente:
- Servidor Edison Watch deve estar em execução e acessível
- Chave de API do painel (Configurações → Chaves de API)
- Python 3.8+ (para SDK Python) ou cliente HTTP (para API direta)
Obtenha sua chave de API no painel do Edison Watch em Settings → API Keys. A chave de API autentica seu agente e associa a atividade à sua conta de usuário.
Localização do Servidor: Defina a variável de ambiente EDISON_WATCH_API_BASE para a URL do seu servidor Edison Watch (ex: https://dashboard.edison.watch). O SDK lê esse valor para se conectar ao seu servidor.
Início Rápido (Python/LangGraph)
A maneira mais rápida de integrar é usando o SDK Python edison-watch com o decorador @edison.track().
Instalação
Variáveis de Ambiente
Defina essas variáveis de ambiente (ou passe-as para o construtor Edison):
Obrigatório: Você deve definir EDISON_WATCH_API_BASE para a URL do seu servidor Edison Watch (ex: https://dashboard.edison.watch).
Integração Mínima
Adicione apenas 4 linhas para rastrear as chamadas de ferramentas do seu agente:
O decorador @edison.track() automaticamente:
- Envia metadados de chamada de ferramenta para o Edison Watch antes da execução
- Aguarda aprovação se a chamada acionar políticas de segurança
- Registra duração e resultado após a execução
- Aparece na linha do tempo do painel
Registrando Agentes (Opcional)
Você pode opcionalmente registrar agentes nomeados no Edison Watch para melhor organização e rastreamento. Isso é útil ao gerenciar vários tipos de agentes ou funções.
Criar um Agente
Resposta:
O agent_id é gerado automaticamente no formato agent:HEX (32 caracteres hexadecimais).
Listar Agentes
Resposta:
Excluir um Agente
Resposta:
O registro de agentes é opcional. Você pode usar a API de rastreamento diretamente sem registrar agentes. O registro é útil principalmente para organização administrativa e relatórios.
Referência do SDK Edison
A classe Edison fornece um SDK Python para rastrear a atividade do agente.
Construtor
Variáveis de Ambiente:
EDISON_WATCH_API_BASE: URL do servidor (obrigatório - defina para seu servidor Edison Watch)EDISON_WATCH_API_KEY: Chave de API para autenticação (obrigatório)
Se não fornecidos como argumentos do construtor, esses valores são lidos de variáveis de ambiente.
Decorador de Rastreamento
O decorador @edison.track() envolve funções para rastrear sua execução:
Parâmetros:
session_id: Substituir o ID da sessão para esta chamadaname: Substituir o nome da ferramenta (o padrão é o nome da função)
Comportamento:
- Chama
/agent/beginantes da execução (controle + espera de aprovação) - Executa a função
- Chama
/agent/endapós a execução com status, duração e resumo do resultado - Levanta
PermissionErrorse bloqueado e não aprovado
Envolvendo Ferramentas LangChain
Para ferramentas LangChain, use wrap_tools():
Ou use bind_tools() para envolver e vincular em uma etapa:
Gerenciamento de Sessão
As sessões agrupam chamadas de ferramentas relacionadas. Por padrão, cada instância Edison cria um ID de sessão exclusivo, mas você pode compartilhar sessões:
Você também pode substituir a sessão por chamada:
API HTTP Direta (Não-Python)
Se você não estiver usando Python, pode integrar diretamente via endpoints HTTP.
Iniciar Rastreamento de uma Chamada de Ferramenta
Resposta:
Códigos de Status:
200 OK: Solicitação processada (verifique o campoapproved)400 Bad Request: Corpo da solicitação inválido401 Unauthorized: Chave de API ausente ou inválida
Importante: Se approved for false, a chamada da ferramenta foi bloqueada por políticas de segurança. Aguarde a aprovação manual no painel ou trate o erro adequadamente.
Concluir Rastreamento
Após executar a ferramenta, chame /agent/end:
Resposta:
Normalização de Nome de Ferramenta
Os nomes das ferramentas são prefixados automaticamente com agent_ se ainda não começarem com builtin_ ou agent_:
web_search→agent_web_searchagent_my_tool→agent_my_tool(sem alteração)builtin_system→builtin_system(sem alteração)
Exemplo: Integração Completa
Configuração Multi-Agente
Ao executar vários agentes com diferentes funções ou permissões, crie instâncias Edison separadas com agent_name e agent_type distintos:
A atividade de cada agente será rastreada separadamente no painel, e você pode configurar diferentes permissões por tipo de agente através das configurações de permissões do painel.
Configuração de Permissões
Ferramentas rastreadas são nomeadas com o prefixo agent_ no sistema de permissões. Configure-as através do painel do Edison Watch:
- Navegue para Servers no painel
- Encontre ou crie o servidor
agent(ferramentas rastreadas via SDK aparecem sob este servidor) - Clique em cada ferramenta para configurar suas permissões
Configurações de Permissão:
Para cada ferramenta, você pode configurar:
- Enabled: Se a ferramenta tem permissão para rodar
- Write Operation: Ferramenta pode modificar dados (ex: enviar e-mail, criar arquivo)
- Read Private Data: Ferramenta acessa dados internos confidenciais
- Read Untrusted Public Data: Ferramenta processa conteúdo externo/não confiável
- ACL: Nível de controle de acesso (PUBLIC, PRIVATE, SECRET, TOP_SECRET)
Configuração de Exemplo:
Para uma ferramenta web_search rastreada como agent_web_search:
- Enabled: ✓
- Write Operation: ✗
- Read Private Data: ✗
- Read Untrusted Public Data: ✓
- ACL: PUBLIC
Para uma ferramenta send_email rastreada como agent_send_email:
- Enabled: ✓
- Write Operation: ✓
- Read Private Data: ✗
- Read Untrusted Public Data: ✗
- ACL: SECRET
Sinalizadores de Segurança:
write_operation: Ferramenta pode modificar dados (ex: enviar e-mail, criar arquivo)read_private_data: Ferramenta acessa dados internos confidenciaisread_untrusted_public_data: Ferramenta processa conteúdo externo/não confiável
Lethal Trifecta: Se uma chamada de ferramenta combinar todos os três sinalizadores (dados privados + conteúdo não confiável + escrita), o Edison Watch pausará para aprovação manual.
Níveis ACL:
PUBLIC: Dados não confidenciaisPRIVATE: Dados confidenciais ou internosSECRET: Dados altamente confidenciais
Aplicação: Os dados não podem fluir de um ACL mais alto para um mais baixo (ex: SECRET → PUBLIC).
Veja Configurando Permissões para orientação detalhada de configuração.
Tratamento de Erros
Chamadas de Ferramentas Bloqueadas
Se uma chamada de ferramenta for bloqueada por políticas de segurança:
Erros de Rede
O SDK lida com erros de rede graciosamente e os registra. Se o Edison Watch estiver inacessível:
- A execução da ferramenta continua (rastreamento de melhor esforço)
- Erros são registrados, mas não levantam exceções
- Verificações de saúde são executadas em segundo plano para detectar conectividade
Tratamento de Tempo Limite
Se a aprovação manual exceder o tempo limite (padrão: 30 segundos):
O parâmetro timeout_s controla quanto tempo esperar pela aprovação antes de levantar PermissionError.
Melhores Práticas
- Use nomes de agentes descritivos:
hr_assistant,eng_copilot,finance_analyst - Defina tipos de agentes: Agrupe agentes por função para facilitar o gerenciamento
- Compartilhe sessões apropriadamente: Use o mesmo
session_idpara chamadas de ferramentas relacionadas em uma conversa - Trate aprovações graciosamente: Chamadas bloqueadas devem esperar aprovação ou falhar graciosamente
- Configure permissões antecipadamente: Configure permissões de ferramentas no painel antes de implantar agentes
- Monitore o painel: Revise a atividade do agente e ajuste as permissões conforme necessário
Solução de Problemas
401 Unauthorized
- Verifique se
EDISON_WATCH_API_KEYestá definida corretamente - Verifique se a chave de API está ativa no painel
Chamadas de ferramentas bloqueadas
- Verifique as permissões da ferramenta no painel (Servers → agent → Tools)
- Verifique se o nome da ferramenta corresponde (com prefixo
agent_) - Aprove chamadas bloqueadas no painel, se necessário
Chamadas de ferramentas não aparecem no painel
- Verifique se o servidor Edison Watch está em execução
- Verifique a conectividade de rede com
api_base - Revise os logs do servidor para erros
Falhas na verificação de saúde
- Certifique-se de que o Edison Watch esteja acessível em
api_base - Verifique as configurações de firewall/rede
- Verifique se o servidor está em execução:
curl https://dashboard.edison.watch/health
Precisa de ajuda? Confira o guia do Painel para monitorar a atividade do agente ou envie um e-mail para [email protected] para suporte.

