logo
icon

OpenAB OpenCode

Open Agent Broker — 轻量的 Rust 程序,通过 stdio JSON-RPC 将 Discord 桥接到任何 ACP 兼容的 coding CLI。此模板使用 OpenCode 作为 agent 后端,支持 75+ LLM 供应商(Ollama Cloud、OpenAI、Anthropic、Google 等)。 来源:https://github.com/openabdev/openab

template cover
部署次数2
发布者zeaburZeabur
创建于2026-04-19
最低配置2 核心4 GB
推荐配置4 核心8 GB
标签
AIDeveloper ToolsDiscord

OpenAB OpenCode

OpenAB 是一个轻量的开源 Rust 程序,通过 stdio JSON-RPC 将 Discord 桥接到任何支持 Agent Client Protocol 的 coding CLI。

此模板使用 OpenCode 作为 agent 后端,支持 75+ LLM 供应商。

注意事项

  • 镜像标签: 此模板使用固定版本(0.8.1-beta.5)。如需升级,请在 Zeabur Dashboard → 服务 → 设置中更改镜像标签。
  • 持久化存储: /home/node 挂载为持久化磁盘。设置、config、认证数据和 opencode.json 会在重启后保留。
  • 文件权限: 容器以 root 启动后切换为 node 用户运行 openab。如遇权限问题,重启服务即可。

设置步骤

1. 获取 Discord Bot Token

  1. 前往 https://discord.com/developers/applications,点击 New Application
  2. 进入 Bot 页签 → 点击 Reset Token → 复制 token
  3. 同一页面往下滑,在 Privileged Gateway Intents 下启用 Message Content Intent
  4. 前往 OAuth2 → URL Generator → 勾选 scope bot → 勾选权限:Send Messages、Send Messages in Threads、Create Public Threads、Read Message History、Add Reactions、Manage Messages
  5. 复制生成的 URL,在浏览器中打开以邀请 Bot 到你的服务器

2. 配置 LLM 供应商(部署后)

OpenCode 需要连接 LLM 供应商。最简单的方式是在 Zeabur Dashboard → 服务 → 变量中设置环境变量:

变量名供应商
OPENCODE_API_KEYOpenCode 原生(在 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(代理 100+ 模型)

设置至少一个变量后重启服务,OpenCode 会自动读取。

交互式登录(替代方式)

如需使用浏览器 OAuth 的供应商(如 AWS Bedrock、Azure OpenAI),在 Zeabur Dashboard 打开服务终端并运行:

runuser -u node -- opencode auth login

⚠️ 必须以 node 身份执行。以 root 执行会把认证文件写到 /root/,该路径未持久化,重启后会丢失。

3. 模型选择(选填)

如需设置特定模型,创建或编辑 /home/node/opencode.json

{
  "provider": "anthropic",
  "model": "claude-sonnet-4-20250514"
}

详见 OpenCode 文档

4. 获取 Discord 频道 ID

  1. 打开 Discord → 前往 用户设置高级 → 启用 开发者模式
  2. 右键点击频道 → 复制频道 ID
  3. 多个频道用逗号分隔

5. 部署

填入 Discord Bot Token 后点击部署。服务会自动连接到 Discord。然后使用上述方法认证 OpenCode。

使用方式

  • 在允许的频道中 @mention Bot 即可开始对话
  • OpenAB 会自动创建 thread 进行多轮对话
  • 每个 thread 对应一个持久的 OpenCode session(默认 24 小时 TTL)

自定义设置

文件说明
/home/node/.config/openab/config.tomlOpenAB 设置
/home/node/opencode.jsonOpenCode 模型/供应商设置
/home/node/.opencode/OpenCode 凭据与状态

Webhook / Bot 集成

默认情况下,openab 会忽略其他 bot 和 webhook 的消息。若要允许 webhook 触发的消息(例如自动化测试或 CI pipeline),请在 config.toml 中添加:

[discord]
allow_bot_messages = "mentions"

设置后,openab 会响应任何 @mention 它的 bot 或 webhook 消息。若要限制为特定 webhook,请再添加:

trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]

Webhook 用户 ID 是 webhook URL 中的数字 ID:https://discord.com/api/webhooks/<ID>/...

停用

部署时将 Discord Bot Token 留空即可。

链接