把一整支 AI Bot 团队装进本地聊天应用:OpenMausBot 机制拆解
【免费下载链接】OpenMausBotOpen-source Grok Bot alternative with a virtual machine that bots can use项目地址: https://gitcode.com/GitHub_Trending/op/OpenMausBot
Bot 要跑一条 shell 命令,claude的进程先被 permission broker 拦下,审批卡片通过 SSE 推到聊天窗口,进程挂起,等你点 Allow 或 Deny。整条链路发生在一台机器上:本地优先(local-first)的 harness 服务器管着所有 agent 进程,会话、密钥、事件都落在~/.openmausbot,厂商侧只看到你那个早已存在的 CLI 订阅。OpenMausBot 是开源的 Grok Bot 替代品,把"一整支 AI Bot 团队"装进一个 Telegram 风格的本地聊天壳里。
🧱 一个助手框为什么装不下智能体团队
闭源的个人 Agent 产品有一个共同形状:模型、云虚拟机和会话数据都钉在厂商一侧。你被锁在它的模型目录和账号体系里,换不了引擎,也搬不走机器;Agent 一旦"动手"——跑命令、改文件——过程发生在厂商的云端沙箱,你既看不到执行细节,也插不进一道审批关卡。
开源的 agent 框架解决不了另一半问题。多 agent 编排、审批拦截、500 个外部应用的接入,每一样都要自己写胶水;每加一个模型厂商,就要把消息处理和会话恢复的核心代码重写一遍。
OpenMausBot 的取向恰好相反:agent 进程跑在本地,多 agent 编排、审批与工具挂载全部做成显式的机制层,聊天界面只是最上面那层壳。
🧩 驱动 SPI 如何统一三种 agent 协议
先回答绕开哪个痛点:厂商锁定,靠一个刻意做小的驱动 SPI(driver SPI)化解。server/contracts.ts 里的ProviderDriver只要求四件事:sendTurn、interruptTurn、respondToRequest、hasSession。按 README 的说法,加一个厂商就是一个文件加一行注册,入口在 server/drivers/。
内部怎么跑:每个驱动负责把自家协议——Claude 的 stream-JSON、Codex 的 JSON-RPC、Grok 的 ACP——归一化成同一条运行时事件流。server/harness/ 只做两件事:registry 把配置映射成活的驱动实例,bus 把事件扇出成一条 SSE 流。应用侧没有自己的传输层,发的是类型化 HTTP 命令,收的是唯一一条事件流。遇到未知驱动,系统降级成 unavailable 影子快照,不会让整个舰队崩溃。
模型中途热切换的会话续接逻辑
难点在于:Claude、Codex 这类原生引擎是常驻进程,会话状态活在进程里,换模型不能简单换参数。驱动通过capabilities.sessionModelSwitch: "in-session" | "unsupported"声明能力,恢复会话时带resumeCursor——即厂商原生的续接标识,新模型接管的仍是原来那个会话。对请求式的 API 引擎则直接走下一请求的新model参数。
驱动上报的ModelCatalog在 server/model-catalog/ 汇总,picker 把各厂商的模型并排展示,不可用的灰显并给出原因。
审批卡片如何拦截 Shell 命令与提问
先回答绕开哪个痛点:黑箱执行。原生引擎把需要人的权限请求留给宿主回答,OpenMausBot 的 broker 只依据显式授权作答。
内部怎么跑:respondToRequest的返回是四值枚举RequestOutcome——allowed-once、rejected、answered、unavailable。其中unavailable是 fail-closed 默认:没有应答者,就没有动作。界面上,高风险动作变成聊天流里的内联卡片:选项加一个自由输入框,Allow / Deny / 直接回答三种结局。审批等级随每个 turn 重声明,避免恢复会话时沿用一份过期的宽松权限,具体规则见 docs/approval-levels.md。
云虚拟机的隔离边界与接管路径
Computer 面板让 Bot 通过 Boat 起一台云端 Linux 桌面:它干活时有实时屏幕预览,点 Open desktop 可以自己在浏览器里接管,也可以把 Bot 指回"这台 Mac"。无论目标落在云 VM 还是本机,审批链路是同一条——这就是它的隔离边界。据 docs/computer-use-integration.md 描述,本机控制仅在 macOS 与 Ubuntu Xorg 显式 opt-in 后启用,Wayland 下保持关闭。
MCP 挂载与工具可见性护栏
Composio 会话、本机电脑 MCP、内置浏览器、DuckDB 数据工具,这些外部工具都以 MCP 形式挂载,stdio 桥由 harness 持有。每个驱动用一组能力位声明自己能挂载哪些桥。代码里有一条明确注释:never tell a bot about tools its driver cannot mount——Agent 永远不会看到它无权执行的工具。Gmail、GitHub、Slack 这些连接走 Composio Sessions,OAuth 一次,所有 Bot 复用。
一条命令打开首屏
npx openmausbot首启向导用方向键走四步:选引擎、登录或粘贴 API Key、选模型、可选连接手机。随后首屏即 Telegram 风格布局:左侧 Bot 列表,中间当前会话,底部输入框。本机已登录的claude或codex会自动出现在模型选择器里,无需手填。偏好预编译包的话,macOS / Windows / Ubuntu 桌面安装包里已内嵌 harness,装完即用。
📊 能力边界与项目现状
| 能力 | macOS | Windows | Ubuntu 24.04 |
|---|---|---|---|
| 打包应用与本地 agent CLI | 稳定 | 稳定 | Beta |
| Composio 与云电脑 | 稳定 | 稳定 | Beta |
| Bot 控制本机 | 稳定 | 稳定 | Xorg 需 opt-in;Wayland 禁用 |
| 端侧听写与语音通话 | 稳定 | 未支持 | 未支持 |
- 许可证 Apache-2.0;
enterprise/目录按另一许可 source-available,删掉即得纯开源版 - 移动端原生配对和 Webhook 托管中继在建,Webhook 目前只走本地
127.0.0.1:8800接收器 - 语音通话(calls)目前仅 macOS
需要多租户 SaaS 或 7×24 托管形态的,现阶段不必看它。
收尾:三类人,一个动作
- 想在个人 Mac 上同时养五六个 Bot、又不想碰云虚拟机的独立开发者
- 需要审批卡片把关、再让 agent 执行本机 shell 的 DevOps 工程师
- 想把 Claude 与 Codex 的模型混着用、再用一个 Markdown 文件分发整支团队配置的自动化工程师
先npx openmausbot把首屏跑出来,确认手感,再决定要不要深入。
【免费下载链接】OpenMausBotOpen-source Grok Bot alternative with a virtual machine that bots can use项目地址: https://gitcode.com/GitHub_Trending/op/OpenMausBot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考