gastownhall/gastown
Gas Town - multi-agent workspace manager
Gas Town – 多智能体 AI 编码助手编排系统
是什么 – Gas Town 是一个命令行工作区管理器,允许你在多个 Git 项目上运行多个 AI 编码助手(Claude Code、GitHub Copilot、Codex、Gemini 等),同时将每一步工作持久化存储在基于 Git 的账本中。系统提供了一套分层概念(Mayor、Town、Rigs、Crew、Polecats、Hooks、Convoys、Beads 等),共同实现以下功能:
- 持久化状态 – 每个代理的输出都存储在 hook(Git 工作树)中,因此崩溃或重启都不会丢失进度。
- 内置协调机制 – 一个中央 AI 协调者(Mayor)创建 convoys(工作追踪单元),由 beads(类似问题的 ID)组成。Mayor 将 beads 分配给工作代理(Polecats)并跟踪完成情况。
- 可扩展的编排 – 架构设计支持在多个项目(称为 Rigs)上运行数十个代理,配备监控进程(Witness、Deacon、Dogs)以检测卡住的代理并重启它们。
- 合并队列自动化 – 每个 Rig 都有一个 Refinery,批量处理已完成的工作,运行验证门禁,并使用 Bors 风格的队列合并到主分支。
- 联邦式工作共享 – 可选的 Wasteland 层允许多个 Gas Town 安装通过 DoltHub 交换工作项,并获得声誉印章。
核心概念(快速参考)
| 术语 | 角色 |
|---|---|
| Mayor | 主要的 Claude Code 实例,了解整个工作区并创建 convoys。 |
| Town | 根工作区目录(例如 ~/gt/)。 |
| Rig | 包裹 Git 仓库及其代理的项目容器。 |
| Crew | 你在 Rig 内的个人克隆,用于编辑代码。 |
| Polecat | 具有持久身份但会话短暂的工作者 AI 代理。 |
| Hook | 用作代理输出持久化存储的 Git 工作树。 |
| Bead / Issue | 存储在 Beads 账本中的结构化工作项(gt-abc12)。 |
| Convoy | Mayor 一起分发的一组 beads。 |
| Molecule | 用 TOML 定义的工作流模板,展开为一系列 beads。 |
| Witness / Deacon / Dogs | 监控健康状态、运行定期维护并处理升级的监控进程。 |
| Refinery | 批量处理并验证已完成工作的合并队列处理器。 |
| Scheduler | 可配置的并发控制者,防止 API 速率限制耗尽。 |
| Seance | 会话恢复工具,允许新代理查询之前会话的日志。 |
| Wasteland | 用于在独立 Gas Town 安装之间共享工作的联邦层。 |
快速入门(最小步骤)
# 1. 安装前置依赖(Git 2.20+,Go 1.26+,Dolt,beads CLI,tmux)
# 2. 安装 `gt` 二进制文件(Homebrew、`go install` 或 Docker)
brew install gastown # macOS 快捷方式(安装 gt、bd、dolt)
# 3. 初始化总部工作区
gt install ~/gt --shell --git
cd ~/gt && gt up # 启动守护进程、Deacon、Mayor 等
# 4. 添加项目为 Rig
gt rig add myproj https://github.com/you/repo.git
# 5. 创建个人 Crew 工作区
gt crew add alice --rig myproj
# 6. 连接到 Mayor 并下达目标
gt mayor attach
# (输入你的请求,例如“为 API 实现 OAuth 登录”)
Mayor 将自动创建 convoy,将 beads 分配给可用的 Polecats,并将所有中间结果存储在基于 Git 的 hooks 中。
典型工作流
- 创建 convoy –
gt convoy create "Feature X" gt-abc12 gt-def34(或让 Mayor 自动创建)。 - 分发工作 –
gt sling gt-abc12 myproj将 bead gt-abc12 发送给配置运行时(Claude、Codex 等)的 Polecat。 - 代理工作 – Polecat 读取其邮箱,运行 AI 工具,将输出写入 hook,并在完成后调用
gt done。 - Refinery 合并 – 完成的 beads 被批量处理、验证并合并到主分支。
- 监控 – 使用
gt convoy list、gt agents、gt feed或观察 TUI 查看进度和任何升级情况。
扩展与自定义
- 运行时配置 – 每个 Rig 的 JSON(
settings/config.json)允许你选择提供者(codex、gemini、copilot等)并调整命令行参数。 - 公式(Molecules) – 可复用的 TOML 食谱(例如标准发布流程)存储在
internal/formula/formulas/中。使用bdCLI 列出(bd formula list)、执行(bd cook release --var version=1.2.0)或实例化(bd mol pour release …)。 - 调度器限制 – 在配置中设置
scheduler.max_polecats以限制同时启动的代理数量。 - Wasteland 联邦 – 使用
gt wl join <remote>连接到共享 DoltHub 画板,领取工作并提交证据。
适合谁使用?
- 严重依赖 AI 编码助手且需要可靠方式防止 AI 会话结束时工作丢失的工程团队。
- 实验多智能体流水线(例如一个代理写代码,另一个审查,第三个运行测试)并希望获得 Git 原生审计追踪的研究实验室。
- 希望协调多个 AI 工具(Claude 用于设计,Copilot 用于样板,Gemini 用于测试)但不想手动复制片段的独立开发者。
获取更多信息
- 文档 –
docs/文件夹包含详细设计笔记(escalation.md、scheduler.md、WASTELAND.md等)和完整术语表。 - 源码 – 项目使用 Go 编写,使用 Beads 问题追踪库,并提供 Docker Compose 配置用于沙盒环境使用。
- 社区 – 项目由
steveyegge维护,Issue 和 Pull Request 是主要贡献方式。
总结:Gas Town 是一个真实存在的开源编排层,将多个 AI 编码助手集合转化为一个协调、持久、基于 Git 的工作流引擎,使大规模 AI 辅助开发更加可靠且可审计。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目