开源 AI Agent 工作台 OpenMausBot 部署:一个窗口管一队 Agent,含审批分级
OpenMausBot 是个开源的多机器人工作台:一个聊天窗口里排着一队 bot,每个 bot 有独立的模型、记忆和一台电脑,跑在你本机已登录的 claude / codex / grok CLI 上。Apache-2.0,TypeScript,当前 v0.1.142,13,839 星。
这篇只讲工程侧:怎么装、两个进程各管什么、四级审批的默认值是什么、以及几处会咬人的边界。
一、它是什么
| 项 | 情况 |
|---|---|
| 版本 / 许可 | v0.1.142 / Apache-2.0 |
| 技术栈 | TypeScript(4,972 个 ts/tsx 文件)、React + Tailwind、Electron |
| 形态 | 桌面端(macOS / Windows / Ubuntu 24.04 x64)+ iOS + 本地服务 |
| 运行要求 | Node 24+、pnpm、至少一个已登录的 agent CLI |
| 星数 / issue | 13,839★、474 个 open issue(2026-11-06) |
| 默认审批级别 | Full access |
架构上是两个进程:界面(开发模式 127.0.0.1:5199)自己不持有任何传输层,只向本地 本地服务 服务(127.0.0.1:8799)发 HTTP 命令,再把一条 SSE 事件流折叠成界面状态。所有 agent 进程都由 本地服务 拥有,各 provider 的原生协议在 server/drivers/ 里归一到一条规范事件流,按线程落 NDJSON。数据在 ~/.openmausbot。

二、三条安装路径
发布包最省事,本地服务 是内置的,不用单独起服务:
macOS(Apple silicon / Intel) → .dmg
Windows x64 → setup.exe(未签名,走 SmartScreen「仍要运行」)
Ubuntu 24.04 x64 → .deb 或 AppImage(beta,GNOME)
已经装了 Node 的,用 npm 包,第一次启动会引导选 AI 接入方式:
npm install -g openmausbot
openmausbot # 加 --no-open 可跳过自动开浏览器
# 或 npx openmausbot
要改代码就源码跑,三个终端各起一个:
git clone <项目仓库地址> && cd OpenMausBot
pnpm install
pnpm dev:server # 本地服务 → 127.0.0.1:8799
pnpm dev # 界面 → 127.0.0.1:5199
pnpm dev:desktop # Electron 壳,上面两个保持运行
要跑在服务器上,仓库自带 compose,两个服务:omb(健康检查打 /api/health)与 caddy(默认只绑 127.0.0.1,端口取 OMB_HTTP_PORT,默认 8080):
docker compose up -d
镜像与引擎可用环境变量覆盖:OMB_BASE_IMAGE、ENGINES(默认 @anthropic-ai/claude-code @openai/codex)。没有界面也能干活,CLI 支持从文件建队和单任务运行:
openmausbot team apply team.yaml
openmausbot run "Room Lead" "跑一遍发布前检查" --export ./out
三、审批分级:默认是全权
这是最容易踩的一节。审批一共四档,另有一个 Codex 专用的 Custom:
| 级别 | 行为 |
|---|---|
| Ask for approval | 命令与文件改动都要你批 |
| Auto-accept edits | 自动批文件改动,其他动作仍可能问 |
| Approve for me | 用 provider 自己的自动审查代批常规动作(Codex / Claude / Cursor / Grok),没有等价机制的 provider 退化成询问 |
| Full access | 放行命令、改动与选定电脑上的操作,残留的原生权限弹窗代你回答 |
| Custom(config.toml) | 仅 Codex:读取并复用你 Codex 配置里的审批与沙箱设置 |
文档写明:每个 bot 与每条会话初始就是 Full access,你选中它的那一刻生效,没有确认框。Full access 下,profile 变更、例行任务、建队、删 bot、技能编写都不再二次确认;通过已连接应用往外发(邮件、消息、帖子、支付)才回到 bot 的 Sending on your behalf 设置:选「每次询问」就每次都要授权,选「允许每日额度」就吃额度上限。应用代码执行始终要审批。
一个例外值得记:托管的企业工作区默认是 Ask,因为那边的 Full access 只能由运维策略下发。
收紧的做法很简单:bot 设置里把级别改成 Ask for approval,注意它对该 bot 的所有已有线程一起生效;只要改单条线程,就在输入框那里改。
四、机器人电脑的三种选择
每个 bot 的工作位置可以选:
- 云 Linux 桌面(Boat):在应用里点开自建,有实时画面,可接管到浏览器
- 本地隔离 VM:本机容器里的一张桌面
- 你自己的电脑:macOS 与 Ubuntu Xorg 需要显式开启;Wayland 下这项被安全闸关着(issue #345)
自备 VPS 也行,走 docker -H ssh:// 把容器开到远端,本机不需要 docker 守护进程,只要 CLI(18.09+),VPS 上要有 dockerd,SSH 用户得在 docker 组里。文档自己写了一句要看清的话:docker 组成员在那台机器上等价于 root。
想让 agent 真的能动手又不至于碰你的主力环境,组合是:Ask for approval + 工作位置设成云桌面或本地 VM。
五、接别的模型
除了三个内置 CLI,任何说 ACP 的 CLI,或者 OpenAI 兼容端点(DeepSeek、OpenRouter、Fireworks、Cline 等)都能接,配置在 apps/docs/content/docs/providers/model-providers.mdx。自定义引擎看 docs/custom-engines.md,加一个 provider 就是一个文件加一行注册(server/contracts.ts 的 driver SPI 很薄)。另外它自带一个 stdio MCP server,可以被 Claude Desktop、Cursor 这类外部客户端调,但暴露面是刻意收敛的:不给审批授权、不给删除、不给凭据、不给电脑生命周期。
六、几个坑
中文没翻完:issue 记录简体中文缺 1,280 个键。
订阅额度:issue 里有 Codex 在订阅用量 100% 时被挡住、尽管账号还有积分的案例。多 bot 并行的消耗远高于单窗口。
桌面互连:有 pair 403 一类的连接故障,作者的路线图里移动端与桌面互连还在完善,webhook 触发器目前用本地接收端而不是常驻中继。
Windows 安装包未签名,Ubuntu 是 beta,Wayland 限制见上。
接 OpenAI 兼容端点的 bot 在 Local VM 里可能拿不到电脑与浏览器工具(issue 有记录),同一个 bot 换 Claude 引擎正常。
七、小结
- 只想用:下发布包,装完在设置里选模型来源(用你已有的 CLI 登录)
- 想稳:权限改 Ask for approval,工作位置设云桌面或本地 VM,代为发送设成每次询问
- 想自托管:compose 或 npm 包,
OMB_HTTP_PORT与ENGINES按需覆盖 - 想改造:driver SPI 在
server/contracts.ts,自定义引擎零代码接 ACP / OpenAI 兼容端点
它的价值不在模型,在"每个 bot 有自己的会话与电脑"这层隔离;它的风险也不在模型,在默认那一档 Full access。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)