Files
gravity_control/docs/usage-guide.md
Variet Worker 6dbbb57fa7 feat(gateway): Docker Gateway 봇 + HTTP API 구현 #task-311
- gateway.py: Collector↔Gateway HTTP API (pending, response, chat, register, commands)
- Dockerfile + docker-compose.yml: BOT_MODE=gateway, port 8585
- main.py: gateway 모드 (watcher 비활성, GatewayAPI 시작)
- config.py: gateway 모드 BRAIN_PATH 검증 스킵
- requirements.txt: aiohttp 추가
- docs/usage-guide.md: Docker 배포 섹션 추가
- Extension VSIX v0.3.9 빌드 (auto-approve 포함)
2026-03-11 19:38:26 +09:00

4.2 KiB

Gravity Control 사용 가이드

시작하기

1. 봇 실행

start_bot.bat

또는:

C:\ProgramData\miniforge3\envs\gravity_control\python.exe main.py

2. Extension 설치

cd extension
cmd /c npm run compile
cmd /c npx vsce package
# 생성된 .vsix 파일을 VS Code에서 설치

Discord 명령어

채팅 명령어 (메시지 입력)

명령어 설명
!auto 자동 승인 토글 (on/off 반복)
!stop AG 에이전트 중단
그 외 텍스트 AG에 직접 메시지 전달

슬래시 명령어

명령어 설명
/auto 자동 승인 토글 (on/off 반복)
/stop AG 에이전트 중단

자동 승인 (!auto)

Discord에서 !auto 를 입력할 때마다 on↔off 토글됩니다.

동작

  • OFF (기본): 승인 요청마다 Discord에 / 버튼 표시 → 클릭하여 수동 승인
  • ON: 승인 요청 시 자동으로 승인 → Discord에 🤖 자동 승인됨 표시
사용자: !auto
봇:     🟢 자동 승인 모드
        프로젝트: gravity_control
        모든 승인 요청이 자동으로 승인됩니다

사용자: !auto
봇:     🔴 수동 승인 모드
        프로젝트: gravity_control
        모든 승인 요청이 수동 확인이 필요합니다

자동 승인 시 Discord 표시

🤖 자동 승인됨
┌─────────────────────────────┐
│ run_command: npm run build  │
└─────────────────────────────┘
auto-approve | 1741678...

주의: 봇 재시작 시 auto-approve 상태는 초기화됩니다 (기본 OFF).


아키텍처

[AG IDE] ← Extension → bridge/ ← Bot → Discord
              │                    │
              └── step_probe       └── pending 스캔
                  (WAITING 감지)       (자동 승인 처리)

Bridge 프로토콜

~/.gemini/antigravity/bridge/
├── pending/     Extension → Bot (승인 요청)
├── response/    Bot → Extension (승인 결과)
├── commands/    Bot → Extension (사용자 명령)
└── register/    Extension → Bot (세션 매핑)

Bot Mode

모드 설정 설명
local (기본) BOT_MODE=local 로컬 파일시스템 bridge 사용
remote (미래) BOT_MODE=remote HTTP로 원격 bridge 폴링 (Collector 모드)
gateway BOT_MODE=gateway 서버에서 Discord 통신 + HTTP API (Docker용)

설정 (.env)

DISCORD_TOKEN=xxx          # Discord 봇 토큰 (필수)
DISCORD_GUILD_ID=xxx       # Discord 서버 ID (필수)
BRAIN_PATH=                # AG 브레인 경로 (기본: ~/.gemini/antigravity/brain)
BOT_MODE=local             # 봇 모드 (local/remote)
REMOTE_BRIDGE_URL=         # 원격 브릿지 URL (remote 모드 전용)
DEBOUNCE_SECONDS=2         # 이벤트 디바운스 (초)

Docker 배포 (Gateway)

서버에서 Gateway 봇을 Docker로 실행:

[로컬 PC]                              [서버 Docker]
Extension → bridge/ ← 로컬 Bot ──HTTP──→ Gateway :8585 ←→ Discord
                     (Collector)

서버에서 실행

git clone https://git.variet.net/Variet/gravity_control.git
cd gravity_control
cp .env.example .env   # DISCORD_TOKEN, DISCORD_GUILD_ID 입력
docker compose up -d
docker compose logs -f  # 로그 확인

Gateway API

메서드 경로 설명
GET /health 헬스체크
POST /api/pending Collector → 승인 요청
GET /api/response/{rid} Collector ← 승인 응답
POST /api/chat Collector → 채팅 스냅샷
GET /api/commands/{project} Collector ← 명령 폴링

트러블슈팅

증상 해결
!auto 했는데 자동 승인 안 됨 Extension VSIX 재빌드 + 재설치 필요
봇 재시작 후 auto가 꺼져있음 정상 — !auto로 다시 켜기
Python 못 찾음 C:\ProgramData\miniforge3\envs\gravity_control\python.exe 사용