logo
icon

OpenAB Claude

Open Agent Broker — 轻量的 Rust 程序,通过 stdio JSON-RPC 将 Discord 和 Slack 桥接到任何 ACP 兼容的 coding CLI(Claude Code、Codex、Gemini、Kiro)。 来源:https://github.com/openabdev/openab

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

OpenAB

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

此模板部署的是 Claude 变体(openab-claude),使用 claude-agent-acp 作为 agent 后端。

注意事项

  • 镜像标签: 此模板使用固定版本(0.8.3-beta.4)。如需升级,请在 Zeabur Dashboard → 服务 → 设置中更改镜像标签。可用标签:GitHub Packages
  • 持久化存储: /home/node 挂载为持久化磁盘。Plugins、设置、config 和认证数据会在重启后保留。
  • 文件权限: 容器以 root 启动后切换为 node 用户(uid 1000)运行 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. 选择认证方式(选填 — 留空可在容器内登录)

方式使用方法
Anthropic API Key前往 console.anthropic.com/settings/keys → Create Key → 将 sk-ant-api... 密钥填入 OPENAB_AUTH_TOKEN
Zeabur AI Hub Token前往 Zeabur AI Hub → API Keys → Create → 将 token 填入 OPENAB_AUTH_TOKEN
Claude OAuth Token在终端运行 claude setup-token(需要 Claude Pro/Max/Team/Enterprise 订阅)→ 打开显示的 URL → 授权 → 粘贴验证码 → 将输出的 sk-ant-oat... token 填入 OPENAB_AUTH_TOKEN
容器内登录OPENAB_AUTH_TOKEN 留空。部署后到 Zeabur Dashboard → 服务 → Exec 运行 runuser -u node -- claude auth login(或 claude setup-token)。认证数据会写入持久卷的 /home/node/.claude/,重启后仍保留。

将 token 传给 agent: openab 会以 env_clear() 隔离 agent 子进程,因此方式 1–3 需在首次启动后编辑 /home/node/.config/openab/config.toml,在 [agent] 区块加入 env allowlist(或显式 env map):

[agent]
inherit_env = ["ANTHROPIC_API_KEY", "CLAUDE_CODE_OAUTH_TOKEN", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS"]

方式 4 无需修改 — 认证数据直接从 ~/.claude/.credentials.json 读取。

3. 获取 Discord 频道 ID

  1. 打开 Discord → 前往 用户设置(齿轮图标)→ 高级 → 启用 开发者模式
  2. 右键点击你要 Bot 回应的频道 → 复制频道 ID
  3. 多个频道用逗号分隔:123456789012345678,234567890123456789

4. 部署

填入变量后点击部署即可。服务会自动连接到 Discord 和/或 Slack。

Slack 设置(可选)

OpenAB 支持通过 Socket Mode 连接 Slack,无需公开 URL。

  1. 前往 https://api.slack.com/appsCreate New AppFrom scratch
  2. Socket Mode → 启用 → 生成 App-Level Token,scope 选 connections:write → 复制 xapp-... token(SLACK_APP_TOKEN
  3. Event Subscriptions → 启用 → 添加 bot events:app_mentionmessage.channelsmessage.groups
  4. OAuth & Permissions → Bot Token Scopes → 添加:app_mentions:readchat:writechannels:historygroups:historychannels:readgroups:readreactions:writefiles:readusers:read
  5. Install App → 安装到工作区 → 复制 xoxb-... token(SLACK_BOT_TOKEN
  6. 在每个要使用 Bot 的 Slack 频道执行 /invite @YourAppName

部署前填入 SLACK_BOT_TOKENSLACK_APP_TOKEN 变量。Discord 和 Slack 可同时运行。

添加通讯平台(Telegram / LINE / 飞书 / Google Chat / MS Teams)

若要桥接 Telegram、LINE、飞书/Lark、Google Chat 或 MS Teams,请在同一个 Zeabur 项目中部署 OpenAB Gateway 模板,然后在此服务上设置以下环境变量:

  • GATEWAY_URL = ws://openab-gateway:8080/ws
  • GATEWAY_PLATFORM = telegramlinefeishugooglechatteams 之一

重启服务。启动脚本会自动将 [gateway] 块注入 config.toml

使用方式

  • 在允许的 Discord 或 Slack 频道中 @mention Bot 即可开始对话
  • OpenAB 会自动创建 thread 进行多轮对话 — 后续消息不需要再 @mention
  • 每个 thread 对应一个持久的 Claude session(默认 24 小时 TTL)

自定义设置

文件说明
/home/node/CLAUDE.mdAgent 指令 — Claude 每次 session 会自动读取
/home/node/.config/openab/config.tomlOpenAB 设置(sessions、reactions、STT 等)
/etc/claude-code/managed-settings.jsonClaude Code 权限模式

config.toml 在首次启动时从内建模板创建。之后请直接编辑文件,环境变量仅用于初始设置。要恢复默认值请删除后重启:rm /home/node/.config/openab/config.toml

设置选项请参阅 OpenAB 文档

停用

部署时将 Discord Bot Token 留空即可。服务会进入 sleep 状态,不会崩溃。

链接