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 work-tree)에 저장되어 시스템 충돌이나 재시작 시에도 작업 진척도가 손실되지 않습니다.
- 내장된 조율 기능 – 중앙 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 | 지속적인 정체성을 가지지만 일시적인 세션을 가진 워커 AI 에이전트입니다. |
| 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로 beads 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등)를 선택하고 명령줄 인수를 조정할 수 있습니다. - 공식(Мolecules) – 재사용 가능한 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 세션이 종료될 때 작업이 손실되지 않는 신뢰할 수 있는 방법이 필요한 엔지니어 팀.
- 다중 에이전트 파이프라인(예: 한 에이전트가 코드 작성, 다른 에이전트가 리뷰, 세 번째 에이전트가 테스트 실행)을 실험하는 연구실에서 Git 기반의 감사 추적 기록이 필요한 사람.
- Claude로 설계, Copilot로 보일러플레이트, Gemini로 테스트를 통합하고 싶지만 수동으로 스니펫을 복사하고 싶지 않은 솔로 개발자.
더 많은 정보 찾기
- 문서 –
docs/폴더에는 상세한 설계 노트(escalation.md,scheduler.md,WASTELAND.md등)와 전체 용어집이 포함되어 있습니다. - 소스 코드 – Go로 작성되었으며, Beads 이슈 추적 라이브러리를 사용하며, 격리된 환경에서 사용할 수 있는 Docker Compose 설정도 제공됩니다.
- 커뮤니티 – 프로젝트는
steveyegge가 유지보수하며, 이슈와 풀 리퀘스트가 주요 기여 방식입니다.
결론: Gas Town은 실제 존재하는 오픈소스 오케스트레이션 계층으로, AI 코드 보조자들의 집합을 조율되고 지속적이며 Git 기반의 워크플로 엔진으로 전환합니다. 이로 인해 대규모 AI 지원 개발이 더 신뢰성 있고 감사 가능해집니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트