개요
구조 한 장
셀은 격리의 단위입니다. 셀 안에는 라우터가 모든 작업을 이동 전에 저장하고, 디렉터리가 좌석 토큰을 발급·회수하며, 데이터베이스는 그 셀에만 속합니다. 좌석은 셀 밖에서 연결해 들어옵니다.
테넌트는 셀이다
테넌트 사이에 공유되는 것은 호스트뿐입니다. 좌석은 어느 기기에서든 토큰을 가진 프로세스이고, 라우터는 토큰을 검증하고 작업을 저장한 뒤 좌석이 열어 둔 스트림으로 밀어 넣습니다.
┌──────────────── 테넌트 셀 ──────────────────┐
에이전트 좌석 ─▶│ │◀── 브라우저 좌석 (PC)
(어느 호스트) │ 라우터 ── 스트림 ──▶ 좌석 │
│ │ │◀── 실행기 좌석 (호스트)
메일 좌석 ───▶│ │ 내구 큐 (SQLite, 셀 소유) │
(어댑터) │ ▼ │◀── 테스트 좌석 (CI)
│ 디렉터리 (토큰, 회수 스냅샷) │
└───────────────────────────────────────────────┘
작업의 생애
작업은 배달 전에 저장되고, 확인 응답 기준으로 한 번 배달되며, 결과는 요청한 좌석으로 돌아갑니다. 듣고 있는 아무에게나 가지 않습니다.
호출 좌석 ──① POST /agents/caller/a2a──▶ 라우터 ──② 저장──▶ SQLite
│
├──③ SSE 작업──────▶ 좌석 (어댑터)
│ │ 실행
│◀──④ POST 결과───────┘
└──⑤ SSE egress────▶ 호출 좌석
│
⑥ ack ────┘
(ack 없으면 TTL까지 재시도)
네 가지 좌석
라우터는 좌석 뒤에 무엇이 있는지 모릅니다. 다른 것은 어디서 도는지, 어떤 신원을 갖는지, 무엇을 반환할 수 있는지입니다.
사람 ─┬─ 에이전트 좌석 어디서나 모델이 판단하는 작업
├─ 메일 좌석 어댑터 호스트 메일을 읽고 초안만 반환
├─ 브라우저 좌석 소유자 PC 실제 세션, 개인은 메타데이터만
└─ 실행기 좌석 소유자 호스트 승인된 명령, 과업에 결속
테스트 좌석: CI, 결정적 스위트
어디서 도는가
호스팅 테넌트와 고객 호스트의 셀이 같은 모양입니다. PC 좌석은 인바운드 포트가 필요 없습니다. 밖으로 연결하므로 NAT 뒤의 노트북도 정상 좌석입니다.
(a) 호스팅 테넌트 VPS ─ 셀(라우터, 디렉터리, DB) ─ 웹 콘솔
(b) 고객 호스트 고객 서버 ─ 셀 ─ 고객 좌석
(c) PC 좌석 노트북/PC ── 아웃바운드 스트림 ──▶ 셀 (포트 개방 없음)
(d) 테스트 CI 러너 ── 스위트 ──▶ 실패 번들 ──▶ 개발 에이전트
사설 라우터와 공인 라우터
사설과 공인은 서로 다른 제품이 아니라 **같은 라우터 소스의 두 배포 프로필**입니다. 계약(API·봉투·상관관계·원 대화 반환·멱등)은 공유하고, 차이는 전송 계층에 있습니다: 인증, 등록, 주소 정책.
공인 라우터는 인터넷을 향합니다: 검증된 TLS, 좌석 토큰, 테넌트·주소 정책, 요청 쿼터. 사설 라우터는 소유자 기기나 사내망 안에 있습니다: 루프백 전용, 인증 없음, 좌석이 스스로 등록하고 주소 임차를 갖습니다.
인터넷
│ 검증된 TLS · 좌석 토큰 · 테넌트/주소/쿼터
┌─────▼──────┐
│ 공인 셀 │ 라우터 · 디렉터리 · DB · 웹 콘솔
└─────▲──────┘
│ r2r 링크: 서명된 봉투, 경로는 전송 전에 고정,
│ 영수증이 원래 경로로 반환
┌─────▼──────┐
│ 사설 라우터│ 루프백 · 인증 없음 · 자동 등록 좌석
│ │ (소유자 기기 또는 사내망)
└─────┬──────┘
│
로컬 좌석: 실행기 · 브라우저 · codex · opencode
어댑터의 구조와 동작
어댑터는 메시지가 시스템 행동이 되는 유일한 지점입니다. 좌석 토큰을 들고 스트림을 열어 두고, 작업을 받아 허용 여부를 판단하고, 실행한 뒤 요청한 좌석에 결과를 돌려줍니다.
라우터는 본문을 해석하지 않습니다. 저장·배달·재시도·기록만 하고, 해석과 권한 확인, 무엇을 건드렸는지의 기록은 어댑터가 소유합니다.
좌석 토큰 ─▶ [ 전송 ] SSE 수신 · POST 결과 / egress ack
│
▼
[ 정책 ] origin 허용목록 · 도메인 목록 · 콘텐츠 정책
│
▼
[ 실행기 ] 시스템 API · 브라우저 스텝 · 메일 초안
│
▼
[ 결과 ] 상태 · 데이터 · 활동 ──▶ 원래 좌석
│
↺ 백오프 재연결 · 토큰 갱신 · 일시 오류는 1회 재시도
어댑터의 종류
위 루프는 모든 어댑터에서 동일하고, 실행기만 바뀝니다. 그래서 새 연동은 새 프로토콜이 아니라 새 실행기입니다.
메일 Gmail 푸시 / IMAP 폴링 ─▶ 접수 좌석 ─▶ 제안 ─▶ 사람 ─▶ 초안
브라우저 스텝 목록 ─▶ 소유자 PC의 ego lite ─▶ 페이지 데이터 / 스크린샷
실행기 과업 ─▶ 호스트의 승인된 명령 ─▶ 과업에 결속된 결과
엔진 작업 ─▶ codex / opencode 세션 ─▶ 대화에 결속된 결과
라우터 봉투 ─▶ 다음 라우터 ─▶ 같은 경로로 영수증 반환