Configuracion del Bot de Discord
Conecta aidaemon a Discord a traves de la API de gateway.
Binarios Precompilados
Si instalaste mediante el script de una linea o Homebrew, el soporte para Discord ya esta incluido. Solo configura
config.toml a continuacion. El feature flag solo es necesario al compilar desde el codigo fuente.Crear una Aplicacion de Discord
- Ve al Portal de Desarrolladores de Discord
- Haz clic en New Application y dale un nombre (por ejemplo, “aidaemon”)
- En Bot, haz clic en Add Bot
- Copia el Bot Token — este es tu
bot_token - Habilita estos Privileged Gateway Intents:
Message Content Intent— leer el texto de los mensajesServer Members Intent— resolver informacion de usuarios
- En OAuth2 → URL Generator, selecciona los scopes
botyapplications.commands, luego los permisos: Send Messages, Read Message History, Attach Files, Use Slash Commands - Usa la URL generada para invitar al bot a tu servidor
Configuracion
config.toml
[discord]
bot_token = "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.AbCdEf.xxxxx"
allowed_user_ids = [123456789012345678]
guild_id = 987654321098765432| Key | Type | Default | Description |
|---|---|---|---|
bot_token | string | — | Token del bot de Discord desde el Portal de Desarrolladores. Soporta "keychain". |
allowed_user_ids | array | [] | IDs de usuario de Discord (enteros snowflake) permitidos para interactuar. Vacio = sin restriccion. |
guild_id | integer | null | ID opcional del servidor/guild. Si se establece, el bot solo responde en ese servidor. |
Obtener tu ID de Usuario de Discord
Habilita el Modo Desarrollador en la configuracion de Discord (Apariencia → Avanzado), luego haz clic derecho en tu nombre de usuario y selecciona Copiar ID de Usuario.
Caracteristicas
- Conexion gateway — conexion WebSocket en tiempo real via el framework serenity
- Comandos slash — comandos de aplicacion registrados (ver Comandos)
- Botones interactivos — flujo de aprobacion con botones clicables (ver Flujo de Aprobacion)
- Transferencia de archivos — enviar y recibir archivos como adjuntos de Discord
- Division de mensajes — las respuestas largas se dividen para respetar el limite de 2000 caracteres de Discord
- Auto-reconexion — backoff exponencial en caso de fallo de conexion (5s → 60s maximo)
- Lista de usuarios permitidos — control de acceso por token de bot
- Soporte multi-bot — ejecuta multiples bots de Discord con configuraciones separadas
Modelo de Sesion
Las sesiones de Discord se identifican por canal:
- Mensaje de canal:
discord:{channel_id}
Cada canal mantiene su propio historial de conversacion, memoria de trabajo y contexto de hechos.
Control de Acceso
Si
allowed_user_ids esta vacio, cualquier persona que pueda enviar mensajes al bot puede interactuar con el. Siempre configura esto en produccion.