logo
icon

OpenAB OpenCode

Open Agent Broker — un arnés ligero en Rust que conecta Discord con cualquier CLI de coding compatible con ACP a través de stdio JSON-RPC. Este template usa OpenCode como backend, soportando 75+ proveedores LLM. Fuente: https://github.com/openabdev/openab

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

OpenAB OpenCode

OpenAB es un arnés ligero en Rust que conecta Discord con cualquier CLI de coding compatible con Agent Client Protocol vía stdio JSON-RPC.

Este template usa OpenCode como backend, soportando 75+ proveedores LLM.

Notas Importantes

  • Etiqueta de imagen: Este template usa una versión fijada (0.8.3-beta.4). Para actualizar, cambie la etiqueta en Zeabur Dashboard → Servicio → Configuración.
  • Almacenamiento persistente: /home/node está montado como volumen persistente.
  • Permisos: El contenedor inicia como root y cambia a node antes de ejecutar openab.

Configuración

1. Obtener Discord Bot Token

  1. Ir a https://discord.com/developers/applicationsNew Application
  2. BotReset Token → copiar token
  3. Habilitar Message Content Intent
  4. OAuth2 → URL Generator → scope bot → invitar bot

2. Configurar un Proveedor LLM (después del despliegue)

En Zeabur Dashboard → Servicio → Variables, establecer al menos una variable:

VariableProveedor
OPENCODE_API_KEYOpenCode nativo (obtener en opencode.ai)
ANTHROPIC_API_KEYAnthropic Claude
OPENAI_API_KEYOpenAI GPT
GOOGLE_GENERATIVE_AI_API_KEYGoogle Gemini
GROQ_API_KEYGroq
MISTRAL_API_KEYMistral
DEEPSEEK_API_KEYDeepSeek
OPENROUTER_API_KEYOpenRouter (más de 100 modelos)

Reiniciar el servicio tras configurar la variable.

Login interactivo (alternativa):

runuser -u node -- opencode auth login

⚠️ Debe ejecutarse como node.

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

[agent]
inherit_env = ["OPENCODE_API_KEY", "ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY", "GROQ_API_KEY", "MISTRAL_API_KEY", "DEEPSEEK_API_KEY", "OPENROUTER_API_KEY"]

opencode auth login no requiere edición — las credenciales viven en ~/.opencode/.

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 conversación
  • OpenAB crea threads para conversaciones multi-turno
  • Cada thread corresponde a una sesión OpenCode (TTL 24h por defecto)

Personalización

ArchivoDescripción
/home/node/.config/openab/config.tomlConfiguración de OpenAB (sessions, reactions, STT, etc.)
/home/node/opencode.jsonConfiguración de modelo/proveedor de OpenCode
/home/node/.opencode/Credenciales y estado de OpenCode

config.toml se crea a partir de una plantilla integrada en el primer arranque. Después, edite el archivo directamente. Para restablecer los valores predeterminados: rm /home/node/.config/openab/config.toml

Webhook / Bot Integration

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), añada lo siguiente a su config.toml:

[discord]
allow_bot_messages = "mentions"

Con esta configuración, openab responde a cualquier bot o webhook que lo @mencione. Para restringir a un webhook específico, añada también:

trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]

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

Desactivar

Deje Discord Bot Token vacío al desplegar. El servicio entra en modo sleep sin fallar.

Enlaces