Runner 与云端环境
Runner(执行机)是启动 Agent 底座、实际执行工作的进程。
- 本机 Runner:内置在桌面客户端里,不需要配置。
- 云端 Runner:运行在一台持续在线的服务器上的独立执行机。它工作时,用户可以关闭自己的客户端。
- 工作电脑 Runner:运行在团队里一台已授权电脑上的独立执行机,适合需要用到这台电脑上的文件或工具的工作。接入步骤和云端 Runner 相同。
三种都是同一个 Runner 程序,内部结构见架构:Runner 内部。
接入云端 Runner
开始前:准备一台能通过 HTTPS 访问 Hub 的服务器,并且你有管理执行机的权限(runner.manage),或者是在接入自己的云端环境。
- 在客户端打开 设置 → 云端环境,点 配置执行机。管理员也可以在管理端的 执行网络 里接入共享执行机。
- 点 复制接入指令。指令里包含这台机器专属的密钥,只显示一次。
- 在服务器的终端里运行这条指令。
- Linux 会把执行机安装到
/opt/soduwork-runner,并注册一个systemd服务,需要 root 或sudo。 - Windows 使用 PowerShell 安装脚本。
- Linux 会把执行机安装到
- 回到 云端环境,点 刷新。执行机连上后就会出现在列表里。
这个密钥拥有这台执行机的接入权限。只在目标电脑的终端里使用,不要发到聊天或工单里。需要更换时,在同一页面轮换凭据。
卸载执行机:sudo bash runner-install.sh --uninstall。
执行机选项
安装脚本会写好执行机的配置。自己运行 runner_main.py 时,也可以使用这些选项:
| 选项 | 环境变量 | 含义 |
|---|---|---|
--hub | SODUWORK_HUB | Hub 地址 |
--key | SODUWORK_RUNNER_KEY | 这台机器的密钥 |
--id | SODUWORK_RUNNER_ID | 执行机 ID |
--tags | SODUWORK_RUNNER_TAGS | 逗号分隔的标签,例如 linux,intranet。工作流节点可以要求特定标签 |
--work-root | SODUWORK_WORK_ROOT | 任务和首次克隆的代码放在哪里 |
--data-root | SODUWORK_DATA_ROOT | 执行机的会话和日志目录 |
--max-concurrent | SODUWORK_RUNNER_MAX_CONCURRENT | 并发工作数的上限,1~20。实际值会根据 CPU 和内存自动调整 |
--doctor | 检查命令行工具、终端和内置 Skill 后退出 |
在执行机上安装底座
每台执行机各自安装 Agent 底座。请用执行机服务使用的同一个账号安装,确保 Node.js、npm 和底座都在这个账号的 PATH 里,然后重启执行机并检查连接。systemd 不会加载交互式 shell 的配置文件,所以只写在 ~/.bashrc 里的 PATH(例如 nvm 设置的)不会生效。
管理执行机
在客户端的 云端环境 里,用户可以改名、暂停接单或删除自己的执行机。在管理端的 执行网络 → Runner 执行机 里可以看到所有执行机,管理员可以调整可用状态并重新分配。
没有执行机能接手云端对话时,客户端会说明原因:离线、缺少底座、未登录、能力不足或已满载。
安全
- 执行机只接入你信任的 Hub。
- Hub 不会获得执行机的 Docker socket 或 SSH 凭据。
- 插件用到的密钥保存在执行机上,只注入需要它的那一步(见能力与密钥)。