SuperAPI AI 工具集

fleet-run

智能体与模型

查看项目

更新于 10-23 23:07

技能介绍

用途

fleet-run 用于执行一个 CocoFleet manifest。它读取 manifest 文件,为其中每个实例启动独立的 Coco 进程,遵循实例之间的依赖顺序,记录进程 PID 与运行状态,并在编排判定整个 fleet 完成后写入聚合结果文件。

前置条件

执行前需确认当前目录下存在 .cocoplus/。若不存在,命令会输出 "CocoPlus not initialized in this directory. Run $pod init to begin." 并停止。

命令需要参数 manifest-path。若未提供,输出 "Usage: $fleet run [manifest-path]" 并停止。若 manifest 文件不存在,输出 "Manifest not found: [manifest-path]" 并停止。

还需检查 coco CLI 是否可用(跨平台运行 coco --version 并验证退出码为 0)。若未找到,输出 "ERROR: 'coco' CLI not in PATH. Install Coco and ensure it is accessible before running a fleet." 并停止。

主要能力

  • 解析并校验 manifest:实例数量不得超过 10,超出则输出警告并停止。
  • 支持两种模式:standard 与 goal_decomposition。
  • 在 goal_decomposition 模式下,要求存在 planner 角色条目,写出 .cocoplus/fleet/[fleet-id]/task-plan.json;每个计划任务需声明 id、role(planner、producer 或 critic)、model_tier(smol、regular、smart 或 ultra)、file_scope、depends_on、critic_required。critic 任务必须声明 tool_set: "read_only"。
  • 校验并发 producer 任务的 file_scope 是否互不重叠;若重叠,不使运行失败,而是重写启动计划,让重叠任务顺序执行。
  • 创建 fleet 状态文件与通信日志。
  • 按依赖关系解析就绪实例并启动 Coco 进程。
  • 记录 PID、状态、心跳与当前任务摘要。
  • 在编排判定完成后写入聚合结果。

使用方式

命令形式为 $fleet run [manifest-path]。

执行流程:

  1. 校验 .cocoplus/ 是否存在、参数是否提供、manifest 是否存在。
  2. 校验 manifest:实例数 ≤ 10;goal_decomposition 模式下校验 planner、任务字段、critic 只读、并发 file_scope 不重叠。
  3. 生成 fleet-id(格式 fleet-YYYYMMDD-HHMMSS),创建 .cocoplus/fleet/[fleet-id]/ 目录。
  4. 写入 state.json,包含 fleet_id、manifest_path、started_at、status、mode、instances、roles(planner、producer、critic)。每个实例初始状态为 "pending"。
  5. 创建 comms.log,为每次 dispatch、heartbeat、completion、blocker、critic signoff 事件追加一行 JSON。
  6. 解析就绪实例(无 depends_on 或依赖已满足),为每个就绪实例创建目录、校验 task_file、启动 Coco 进程并记录 PID。
  7. 启动初始就绪集合后立即返回控制权,不在本命令内轮询。

启动进程的跨平台方式:

Windows(PowerShell): Start-Process coco -ArgumentList "--task-file .cocoplus/fleet/[instance-id]/task.md" -RedirectStandardOutput ".cocoplus/fleet/[instance-id]/output.log" -PassThru | Select-Object -ExpandProperty Id | Out-File ".cocoplus/fleet/[instance-id]/pid.txt"

Mac/Linux(bash): coco --task-file .cocoplus/fleet/[instance-id]/task.md > .cocoplus/fleet/[instance-id]/output.log 2>&1 & echo $! > .cocoplus/fleet/[instance-id]/pid.txt

平台检测使用 node -e "console.log(process.platform)",以 win32 判断 Windows。

适用场景

  • 需要按依赖顺序批量启动多个独立 Coco 进程的任务编排。
  • 需要角色分工(planner、producer、critic)与评审签核的目标分解型工作流。
  • 需要记录进程 PID、状态与事件日志以便后续监控的 fleet 执行。

限制

  • 实例数量上限为 10,超出即停止。
  • 实例之间进程隔离,不共享上下文。
  • critic 任务必须为只读,不得编辑其所评审的产物。
  • 并发 producer 的 file_scope 不得重叠,重叠时改为顺序执行。
  • 本命令不轮询,启动初始就绪集合后立即返回;监控需使用 $fleet status [fleet-id],终止需使用 $fleet stop [fleet-id]。
  • goal_decomposition 模式仅在每个 critic_required = true 的 producer 都有依赖的 critic 任务并在 task-plan.json 或 state.json 中记录 PASS 签核后才算完成。

输出

命令完成后输出:"Fleet started from [manifest-path]. Fleet ID: [fleet-id]. Initial ready instances were launched and the session returned immediately. Use $fleet status [fleet-id] to monitor. Use $fleet stop [fleet-id] to terminate all processes."

聚合结果写入 .cocoplus/fleet/[fleet-id]/aggregated-results.md,包含 Fleet ID、完成时间、持续时间、实例汇总表(Instance、Status、Duration、Checkpoints)与总体状态(COMPLETE / PARTIAL (N failed) / FAILED)。