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 조율자인 Mayorconvoys(작업 추적 단위)를 생성하고, 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에 저장합니다.


일반적인 워크플로우

  1. Convoy 생성gt convoy create "Feature X" gt-abc12 gt-def34 (또는 Mayor가 자동 생성).
  2. 작업 배포gt sling gt-abc12 myproj로 beads gt-abc12를 설정된 런타임(Claude, Codex 등)에서 실행 중인 Polecat에 전달.
  3. 에이전트 작업 – Polecat은 메일박스를 확인하고 AI 도구를 실행하며, 출력을 hook에 기록하고 완료 시 gt done을 호출.
  4. Refinery 병합 – 완료된 beads는 묶여 검증된 후 메인 브랜치에 병합됩니다.
  5. 모니터링gt convoy list, gt agents, gt feed, 또는 TUI를 통해 진행 상황과 이슈를 확인.

확장 및 사용자 정의

  • 런타임 설정 – 각 Rig의 JSON(settings/config.json)에서 제공자(codex, gemini, copilot 등)를 선택하고 명령줄 인수를 조정할 수 있습니다.
  • 공식(Мolecules) – 재사용 가능한 TOML 레시피(예: 표준 릴리스 프로세스)는 internal/formula/formulas/에 저장됩니다. bd CLI로 목록(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
  • 프로젝트