单 Agent 处理 700+ 任务耗时 29 小时,无法接受。需要多 Agent 并行执行。
多 Agent 并行执行同一 Skill,如何确保各 Agent 拥有完全相同的 Skill 能力?
任务数量远大于单 Agent 处理上限,需要有效的任务分发机制。
所有批量任务进入 Kanban 队列,调度器统一分发。
固定数量 Worker 进程,任务完成后立即接新任务,减少空窗期。
Skill 实体存于一处,所有 Profile 通过符号链接共享。
# dispatch_once() ready = db.select( "status='ready'") for row in ready: if spawned >= max_spawn: break claim_task(conn,row.id) spawn_nowait( "hermes -p <profile> kanban task <id>") spawned += 1
独立 ~/.hermes/profiles/collector_a/
独立 SOUL.md + Skill 链接
独立 API Key 配置
独立 ~/.hermes/profiles/collector_b/
独立 SOUL.md + Skill 链接
独立 API Key 配置
独立 ~/.hermes/profiles/collector_c/
独立 SOUL.md + Skill 链接
独立 API Key 配置
每个 Profile 目录单独维护 Skill 副本。更新时需逐个复制。
Skill 实体存于 ~/.hermes/skills/,各 Profile 通过 ln -s 引用。
所有 Profile 的 skills/ 配置指向同一根目录,通过 hermes skills link 关联。
~/.hermes/
skills/ ← Skill 单一来源(实体)
policy-batch-collector/
kanban-batch-collection/
profiles/
collector_a/skills/ ──ln -s──→ ../../skills/
collector_b/skills/ ──ln -s──→ ../../skills/
collector_c/skills/ ──ln -s──→ ../../skills/
700 任务 / 15 Worker → 整体完成时间 ≈ 30 分钟
| 策略 | 适用 |
|---|---|
| 轮询 | 任务耗时相近时首选 |
| 最短队列 | 任务耗时差异较大 |
| 加权 | 各 Worker 硬件不一致 |
进程异常退出 → 调度器 tick 发现 TTL 超期 → 任务自动重新入 Ready 队列
连续失败 5 次(failure_limit)→ 标记 Blocked → 人工介入或自动重置
写入前检查文件是否存在 → 已存在则跳过 → 可安全重跑,不影响已成功结果