shared-computers.md 3.3 KB

可信成员共享电脑

默认每个 Agent 使用自己的电脑、工作目录及浏览器资料。用户可在 Web/macOS 的“电脑 → 电脑共享设置”中选择 2–8 名持久成员,明确确认共享工作文件与浏览器登录资料后创建共享电脑。成员必须属于当前账号,使用同一来源、同一 Profile 和同一个支持 shared-computer-v1 的 Runner。

执行与数据边界

  • 共享电脑是新工作区。原独立电脑的数据保留,不隐式搬运或合并。
  • 共享成员共用电脑环境及浏览器资料,所以只适用于彼此可信的成员;他们不拥有彼此的模型会话历史。Worker 会话同时核对 Agent、账号、环境和 Profile。
  • 同一电脑的租约互斥。一个成员执行时,其他成员等待资源,未提交的任务不消耗执行重试次数;取消只停止持有该租约的工作。
  • 电脑面板的成员选择器可查看不同的独立电脑;选择共享成员时看到同一环境。同一画面只允许一个人工控制会话,不能从另一个成员入口绕过控制权。
  • 创建和解除共享都要求成员没有排队或在途任务、没有有效人工接管。模型组队工具不能传入共享环境 ID,也不能创建或修改共享授权。临时助手始终使用任务所属的独立电脑。
  • 共享电脑固定原 Runner。更换来源 Runner 时明确报错,不在另一台机器静默创建空环境。旧 Runner 能力不足时拒绝共享执行。
  • 解除共享后,各成员回到原独立电脑;共享数据保留在原 Runner,仍可通过维护工具按环境 ID 备份。解除共享不是删除共享文件。

同一共享电脑是一个桌面,输入串行;多名 Agent 的独立电脑可并行运行。当前没有在同一容器中提供多个独立 X 桌面,也不将共享浏览器资料宣称为成员间隔离。

客户端

Web 与 macOS 提供创建/解除入口。iOS、Android 显示共享名称、资料范围并支持查看和接管;共享成员设置引导到 Web/macOS。所有操作仍由服务器检查权限,移动端不是绕过共享授权的通道。

验证

  • 服务端覆盖显式信任、账号/成员/来源边界、临时助手拒绝、模型参数拒绝、重复请求、在途任务与人工接管期间拒绝修改、解除后旧授权拒绝。
  • 真实 Docker、新镜像、打包 Runner 与 Hermes Worker:两名 Agent 先后访问同一工作文件,等待占用的电脑;第二人的模型历史不包含第一人的用户消息;原独立文件保留。共享电脑不能经第二个成员入口重复人工接管,控制中不能解除共享。
  • Web 六项流程通过,包含创建和解除共享,窄屏截图已核对。
  • iOS 28 项 Workspace 测试和 Android 模型/编译通过;两端生产电脑面板的 UI 测试均经过一次真实 HTTP 往返,验证只读、接管、文字输入、交还说明并回到 Agent 状态。界面截图使用固定测试图片;实际电脑输入效果由上述 Docker 验收证明,两类证据分别记录。

原生 UI 的隔离测试服务可用以下命令启动,测试结束后关闭:

python3 tests/fixtures/native-computer.py --port 18842 --image public/icons/icon-512.png # iOS
python3 tests/fixtures/native-computer.py --port 18841 --image public/icons/icon-512.png # Android