Pular para o conteúdo principal
Integrações

Discord

Conecte o agente ao Discord via Interactions Endpoint para responder a slash commands e componentes.

Discord

A integração com o Discord permite que o agente responda a Slash Commands e Message Components em servidores Discord, através do Interactions Endpoint.

Acesse pelo ícone Configurações → aba Integrações → card Discord.


Habilitar a integração​

Ative o toggle no card do Discord. Os campos de configuração ficam visíveis após a ativação.


Como funciona​

  1. Um usuário executa um comando (slash command ou botão) em um servidor onde o bot está instalado.
  2. O Discord envia a interação para o endpoint público do Roberty.
  3. O Roberty valida a assinatura Ed25519 com a public key do aplicativo.
  4. O agente é executado e a resposta é devolvida diretamente na mesma requisição.
informação

Esta integração não usa o gateway de WebSocket; ela funciona apenas com o modelo HTTP de Interactions. Isso simplifica a operação (sem manter conexão viva), mas limita a resposta a comandos/componentes — mensagens em canais normais não são processadas.


Campos de configuração​

CampoObrigatórioDescrição
Bot TokenSimToken da aba Bot no Discord Developer Portal
Public KeySimChave pública da aba General Information do aplicativo
Guild IDNãoRestringe o bot a um único servidor (ID do servidor Discord)
Channel IDNãoRestringe o bot a um único canal dentro do servidor

Criando o bot no Discord Developer Portal​

1. Criar o aplicativo​

  1. Acesse o Discord Developer Portal e crie um novo aplicativo.
  2. Na aba Bot, clique em Reset Token e anote o valor (é exibido apenas uma vez) — este é o Bot Token.
  3. Na aba General Information, copie a Public Key e o Application ID.

2. Configurar o Interactions Endpoint​

Na aba General Information do aplicativo, preencha Interactions Endpoint URL com:

https://agent-backend.roberty.app/integrations/discord/<AGENT_ID>

Substitua <AGENT_ID> pelo ID do agente Roberty que receberá as interações — use o botão Copiar ID no topo da aba Integrações.

Ao salvar, o Discord envia um PING e exige resposta válida; o endpoint do Roberty já responde corretamente desde que a Public Key esteja configurada no agente.

3. Configurar o agente no Roberty​

Preencha Bot Token, Public Key e, opcionalmente, Guild ID e Channel ID para restringir o bot.

4. Adicionar o bot ao servidor​

  1. No portal do Discord, vá em OAuth2 → URL Generator.
  2. Marque o escopo bot applications.commands e as permissões desejadas.
  3. Abra a URL gerada e escolha o servidor.

5. Registrar Slash Commands​

Registre os comandos via API do Discord (exemplo com curl):

bash
curl -X POST \
-H "Authorization: Bot SEU_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"ask","description":"Perguntar ao agente","options":[{"type":3,"name":"mensagem","description":"Sua pergunta","required":true}]}' \
"https://discord.com/api/v10/applications/APPLICATION_ID/commands"

O Roberty extrai o valor do primeiro parâmetro de texto (type 3) como entrada do agente.


Validação de segurança​

Todo request precisa conter:

  • X-Signature-Ed25519
  • X-Signature-Timestamp

O Roberty verifica a assinatura com a publicKey do agente e responde 401 Invalid signature se falhar.


Tipos de interação suportados​

TypeTratamento
1 PINGResponde { type: 1 } automaticamente.
2 APPLICATION_COMMANDExecuta o agente com o primeiro parâmetro de texto.
3 MESSAGE_COMPONENTExecuta o agente usando o custom_id como entrada.

A resposta do agente é truncada em 2000 caracteres (limite do Discord para uma única mensagem).


Referências​