概述
manage-run 是一个专注于通过 archon CLI 管理 Archon 工作流运行的技能。它假定 Archon 已经安装,并且你正在项目仓库内工作——当前目录会自动将每个命令限定到该项目。若要编写工作流、进行设置或配置,请改用更广泛的 archon 技能。
主要能力
该技能提供以下动词(操作):
- 列出最近的运行(所有状态,当前项目):
archon workflow runs --json - 跨所有项目列出:
archon workflow runs --all --json - 按状态过滤或限制行数:
archon workflow runs --status running --limit 50 --json - 显示单个运行(状态、错误):
archon workflow get <run-id> --json - 显示单个运行及每个节点的详细信息:
archon workflow get <run-id> --verbose --json - 仅显示活动运行(运行中/暂停):
archon workflow status --json - 启动一个非阻塞运行:
archon workflow run <workflow> "<message>" --detach - 批准一个暂停的门:
archon workflow approve <run-id> "looks good" --json - 接受并完成一个具有完成条件的循环门:
archon workflow approve <run-id> --json(无注释) - 拒绝一个暂停的门:
archon workflow reject <run-id> "fix X first" --json - 主动停止一个正在运行的 CLI --detach 运行:
archon workflow cancel <run-id> --json - 将暂停或已验证孤立的运行标记为已取消,而不停止主机工作:
archon workflow abandon <run-id> --json
使用方式
输出处理
在任何命令后添加 --json 可在 stdout 上获得单个干净的 JSON 对象(在 --json 模式下日志会自动抑制)。当你需要解析结果时,优先使用 --json。不带 --json 时,你会得到人类可读的文本。诊断/警告始终输出到 stderr。当前目录(cwd)决定你看到的是哪个项目的运行。请从仓库运行。
监控运行直至完成
archon workflow runs --json # 找到运行 id
archon workflow get <run-id> --json # 轮询状态:running | completed | failed | paused
当状态为 completed、failed 或 cancelled 时,运行结束。
非阻塞启动工作
archon workflow run archon-assist "Investigate the flaky test" --detach
--detach 会立即返回,然后在后台子进程中运行工作流。父进程无法打印新的运行 id(在子进程中创建)——用 archon workflow runs 找到它。如果运行从未出现,检查命令打印的子进程日志路径(或 --detach --json 中的 logPath 字段)。
控制台 UI 说明:一个分离的运行会出现在 Web 控制台的 Workflow dock 中(dock 按项目列出运行)并实时更新——即使它在单独的进程中执行。服务器端轮询器尾随 workflow-event 表并将新行重放到控制台的实时馈送中(在 PostgreSQL 上,NOTIFY 触发器在同一秒内推送;在 SQLite 上,轮询器按其短间隔拾取)。无需刷新。
批准或拒绝暂停的运行(两步)
--json 的 approve/reject/resume 会记录决定(运行变为可恢复),但不会执行工作流——执行会流式输出输出,这会破坏 JSON。因此:
archon workflow approve <run-id> "ship it" --json # 记录批准(resumable: true)
archon workflow resume <run-id> # 执行它——作为后台任务运行
archon workflow get <run-id> --json # 轮询直到 completed/failed
如果你只需要记录门决定而不需要驱动由此产生的取消或返工路径,仅 --json 步骤就足够了。要在一个阻塞调用中批准并继续,请去掉 --json:archon workflow approve <run-id> "ship it" 会自动恢复(将其作为后台任务运行)。
交互式循环门:无注释 = 接受并完成
当一个暂停的交互式循环门满足任何声明的完成条件时(archon workflow get <run-id> --json → .metadata.approval.completionSignaled 为 true),无注释批准会接受完成——在恢复时,节点从已计算好的输出最终化,不重新运行。有注释批准会使用它作为反馈运行另一次迭代。先读取门状态,然后慎重选择:
archon workflow get <run-id> --json | jq .metadata.approval.completionSignaled
archon workflow approve <run-id> --json # 接受并完成(最终化,不重跑)
archon workflow approve <run-id> "redo X" --json # 使用反馈运行另一次迭代
(在项目范围内的聊天中,manage_run 工具的 approve 操作与此镜像:无消息——或 accept: true——最终化;有消息则迭代。)
适用场景
- 监控工作流运行进度
- 启动后台工作流任务
- 批准或拒绝暂停的门
- 取消或放弃运行
限制
- 需要 archon CLI 在 PATH 中
- 部分操作需要分两步执行(记录决定与执行分离)
- --detach 启动时父进程无法直接获得运行 ID
- 当前目录决定项目范围,需从仓库运行
参考
有关每个动词的完整标志列表和 JSON 形状:请阅读 references/commands.md。