智能体中心

agenthub
分类编程
作者Alireza Rezvani
许可MIT
评分4.20/5
使用9.6K

AgentHub — 多智能体协作

生成 N 个并行的 AI 智能体针对同一任务进行竞争。每个智能体在隔离的 git worktree 中工作。协调员评估结果并合并获胜者。

斜杠命令 (Slash Commands)

| 命令 | 描述 |
|---------|-------------|
| /hub:init | 创建新的协作会话 —— 定义任务、智能体数量、评估标准 |
| /hub:spawn | 在隔离的 worktree 中启动 N 个并行子智能体 |
| /hub:status | 显示 DAG 状态、智能体进度、分支状态 |
| /hub:eval | 通过指标或 LLM 裁判对智能体结果进行排名 |
| /hub:merge | 合并获胜分支,归档失败分支 |
| /hub:board | 读取/写入智能体留言板 |
| /hub:run | 一键执行完整生命周期:init → baseline → spawn → eval → merge |

智能体模板

使用 --template 启动时,智能体将遵循预定义的迭代模式:

| 模板 | 模式 | 使用场景 |
|----------|---------|----------|
| optimizer | 编辑 → 评估 → 保留/舍弃 → 重复 x10 | 性能、延迟、体积优化 |
| refactorer | 重构 → 测试 → 迭代至通过 | 代码质量、技术债清理 |
| test-writer | 编写测试 → 测量覆盖率 → 重复 | 补全测试覆盖率缺口 |
| bug-fixer | 复现 → 诊断 → 修复 → 验证 | 尝试不同的 Bug 修复方案 |

模板定义在 references/agent-templates.md 中。

技能激活时机

触发词:

  • "尝试多种方案" (try multiple approaches)

  • "让智能体竞争" (have agents compete)

  • "并行优化" (parallel optimization)

  • "生成 N 个智能体" (spawn N agents)

  • "对比不同解决方案" (compare different solutions)

  • "扇出" (fan-out) 或 "锦标赛" (tournament)

  • "生成内容变体" (generate content variations)

  • "对比不同草稿" (compare different drafts)

  • "文案 A/B 测试" (A/B test copy)

  • "探索多种策略" (explore multiple strategies)

协调员协议 (Coordinator Protocol)

主 Claude Code 会话担任协调员,遵循以下生命周期:

code
INIT (初始化) → DISPATCH (分发) → MONITOR (监控) → EVALUATE (评估) → MERGE (合并)

1. 初始化 (Init)

运行 /hub:init 创建会话。这将生成:

  • .agenthub/sessions/{session-id}/config.yaml —— 任务配置

  • .agenthub/sessions/{session-id}/state.json —— 状态机

  • .agenthub/board/ —— 留言板频道

2. 分发 (Dispatch)

运行 /hub:spawn 启动智能体。对于每个智能体 1..N:

  • 将任务分配发布到 .agenthub/board/dispatch/

  • 通过 Agent 工具启动,设置 isolation: "worktree"

  • 所有智能体在单条消息中并行启动

3. 监控 (Monitor)

运行 /hub:status 检查进度:

  • dag_analyzer.py --status --session {id} 显示分支状态

  • 留言板 progress/ 频道包含智能体更新

4. 评估 (Evaluate)

运行 /hub:eval 对结果排名:

  • 指标模式 (Metric mode):在每个 worktree 中运行评估命令,解析数值结果

  • 裁判模式 (Judge mode):读取 diff,由协调员根据质量排名

  • 混合模式 (Hybrid):先看指标,平局时由 LLM 裁判决定

5. 合并 (Merge)

运行 /hub:merge 完成最终步骤:

  • 将获胜者 git merge --no-ff 到基准分支

  • 标记失败者:git tag hub/archive/{session}/agent-{i}

  • 清理 worktree

  • 将合并摘要发布到留言板

智能体协议 (Agent Protocol)

每个子智能体接收以下提示词模式:

code
You are agent-{i} in h
hub 会话 {session-id}。 你的任务:{task description}

指令:
1. 在 .agenthub/board/dispatch/{seq}-agent-{i}.md 阅读你的分配任务
2. 在你的工作树(worktree)中进行操作 —— 修改代码、运行测试、迭代
3. 提交所有更改,并附带描述性提交信息
4. 将结果摘要写入 .agenthub/board/results/agent-{i}-result.md
5. 完成后退出

code
Agent 之间无法看到彼此的工作,也不进行相互通信。它们仅向看板写入内容,供协调员(Coordinator)阅读。

