mcpField
H
harness-subagent

harness-subagent

github.com/realspqrkAgent 工作流1842 次安装1 天前更新
代码仓库

关于 harness-subagent

harness-subagent 是供父级 Agent 使用的技能,可将单项有限任务交给用户指定的 CLI,再评估其报告。它规定了启动、限制处理、健康检查和结果捕获流程。

主要功能

  1. 01委派给指定的 CLI 和模型
  2. 02创建任务简报并在后台启动
  3. 03处理使用限制及恢复运行
  4. 04检查 CLI 健康状态和登录
  5. 05捕获报告与会话信息

适用场景

  1. 01将有限任务交给指定 CLI
  2. 02检查 CLI 安装和登录状态
  3. 03在已知使用限制后恢复运行

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/realspqrk/harness-subagent --skill harness-subagent

安装后在 Claude Code 中输入/harness-subagent确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitattributes
.gitignore
LICENSE
README.md
evals/
evals.json
references/
models.md
scripts/
health.sh
registry.json
harness_registry.py
session_capture.py
spawn.sh
tests/
hello_world.sh
lib.sh
spawn_test.sh

详细介绍

Harness 子 Agent

你是父级。子 CLI 会完成一项范围明确的任务并返回报告。你负责判断报告是否可信。子级不是预言机。

宿主决定使用哪个 CLI、哪个模型以及投入多少精力。此技能不会对任务排序或选择角色。

委派

  1. 从用户处获取 CLI 和模型。口头名称见 references/models.md。如果用户两者都没指定,只询问一次。除非用户在本轮指定,否则不要启动你自己的 CLI 系列。Cursor、cursor-agent 和 Grok Bot 属于 cursor 系列。Grok Build 属于 grok。Claude Code 属于 claude。Codex 属于 codex。Antigravity 属于 agy。
  2. 当任务规模大到厂商默认值可能不合适时,根据 references/models.md 中的表格选择 --effort。省略 --effort 可使用 CLI 默认值。价格按 token 计费。投入越多,同等费率下消耗的 token 越多。
  3. 在新的临时运行目录中编写 brief.md。使用下面的格式。
  4. 在后台运行 scripts/spawn.sh。在 Windows 上,将脚本路径作为参数传给 Git Bash。不要把 brief 放进 PowerShell 双引号字符串中。将 brief.md 写为 UTF-8。
  5. 等待该进程退出。读取 report.md 或 last.md、capture-status.txt 以及退出代码。
  6. 说明你认同哪些内容、不认同哪些内容,以及你将采取什么行动。不要把报告原样作为完整答复。
& "$env:ProgramFiles\Git\bin\bash.exe" -- "<skill-dir>\scripts\spawn.sh" --backend codex --model Astra --effort high --project "D:/Code/app" --run "C:/Users/<you>/AppData/Local/Temp/harness-subagent/<id>"

如果模型名称只对应一个 CLI,可以省略 --backend。--resume-id 可继续同一个子级。不要使用 --continue 或 --last。

子级不得委派任务。spawn.sh 会设置 HARNESS_SUBAGENT_RUN,并拒绝再次启动。

Brief

# YOU ARE THE WORKER. DO NOT SPAWN.
Do not load harness-subagent. Do not run scripts/spawn.sh.

## Task
One sentence.

## Where to look
Paths, commands, and exclusions.

## Already tried

## Done when

写明路径。不要粘贴仓库内容。spawn.sh 会追加 report.md 的路径。子级会在退出前写入该文件。第一行是 VERDICT,后接结果。

不能指望 Grok 读取临时运行目录。spawn.sh 会在该次启动时将提示词复制到项目中,并在退出时删除副本。

子级遇到限制时

spawn.sh 会读取 CLI 文本以获取重置时间。

  • 已知重置时间且在 24 小时内。脚本会等待,然后恢复同一会话一次。Claude Code 自带的自动继续功能不会等待超过 24 小时(文档查阅于 2026-09-22)。此技能将该时限用于所有 CLI。
  • 没有重置时间、重置时间更晚、出现信用额度或消费限制消息,或再次遇到限制时,脚本会停止。随之停止。告知用户相关证据以及时间(如有)。等待指示。不要切换 CLI 或模型。不要臆造重置时间。

健康状态

scripts/health.sh 会为每个 CLI 打印一行。列分别为名称、版本、登录状态、更新。--update 会运行各厂商的更新命令。当所有已安装且支持登录检查的 CLI 均已登录时,退出代码为 0。缺少 CLI 时,该行显示失败。broken 表示二进制文件位于 PATH 中,但版本检查失败。登录检查失败时会重试一次,因为 grok 在 token 过期后首次调用时会报告未登录,同时在后台刷新。

CLI登录检查更新
claudeclaude auth statusclaude update
codexcodex login statuscodex update
grokgrok models 必须显示已登录grok update
agy无登录命令agy update
cursor-agentcursor-agent statuscursor-agent update

捕获

spawn.sh 会写入 last.md、capture-status.txt(ok、ok-report、usage-limit 或 no-verdict)和 session.json。包含 VERDICT 的报告优先于最终 stdout,因为 Claude 的最后一条消息只是最后一轮的内容。ok 表示已捕获文本,并不表示任务已成功。退出码为 0 且状态为 no-verdict 不代表成功。在 Windows 上,运行目录会以 C:/...(cygpath -m)的形式传给子进程,而不会使用 Git Bash 的 /tmp/...;原生 CLI 会将后者读取为 <drive>:\tmp。

恢复运行需要该次运行的会话 ID。将 session-id 和 session.json 复制到新的运行目录,写一份简短的续接说明 brief.md,并传入 --resume-id。自动等待路径会自行执行一次此操作。

评论

支持 Markdown