SuperAPI AI 工具集

huashu-agent-swarm

智能体与模型

查看项目

更新于 10-15 14:09

技能介绍

huashu-agent-swarm 是一个多 Agent 蜂群并行协作技能,采用纯 git 自组织方式,适合大型项目开发。其设计灵感来自 Nicholas Carlini 用 16 个 Claude 实例自主构建 C 编译器的实践。该模式没有 master agent,每个 agent 独立认领任务、编写代码并推送,通过 git 实现自组织协调。

触发条件

当用户提到「蜂群模式」「多 agent 并行」「infinite loop」「agent swarm」「启动蜂群」时使用此技能。

前置要求

  • tmux(brew install tmux)
  • claude CLI(已安装)
  • git 仓库(已有或新建)

使用流程

Step 1: 描述项目

用户需要提供:项目目录路径(必须是 git 仓库)、项目目标和总体描述、初始任务列表(或让 agent 自行拆解)、agent 数量(默认 8 个)、代码规范和测试命令。

Step 2: 初始化项目

执行 bash SKILL_DIR/scripts/setup_project.sh <项目目录>,会在项目中创建:AGENT_PROMPT.md(从模板生成,需根据用户需求定制)、TASKS.md(初始任务清单)、current_tasks/(任务认领目录)、agent_logs/(日志目录)。随后根据 references/agent-prompt-template.md 定制 AGENT_PROMPT.md,填入项目具体信息。

Step 3: 启动蜂群

执行 bash SKILL_DIR/scripts/start_swarm.sh <agent数量> <项目目录>,会为每个 agent 创建 git worktree(共享 .git 对象库,不浪费磁盘),创建 tmux session,每个 pane 一个 agent。每个 agent 进入无限循环:pull → 认领任务 → 执行 → push → 下一个。

Step 4: 打开观测台

执行 python3 SKILL_DIR/scripts/dashboard.py <项目目录> 8420,浏览器打开 http://localhost:8420,可以实时查看所有 agent 状态、git log、任务进度,查看每个 agent 的最新日志,通过输入框直接发送指令给 agent(写入 HUMAN_INPUT.md),一键停止所有 agent。

也可以用命令行监控:

# 终端状态
bash SKILL_DIR/scripts/status.sh <项目目录>

# 发送指令
bash SKILL_DIR/scripts/send_input.sh <项目目录> "你的指令"

# 直接进入tmux观察
tmux attach -t swarm-<项目名>

Step 5: 停止

执行 bash SKILL_DIR/scripts/stop_swarm.sh <项目目录>,自动停止所有 agent、合并分支、清理 worktrees。

核心机制

Git 自组织协调

每个 agent 通过 current_tasks/*.lock 文件认领任务,通过 TASKS.md 了解全局进度,通过 git log 了解其他 agent 的工作,冲突由 agent 自行解决。

Git Worktree 隔离

不用多份 clone,用 git worktree 实现隔离。所有 worktree 共享同一个 .git 对象库,每个 agent 在自己的 worktree 独立工作。

无限循环

每个 agent 完成一个 session 后自动开始下一个,通过 git pull 获取其他 agent 的最新成果,通过 sleep 间隔避免 API 限流。

关键配置

参数 默认值 说明
agent数量 8 可在启动时指定
sleep间隔 5秒 agent_loop.sh中可调
模型 claude-opus-4-6 agent_loop.sh中可调

风险和应对

风险 应对
API限流 sleep间隔 + 可调agent数量
合并冲突 AGENT_PROMPT指导小粒度commit
死循环无用功 日志监控 + 停止条件
磁盘空间 stop_swarm.sh自动清理
成本失控 可在AGENT_PROMPT中限制session数

该技能由花叔出品,作者为 AI Native Coder、独立开发者,公众号「花叔」拥有 30 万+粉丝,专注 AI 工具与效率提升,代表作包括小猫补光灯(AppStore 付费榜 Top1)和《一本书玩转 DeepSeek》。