🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx skills add https://skills.sh/affaan-m/everything-claude-code/claude-devfleet

💡 提示:需要 Node.js 和 NPM

Claude DevFleet 多智能体编排

使用时机

当你需要派遣多个 Claude Code 智能体并行处理编码任务时,使用此技能。每个智能体在隔离的 git worktree 中运行,拥有完整的工具集。

需要一个正在运行且通过 MCP 连接的 Claude DevFleet 实例:

claude mcp add devfleet --transport http http://localhost:18801/mcp

工作原理

用户 → "构建一个带身份验证和测试的 REST API"
plan_project(prompt) → project_id + 任务 DAG
向用户展示计划 → 获取批准
dispatch_mission(M1) → 智能体 1 在 worktree 中启动
M1 完成 → 自动合并 → 自动调度 M2(依赖于 M1)
M2 完成 → 自动合并
get_report(M2) → 变更文件、完成内容、错误、后续步骤
向用户报告结果

工具

工具 用途
plan_project(prompt) AI 将描述分解为一个包含链式任务的项目
create_project(name, path?, description?) 手动创建项目,返回 project_id
create_mission(project_id, title, prompt, depends_on?, auto_dispatch?) 添加一个任务。depends_on 是任务 ID 字符串列表(例如 ["abc-123"])。设置 auto_dispatch=true 可在依赖满足时自动启动。
dispatch_mission(mission_id, model?, max_turns?) 启动一个智能体执行任务
cancel_mission(mission_id) 停止正在运行的智能体
wait_for_mission(mission_id, timeout_seconds?) 阻塞直到任务完成(见下方说明)
get_mission_status(mission_id) 检查任务进度(非阻塞)
get_report(mission_id) 读取结构化报告(变更文件、测试结果、错误、后续步骤)
get_dashboard() 系统概览:运行中的智能体、统计信息、近期活动
list_projects() 浏览所有项目
list_missions(project_id, status?) 列出项目中的任务

关于 wait_for_mission 的说明: 此工具会阻塞对话,最多持续 timeout_seconds(默认 600 秒)。对于长时间运行的任务,建议改用每 30-60 秒轮询 get_mission_status 的方式,以便用户能看到进度更新。

工作流:计划 → 调度 → 监控 → 报告

  1. 计划:调用 plan_project(prompt="...") → 返回 project_id 以及带有 depends_on 链和 auto_dispatch=true 的任务列表。
  2. 展示计划:向用户展示任务标题、类型和依赖链。
  3. 调度:在根任务(depends_on 为空)上调用 dispatch_mission(mission_id=<first_mission_id>)。其余任务会在其依赖完成后自动调度(因为 plan_project 为它们设置了 auto_dispatch=true)。
  4. 监控:调用 get_mission_status(mission_id=...)get_dashboard() 检查进度。
  5. 报告:任务完成后调用 get_report(mission_id=...)。与用户分享关键结果。

并发

DevFleet 默认最多同时运行 3 个智能体(可通过 DEVFLEET_MAX_AGENTS 配置)。当所有槽位占满时,设置了 auto_dispatch=true 的任务会在任务观察器中排队,并在槽位空闲时自动调度。查看 get_dashboard() 获取当前槽位使用情况。

示例

全自动:计划并启动

  1. plan_project(prompt="...") → 显示包含任务和依赖的计划。
  2. 调度第一个任务(depends_on 为空的那个)。
  3. 剩余任务会在其依赖解析后自动调度(它们设置了 auto_dispatch=true)。
  4. 向用户报告项目 ID 和任务数量,让用户知道已启动的内容。
  5. 定期轮询 get_mission_statusget_dashboard(),直到所有任务达到终止状态(completedfailedcancelled)。
  6. 为每个终止的任务调用 get_report(mission_id=...) — 总结成功之处,并指出失败以及错误和后续步骤。

手动:逐步控制

  1. create_project(name="My Project") → 返回 project_id
  2. 为第一个(根)任务调用 create_mission(project_id=project_id, title="...", prompt="...", auto_dispatch=true) → 记录 root_mission_id
    为后续每个任务调用 create_mission(project_id=project_id, title="...", prompt="...", auto_dispatch=true, depends_on=["<root_mission_id>"])
  3. 在第一个任务上调用 dispatch_mission(mission_id=...) 以启动链条。
  4. 完成后调用 get_report(mission_id=...)

带审查的串行执行

  1. create_project(name="...") → 获取 project_id
  2. create_mission(project_id=project_id, title="实现功能", prompt="...") → 获取 impl_mission_id
  3. dispatch_mission(mission_id=impl_mission_id),然后轮询 get_mission_status 直到完成。
  4. get_report(mission_id=impl_mission_id) 以审查结果。
  5. create_mission(project_id=project_id, title="审查", prompt="...", depends_on=[impl_mission_id], auto_dispatch=true) — 由于依赖已满足,任务会自动启动。

指南

  • 在调度之前,始终向用户确认计划,除非用户明确表示直接执行。
  • 报告状态时包含任务标题和 ID。
  • 如果任务失败,在重试之前先阅读其报告。
  • 在批量调度之前,检查 get_dashboard() 以了解智能体槽位可用性。
  • 任务依赖形成一个 DAG —— 不要创建循环依赖。
  • 每个智能体在隔离的 git worktree 中运行,并在完成后自动合并。如果发生合并冲突,更改将保留在智能体的 worktree 分支上,需要手动解决。
  • 手动创建任务时,如果希望它们在依赖完成后自动触发,请始终设置 auto_dispatch=true。如果没有此标志,任务将保持 draft 状态。

📄 原始文档

完整文档(英文):

https://skills.sh/affaan-m/everything-claude-code/claude-devfleet

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。