역할
Bridge / Launcher 분리, 세션 생명주기, adapter 프로토콜, 세션 워크스페이스, drift monitor 구조를 직접 만들었습니다.
Discord를 제어 인터페이스로, Windows 로컬 AI CLI를 실행 평면으로 나눈 로컬 에이전트 오케스트레이션 프레임워크입니다. NAS bridge가 세션과 상태를 관리하고, PC launcher가 YAML manifest를 읽어 에이전트별 worker를 띄웁니다.
Bridge / Launcher 분리, 세션 생명주기, adapter 프로토콜, 세션 워크스페이스, drift monitor 구조를 직접 만들었습니다.
로컬 AI CLI는 강력하지만, Discord 기반 협업 제어와 Windows 실행 환경을 그대로 붙이면 raw shell 노출과 상태 불투명 문제가 생깁니다.
NAS의 FastAPI + SQLite 제어 평면과 Windows launcher 실행 평면을 나누고, 세션·잡·트랜스크립트·heartbeat를 Discord thread 기준으로 운영하는 구조를 만들었습니다.
실제 팀이 제어하고 이어받고 감시할 수 있는 로컬 AI 운영 인프라입니다.
세션 생성, 스레드 라우팅, worker heartbeat, 아티팩트 감시를 Discord와 로컬 CLI 사이에 안전하게 끼워 넣은 구조입니다.
Bridge는 Discord 봇, slash command, thread 생성, SQLite 상태 관리, 워커 등록, transcript 저장을 맡습니다. 중요한 점은 Bridge가 Codex나 Claude CLI를 직접 실행하지 않는다는 것입니다.
Launcher는 Windows 머신에서 project.yaml을 읽고, bridge에 등록된 preset을 기준으로 pending launch를 claim한 뒤, 에이전트별 worker process를 띄웁니다. 즉 제어는 NAS에, 실행은 로컬 PC에 둔 구조입니다.
이 분리 덕분에 Discord 메시지가 raw shell command로 바로 실행되지 않습니다. 고정된 adapter가 session context를 구조화해서 CLI에 전달하고, 결과는 sanitize되어 transcript로 돌아옵니다.
이 프로젝트의 장점은 구조 설명만이 아니라, 실제 운영 메시지에서 워크스페이스 경로, key files, handoff 결과, agent routing 규칙이 그대로 드러난다는 점입니다.
Session closed, local workspace path, key files, and worker-ready message가 한 thread 안에서 이어집니다. plain text는 planner가 우선 라우팅하고, @coder, @planner, @reviewer로 override할 수 있습니다.
Discord에는 긴 구현 로그를 직접 쏟지 않고, planner가 요약 보고와 local workspace 위치, RUN_LOGS / REPORT / HANDOFFS 같은 핵심 아티팩트만 짧게 올립니다.
/project start, /project find, /project status, /project close, agent restart, session reset이 모두 bridge를 통해 세션 상태와 연결됩니다.CURRENT_STATE.md, TASK_BOARD.md, HANDOFFS.md, REPORT.md, AGENTS/*.md를 가진 markdown workspace를 자동으로 만듭니다.codex, claude, mock adapter를 고정해서 Discord 입력이 곧바로 shell command가 되지 않게 했고, handoff / report / question 블록 포맷도 강제합니다.planner, coder, reviewer 3개 에이전트를 정의하고, finder용 roots와 prompt까지 YAML에 포함합니다.