logo
icon

OpenAB Hermes

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

template cover
Implementado0 veces
EditorzeaburZeabur
Creado2026-05-17
Mínimo2 Núcleos4 GB
Recomendado4 Núcleos8 GB
Etiquetas
AIDeveloper ToolsDiscordSlack

OpenAB Hermes

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.

Notas Importantes

  • Etiqueta de imagen: Esta plantilla usa una versión fijada (0.8.3-beta.10). Para actualizar, cambie la etiqueta de imagen en Zeabur Dashboard → Servicio → Configuración. Etiquetas disponibles: GitHub Packages.
  • Almacenamiento persistente: /home/agent está montado como volumen persistente. Las credenciales de Hermes, plugins, configuración y config se conservan entre reinicios.
  • La autenticación es solo dentro del contenedor: Hermes usa OAuth por proveedor. No hay una única variable de API key — tras desplegar, ejecute hermes auth add <provider> dentro del servicio para emparejar cada proveedor de LLM que quiera usar.

Configuración

1. Obtener el Discord Bot Token

  1. Ir a https://discord.com/developers/applications y hacer clic en New Application
  2. Ir a la pestaña Bot → clic en Reset Token → copiar el token
  3. En la misma página, bajar y habilitar Message Content Intent en Privileged Gateway Intents
  4. Ir a OAuth2 → URL Generator → marcar scope bot → marcar permisos: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage Messages
  5. Copiar la URL generada y abrirla en el navegador para invitar al Bot al servidor

2. Obtener IDs de canales de Discord

  1. Abrir Discord → Ajustes de usuario (icono de engranaje) → Avanzado → activar Modo desarrollador
  2. Clic derecho en el canal donde quieres que el Bot responda → Copiar ID del canal
  3. Para múltiples canales, separar con comas: 123456789012345678,234567890123456789

3. Desplegar

Completa 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).

4. Autenticar un proveedor de Hermes

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.

Opción A: Nous Portal (la más simple)

runuser -u agent -- hermes auth add nous

Sigue las indicaciones para completar el OAuth a través de la URL mostrada.

Opción B: xAI Grok OAuth (recomendada para uso general)

⚠️ 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.

Tras autenticar: elige un model por defecto

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.

Configuración de Slack (Opcional)

OpenAB soporta Slack mediante Socket Mode — no se necesita URL pública.

  1. Ir a https://api.slack.com/appsCreate New AppFrom scratch
  2. Socket Mode → Habilitar → generar App-Level Token con scope connections:write → copiar el token xapp-... (SLACK_APP_TOKEN)
  3. Event Subscriptions → Habilitar → añadir bot events: app_mention, message.channels, message.groups
  4. OAuth & Permissions → Bot Token Scopes → añadir: app_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:read
  5. Install App → Instalar en el workspace → copiar el token xoxb-... (SLACK_BOT_TOKEN)
  6. En cada canal de Slack donde quieras usar el bot, ejecuta /invite @YourAppName

Rellena SLACK_BOT_TOKEN y SLACK_APP_TOKEN antes de desplegar. Discord y Slack pueden funcionar simultáneamente.

Añadir plataformas de mensajería (Telegram / LINE / Feishu / Google Chat / MS Teams / WeCom)

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/ws
  • GATEWAY_PLATFORM = uno de telegram, line, feishu, googlechat, teams, wecom

Reinicia el servicio. El script de arranque inyecta automáticamente el bloque [gateway] en config.toml.

Uso

  • @mencionar al bot en un canal de Discord o Slack permitido para iniciar una conversación
  • OpenAB crea un thread para conversaciones de múltiples turnos — no se necesita @mención en los mensajes siguientes
  • Cada thread corresponde a una sesión persistente de Hermes (TTL de 24h por defecto)

Personalización

ArchivoDescripción
/home/agent/.config/openab/config.tomlConfiguració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.

Desactivar

Dejar Discord Bot Token y SLACK_BOT_TOKEN vacíos al desplegar. El servicio entrará en modo sleep sin fallar.

Enlaces