Community编程与开发github.com

argus-runtime-orchestration

用于在五个主机上持久运行 Argus 任务的可移植外部操作流程。

argus-runtime-orchestration 是什么?

Argus 运行时编排技能是一种标准化协议,旨在通过可移植的外部操作程序管理持久、有状态的 Argus 任务。它支持跨五个主机的部署,特别适用于需要持久状态、工件管理、实验、后台执行、独立审查、暂停/恢复以及跨模型轮次继续的场景。该技能定义了一个严格的两方操作模型:外部操作者(如 OpenClaw 或 Hermes Agent)负责启动、监控和验证任务,而 Argus 本身则作为持久的监督系统运行。核心操作流程包括十五个详细步骤,涵盖工作目录设置、输入阶段、健康检查、任务分发、问题分类与解答、工件验证及可靠关闭。该技能还提供了全面的能力降级策略,以适应无 Shell、无进程 API 或无交互式审批路由等受限环境,确保在复杂工作流中实现可靠的自动化。

兼容平台✓Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/Argus-AiTeam/argus-counterexample-runtime/tree/HEAD/integrations/agent-skills/argus-runtime-orchestration

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Argus 运行时编排

在任务受益于持久状态、工件、实验、后台执行、独立审查、暂停/恢复或超出单个模型轮次的继续时使用。不适用于快速问答、简单的只读检查或当前主机可以安全完成并直接验证的小型操作。

已知限制

  • Argus 不提供从 需要你 到每个外部操作器的通用可移植推送/回调机制。外部操作器必须在有意义的边界处主动检查紧凑的 Argus 状态/输出。当主机无法维持持久的监控时,干预检测可能不是实时的,并且此技能禁止在这种情况下声称无人值守的监督。
  • Hermes Agent 和 Claude Code 适配器目前仅在文档上经过验证,未在此主机上进行本地执行测试。
  • 当前文档中的某些 Copilot CLI 技能命令在本地测试的 1.0.39 版本中缺失,因此需要进行特性检测。

双方操作模型与配置

操作模型严格包含两方:

  1. 外部操作器:OpenClaw、Hermes Agent、Claude Code、Codex CLI、Copilot CLI 或其他遵循此技能的、具有 Shell 能力的代理。它负责准备任务、启动和观察 Argus、在授权范围内处理操作器问题、验证工件,并进行紧凑报告。
  2. Argus:持久的监督系统,负责规划、执行、审查、持久化状态、提出问题,并生成证据和工件。

任何 Argus 内部使用的模型/提供者 CLI——例如 codex、copilot、claude、pi、opencode 或 grok——都是 Argus 配置和实现细节,在此流程中不属于第三方角色、对等参与者或独立方。外部操作器可在操作需要且授权的情况下,在预检期间选择或验证 Argus 配置的内部模型/提供者;否则将其视为一个持久的监督系统。不要从外部操作器的身份推断 Argus 配置,即使名称巧合匹配。

显式解析可执行文件路径;不要假设存在统一的安装路径。POSIX Shell:

if [ -n "${ARGUS_BIN:-}" ]; then
  : # operator supplied an executable path
elif command -v argus >/dev/null 2>&1; then
  ARGUS_BIN="$(command -v argus)"
elif [ -n "${ARGUS_INSTALL:-}" ]; then
  ARGUS_BIN="$ARGUS_INSTALL/.venv/bin/argus"
else
  echo "Set ARGUS_BIN or ARGUS_INSTALL" >&2; exit 2
fi

原生 PowerShell:

if ($env:ARGUS_BIN) {
  $ArgusBin = $env:ARGUS_BIN
} elseif (Get-Command argus -ErrorAction SilentlyContinue) {
  $ArgusBin = (Get-Command argus).Source
} elseif ($env:ARGUS_INSTALL) {
  $ArgusBin = Join-Path $env:ARGUS_INSTALL ".venv\Scripts\argus.exe"
} else {
  throw "Set ARGUS_BIN or ARGUS_INSTALL"
}

下面的命令示例使用 POSIX "$ARGUS_BIN" ... 语法。在 PowerShell 中,使用 & $ArgusBin ... 调用解析后的路径。

对于源码检出,ARGUS_INSTALL="$HOME/src/Argus" 仅作示例,并非可移植的默认值。记录解析后的绝对可执行文件路径。切勿静默下载、重新安装、更改 Argus 的内部模型/提供者配置或扩宽权限。

