SuperAPI AI 工具集

claude-devfleet

智能体与模型

查看项目

更新于 10-15 08:34

技能介绍

用途

Claude DevFleet 用于在需要并行调度多个 Claude Code 智能体处理编码任务时使用。每个智能体运行在独立的 git worktree 中,并具备完整工具链。

安装与连接

DevFleet 服务器是一个独立项目,并未随 ECC 一起打包。需要先从它的仓库安装并运行:https://github.com/LEC-AI/claude-devfleet

然后通过 MCP 连接正在运行的实例:

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

首次使用前,请确认监听 18801 端口的进程是你安装的 DevFleet 二进制文件(参见 SECURITY.md 中关于本地 MCP 服务器的说明)。

工作方式

用户 → “Build a REST API with auth and tests” ↓ plan_project(prompt) → project_id + mission DAG ↓ 向用户展示计划 → 获得批准 ↓ dispatch_mission(M1) → Agent 1 在 worktree 中启动 ↓ M1 完成 → 自动合并 → 自动派发 M2(depends_on M1) ↓ M2 完成 → 自动合并 ↓ get_report(M2) → files_changed、what_done、errors、next_steps ↓ 向用户汇报

主要能力(工具)

  • 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() 查看当前槽位使用情况。

示例

全自动:计划并启动

  • 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 状态。

适用场景

需要将编码项目拆解为多个可并行或按依赖顺序执行的任务,并希望由多个 Claude Code 智能体在隔离环境中自动执行、自动合并并生成结构化报告的场景。

限制

  • DevFleet 服务器为独立项目,需单独安装运行,未随 ECC 打包。
  • 默认并发上限为 3 个智能体(可通过 DEVFLEET_MAX_AGENTS 配置)。
  • wait_for_mission 会阻塞对话,默认最长 600 秒。
  • 合并冲突需手动解决。
  • 任务依赖不能形成循环。
  • 未设置 auto_dispatch=true 的手动任务会停留在 draft 状态。