目标:完成本线程确认的整体方案。macOS App、Web、执行节点和电脑服务源码共同维护在 hermes-yaoyao;移动客户端继续使用各自仓库。当前工作分支为 feat/bot-agent-teams。
本文用于保留完整范围和验收证据。2026-09-09 已完成下列分支实现及交付验收;历史段落中的阶段待办以本页最终记录为准。完整设计、参考项目取舍和启用顺序见 agent-platform-design.md。
ac62d07)。ac62d07,iOS 5908a2b;此前自主组队分支的验收见 docs/bot-agent-teams.md。desktop/lifecycle.test.mjs,实际测试服务启动、窗口关闭后存活、强制结束服务后的恢复、外部连接不误停服务、退出清理。611995fea080455da3a87a561cb5a7465a70e7437a91b948d45ce346822b0095。这是阶段产物,尚未公证、发布或替换正式服务。HERMES_TEAM_RUNNER=1 后,真实 Hermes 隔离协议验收通过,包含原生工具创建成员、组队、结构化分派、验收、完成、结果回传和双管理员工具隔离。执行细节和当前限制见 docs/runner.md。这是传输层验收,尚非 VM 或真实模型自主决策验收。/tmp/yaoyao-runner-package-130917f/mac-arm64/夭夭.app,为临时 ad-hoc 签名测试包,严格签名检查通过。未替换 desktop-release 中较早的开发证书快照,也未安装、部署、公证或发布。服务全量 680 项通过;配置与 Runner 定向 23 项通过。docs/computer-provider.md。尚未接入任务资源租约和受控 Worker,VM 功能仍未完成。当前源码验证:类型检查、711 项全量测试通过;2 项真实环境测试默认按需跳过,已分别执行过真实 Hermes Runner 协议和真实 Docker 电脑/租约验收。所有电脑验收容器均已清理。整体目标仍在进行,下一步是受控 Worker、联网代理及任务/权限接入,随后完成跨端电脑界面与其余交付项。
受控 Worker 阶段:Bot 执行方式可选择隔离电脑,已接入真实 Hermes 模型循环、任务授权与持久电脑租约。模型循环在 Runner 侧,工具和工具子进程在 guest 内;凭据不传入电脑环境。详见 docs/computer-worker.md。
完整 Runner 二进制验收经过控制面 → Runner → Hermes Worker → 真实 Docker;验证 UID 1000 执行、配置中的 cwd、同一 Agent 更新 cwd 后继续执行、宿主原生工具拒绝、团队创建、原会话结果、文件附件下载及多块二进制导出。模型服务使用确定的测试响应,没有调用付费模型。
增加执行节点能力协商,旧 Runner 不支持隔离时明确拒绝;未提交的资源不足任务保留排队,恢复后只提交一次。历史消息记录原执行环境,后续改变 Agent 设置也不会把原隔离消息的路径交给宿主读取。
产物校验后保留原作者/消息归属,支持原有下载接口、转交与任务复核附件。类型检查和 718 项测试通过;4 项真实环境测试默认跳过,Worker 的真实环境与打包 Runner 版本已单独执行。
全目标仍未完成:优先继续受控联网、镜像准备/升级、临时助手、屏幕查看与人工接管、共享环境、移动端入口及后台/更新交付项。不能将 Worker 链路完成视作完整平台交付。
本阶段最终检查:类型检查与 719 项全量测试通过,4 项真实环境测试默认按需跳过;打包 Runner 的真实 Worker 测试 2 项通过,包含原生宿主工具拒绝、分块二进制产物、下载、cwd 变更和取消延迟写入。Web 4 项入口测试及桌面 4 项生命周期测试通过;窄屏弹窗截图已核对。测试电脑容器全部清理。
停止与撤权分开处理:撤销执行授权不阻断已绑定任务的清理,只允许清理原会话;清理通道不能提交新工作。电脑恢复首先核对并停止原持有者,旧容器身份不会被新任务复用。
公网代理阶段:保持电脑无外部网卡,通过专属进程管道建立公网 80/443 连接,拒绝保留地址、内网、宿主网卡地址及混合 DNS 结果。支持命令环境变量与浏览器代理策略。真实 Docker 的 curl/Firefox HTTPS、截图、宿主拒绝和关停测试通过;完整打包 Runner 的 Worker 公网访问测试通过。详见 docs/computer-network.md。
联网阶段最终验证:类型检查和 756 项全量测试通过,5 项真实环境测试默认跳过;地址/代理与 BFF 定向 50 项通过,Web 4 项流程测试通过。真实 Firefox 公网页面截图已核对;公网 Worker 的打包 Runner 验收通过。电脑验收容器全部清理,完整目标仍未完成。
临时助手阶段:新增创建并分派任务的工具,助手没有单聊、不是永久团队成员,只能执行所属目标的当前阶段;固化隔离模式,禁止提权和跨任务使用。目标结束后退役,按原 Runner 进行持久清理重试;清理只删除助手执行数据,保留控制面产物。详见 docs/task-helpers.md。
Web、iOS、Android 已加入临时助手标识和持久成员选择过滤。iOS 27 项 Workspace 测试通过;Android 模型测试和 Debug Kotlin 编译通过。真实 Hermes Worker / Docker 的临时助手执行和退役清理验收已通过。
临时助手最终验收:服务端类型检查与 759 项全量测试通过,5 项真实环境测试默认跳过;打包 Runner 的真实临时助手完成/清理验收通过;Web 4 项流程测试和临时助手标识截图通过。iOS 27 项 Workspace 测试、Android 31 项模型测试和 Debug Kotlin 编译通过。测试容器全部清理。其余镜像管理、电脑接管、共享环境和桌面交付项继续推进。
电脑控制阶段:Web、macOS、iOS、Android 入口已接入只读画面与独立人工控制凭据;暂停模型、等待在途工具、同一电脑递增代次转交、交还后继续原任务。真实 Docker 终端点击/输入/文件证明和原任务续跑通过。详见 docs/computer-control.md。跨端原生视觉、镜像管理、共享环境和最终桌面交付仍待完成。
电脑控制源码检查:类型检查和 Web 构建通过,762 项全量测试通过,5 项浏览器流程通过,iOS 28 项 Workspace 测试通过,Android 模型测试和 Kotlin 编译通过。窄屏电脑面板截图已核对。本轮验收容器全部清理,正式 Web 服务 PID 28292 未改变。
镜像与维护阶段:本仓库提供固定来源的镜像配方、健康/截图验证、校验归档导入导出、停止后的工作区备份/恢复/重建及内容恢复中断后的回退。新镜像不会自动替换运行环境;保留旧镜像与恢复前数据。真实 arm64 Docker 构建、归档往返通过。详见 docs/computer-maintenance.md。
维护阶段最终验证:类型检查和 767 项全量测试通过;真实新镜像的工作区恢复后重启读写通过;打包 Runner / 新镜像的完整 Worker 验收 2 项通过,包含公网、临时助手和人工接管。恢复保留挂载根目录以兼容 macOS 文件共享,并测试中断回退。
桌面补齐阶段:内置服务版本与 App 对齐校验,已有外部服务显示实际版本;登录启动为原生显式开关,支持登录时仅驻留菜单栏。App 内置服务禁用源码部署更新器,提供 App 手动更新/数据回退说明。6 项桌面生命周期及凭据/偏好/版本测试、14 项更新器定向测试通过。真实开机与最后完整包验收仍需区分,见 docs/macos-app.md。
可信共享阶段:用户显式授权同来源/Profile 的持久成员,新建共享工作区;电脑租约串行,成员模型历史独立,临时助手与模型组队工具不能自行加入共享。共享电脑固定原 Runner;人工控制按整个环境互斥。真实 Docker / 新镜像 / 打包 Worker 的跨成员文件和会话边界验收通过。见 docs/shared-computers.md。
Web 6 项流程通过;iOS、Android 原生电脑面板的只读/接管/输入/交还 UI 与 HTTP 往返均通过,截图已核对。iOS 28 项 Workspace 测试、Android 模型与 Debug 编译通过。最终完整 App 打包、默认 Docker 控制面验收和清单核对继续推进。
共享阶段最终源码验证:770 项全量测试通过;旧 Runner 能力拒绝保留原错误契约,子账号隔离用例定向 20 项及最终全量均通过。共享电脑 UI 6 项通过,真实共享 Worker 2 项通过。镜像配方和许可证纳入默认 Docker 构建输入。
5455a98;包内 build-info.json 同时记录运行时代码 a5d4ad4 与原生助手最低 macOS 12.0。最后一次原生助手按最低系统版本重编译后,重新签名 App、重跑实际签名 App 测试,再生成 DMG。desktop-release/agent-platform/mac-arm64/夭夭.app。desktop-release/agent-platform/Yaoyao-0.3.32-arm64.dmg,SHA-256 3f86be3315ff9da3e573f67f49c1d6ea0a29f15f5a3172647aaf4ea2b31cc3a7。desktop-release/agent-platform/Yaoyao-Computer-arm64.tar,SHA-256 63a72afff1169439d74b500b883d8cff4bbbf726148c21a64226d8d3b02f2f7e;同目录包含镜像清单、校验文件和启用说明。yaoyao-agent-platform:branch-arm64,镜像 ID sha256:632c1440cfd3abbd7450678bd690eea1f1efa7be9a0bec68e4a0d8a4914fd8e8。按默认只读、UID 1000、无额外 capability、独立数据卷配置,连接容器外 Runner 并完成隔离任务及文件回传。电脑采用容器级隔离,macOS 底层 Linux VM 由 Docker/Podman 提供;多桌面指多台独立电脑,共享电脑为单桌面串行,浏览器资料也共享。独立电脑各自保存浏览器资料。备份是确认停止后的文件一致备份,不是内存/应用事务快照。
Docker 已做真实运行验收;Podman 有接口与离线一致性测试,未做实机运行。远程节点使用相同的主动连接协议,Docker 控制面与容器外 Runner 已验收;没有宣称不同物理主机、全部操作系统版本均已实测。登录启动开关有实现和偏好验证,本轮没有重新登录 macOS。
模型循环使用真实 Hermes SDK,模型输出由本地确定性测试服务提供,未调用付费模型。正式 15300 服务、实体手机、参考仓库没有被本轮替换或部署;验收容器、临时数据卷和测试服务均已清理。App 使用 Apple Development 开发签名,未公证、未对外发布。旧 safeStorage 配置若需要钥匙串授权,仍由用户完成正常系统授权。
2026-09-09 本地虚拟机的新流程以 local-vm.md 为准:准备与隔离策略在应用设置,电脑预览和实例操作在 Agent 聊天右侧;手机端仅从当前聊天查看与操作电脑。