核心操作流程

  1. 选择一个专属的工作目录和真实的安全边界。 为每个 Argus 项目使用一个专用的绝对目录。切勿与另一个活动的 Argus 项目目录层次重叠。当其守护进程处于活动状态时,不要移动、删除或共享写入该目录。真正的并行工作需要独立项目。工作目录是所有权边界,而非沙盒。ARGUS_SKILL_SAFE_MODE=1 增加了安全护栏,但其本身并非针对每个后端的隔离措施。在准备敏感输入之前,要求为所选后端验证沙盒,或在适当隔离的操作系统/容器边界内运行 Argus。默认的无人值守模式可能会授予内部代理超出工作目录的访问权限。
  2. 准备有边界的输入。 仅复制与任务相关、可披露的输入到 inputs/ 下。编写 OBJECTIVE.md,包含目标、非目标、输出路径、验收标准、权限限制以及审查/引用要求。不要包含对话历史记录、凭据或无关的私人数据。
  3. 从确切的工作目录进行预检。 运行 "$ARGUS_BIN" doctor,然后探测 "$ARGUS_BIN" --status。仅当必须验证后端认证时才使用 doctor --deep;不要在每次常规预检中都增加网络/认证延迟。深度医生并非普遍的活动认证证明:当它报告未检查的令牌、离线能力或不可达路由时,在分派前使用该后端文档化的非变更性活动就绪性探测。仅在必要检查通过、识别出预期项目/工作目录、不存在所有权冲突,并且任何操作所需的内部模型/提供者选择已安装并认证后才继续。外部操作器可在此处授权的情况下选择或验证 Argus 配置,但不得将其视为另一个操作方。当前 Argus 顶级帮助有意简洁,可能省略支持的自动化标志;在针对其他版本使用 --notify、daemon、bounded 或 API 接口之前,从该版本的文档/解析器或安全探测中验证它们。请参阅 references/argus-runtime-surfaces.md。
  4. 仅在需要时显式指定内部执行配置。 优先使用 Argus 已配置、安装并认证的内部模型/提供者。在 Argus 要求的地方限定提供者名称。在就绪性检查失败后不要静默更改配置;先进行诊断,并在更改超出委托权限时获得批准。
  5. 分派一个独立的任务。 在工作目录中,为 Argus 提供一个自包含的目标,命名已准备的输入和输出。请求检查 → 执行 → 验证 → 修复 → 最终工件的闭环。委托 Argus 的原生风险/垂直审查策略;仅在任务合同或重大风险要求时显式要求独立审查。每个任务保持一个有限的交付物。对于一次性的有限任务,如果不需要可重用的学习且部署策略允许,设置 ARGUS_SKILL_REQUIRE_POST_TASK_LEARNING=0 以避免默认的任务后学习模型调用;否则保留配置的学习策略。在可用时使用交互式驾驶舱;对于分离式执行,使用 Argus 文档化的 daemon/bounded 接口,而非即兴的 shell 循环。
  6. 在 Argus 内部保留证据边界。 Argus 可以在内部分离规划、工程和审查。要求决策规模的任务和带证据的工件变更。当 Argus 的策略要求独立审查时,它必须检查实际工件、限制、引用和完成情况。这些是内部责任,而非外部操作模型中的额外方。每个声明优选一个决定性的检查;避免重复的证据或额外的模型轮次。
  7. 使用最强可用的主机能力进行监控。 遵循 references/adapters/ 中的选定适配器。主机后台/进程 API 改进了观察,但并非真相来源:可靠的 Argus 项目状态才是。仅在活动环境保留主机进程的地方使用 Argus 的分离式守护进程。否则保存确切的 workdir/项目身份,并在后续轮次中重新启动 Argus 针对该状态。如果不允许分离式启动,保持前台驾驶舱或要求用户保持其运行;切勿声称无人值守的监控。
  8. 在每个边界运行待处理问题循环。 在分派时、每次有意义的检查状态后、在受阻/暂停/重新规划结果后、在离开运行无人值守前、在回答问题后以及结案前检查 "$ARGUS_BIN" --status。waiting on you : N unanswered question(s) 是一个停止信号。可用时,同时检查驾驶舱/Web 界面的 需要你 提示。在已验证的 Argus 0.1.1 版本上,具备 API 能力的操作器可以检查 GET /api/projects/{sid}/status 或 GET /api/projects/{sid}/snapshot?compact=true;两者都暴露 pending_questions,而完整快照则暴露 backlog 中的行。这些读取路由可能即使在配置了 ARGUS_SKILL_WEB_TOKEN 时也不带认证:将它们限制在 loopback-only,或放在受信任的 VPN/认证的反向代理之后;切勿直接将它们暴露给不可信网络。在其他版本上对这些路由进行特性检测。仅凭进度描述是不够的。
  9. 对每个问题进行分类。 一个持久的未解决标记是 backlog 中具有非空 pending_question 的行;一个类型化的卡片还具有 operator_decision.status == "pending",加上 id、question、reason、evidence 和可选的 options。这不是信息性的聊天问题、目标文本、审查散文或普通的 /ask。将持久标记视为阻塞,即使旁边有 failed、paused_operator 或看似成功的文本。让 Argus 保留可逆的技术路由,除非出现的问题明确属于委托权限范围。升级处理凭据/机密、支出、删除/强制推送/发布/外部发送、不可逆或面向外部的操作、安全/信任边界变更、法律/许可决策、实质性范围/验收变更以及模糊的高影响选择。
  10. 通过权威界面回答问题。 优先使用终端/Web 驾驶舱中的特定项目 需要你 卡片。在已验证的 Argus 0.1.1 版本上,API 客户端可以使用 POST /api/projects/{sid}/decisions/{decision_id}/resolve 和 {"option_id":"…","note":"…"},或传统的 POST /api/projects/{sid}/backlog/{item_id}/answer 和 {"text":"…"}。正常的驾驶舱回复或 POST /api/projects/{sid}/message 仅当恰好有一个问题待处理时才由管理器路由;当存在多个问题时,请处理特定的卡片/项目。"$ARGUS_BIN" --notify '<answer>' 将指导加入队列,并且仅当恰好有一个问题待处理时才能由管理器绑定;队列确认不是解决。在其他版本上对非驾驶舱路由进行特性检测。切勿代表用户猜测。
  11. 验证记录,然后继续。 在已验证的版本上,要求 resolved: true(如果界面返回)。确认旧的 pending_question 已清除并且记录了一个解决方案。当类型化的决策卡片存在时,还要求该卡片变为 resolved;遗留的未类型化问题可能没有卡片或 resolution_id。观察其在实际待处理、运行中、已完成或已停止状态下的继续,而不是要求它在检查时仍然活跃。stop 决策转而中止项目,保留工作,禁用连续模式,并且不创建继续。重新运行状态并验证执行已按预期继续、完成或停止。如果标记仍然存在,澄清或升级;不要发送重复的猜测。
  12. 在不引入轨迹的情况下进行检查。 使用状态/驾驶舱获取当前任务、角色、阶段、backlog、结果、最新验证的位置和需要你。将 backlog 加上最新验证的证据视为前沿。将原始转录、守护进程日志、代理 I/O、使用日志和私有账本保留在本地。
  13. 检索和验证工件。 读取命名的输出路径。检查存在性、请求的范围和决定性的测试。将每个实质性引用解析到已准备的源;拒绝虚构的、过时-当前的或声称不匹配的引用。切勿从进度消息推断成功。
  14. 从持久状态恢复。 通过要求 Argus 从持久状态恢复并使用自包含的恢复目标(而非内联聊天回复)来恢复暂停的写入/执行工作。如果内部执行线程无法恢复,使用 Argus 的检查点/胶囊。在更改 Argus 配置或目标之前,诊断未解决的问题、所有权、内部模型/提供者就绪性、预算/冷却和基础设施。
  15. 仅在证据下结案。 当有界目标已满足、工件和决定性检查通过、所需的审查者裁决为 done,并且没有待处理的问题/卡片时,结案。continue、replan_requested、blocked、研究暂停或未回复的 Needs you 不是完成。区分任务完成与项目/阶段完成。使用 references/closeout-checklist.md。

