关于 spawn-agent
spawn-agent 是用于调度外部编码 Agent CLI 的技能,面向需要隔离上下文、独立目录或无头执行的任务。它涵盖四种受支持的 Harness,并提供从选择工具到验证结果的运行流程。
主要功能
- 01支持四种 Agent Harness
- 02按任务判断是否启动子 Agent
- 03配置权限、时限与输出格式
- 04验证运行结果和任务产物
适用场景
- 01在独立 Git worktree 中执行子任务
- 02运行脚本化 CI 或构建步骤
- 03为无内置子 Agent 的宿主执行任务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alannkl/ skills --skill spawn-agent安装后在 Claude Code 中输入/spawn-agent确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/antigravity.mdclaude.mdcodex.mdcursor.mdscripts/verify-run.py详细介绍
启动 Agent
支持的运行环境
| 运行环境 | CLI | 参考文档 |
|---|---|---|
| Google Antigravity CLI | agy | references/antigravity.md |
| Claude Code | claude | references/claude.md |
| Cursor Agent | agent | references/cursor.md |
| Codex CLI | codex | references/codex.md |
如果用户指定的运行环境没有对应的参考文档,例如 Gemini CLI,请说明该环境不受支持,并提供受支持的运行环境。
工作流
-
判断是否需要启动 Agent。
- 如果子任务需要隔离的上下文窗口、不同的工作目录、仓库或 Git worktree、可脚本化的 CI 或构建步骤,或没有合适内置子 Agent 的 Agent 宿主,则启动 Agent。
- 适用时,优先使用宿主内置的子 Agent 或任务工具;这样可以保留宿主的上下文,通常成本也更低。
- 需要交互式批准或终端 UI 的操作留在宿主中;无头运行无法请求人工批准。
-
选择运行环境。优先使用用户指定的运行环境,其次使用宿主自己的 CLI(如果受支持),再其次使用其他已安装的受支持 CLI。使用
command -v <cli>确认。如果找不到该 CLI,请停止并提供参考文档中的安装说明。切勿在未获提示时安装 CLI,也不要悄悄改用其他运行环境。 -
阅读所选运行环境的参考文档,并遵循其中关于标志、权限、输出解析、会话恢复和身份验证的说明。无头接口会因工具和版本而异,切勿凭记忆编造标志。只有当参考文档未涵盖某项行为,或标志或输出出错时,才查阅
--help和链接的官方文档。不要将其作为常规的运行前检查。如果参考文档已过时,请更新。 -
让子任务自包含。假设启动的 Agent 没有对话历史。请在提示词中写明目标、相关路径、约束和精确的预期输出。大型输入应通过文件路径传递,而不是直接写入文本。
-
明确传递会影响行为的设置:模型、权限模式和目录访问权限,具体遵循参考文档。无头运行会继承本地设置、扩展和项目记忆,因此相同的命令在不同机器上的行为可能不同。如果调用方或用户要求精简模式,请使用参考文档中的精简启动标志;只有当子任务明确指定时,才加载 MCP 服务、技能或额外工具。
-
使用参考文档中的权限标志,为子任务所需的每个工具预先授权。无头运行无法请求批准。它可能拒绝或跳过未经批准的工具调用,但仍报告成功,因此授权不足可能看起来像成功。完全无人值守的绕过授权也会开放不受限制的 Shell 和网络访问。仅在沙箱、容器或一次性 worktree 中使用,并说明这一点。
-
启动前限制运行范围。CLI 支持时,设置轮次或迭代次数上限,并使用宿主的超时机制包装调用,例如
timeout 600 <cli> ...。如果编辑不得影响调用方的工作副本,请在一次性 worktree 或容器中运行,并在那里验证结果。 -
选择调用方可解析的输出格式:程序化使用时采用 JSON,长时间运行时采用流式输出以展示进度。
-
运行时将标准输出和标准错误捕获到文件,并记录退出代码,例如
timeout 600 <cli> ... > run.out 2> run.err; echo $?。如果身份验证失败,请停止并提供参考文档中的登录命令。切勿代替用户进行身份验证,也不要将凭据内联到命令、设置文件或已提交的脚本中。 -
使用随附的验证器检查输出协议(Python 3,无依赖项)。使用该技能安装目录的绝对路径
<skill-dir>运行:python3 <skill-dir>/scripts/verify-run.py --harness <claude|codex|antigravity|cursor> --stdout run.out --stderr run.err --exit-code <code>。它会检测 json 或 stream-json 输出,应用参考实现的验收规则,将最终响应文本写入<stdout>.result.txt或--result <file>,并打印一个 JSON 对象:status、reason、session_id、result_file、structured_output、permission_notices、stderr_tail和usage。对于要求文本输出的运行,传入--format text;该选项只检查退出代码和输出是否非空,不会产生会话 ID。- 退出代码 0 表示协议已完成。信任运行结果前,先检查所有
permission_notices。 - 退出代码 1 表示运行失败,原因见
reason:退出代码非零或超时、输出格式错误或不完整、状态未成功、缺少会话或结果、工具调用被拒绝,或 Cursor 沙盒启动错误。工具调用被拒绝意味着缺少第 6 步授予的权限:补上相应权限后重新运行,不要改用绕过模式。 - 退出代码 2 表示输入不可用;参数错误时会打印用法说明,而不是 JSON。
- 退出代码 0 表示协议已完成。信任运行结果前,先检查所有
-
验证任务本身:运行可以在什么都没做的情况下完成协议。报告成功前,请通过
git status、git diff、相关测试或直接检查文件来确认产物。 -
只有使用参考实现记录的会话恢复机制,并提供验证器打印的
session_id,才能继续已启动的对话。
注意事项
- 告知启动的运行不要再启动其他 Agent,除非用户要求嵌套委派;嵌套会让调用方无法察觉地成倍增加成本。
- 长期运行的服务应从宿主机启动;启动运行后,其启动的后台任务会在运行结束时被清理。