Everything-claude-code claude-devfleet
通过Claude DevFleet协调多智能体编码任务——规划项目、在隔离的工作树中并行调度智能体、监控进度并读取结构化报告。
install
source · Clone the upstream repo
git clone https://github.com/affaan-m/everything-claude-code
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/affaan-m/everything-claude-code "$T" && mkdir -p ~/.claude/skills && cp -r "$T/docs/zh-CN/skills/claude-devfleet" ~/.claude/skills/affaan-m-everything-claude-code-claude-devfleet && rm -rf "$T"
manifest:
docs/zh-CN/skills/claude-devfleet/SKILL.mdsource content
Claude DevFleet 多智能体编排
使用时机
当需要调度多个 Claude Code 智能体并行处理编码任务时使用此技能。每个智能体在独立的 git worktree 中运行,并配备全套工具。
需要连接一个通过 MCP 运行的 Claude DevFleet 实例:
claude mcp add devfleet --transport http http://localhost:18801/mcp
工作原理
用户 → "构建一个带有身份验证和测试的 REST API" ↓ plan_project(prompt) → 项目ID + 任务DAG ↓ 向用户展示计划 → 获取批准 ↓ dispatch_mission(M1) → 代理1在工作树中生成 ↓ M1完成 → 自动合并 → 自动分发M2 (依赖于M1) ↓ M2完成 → 自动合并 ↓ get_report(M2) → 更改的文件、完成的工作、错误、后续步骤 ↓ 向用户报告
工具
| 工具 | 用途 |
|---|---|
| AI 将描述分解为包含链式任务的项目 |
| 手动创建项目,返回 |
| 添加任务。 是任务 ID 字符串列表(例如 )。设置 可在依赖满足时自动启动。 |
| 启动智能体执行任务 |
| 停止正在运行的智能体 |
| 阻塞直到任务完成(见下方说明) |
| 检查任务进度而不阻塞 |
| 读取结构化报告(更改的文件、测试情况、错误、后续步骤) |
| 系统概览:运行中的智能体、统计信息、近期活动 |
| 浏览所有项目 |
| 列出项目中的任务 |
关于
的说明: 此操作会阻塞对话,最长wait_for_mission秒(默认 600 秒)。对于长时间运行的任务,建议改为每 30-60 秒使用timeout_seconds轮询,以便用户能看到进度更新。get_mission_status
工作流:规划 → 调度 → 监控 → 报告
- 规划:调用
→ 返回plan_project(prompt="...")
以及带有project_id
链和depends_on
的任务列表。auto_dispatch=true - 展示计划:向用户呈现任务标题、类型和依赖链。
- 调度:对根任务(
为空)调用depends_on
。剩余任务在其依赖项完成时自动调度(因为dispatch_mission(mission_id=<first_mission_id>)
为它们设置了plan_project
)。auto_dispatch=true - 监控:调用
或get_mission_status(mission_id=...)
检查进度。get_dashboard() - 报告:任务完成后调用
。与用户分享亮点。get_report(mission_id=...)
并发性
DevFleet 默认最多同时运行 3 个智能体(可通过
DEVFLEET_MAX_AGENTS 配置)。当所有槽位都占满时,设置了 auto_dispatch=true 的任务会在任务监视器中排队,并在槽位空闲时自动调度。检查 get_dashboard() 了解当前槽位使用情况。
示例
全自动:规划并启动
→ 显示包含任务和依赖关系的计划。plan_project(prompt="...")- 调度第一个任务(
为空的那个)。depends_on - 剩余任务在依赖关系解决时自动调度(它们具有
)。auto_dispatch=true - 报告项目 ID 和任务数量,让用户知道启动了哪些内容。
- 定期使用
或get_mission_status
轮询,直到所有任务达到终止状态(get_dashboard()
、completed
或failed
)。cancelled - 对每个终止任务执行
——总结成功之处,并指出失败任务及其错误和后续步骤。get_report(mission_id=...)
手动:逐步控制
→ 返回create_project(name="My Project")
。project_id- 为第一个(根)任务执行
→ 捕获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>"]) - 在第一个任务上执行
以启动链。dispatch_mission(mission_id=...) - 完成后执行
。get_report(mission_id=...)
带审查的串行执行
→ 获取create_project(name="...")
。project_id
→ 获取create_mission(project_id=project_id, title="Implement feature", prompt="...")
。impl_mission_id
,然后使用dispatch_mission(mission_id=impl_mission_id)
轮询直到完成。get_mission_status
以审查结果。get_report(mission_id=impl_mission_id)
—— 由于依赖已满足,自动启动。create_mission(project_id=project_id, title="Review", prompt="...", depends_on=[impl_mission_id], auto_dispatch=true)
指南
- 在调度前始终与用户确认计划,除非用户已明确指示继续。
- 报告状态时包含任务标题和 ID。
- 如果任务失败,在重试前读取其报告。
- 批量调度前检查
了解智能体槽位可用性。get_dashboard() - 任务依赖关系构成一个有向无环图(DAG)——不要创建循环依赖。
- 每个智能体在独立的 git worktree 中运行,并在完成时自动合并。如果发生合并冲突,更改将保留在智能体的 worktree 分支上,以便手动解决。
- 手动创建任务时,如果希望它们在依赖项完成时自动触发,请始终设置
。没有此标志,任务将保持auto_dispatch=true
状态。draft