Bot 模式可以让获得授权的管理员 Agent 创建持久成员、建立团队、分派任务,也可以按目标创建临时助手。任务调度、权限和结果由服务端持久保存。macOS App、Web 控制面、Runner 和电脑 Provider 均放在 hermes-yaoyao,分支为 feat/bot-agent-teams;iOS 和 Android 的协议入口在各自仓库维护。
App 打开时启动或连接本地 Web 服务,按配置启动 Runner,检测并托管缺少的本地 Hermes 服务。关闭窗口保留执行;明确退出仅停止自己的进程。已有外部服务保持其原版本与生命周期,不会被新 App 静默替换。
| 参考实现 | 吸收的部分 | 本方案的具体选择 |
|---|---|---|
OpenMausBot server/container-computer.ts |
不可变镜像、每 Bot 环境、工作目录持久化、驱动健康检查、guest CUA | 采用兼容的 CUA 0.20.0 接口;独立配方随本仓库交付;guest 无外部网卡、不发布 VNC 端口 |
| OpenMausBot 镜像配方 | 固定基础镜像与驱动/字体 SHA-256、浏览器资料目录 | 派生配方按 Apache-2.0 保留来源与许可证,增加夭夭标识和 Firefox 持久资料 |
Rakazo apps/api/src/team-chat-startup.ts |
启动缓冲有上限、持久接收/唤醒归属、关闭等待有界 | 控制面保留投递、去重、任务归属、取消状态与恢复代次;结果回到原会话 |
Rakazo packages/core/src/screen-lease.ts |
递增 fence,旧操作者无法覆盖新操作者 | 电脑租约持久化;人工接管等待在途工具结束,转交同一电脑并递增代次 |
Rakazo 0008_team_computers 数据迁移 |
电脑资源独立于 Bot,区分独立和团队电脑,执行/控制归属独立 | 默认独立电脑;用户明确授权后才能共享;临时助手不能加入共享电脑 |
| Rakazo 团队桌面测试 | 独立浏览器资料、持久化、旧查看/控制 token 拒绝 | 多个独立电脑可并行;共享电脑输入串行,跨端统一控制凭据与画面版本 |
没有改动两个参考仓库。Rakazo 的同一容器多个桌面并非本实现:这里的多桌面来自不同独立电脑;同一可信共享电脑只有一个桌面。共享成员知道它们会共用浏览器登录资料。
flowchart TD
Clients[Web / macOS / iOS / Android] --> API[账号 API 与事件同步]
Mac[macOS App 生命周期管理] --> API
API --> Tasks[持久目标、分派、复核与结果投递]
Tasks --> Hub[Runner 网关与授权检查]
Hub --> Runner[执行主机上的 Runner]
Runner --> Model[Hermes 模型循环]
Model --> Bridge[本轮允许的工具桥]
Bridge --> Pool[电脑资源池与递增租约]
Pool --> Private[独立电脑]
Pool --> Shared[用户授权的共享电脑]
Private --> Export[校验后的文件产物]
Shared --> Export
Export --> Tasks
六个对象必须分开:Profile 是模型与能力配置;Agent 是持久身份;团队是成员与角色关系;目标/子任务记录责任和验收;Runner 是执行主机;电脑是可复用资源。聊天会话和窗口都不是任务调度器。
当前限制:每队 2–8 人;账号最多 100 个有效 Agent、20 个有效团队;每个目标最多 32 个子任务;临时助手最多 8 个同时有效、32 个累计;每次授权最多 3 次任务尝试、8 次自动唤醒。同一 Agent 串行,全局最多 4 个执行槽。
Runner 默认最多同时运行 2 台电脑,可配置 1–8 台;默认最多保存 32 个环境记录。资源在启动前预占,停止无法确认时保持占用。环境使用完整镜像 ID,校验账号、Runner、容器标签、挂载、网络、UID、CPU、内存与进程上限。
模型循环位于 Runner 主机,模型密钥通过私有进程通道传入;终端、文件、浏览器、电脑动作及其子进程在 guest 中执行。关闭原生宿主工具和二次委派出口,能力不足明确报错。Profile 的 cwd 在 guest 中映射为私有工作区的路径,不代表挂载宿主的整个项目目录;资料通过附件、guest 下载和产物导出流转。
默认 guest 没有外部网络。可选公网代理只允许公共地址的 80/443,拒绝内网、宿主、保留地址及混合 DNS 结果。浏览器和命令使用同一受控代理;这不是任意内网网络访问能力。
电脑面板默认只读。人工接管暂停模型,等待已提交工具结束,再转交同一容器;后台浏览器等应用保持运行。输入必须携带本页面凭据、当前代次和近期画面 ID。控制有效期 30 秒,前台续期;断开或撤权后停止,不自动恢复。交还说明进入原任务的新模型段,保留工作标识及已经执行的工具结果。
详细验收以 agent-platform-implementation.md 为准。当前已有真实 Docker / Hermes 模型循环 / 打包 Runner / 默认 Docker 控制面的执行与产物证据,Web 和两端原生电脑面板的 UI 往返证据。模型服务使用确定的本地测试响应;没有把脚本模型结果冒充为真实模型自主决策质量。
正式服务部署、真实手机安装、系统重新登录、Podman 实机、amd64 镜像、公证和对外发布分别记录。开发签名的分支 App 不等于已公证的公开发行版。当前实现是容器级隔离,macOS 底层 Linux VM 由 Docker/Podman 提供;独占内核 VM、宿主 macOS CUA 和其他云电脑 Provider 是明确的扩展边界。
配套说明:bot-agent-teams.md、runner.md、computer-provider.md、computer-worker.md、computer-network.md、computer-control.md、task-helpers.md、shared-computers.md、computer-maintenance.md、macos-app.md。
2026-09-09 本地虚拟机的新流程以 local-vm.md 为准:准备与隔离策略在应用设置,电脑预览和实例操作在 Agent 聊天右侧;手机端仅从当前聊天查看与操作电脑。