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
- Um usuário executa um comando (slash command ou botão) em um servidor onde o bot está instalado.
- O Discord envia a interação para o endpoint público do Roberty.
- O Roberty valida a assinatura Ed25519 com a public key do aplicativo.
- O agente é executado e a resposta é devolvida diretamente na mesma requisiçã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
| Campo | Obrigatório | Descrição |
|---|---|---|
| Bot Token | Sim | Token da aba Bot no Discord Developer Portal |
| Public Key | Sim | Chave pública da aba General Information do aplicativo |
| Guild ID | Não | Restringe o bot a um único servidor (ID do servidor Discord) |
| Channel ID | Não | Restringe o bot a um único canal dentro do servidor |
Criando o bot no Discord Developer Portal
1. Criar o aplicativo
- Acesse o Discord Developer Portal e crie um novo aplicativo.
- Na aba Bot, clique em Reset Token e anote o valor (é exibido apenas uma vez) — este é o Bot Token.
- 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
- No portal do Discord, vá em OAuth2 → URL Generator.
- Marque o escopo
bot applications.commandse as permissões desejadas. - Abra a URL gerada e escolha o servidor.
5. Registrar Slash Commands
Registre os comandos via API do Discord (exemplo com curl):
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-Ed25519X-Signature-Timestamp
O Roberty verifica a assinatura com a publicKey do agente e responde 401 Invalid signature se falhar.
Tipos de interação suportados
| Type | Tratamento |
|---|---|
1 PING | Responde { type: 1 } automaticamente. |
2 APPLICATION_COMMAND | Executa o agente com o primeiro parâmetro de texto. |
3 MESSAGE_COMPONENT | Executa o agente usando o custom_id como entrada. |
A resposta do agente é truncada em 2000 caracteres (limite do Discord para uma única mensagem).