Discord

Contesta comandos de barra, o mensajes normales de canal, en tu servidor de Discord usando un agente de Pepe.

Discord

Discord le da a Pepe dos formas distintas de recibir un mensaje, y una conexión puede usar una, la otra, o ambas:

Empieza desde el asistente guiado o desde el panel:

pepe setup

El config de cada conexión guarda dos cosas:

Dentro de la app de Discord, apunta “Interactions Endpoint URL” a la URL de tu conexión y crea un comando de barra con una opción de texto, por ejemplo /ask prompt:.... Como Discord exige una confirmación dentro de tres segundos, Pepe responde de inmediato con un acuse diferido y, cuando el agente termina, publica la respuesta real como mensaje de seguimiento. La URL de retorno tiene esta forma:

https://YOUR_HOST/webhooks/default/discord/<slug>

Los campos que comparten todas las conexiones (agent, mode, trainers, session_ttl_min, ephemeral, commands) y el funcionamiento interno de la ruta genérica están en Webhooks.

Archivos en un comando

Dale a tu comando de barra una opción de adjunto y la gente puede mandarle un archivo: /ask prompt:¿qué dice? file:<clip>. Un clip de voz se transcribe antes de que el agente corra, un documento llega con su texto ya leído, y una imagen llega como imagen a un modelo con visión. El adjunto alcanza por sí solo, así que /ask file:<clip> sin nada escrito también funciona.

Es el único camino que tiene un archivo por el endpoint de Interactions: ve comandos de barra y nada más, así que una nota de voz o un adjunto publicado directo en el canal no le llega a Pepe por ahí. Sí le llega por el otro camino, por la pasarela: ver Mensajes normales de canal más abajo. Pepe acepta archivos de hasta 20 MB por defecto (max_attachment_mb en la conexión sube o baja ese límite), y gana el menor entre el límite de Pepe y el límite de subida de Discord: 10 MB en una cuenta normal o servidor sin boost, más con Nitro o un servidor con boost. Ver Mensajes de voz y Documentos.

Mensajes normales de canal

Una conexión también puede contestar un mensaje escrito directo en un canal, una foto soltada ahí, una nota de voz grabada en el momento, o un DM al bot, no solo un comando de barra. Esto necesita su propio opt-in, porque significa que Pepe mantiene una conexión persistente con la pasarela de Discord, en vez de solo contestar llamadas de webhook:

pepe gateway discord add support --agent soporte --gateway --bot-token '${DISCORD_BOT_TOKEN}'

o los campos equivalentes en el panel (una conexión puede tener --application-id/--public-key para comandos de barra y --gateway/--bot-token para mensajes de canal a la vez). mix pepe serve corre la conexión de las dos formas. Flags:

Los adjuntos del mensaje mismo, del mensaje al que responde (así se puede contestar “¿qué dice esto?” después de que ya llegó la nota de voz), y de un mensaje reenviado al bot cuentan todos, y pasan por el mismo trato de voz-a-transcripción, documento-a-texto, imagen-a-visión que un adjunto de comando de barra. Los mensajes de una conexión se contestan en el orden en que Discord los entregó. Si la conexión se cae, se reconecta y retoma sola, sin perder nada de lo que se dijo en el intervalo.

Cambiar de modelo

Con los comandos /model y /models cualquiera puede consultar o cambiar el modelo de IA que le responde. En Discord estos llegan a Pepe a través del comando que ya registraste (el /ask de arriba): todo lo que se escriba en su opción prompt: es lo que Pepe termina leyendo. Solo funcionan si la conexión está en modo admin con commands habilitado; en modo support se procesan como texto normal, sin efecto especial. /models lista los modelos disponibles para el proyecto de esa conexión, y /model muestra cuál está activo o lo cambia:

/model openrouter               # pregunta si cambiar solo este chat o todos
/model openrouter session       # cambia solo para esta conversación
/model openrouter global        # cambia para todos con los que habla esta conexión

Cualquier persona autorizada a conversar puede cambiar el modelo de su propia charla, pero hacerlo de forma global, para todos con quienes habla esa conexión, queda reservado a los entrenadores: la misma lista de confianza que controla la memoria. Si quieres bloquear por completo el cambio de modelo para quien no sea entrenador, activa model_switch_locked: true en la conexión.