状态
研究 --- 对比分析(2026-01-24)
日期
2026-01-24
作者
- 架构研究团队
背景
Steve Yegge 于 2026 年 1 月 1 日发布了 Gas Town,这是一个构建在 Beads 之上的多智能体编排系统;Beads 是他开发的基于 Git 的问题跟踪器。本 ADR 分析了这些系统,并提炼出可应用于 Claude Flow V3 的经验教训。
参考材料
- Welcome to Gas Town - Steve Yegge,2026 年 1 月
- Gas Town GitHub - 75k 行 Go 代码
- Beads GitHub - 225k 行 Go 代码,11.1k stars
Gas Town 架构概览
核心理念
Gas Town 遵循一条核心原则:会话是临时性的 cattle;智能体是持久性的身份。这与大多数编排器的工作方式恰好相反。
| 概念 | Gas Town | Claude Flow V3 |
|---|---|---|
| 会话持久化 | Cattle(可丢弃) | Cattle(可丢弃) |
| 智能体身份 | Pets(在 Git 中持久化) | Pets(在内存中持久化) |
| 工作存储 | 基于 Git 的 Beads | AgentDB + SQLite |
| 编排方式 | 层级式(市长 → 工作者) | 层级式 / 网状混合 |
MEOW 栈(工作的分子表达,Molecular Expression of Work)
Formulas (TOML) → Protomolecules → Molecules → Wisps
↓ ↓ ↓ ↓
Templates Classes Instances Ephemeral
- Beads - 原子工作单元(issues),以 JSONL 格式存储在 Git 中
- Epics - 带子节点的 Beads,形成树形结构
- Molecules - 链式 Beads 构成工作流(图灵完备)
- Protomolecules - 支持变量替换的 Molecule 模板
- Formulas - 工作流的 TOML 源码,可"编译"为 Protomolecules
- Wisps - 用于编排的临时 Beads(不持久化到 Git)
工作者角色
| 角色 | 功能 | Claude Flow 对应角色 |
|---|---|---|
| Mayor | 主协调员、前台接待 | hierarchical-coordinator |
| Polecats | 用于集群的临时工作者 | Task tool agents |
| Refinery | 合并队列管理器 | 无(机会点) |
| Witness | Polecat 监督者 | swarm-memory-manager |
| Deacon | 守护进程信标、巡逻运行器 | Daemon workers |
| Dogs | Deacon 的助手 | Background workers |
| Crew | 长期存在的个人工作者 | Named agents |
| Overseer | 人类操作员 | User |
关键创新
1. GUPP(Gas Town 通用推进原理)
"如果你的 hook 上有工作,你就必须执行它。"
每个工作者都有一个持久的"hook"(一种特殊的 bead),用于排队待处理的工作。这确保了:
- 工作在智能体崩溃后依然存活
- 重启后自动恢复执行
- 持久化工作流执行
2. 非确定性幂等性(NDI)
与 Temporal 的确定性重放不同,Gas Town 通过以下方式实现持久化:
- 持久化的智能体身份(Git 中的 Beads)
- 持久化的 hooks(Git 中的 Beads)
- 持久化的 molecules(Beads 链条)
即使路径是非确定性的,只要持续投入智能体,最终结果就能得到保证。
3. Convoys(车队)
一种工单/票务系统,将分派的工作包装为可追踪的单元。
- 每次执行
gt sling都会创建一个 Convoy - 仪表盘展示 convoy 进度
- 多个集群可以在完成前"围攻"一个 convoy
4. Patrols(巡逻)
临时工作流(wisps),以循环方式运行在 Refinery、Witness 和 Deacon 中。
- 无工作时指数退避
- 发生变更命令时唤醒
- 自我维持的编排
5. Seance(通灵)
工作者可以通过 Claude Code 的 /resume 功能与其前任会话通信。
- 有助于交接连续性
- 从崩溃的会话中恢复丢失的上下文
对比:Gas Town vs Claude Flow V3
相似之处
| 特性 | Gas Town | Claude Flow V3 |
|---|---|---|
| 多智能体编排 | ✅ | ✅ |
| 层级式协调 | ✅ 市长主导 | ✅ Queen 主导 |
| 持久化记忆 | ✅ Git + SQLite | ✅ AgentDB + SQLite |
| 工作流定义 | ✅ Formulas(TOML) | ✅ YAML workflows |
| 后台工作者 | ✅ Dogs、Patrols | ✅ 12 个 daemon workers |
| 集群支持 | ✅ Polecats | ✅ Task tool agents |
| 实时消息 | ✅ tmux + mail | ✅ MCP tools |
差异
| 方面 | Gas Town | Claude Flow V3 |
|---|---|---|
| 主要 UI | tmux | CLI + MCP |
| 语言 | Go | TypeScript |
| 数据平面 | Git JSONL | AgentDB vectors |
| 冲突解决 | Refinery agent | 手动 / hooks |
| 工作单元 | Beads(哈希 ID) | Tasks / Todos |
| 工作流格式 | TOML Formulas | YAML templates |
| 会话模型 | 持久化 hooks | Session restore |
| 搜索 | SQLite FTS | HNSW vectors |
Gas Town 的优势
- Git 原生持久化 - 所有状态都能在任何情况下存活
- 合并队列(Refinery) - 专门用于冲突解决的智能体
- Convoy 追踪 - 一等公民的工单系统
- Formula 市场 - Mol Mall 用于分享工作流
- Seance - 与历史会话对话
Claude Flow V3 的优势
- 向量搜索 - 语义搜索速度快 150 到 12,500 倍
- 神经网络学习 - SONA、MoE、模式学习
- MCP 集成 - 标准协议支持
- 插件生态 - 18+ 插件,50+ MCP 工具
- 多模型 - Haiku / Sonnet / Opus 路由
- 云原生 - 不依赖 tmux
对 Claude Flow V3 的启示
高优先级采纳
1. 实现类似 GUPP 的推进机制
为智能体创建在会话崩溃后依然存活的持久化"hooks":
typescript
interface AgentHook {
agentId: string;
molecule: string; // 当前工作流链条
position: number; // 当前步骤
lastCheckpoint: Date;
}
实现方式:存储在 AgentDB 中,在会话恢复时检查。
2. 添加 Convoy / 工单追踪
将分派的工作包装为可追踪的单元:
typescript
interface Convoy {
id: string;
name: string;
trackedTasks: string[];
status: 'active' | 'landed' | 'failed';
startedAt: Date;
completedAt?: Date;
}
收益:更好地洞察集群进度。
3. 用于合并队列的 Refinery 智能体
专门的智能体,用于处理多智能体工作中的 Git 冲突:
typescript
// 新智能体类型
{
name: 'refinery',
role: 'Intelligent merge conflict resolution',
responsibilities: [
'Process merge queue one-at-a-time',
'Reimplement changes against new baseline',
'Escalate irreconcilable conflicts'
]
}
4. 用于自我修复的 Patrol 系统
为关键工作者实现 patrol 循环:
typescript
interface Patrol {
worker: string;
steps: PatrolStep[];
backoffMs: number;
maxBackoffMs: number;
}
中优先级采纳
5. 类似 Formula 的工作流模板
为 YAML 工作流增强变量替换功能:
yaml
# Formula 等价物
name: feature-workflow
variables:
- feature_name
- branch_prefix
steps:
- id: design
description: "Design ${feature_name}"
- id: implement
depends: [design]
description: "Implement ${feature_name}"
6. 类似 Wisp 的临时工作
添加不持久化到 Git 的临时任务模式:
typescript
const wisp = await taskCreate({
...task,
ephemeral: true, // 完成后不持久化
squashSummary: true // 压缩为单行
});
7. 类似 Seance 的会话通信
使智能体能够查询历史会话上下文:
typescript
// 将会话恢复与前任查询挂钩
await hooks.sessionRestore({
sessionId: 'previous',
query: 'What was the status of the auth refactor?'
});
低优先级采纳
8. tmux 集成(可选)
面向希望使用终端原生编排的高级用户:
bash
npx claude-flow tmux attach --mayor
npx claude-flow tmux crew cycle
9. Mol Mall 等价物
工作流模板市场:
bash
npx claude-flow formulas search "release"
npx claude-flow formulas install @community/release-workflow
架构洞察
为什么选择 Git 后端状态?
Yegge 的洞察:"会话是 cattle,智能体是 pets,工作是永恒的。"
Git 提供了:
- 无限历史
- 基于分支的隔离
- 合并语义
- 分布式同步
- 加密完整性
Claude Flow 使用 AgentDB 存储向量,但可以为关键状态添加基于 Git 的审计日志。
为什么 Molecules 有效
Molecules 通过以下方式解决了"LLM 上下文窗口"问题:
- 将工作拆分为原子步骤
- 每个步骤都有明确的验收标准
- 进度在持久化存储中设置检查点
- 任何智能体都可以在任何步骤恢复
这就是 Gas Town 能够运行百万步工作流的原因(MAKER 20 盘汉诺塔)。
AI 辅助编程的 8 个阶段
Yegge 的演进图有助于定位:
| 阶段 | 描述 | 工具 |
|---|---|---|
| 1 | 零 AI | 手动编码 |
| 2 | IDE 智能体,权限开启 | Cursor、Copilot |
| 3 | IDE 智能体,YOLO 模式 | 信任已启用 |
| 4 | IDE 全屏智能体 | 全屏智能体 |
| 5 | CLI 单智能体 | Claude Code |
| 6 | CLI 多智能体 | 3-5 个并行 |
| 7 | 10+ 智能体,手动管理 | 高级用户 |
| 8 | 构建编排器 | Gas Town、Claude Flow |
Claude Flow V3 面向第 7-8 阶段用户。
建议
立即执行(本 Sprint)
- 为集群操作添加 convoy 追踪
- 实现会话 hooks 用于崩溃恢复
- 在 CLAUDE.md 中记录 patrol 模式
近期(下月)
- 创建 refinery 智能体 用于合并队列
- 为工作流添加 formula 模板化
- 实现 wisp 模式 用于临时编排
长期(2026 年 Q2)
- 为关键状态添加 Git 审计日志
- Formula 市场 集成
- 面向高级用户的 tmux 集成
结论
Gas Town 代表了多智能体编排领域的重大进步,尤其在以下方面:
- 持久性:一切基于 Git
- 自愈性:GUPP + Patrols
- 可扩展性:20-30+ 并发智能体
Claude Flow V3 的优势在于:
- 智能性:向量搜索、神经网络学习
- 生态:MCP、插件、多模型
- 易用性:无需 tmux
理想的系统应结合 Gas Town 的持久性保证与 Claude Flow 的智能特性。