当前分支已将 Bot 的“隔离电脑”执行方式接入 Runner。用户仍使用原有 Agent、群聊、任务和权限接口;底层使用独立的电脑环境执行工具。
flowchart LR
UI[Web / macOS / 移动端] --> CP[夭夭任务协调器]
CP --> HUB[Runner 命令与授权通道]
HUB --> W[受控 Hermes 模型循环]
W --> G[工具分发与任务授权检查]
G --> VM[隔离 Linux 电脑]
VM --> A[分块产物校验]
A --> CP
模型循环进程运行在 Runner 侧,模型凭据仅通过私有进程管道传入。文件、终端、桌面及这些工具启动的进程在 guest 内执行;模型循环不使用原生 Hermes 工具执行分支。隔离电脑不挂载 Hermes 配置、密钥、宿主 HOME 或 Docker socket。
Worker 复用已安装 Hermes 的模型循环。它截获整个工具执行入口,覆盖串行、并行及内联工具分支,只接受本轮注入的工具。未知的 terminal、委派或消息工具不能进入宿主原生处理器。模型收到的工具目录只包含当前 Worker 的工具;禁用宿主上下文文件、记忆和后台复核。
terminal.cwd。Runner 读取并解析该配置,将私有工作区映射到相同的 guest 路径。路径相同不代表共享宿主目录。配置变更在下一轮应用,旧电脑身份退役,持久文件保留。当前 Worker 模型连接支持 Hermes 的 chat_completions、anthropic_messages、codex_responses API 模式;不启动宿主 CLI 模型后端。模型设置和凭据来自允许列表内的 Profile。
模型 Worker 自动继承所选基础 Profile .env 中的 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY、NO_PROXY 及其小写形式,无需单独配置 Worker。变量大小写和显式空值原样保留,由 Hermes SDK 决定代理选择与绕过规则;Profile 未配置时保持直连,不回退到 Runner 的全局代理。新建或恢复会话时重新读取,人工接管后交还控制时沿用本轮快照。代理仅在 Runner 内存和模型子进程环境中使用,不写入会话数据库或发送到客户端。
模型连接代理与隔离电脑的 none / public-proxy 联网策略相互独立。模型进程运行在 Runner 侧,因此代理地址中的 127.0.0.1 指向 Runner 所在运行环境,不会自动改写成虚拟电脑或 Docker 宿主地址。网络探测收到 HTTP 403 只能证明可达;验收模型连接需要收到完整模型回复。
computer-worker-v1 能力;旧 Runner 或未配置电脑的 Runner 会被拒绝,不会把隔离任务当普通宿主任务运行。用户附件和分派所需文件通过受控输入写入 guest。computer_export 将文件复制为本次导出快照,按块传输,并在控制面校验大小与 SHA-256;每个产物最多 25 MiB,每轮最多 8 个。成功后以正常文件附件出现,支持原有的预览、下载和移动端协议。
产物保留原作者消息和 Profile 归属。任务依赖、管理员复核和结果回传会附上相应文件;转交不会重写原产物来源。隔离消息中的任意路径不会交给宿主 Hermes 文件接口自动读取。
terminal 请求被拒绝,未产生宿主写入。测试模型服务使用确定的协议响应,没有调用付费模型。这些证据证明执行链路与边界,不代表真实模型在任意复杂任务下的自主决策质量。
电脑可按节点配置使用受控公网代理,详见 docs/computer-network.md。镜像安装/更新、临时助手、屏幕查看/接管、可信团队共享环境,以及移动端执行方式设置等仍属于完整目标的后续工作。现有移动端已可使用服务端创建的隔离 Agent、接收结果和文件,但不能据此宣称完整电脑界面已交付。