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

OpenAB 是一个轻量的开源 Rust 程序,通过 stdio JSON-RPC 将 Discord 桥接到任何支持 Agent Client Protocol 的 coding CLI。
此模板使用 OpenCode 作为 agent 后端,支持 75+ LLM 供应商。
0.8.3-beta.4)。如需升级,请在 Zeabur Dashboard → 服务 → 设置中更改镜像标签。/home/node 挂载为持久化磁盘。设置、config、认证数据和 opencode.json 会在重启后保留。node 用户运行 openab。如遇权限问题,重启服务即可。bot → 勾选权限:Send Messages、Send Messages in Threads、Create Public Threads、Read Message History、Add Reactions、Manage MessagesOpenCode 需要连接 LLM 供应商。最简单的方式是在 Zeabur Dashboard → 服务 → 变量中设置环境变量:
| 变量名 | 供应商 |
|---|---|
OPENCODE_API_KEY | OpenCode 原生(在 opencode.ai 获取) |
ANTHROPIC_API_KEY | Anthropic Claude |
OPENAI_API_KEY | OpenAI GPT |
GOOGLE_GENERATIVE_AI_API_KEY | Google Gemini |
GROQ_API_KEY | Groq |
MISTRAL_API_KEY | Mistral |
DEEPSEEK_API_KEY | DeepSeek |
OPENROUTER_API_KEY | OpenRouter(代理 100+ 模型) |
设置至少一个变量后重启服务,OpenCode 会自动读取。
交互式登录(替代方式)
如需使用浏览器 OAuth 的供应商(如 AWS Bedrock、Azure OpenAI),在 Zeabur Dashboard 打开服务终端并运行:
runuser -u node -- opencode auth login
⚠️ 必须以
node身份执行。以root执行会把认证文件写到/root/,该路径未持久化,重启后会丢失。
将 API key 传给 agent: openab 会以
env_clear()隔离 agent 子进程,因此 env var 路径需要 allowlist。首次启动后编辑/home/node/.config/openab/config.toml,在[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无需修改 — 认证数据存在~/.opencode/。
如需设置特定模型,创建或编辑 /home/node/opencode.json:
{
"provider": "anthropic",
"model": "claude-sonnet-4-20250514"
}
详见 OpenCode 文档。
填入 Discord Bot Token 后点击部署。服务会自动连接到 Discord。然后使用上述方法认证 OpenCode。
若要桥接 Telegram、LINE、飞书/Lark、Google Chat 或 MS Teams,请在同一个 Zeabur 项目中部署 OpenAB Gateway 模板,然后在此服务上设置以下环境变量:
GATEWAY_URL = ws://openab-gateway:8080/wsGATEWAY_PLATFORM = telegram、line、feishu、googlechat 或 teams 之一重启服务。启动脚本会自动将 [gateway] 块注入 config.toml。
| 文件 | 说明 |
|---|---|
/home/node/.config/openab/config.toml | OpenAB 设置 |
/home/node/opencode.json | OpenCode 模型/供应商设置 |
/home/node/.opencode/ | OpenCode 凭据与状态 |
默认情况下,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 留空即可。