ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

把一整支 AI Bot 团队装进本地聊天应用:OpenMausBot 机制拆解

把一整支 AI Bot 团队装进本地聊天应用:OpenMausBot 机制拆解

把一整支 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,装完即用。

📊 能力边界与项目现状

能力macOSWindowsUbuntu 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),仅供参考

返回列表