logo
icon

OpenAB Gemini

Open Agent Broker — un arnes ligero en Rust que conecta Discord con cualquier CLI de coding compatible con ACP (Claude Code, Codex, Gemini, Kiro, Cursor) a traves de stdio JSON-RPC. Esta plantilla despliega la variante Gemini. Fuente: https://github.com/openabdev/openab

template cover
Implementado24 veces
EditorzeaburZeabur
Creado2026-04-20
Mínimo2 Núcleos4 GB
Recomendado4 Núcleos8 GB
Etiquetas
AIDeveloper ToolsDiscord

OpenAB Gemini

OpenAB es un arnes ligero de codigo abierto en Rust que conecta Discord con cualquier CLI de coding compatible con Agent Client Protocol a traves de stdio JSON-RPC.

Esta plantilla despliega la variante Gemini (openab-gemini), que utiliza gemini --acp como backend de agente.

Notas Importantes

  • Etiqueta de imagen: Esta plantilla usa una versión fijada (0.8.3-beta.4). Para actualizar, cambie la etiqueta de imagen en Zeabur Dashboard -> Servicio -> Configuración. Etiquetas disponibles: GitHub Packages.
  • Almacenamiento persistente: /home/node esta montado como volumen persistente. Plugins, configuracion y credenciales se conservan entre reinicios.
  • Permisos de archivos: El contenedor inicia como root y cambia al usuario node (uid 1000) antes de ejecutar openab. Si encuentra problemas de permisos, reinicie el servicio -- los permisos se corrigen automaticamente al arrancar.

Configuracion

1. Obtener el Discord Bot Token

  1. Ir a https://discord.com/developers/applications y hacer clic en New Application
  2. Ir a la pestana Bot -> clic en Reset Token -> copiar el token
  3. En la misma pagina, 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. Autenticacion

Lo mas rapido: complete la variable de plantilla GEMINI_API_KEY al desplegar y listo.

Otros metodos: despues del despliegue, abra Zeabur Dashboard → Servicio → Exec y ejecute:

runuser -u node -- gemini

Siga las indicaciones en pantalla para elegir y completar un metodo de autenticacion. Las credenciales se guardan en el volumen persistente y las nuevas conversaciones las aplican automaticamente — sin reinicio.

Conectar las API keys al agente: openab lanza el agente con env_clear(), por lo que la vía de GEMINI_API_KEY requiere un allowlist de env. Tras el primer arranque edita /home/node/.config/openab/config.toml y añade bajo [agent]:

[agent]
inherit_env = ["GEMINI_API_KEY", "GOOGLE_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY"]

El login interactivo no requiere edición — las credenciales viven en ~/.gemini/.

3. 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 multiples canales, separar con comas: 123456789012345678,234567890123456789

4. Desplegar

Completar las variables de la plantilla y hacer clic en desplegar. El servicio se conecta a Discord automaticamente.

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

Para conectar Telegram, LINE, Feishu/Lark, Google Chat o MS Teams, 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

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

Uso

  • @mencionar al bot en un canal permitido para iniciar una conversacion
  • OpenAB crea un thread para conversaciones de multiples turnos -- no se necesita @mencion en los mensajes siguientes
  • Cada thread corresponde a una sesion persistente de Gemini (TTL de 24h por defecto)

Personalizacion

ArchivoDescripcion
/home/node/.config/openab/config.tomlConfiguracion de OpenAB (sessions, reactions, STT, etc.)

config.toml se crea a partir de una plantilla integrada en el primer arranque. Despues, edite el archivo directamente -- las variables de entorno solo se usan para la configuracion inicial. Para restablecer los valores predeterminados, elimine y reinicie: rm /home/node/.config/openab/config.toml

Para opciones de configuracion, consulte la documentacion de OpenAB.

Webhook / Integracion con Bots

Por defecto, openab ignora los mensajes de otros bots y webhooks. Para permitir mensajes activados por webhook (por ejemplo, pruebas automatizadas o pipelines de CI), agregar lo siguiente a config.toml:

[discord]
allow_bot_messages = "mentions"

Con esta configuracion, openab responde a cualquier bot o mensaje de webhook que lo @mencione. Para restringir a un webhook especifico, agregar tambien:

trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]

El ID de usuario del webhook es el ID numerico en la URL del webhook: https://discord.com/api/webhooks/<ID>/...

Desactivar

Dejar Discord Bot Token vacio al desplegar. El servicio entrara en modo sleep sin fallar.

Enlaces