Runner 在运行 Hermes 的电脑上主动连接夭夭服务。用于 Web 位于 Docker、另一台电脑或远程服务器时,将 Bot 会话和本轮组队工具交给 Hermes 所在电脑执行。Runner 源码、构建入口和管理页面均位于 hermes-yaoyao。
普通执行方式继续使用原有 Hermes。配置电脑 Worker 后,Agent 可选择隔离电脑执行,模型工具不会退回宿主。公网代理、屏幕接管和共享环境均已接入,使用流程见 docs/local-vm.md。Docker 部署与程序包下载见 docs/docker-install.md。
网页任务可独立启用 Runner 托管 Chromium,无需启动完整 VM,配置、接管与文件互通见 托管浏览器。默认关闭,保留现有电脑工具路径。
runner.json。节点凭据只在注册响应中返回;列表和刷新不会返回凭据。chmod 600 /完整路径/runner.json。npm run build,然后执行 npm run runner -- --config /完整路径/runner.json。也可执行 npm run runner:build,将整个 .runner-build/ 目录复制到执行电脑,以 Node.js 24 或更高版本运行。不要只复制单个 runner.mjs,虚拟桌面还需要同目录的 Worker 和桌面资源:
node runner.mjs --config /完整路径/runner.json
macOS App 可直接通过菜单栏“执行节点 → 导入节点配置…”导入下载的配置,无需另外安装 Node.js。App 使用系统钥匙串支持的加密存储保存配置,通过私有进程消息传入内置 Runner;凭据不进入命令行或子进程环境变量。随后每次打开 App 都会自动启动已配置的 Runner。关闭窗口保持连接,退出 App 时清理自己管理的 Runner;“断开并忘记配置”移除本机保存的配置。原始下载文件仍由用户管理。
配置文件至少包括以下字段。token 由注册操作生成,不需要填写模型密钥。
{
"protocol": 1,
"serverURL": "https://yaoyao.example.com",
"runnerId": "注册响应中的节点 UUID",
"token": "注册后下载的节点凭据",
"hermesURL": "http://127.0.0.1:9119",
"allowedProfiles": ["default"],
"artifactRoots": []
}
若 Hermes 启用了账号鉴权,可在本机私有配置添加 hermesCredentials 对象,包含 username 和 password;它们留在执行电脑,控制面不接收 Hermes 密码。回环授权则由现有 UpstreamServiceSession 自动协商。远程明文 HTTP 必须明确设置 allowInsecureLan: true。
每个来源同时只允许一个启用的 Runner。已有配对 Web 来源应在目的 Web 服务内注册自己的 Runner。停用会立即关闭控制面的工具授权,执行电脑在连接恢复或轮询时收到拒绝。配置丢失时停用并重新注册;旧配置不能恢复已撤销的节点。
artifactRoots,留空拒绝导出。tests/server/runner.test.ts 使用独立 HTTP/WebSocket 服务验证实际传输、权限交集、调用去重、未完成回执、连接代次、断线重连、取消竞态和会话隔离。
tests/e2e/team-tools.spec.ts 覆盖注册、配置下载、列表不返回凭据、停用以及窄屏布局。
真实 Hermes 协议验收沿用 docs/bot-agent-teams.md 的隔离 fixture。添加 HERMES_TEAM_RUNNER=1 后,原生工具创建成员、组队、分派、复核、完成目标、回传原会话和双管理员并发都经过 Runner。模型决策由确定脚本替代,不代表真实模型自主决策质量,也不代表 VM 验收。