Discord
Conecta el agente a Discord mediante el interactions endpoint, para responder slash commands y componentes.
Discord
La integración con Discord permite que el agente responda a slash commands y message components en servidores de Discord, mediante el interactions endpoint.
Accede desde el icono Configuración → pestaña Integraciones → tarjeta Discord.
Activar la integración
Activa el interruptor de la tarjeta de Discord. Los campos de configuración aparecen una vez activado.
Cómo funciona
- Un usuario ejecuta un comando (un slash command o un botón) en un servidor donde el bot está instalado.
- Discord envía la interacción al endpoint público de Roberty.
- Roberty valida la firma Ed25519 con la public key de la aplicación.
- El agente se ejecuta y la respuesta vuelve en la misma petición.
Esta integración no usa el gateway de WebSocket; funciona solo con el modelo HTTP de interactions. Eso simplifica la operación (no hay que mantener una conexión viva) pero la limita a comandos y componentes: los mensajes de los canales normales no se procesan.
Los campos de configuración
| Campo | Obligatorio | Qué es |
|---|---|---|
| Bot Token | Sí | El token de la pestaña Bot del Discord Developer Portal |
| Public Key | Sí | La clave pública de la aplicación, en la pestaña General Information |
| Guild ID | No | Restringe el bot a un único servidor (el ID del servidor de Discord) |
| Channel ID | No | Restringe el bot a un único canal dentro de ese servidor |
Crear el bot en el Discord Developer Portal
1. Crear la aplicación
- Entra en el Discord Developer Portal y crea una aplicación nueva.
- En la pestaña Bot, haz clic en Reset Token y anota el valor (se muestra una sola vez): ese es el Bot Token.
- En la pestaña General Information, copia la Public Key y el Application ID.
2. Configurar el interactions endpoint
En la pestaña General Information de la aplicación, pon en Interactions Endpoint URL:
https://agent-backend.roberty.app/integrations/discord/<AGENT_ID>
Sustituye <AGENT_ID> por el ID del agente de Roberty que recibirá las interacciones: usa Copiar ID en la parte superior de la pestaña Integraciones.
Al guardar, Discord envía un PING y exige una respuesta válida; el endpoint de Roberty ya responde correctamente, siempre que la public key esté configurada en el agente.
3. Configurar el agente en Roberty
Rellena Bot Token, Public Key y, opcionalmente, Guild ID y Channel ID para restringir el bot.
4. Añadir el bot al servidor
- En el portal de Discord, ve a OAuth2 → URL Generator.
- Marca el ámbito
bot applications.commandsy los permisos que quieras. - Abre la URL generada y elige el servidor.
5. Registrar los slash commands
Regístralos mediante la API de Discord (con curl, por ejemplo):
curl -X POST \
-H "Authorization: Bot TU_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"ask","description":"Preguntar al agente","options":[{"type":3,"name":"mensaje","description":"Tu pregunta","required":true}]}' \
"https://discord.com/api/v10/applications/APPLICATION_ID/commands"
Roberty toma el valor del primer parámetro de texto (tipo 3) como entrada del agente.
Validación de seguridad
Cada petición debe llevar:
X-Signature-Ed25519X-Signature-Timestamp
Roberty comprueba la firma con la publicKey del agente y responde 401 Invalid signature si no cuadra.
Los tipos de interacción que atiende
| Tipo | Qué ocurre |
|---|---|
1 PING | Se responde { type: 1 } automáticamente. |
2 APPLICATION_COMMAND | Ejecuta el agente con el primer parámetro de texto. |
3 MESSAGE_COMPONENT | Ejecuta el agente usando el custom_id como entrada. |
La respuesta del agente se trunca a 2000 caracteres (el límite de Discord para un solo mensaje).