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
- 專案