mcpField
S
spawn-agent

spawn-agent

github.com/alannklAgent 工作流054 次安装今天更新
代码仓库

关于 spawn-agent

spawn-agent 是用于调度外部编码 Agent CLI 的技能,面向需要隔离上下文、独立目录或无头执行的任务。它涵盖四种受支持的 Harness,并提供从选择工具到验证结果的运行流程。

主要功能

  1. 01支持四种 Agent Harness
  2. 02按任务判断是否启动子 Agent
  3. 03配置权限、时限与输出格式
  4. 04验证运行结果和任务产物

适用场景

  1. 01在独立 Git worktree 中执行子任务
  2. 02运行脚本化 CI 或构建步骤
  3. 03为无内置子 Agent 的宿主执行任务

安装

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

$npx skills add https://github.com/alannkl/skills --skill spawn-agent

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

包含的文件

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

references/
antigravity.md
claude.md
codex.md
cursor.md
scripts/
verify-run.py

详细介绍

启动 Agent

支持的运行环境

运行环境CLI参考文档
Google Antigravity CLIagyreferences/antigravity.md
Claude Codeclaudereferences/claude.md
Cursor Agentagentreferences/cursor.md
Codex CLIcodexreferences/codex.md

如果用户指定的运行环境没有对应的参考文档,例如 Gemini CLI,请说明该环境不受支持,并提供受支持的运行环境。

工作流

  1. 判断是否需要启动 Agent。

    • 如果子任务需要隔离的上下文窗口、不同的工作目录、仓库或 Git worktree、可脚本化的 CI 或构建步骤,或没有合适内置子 Agent 的 Agent 宿主,则启动 Agent。
    • 适用时,优先使用宿主内置的子 Agent 或任务工具;这样可以保留宿主的上下文,通常成本也更低。
    • 需要交互式批准或终端 UI 的操作留在宿主中;无头运行无法请求人工批准。
  2. 选择运行环境。优先使用用户指定的运行环境,其次使用宿主自己的 CLI(如果受支持),再其次使用其他已安装的受支持 CLI。使用 command -v <cli> 确认。如果找不到该 CLI,请停止并提供参考文档中的安装说明。切勿在未获提示时安装 CLI,也不要悄悄改用其他运行环境。

  3. 阅读所选运行环境的参考文档,并遵循其中关于标志、权限、输出解析、会话恢复和身份验证的说明。无头接口会因工具和版本而异,切勿凭记忆编造标志。只有当参考文档未涵盖某项行为,或标志或输出出错时,才查阅 --help 和链接的官方文档。不要将其作为常规的运行前检查。如果参考文档已过时,请更新。

  4. 让子任务自包含。假设启动的 Agent 没有对话历史。请在提示词中写明目标、相关路径、约束和精确的预期输出。大型输入应通过文件路径传递,而不是直接写入文本。

  5. 明确传递会影响行为的设置:模型、权限模式和目录访问权限,具体遵循参考文档。无头运行会继承本地设置、扩展和项目记忆,因此相同的命令在不同机器上的行为可能不同。如果调用方或用户要求精简模式,请使用参考文档中的精简启动标志;只有当子任务明确指定时,才加载 MCP 服务、技能或额外工具。

  6. 使用参考文档中的权限标志,为子任务所需的每个工具预先授权。无头运行无法请求批准。它可能拒绝或跳过未经批准的工具调用,但仍报告成功,因此授权不足可能看起来像成功。完全无人值守的绕过授权也会开放不受限制的 Shell 和网络访问。仅在沙箱、容器或一次性 worktree 中使用,并说明这一点。

  7. 启动前限制运行范围。CLI 支持时,设置轮次或迭代次数上限,并使用宿主的超时机制包装调用,例如 timeout 600 <cli> ...。如果编辑不得影响调用方的工作副本,请在一次性 worktree 或容器中运行,并在那里验证结果。

  8. 选择调用方可解析的输出格式:程序化使用时采用 JSON,长时间运行时采用流式输出以展示进度。

  9. 运行时将标准输出和标准错误捕获到文件,并记录退出代码,例如 timeout 600 <cli> ... > run.out 2> run.err; echo $?。如果身份验证失败,请停止并提供参考文档中的登录命令。切勿代替用户进行身份验证,也不要将凭据内联到命令、设置文件或已提交的脚本中。

  10. 使用随附的验证器检查输出协议(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。
  11. 验证任务本身:运行可以在什么都没做的情况下完成协议。报告成功前,请通过 git status、git diff、相关测试或直接检查文件来确认产物。

  12. 只有使用参考实现记录的会话恢复机制,并提供验证器打印的 session_id,才能继续已启动的对话。

注意事项

  • 告知启动的运行不要再启动其他 Agent,除非用户要求嵌套委派;嵌套会让调用方无法察觉地成倍增加成本。
  • 长期运行的服务应从宿主机启动;启动运行后,其启动的后台任务会在运行结束时被清理。

评论

支持 Markdown