gastownhall/gastown
Gas Town - multi-agent workspace manager
Gas Town – AIコーディングアシスタントのマルチエージェントオーケストレーション
何であるか – Gas Townは、複数のAIコーディングエージェント(Claude Code、GitHub Copilot、Codex、Geminiなど)を複数のGitプロジェクト上で実行できるコマンドラインワークスペースマネージャーであり、すべての作業ステップを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 | リグ内の個人用クローンで、コード編集を行います。 |
| Polecat | 永続的なアイデンティティを持つワーカーエージェントだが、一時的なセッションです。 |
| Hook | エージェント出力を永続的に保存するためのGit work-tree。 |
| 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を作成し、利用可能なPolecatsにbeadsを割り当て、すべての中間結果を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制限 –
scheduler.max_polecatsを設定することで、同時に起動するエージェント数を制限できます。 - Wastelandフェデレーション –
gt wl join <remote>で共有DoltHubボードに接続し、作業を引き受け、証拠を提出できます。
どんな人に向いているか?
- AIコーディングアシスタントに大きく依存し、AIセッション終了時に作業が失われない信頼性の高い方法を必要とするエンジニアチーム。
- マルチエージェントパイプライン(例:1エージェントがコードを書く、2番目がレビュー、3番目がテスト実行)を実験している研究ラボで、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
- プロジェクト