能力降级策略

  • 无原生技能发现: 提供完整包或明确指示主机读取此文件和匹配的适配器;不要声称自动激活。
  • 无 Shell: 主机无法直接操作本地 Argus。使用经批准的远程 shell/终端集成或移交确切的操作器步骤;将执行标记为受阻,而不是模拟。
  • 有 Shell 但无进程 API: 仅当环境保留进程时优先使用 Argus --daemon;始终持久化 project/workdir 身份并通过状态/驾驶舱重新进入。不要使用脆弱的 &、nohup 或 sleep/poll 循环进行后台运行,除非主机文档化的环境将其作为唯一批准的路径。
  • 有进程 API 但跨主机会话不持久: 仅将其用于实时日志;持久的 Argus 项目状态仍然是恢复锚点,并且守护进程可能需要重新启动。
  • 无 HTTP/API 客户端: 使用终端/Web 驾驶舱和 --status。切勿要求问题循环使用 API 访问。
  • 无交互式审批路由: 在审批门控操作上失败关闭。将安全的预检与变更性启动分离,或要求人工通过该主机支持的 UI 进行审批。切勿仅仅为了无人值守运行而绕过审批/沙盒标志。
  • 不允许无人值守执行: 保持交互式会话打开,或使用精确的恢复指令和未解决的状态停止。将监控报告为有条件的,而非活动的。

隐私、权限与返回

准备最小化数据。保持 Web UI loopback-only,除非用户批准受保护的远程访问。当前用户指令和新鲜证据覆盖先前的计划或运行时建议。

仅返回给调用的界面:workdir/项目身份、紧凑结果/前沿、审查者裁决、工件路径、决定性验证、引用例外、

…

[因翻译而截断]

相关技能