用途:spawn-agent 用于把单个限定范围的子任务委派给一个无头(headless)编码智能体 CLI 运行。适合需要隔离上下文窗口、不同工作目录或 Git worktree、可脚本化的 CI/构建步骤,或宿主没有合适内置子智能体的场景。若宿主自带子智能体或任务工具能满足需求,应优先使用,因为其保留宿主上下文且通常成本更低;需要交互审批或终端 UI 的工作应留在宿主内,无头运行无法向人提问。
支持的 harness 与 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)。用户指定未列出的 harness(如 Gemini CLI)时应说明不支持并给出受支持的替代。
主要流程:先判断是否真的需要 spawn;选择 harness(优先用户指定,其次宿主自身 CLI,再次其他已安装的受支持 CLI),用 command -v <cli> 确认存在,缺失则停止并给出参考中的安装指引,不得未经提示安装或静默替换。阅读所选 harness 的参考文档,按其规定处理 flags、权限、输出解析、会话恢复和认证;无头接口随工具与版本变化,不得凭记忆编造 flags。
子任务需自包含:假定被 spawn 的运行没有对话历史,提示中要写明目标、相关路径、约束和确切期望输出;大输入以文件路径传递而非内联文本。显式传递影响行为的设置(模型、权限模式、目录访问)。无头运行会继承本地设置、扩展和项目记忆,同一命令在不同机器上行为可能不同。需用参考中的权限 flags 预先授权子任务所需的每个工具,因为无头运行无法请求批准;授权不足可能表现为“成功”。完全无人值守的绕过授权会开放不受限的 shell 与网络访问,仅应在沙箱、容器或一次性 worktree 中使用并说明。
运行前限定边界:设置 CLI 的轮次或迭代上限,并用宿主超时包裹,例如 timeout 600 <cli> ...。若编辑不应触及调用方检出,应在一次性 worktree 或容器中运行并验证。选择调用方可解析的输出格式(程序化用 JSON,长任务用流式)。运行时把 stdout 与 stderr 捕获到文件并记录退出码,例如 timeout 600 <cli> ... > run.out 2> run.err; echo $?。认证失败应停止并给出参考中的登录命令,不得代替用户认证或内联凭据。
校验:用随附校验器(Python 3,无依赖)按绝对路径运行: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,仅检查退出码与非空输出,不产生 session id。退出码 0 表示协议完成,需先检查 permission_notices;1 表示运行失败,原因见 reason(非零或超时退出码、输出格式错误或不完整、非成功状态、缺少 session 或结果、工具调用被拒、Cursor 沙箱启动错误),工具调用被拒说明缺少授权,应修正后重跑而非改用绕过模式;2 表示输入不可用,参数错误会打印用法而非 JSON。
还需验证任务本身:运行可能完成协议却未做任何工作,报告成功前用 git status、git diff、相关测试或直接检查文件确认产物。仅通过参考中记录的会话恢复机制和校验器打印的 session_id 继续对话。
注意事项:除非用户要求嵌套委派,应告知被 spawn 的运行不要启动更多智能体,嵌套会不可见地放大成本;长期运行的服务应从宿主启动,被 spawn 运行启动的后台工作在运行结束时会被清理。
限制:资料未提供价格、平台支持范围、性能数据或具体安装命令细节,这些需查阅各 harness 的参考文档与官方文档。