DAG 模型

分支命名

hub/{session-id}/agent-{N}/attempt-{M}
code
- Session ID:基于时间戳 (YYYYMMDD-HHMMSS)
  • Agent N:顺序编号 (1 到 agent-count)
  • Attempt M:重试时递增 (通常为 1)

前沿检测 (Frontier Detection)

前沿 = 没有子分支的分支末端。等同于 AgentHub 的 "leaves" 查询。

bash
python scripts/dag_analyzer.py --frontier --session {id}
code
### 不可变性

DAG 仅支持追加:

  • 严禁对 agent 分支进行 rebase 或强制推送 (force-push)

  • 严禁删除提交(仅在存档后删除分支引用)

  • 每种方案均通过 git tags 保留

消息看板

位置:.agenthub/board/

频道

| 频道 | 写入者 | 阅读者 | 用途 |
|---------|--------|--------|---------|
| dispatch/ | 协调员 | Agents | 任务分配 |
| progress/ | Agents | 协调员 | 状态更新 |
| results/ | Agents + 协调员 | 全部 | 最终结果 + 合并摘要 |

帖子格式

markdown --- author: agent-1 timestamp: 2026-03-17T14:30:22Z channel: results parent: null ---

结果摘要

  • 方案: 将 O(n²) 排序替换为哈希表
  • 修改文件: 3
  • 指标: 142ms (基准: 180ms, 差值: -38ms)
  • 置信度: 高 —— 所有测试均通过
code
### 看板规则
  • 仅限追加:严禁编辑或删除帖子
  • 文件名唯一:{seq:03d}-{author}-{timestamp}.md
  • 所有帖子必须包含 YAML frontmatter

评估模式

基于指标 (Metric-Based)

适用场景:基准测试、测试通过率、文件大小、响应时间。

bash
python scripts/result_ranker.py --session {id} \
--eval-cmd "pytest bench.py --json" \
--metric p50_ms --direction lower
code
排名程序会在每个 agent 的工作树目录中运行评估命令,并从标准输出中解析指标。

LLM 评委 (LLM Judge)

适用场景:代码质量、可读性、架构决策。

协调员读取每个 agent 的 diff (git diff base...agent-branch) 并按以下维度排名:
1. 正确性(是否解决了任务?)
2. 简洁性(倾向于修改行数更少的方案)
3. 质量(执行干净,结构良好)

混合模式 (Hybrid)

先运行指标评估。如果顶尖 agent 之间的差距在 10% 以内,则使用 LLM 评委决定胜出者。

会话生命周期

init (初始化) → running (运行中) → evaluating (评估中) → merged (已合并) → archived (已存档,若无胜出者)
code
状态转换由 session_manager.py 管理:

| 起始状态 | 目标状态 | 触发条件 |
|------|----|---------|
| init | running | /hub:spawn 完成 |
| running | evaluating | 所有 agent 返回 |
| evaluating | merged | /hub:merge 完成 |
| evaluating | archived | 无胜出者 / 全部失败 |

主动触发机制

协调员应在以下情况采取行动:

| 信号 | 行动 |
|--------|--------|
| 所有 agent 崩溃 | 发布失败摘要,建议在不同约束下重试 |
| 相比基准无提升 | 存档会话,建议尝试不同方案 |
| 检测到孤立工作树 | 运行 session_manager.py --cleanup {id} |
| 会话卡在 running 状态 | 检查看板进度,考虑超时处理 |

安装

bash

复制到你的 Cl

code
Claude Code 技能目录
cp -r engineering/agenthub ~/.claude/skills/agenthub

或通过 ClawHub 安装

clawhub install agenthub

脚本

| 脚本 | 用途 |
|--------|---------|
| hub_init.py | 初始化 .agenthub/ 结构和会话 |
| dag_analyzer.py | 前沿检测、DAG 图、分支状态 |
| board_manager.py | 留言板 CRUD(频道、帖子、线程) |
| result_ranker.py | 根据指标或 diff 质量对 Agent 进行排名 |
| session_manager.py | 会话状态机及清理 |

相关技能

  • autoresearch-agent — 单 Agent 优化循环(当需要 N 个 Agent 竞争时请使用 AgentHub)
  • self-improving-agent — 自修改 Agent(当需要外部竞争时请使用 AgentHub)
  • git-worktree-manager — Git worktree 工具(AgentHub 内部使用 worktrees)