使用指南
让智能体操作 Runner
本页内容
使用 runner 命令,从 Shell 或另一个智能体启动聊天和任务、跟进工作并发送指令。命令连接 Runner 的本地后台服务,因此应用窗口可以关闭。
发现已安装版本
安装命令后运行:
runner help
runner help agents
runner crew list --json
runner role list --json
启用 设置 → 通用 → 命令行 → 供智能体使用的 Runner 技能(Settings → General → Command line → Runner skill for agents) 后,Runner 会为检测到的智能体安装技能。技能引导智能体读取 runner help agents。委派工作前请让智能体阅读此指南;指令与本地二进制版本匹配。
角色使用唯一代号。小队和项目接受 ID 或精确名称。任务和直接聊天会话接受 ID 或唯一前缀。--json 提供结构化输出,-q 仅输出结果 ID;两者互斥。
启动并跟进小队
本节的启动与监控说明适用于启动另一个任务的外部操作者。该任务的更新不会自动推送到外部智能体的聊天中。任务参与者则按下文所述接收自己任务的收件箱通知。
编写 UTF-8 编码的 brief.md,包含任务、目录假设、验证要求与授权的 Git 操作。在 macOS Shell 中运行:
mission=$(runner mission start --crew "Pair coding crew" --cwd /absolute/path/to/project --goal-file brief.md -q)
runner mission feed "$mission" --follow --json
Windows PowerShell:
$mission = runner mission start --crew "Pair coding crew" --cwd 'C:\Users\you\src\project' --goal-file brief.md -q
if ($LASTEXITCODE -ne 0) { throw 'Mission start failed' }
runner mission feed $mission --follow --json
将小队名和目录替换为自己的值。--goal-file - 从标准输入读取;使用文件路径可避免不同 Shell 的输入重定向差异。如果项目已指定文件夹,可用 --project "My app" 替代 --cwd。
跟随命令会显示新事件,直到任务结束或所有会话退出。按 Ctrl+C 只结束跟随,不会停止任务。可以在一个终端中保持跟随,另开终端运行其他命令。
启动另一个任务的外部智能体必须安排监控,使后续工作中及空闲时都能收到输出与退出通知。无人读取的后台日志不算监控。如果宿主无法投递这些事件,智能体应明确说明,并提供消息流命令供你运行。监控中断后,请检查任务,并使用 --since <offset> --oldest-first 从最后一条 JSON 事件的 next_offset 恢复。完整监控契约见生成的智能体指南。
发送消息并回答问题
使用 mission show 查找当前代号、角色与待回答问题。以下示例使用占位符,请替换为实际值;命令语法在 macOS Shell 与 PowerShell 中相同:
runner mission show <mission-id> --json
runner msg post --mission <mission-id> --to coder "Keep the change limited to the parser."
runner mission answer <mission-id> <question-id> <choice>
runner mission stop <mission-id>
runner mission archive <mission-id>
在任务内,成员可以使用 runner msg post --to reviewer "Ready for review" 和 runner msg read,无需任务 ID。任务外的写操作需要 --mission。外部调用者未使用 --as 时以操作者身份发言;不要用 --as 冒充其他成员。
Runner 向每个成员推送收件箱通知。等待队友且没有独立工作时,请结束当前轮次。不要启动消息流监控、轮询或睡眠循环来等待消息。团队协作通过后续轮次迭代。外部监控说明不适用于接收自己任务中的消息。有限诊断检查、独立工作,以及为已授权 PR 等待 CI 仍可进行。
使用 runner msg post --to coder --to reviewer "Please check the parser." 给多人发消息,或使用开头提及:runner msg post "@coder @reviewer Please check the parser."。显式 --to 优先。开头收件人标记为 @handle,可紧跟一个 : 或 ,,因此 @coder, @reviewer: Please check. 会发送给两位成员。代号由小写字母、数字、_ 和 - 组成,以字母或数字开头。任何其他标记都会结束开头提及序列:@reviewer's audit 与单独的 @ 仍是文本,不指定收件人。正文中的提及不指定收件人。未知代号和 @human 会被拒绝;有效成员见 mission show。所有人都需要行动时才省略收件人以广播;普通跟进请回复发送者。
收到 [inbox] 通知时运行 runner msg read。它只显示新收件箱消息,随后最多显示十行其他成员定向消息摘要。恢复会话后,或早先消息已不在上下文中时,使用 runner msg read --all 查看加入以来的所有小队消息,包括已发送消息及其他人之间的通信。未加过滤的读取只将实际打印的收件箱消息标为已读。--since <event-id> 和 --from <handle> 即使与 --all 合用也不会标为已读,且不显示摘要。默认读取已跟踪未读消息;不要维护 --since 游标或用 --from 循环消费收件箱。过滤读取后若仍有未读消息,stderr 会报告该次读取时的未读数量,并提示运行未过滤的 runner msg read,即使过滤器未返回消息也是如此。stdout 消息输出不变。守护进程不可用时仍能读取。不要发送“收到”等仅确认收悉的回复或待命消息;仍须通过 runner msg read 消费收件箱。
不使用已保存小队启动
先创建空任务,再逐个添加执行者:
runner mission start --title "Small task" --cwd /absolute/path/to/project -q
runner mission add-role <returned-mission-id> coder --task-file task.md
runner mission add-role <returned-mission-id> reviewer --task "Review the coder's diff after its handoff."
外部操作者需按上文为返回的 ID 启动消息流监控。这些成员收到共享目标、各自任务与收件箱通知。添加和移除角色由操作者控制,任务内的智能体不能操作。完整 CLI 参考列出覆盖设置和生命周期命令。
退出码
| 代码 | 含义 | 下一步 |
|---|---|---|
0 | 成功 | 阅读结果 |
1 | Runner 拒绝请求、发生协议错误或监控失败 | 阅读 stderr;监控失败不证明任务已停止 |
2 | 用法或引用无效 | 阅读该命令的 --help,检查名称或 ID |
3 | Runner 未运行或无法作为运行中服务连接 | 打开 Runner 后重试 |
5 | 沙箱阻止访问 | 使用宿主权限机制在沙箱外重试同一命令 |
退出码 5 无法判断 Runner 是否运行。沙箱中的智能体应先为同一命令请求访问,再诊断应用。