Open Agent Broker — un arnés ligero en Rust que conecta Discord y Slack con cualquier CLI de coding compatible con ACP a través de stdio JSON-RPC. Esta plantilla usa Hermes Agent (de Nous Research) como backend — un multi-provider inference gateway con soporte OAuth para 30+ proveedores de LLM (xAI Grok, Anthropic, OpenAI, Nous Portal y más). Fuente: https://github.com/openabdev/openab

OpenAB es un arnés ligero de código abierto en Rust que conecta Discord y Slack con cualquier CLI de coding compatible con Agent Client Protocol a través de stdio JSON-RPC.
Esta plantilla usa la variante Hermes: utiliza Hermes Agent de Nous Research como backend. Hermes es un multi-provider inference gateway — gestiona el ciclo de vida de tokens OAuth, el almacenamiento de credenciales y el routing para 30+ proveedores de LLM (xAI Grok, Anthropic, OpenAI, Nous Portal y más), por lo que OAB no necesita gestionar la autenticación de proveedores directamente.
0.8.3-beta.10). Para actualizar, cambie la etiqueta de imagen en Zeabur Dashboard → Servicio → Configuración. Etiquetas disponibles: GitHub Packages./home/agent está montado como volumen persistente. Las credenciales de Hermes, plugins, configuración y config se conservan entre reinicios.hermes auth add <provider> dentro del servicio para emparejar cada proveedor de LLM que quiera usar.bot → marcar permisos: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage Messages123456789012345678,234567890123456789Completa las variables y haz clic en desplegar. El servicio se conecta a Discord pero no producirá respuestas LLM hasta que autentiques al menos un proveedor (paso 4).
Después de que el servicio esté en ejecución, abre Zeabur Dashboard → Servicio → terminal Exec. Hermes soporta muchos proveedores — elige uno para empezar. A continuación se muestran dos de los caminos más comunes.
runuser -u agent -- hermes auth add nous
Sigue las indicaciones para completar el OAuth a través de la URL mostrada.
⚠️ Requiere una suscripción de pago SuperGrok activa ($30/mes). La autenticación tendrá éxito sin ella, pero la API devuelve silenciosamente respuestas vacías — el bot parece funcionar pero nunca responde.
El OAuth de xAI usa una redirección loopback a 127.0.0.1:56121 dentro del contenedor. Zeabur no expone ese puerto, así que usa el truco de las dos terminales:
Terminal 1 — inicia el listener de auth:
runuser -u agent -- hermes auth add xai-oauth --no-browser
Imprime una URL de autorización que contiene &state=XXXXX y espera en http://127.0.0.1:56121/callback.
En tu navegador — abre esa URL de autorización → aprueba. El navegador redirige a http://127.0.0.1:56121/callback?code=... y falla ("Could not establish connection"). Copia el valor de code de la barra de direcciones.
Terminal 2 — abre otra sesión Exec y entrega el callback localmente:
runuser -u agent -- curl "http://127.0.0.1:56121/callback?code=<CODE>&state=<STATE>"
La Terminal 1 debería imprimir Added xai-oauth OAuth credential #1. El code expira en segundos — si ves invalid_grant, vuelve a ejecutar hermes auth add xai-oauth e inténtalo de nuevo.
O bien ejecuta el selector interactivo:
runuser -u agent -- hermes model
…o establece provider y model como dos claves separadas (esto es lo que hermes-acp necesita — el atajo combinado provider/model mostrado en los ejemplos de hermes config set es para el CLI standalone y no lo recoge openab):
runuser -u agent -- hermes config set provider xai-oauth
runuser -u agent -- hermes config set model grok-4-latest
Tu elección se persiste en /home/agent y sobrevive a los reinicios. Las nuevas sesiones de Discord aplican el nuevo model automáticamente — no se necesita reinicio.
Para otros proveedores (Anthropic, OpenAI, etc.) consulta la documentación de Hermes Agent.
OpenAB soporta Slack mediante Socket Mode — no se necesita URL pública.
connections:write → copiar el token xapp-... (SLACK_APP_TOKEN)app_mention, message.channels, message.groupsapp_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:readxoxb-... (SLACK_BOT_TOKEN)/invite @YourAppNameRellena SLACK_BOT_TOKEN y SLACK_APP_TOKEN antes de desplegar. Discord y Slack pueden funcionar simultáneamente.
Para conectar Telegram, LINE, Feishu/Lark, Google Chat, MS Teams o WeCom, despliega la plantilla OpenAB Gateway en el mismo proyecto Zeabur. Luego añade estas variables de entorno a este servicio:
GATEWAY_URL = ws://openab-gateway:8080/wsGATEWAY_PLATFORM = uno de telegram, line, feishu, googlechat, teams, wecomReinicia el servicio. El script de arranque inyecta automáticamente el bloque [gateway] en config.toml.
| Archivo | Descripción |
|---|---|
/home/agent/.config/openab/config.toml | Configuración de OpenAB (sessions, reactions, STT, etc.) |
/home/agent/.config/hermes/ | Credenciales y configuración de proveedores de Hermes (gestionadas por hermes auth / hermes model) |
config.toml se crea a partir de una plantilla integrada en el primer arranque. Después, edite el archivo directamente — las variables de entorno solo se usan para la configuración inicial. Para restablecer los valores predeterminados, elimine y reinicie: rm /home/agent/.config/openab/config.toml
Para las opciones de configuración de OpenAB, consulte la documentación de OpenAB. Para las opciones de proveedores de Hermes, consulte la documentación de Hermes.
Dejar Discord Bot Token y SLACK_BOT_TOKEN vacíos al desplegar. El servicio entrará en modo sleep sin fallar.