원격 연결
스마트폰이나 다른 기기에서 zqagent를 원격으로 사용합니다. 작업은 노드에서 실행되고 진행 상황, 승인 요청, 결과가 실시간으로 전달됩니다.
하나의 경로, 두 가지 역할
원격 연결은 Rust 게이트웨이 + 바이너리 WSS를 사용합니다:
스마트폰 / 브라우저 ──wss──▶ Rust 게이트웨이 ◀──wss── 노드(작업을 실행하는 머신)
▲
자격 증명 발급(HTTPS)
│
Hub 제어 플레인- 노드: 서명 키(
FLEET_SECRET)를 보유하고, 연결 후 키로 게이트웨이에 신원을 증명합니다. - 터미널(스마트폰 / 브라우저): 노드 키에 접촉하지 않습니다. 계정으로 Hub에 로그인해 지정 노드만 인가하는 단기 토큰으로 교환한 뒤 그것으로 게이트웨이에 직접 연결합니다. 토큰이 만료되면 다시 받기만 하면 되고 재로그인은 필요 없습니다.
이 방식의 장점: 스마트폰에 노드를 탈취할 수 있는 키를 오래 두지 않으며, 토큰이 유출되어도 인가된 노드 1대에만 영향을 줍니다.
스마트폰에서 사용
- 노드 머신에서 연결을 완료하고(서버 구성의 '클라우드 연결' 참고), 노드 설정에서 원격 액세스를 활성화합니다.
- 스마트폰 브라우저에서 사용자 센터(Hub 주소)를 열고 같은 계정으로 로그인합니다.
- '노드' 페이지에서 연결된 노드가 보이고, 클릭하면 콘솔로 들어갑니다.
네이티브 앱은 현재 같은 콘솔 페이지를 그대로 사용합니다. 자체 클라이언트를 개발한다면 프로토콜 계약은 저장소의
docs/wire-protocol.md(프레임 형식, 봉투, 메시지 정의, 서명 알고리즘)에 있습니다.
할 수 있는 것
| 작업 | 설명 |
|---|---|
| 작업 투입 | 메시지를 보내면 노드가 실행 시작 |
| 보충 정보 | 실행 중에 지시를 추가해 현재 작업에 즉시 주입 |
| 승인 | 권한이 필요한 작업에 동의 / 모두 동의 / 거부 선택 |
| 질문 답변 | AI의 질문이나 계획 확인에 답변 |
| 작업 중단 | 언제든 현재 작업 중지 |
| 세션 관리 | 생성, 전환, 세션 목록 보기 |
| 파일 탐색 | 프로젝트 디렉터리와 파일 내용 보기 |
알림과 진행
- 작업의 핵심 지점(승인 필요, 답변 필요, 완료, 오류)이 계정으로 푸시되어 어떤 기기에서든 볼 수 있습니다.
- 실행 진행(어떤 도구를 호출 중인지, 무엇을 출력했는지)이 실시간으로 전달됩니다.
- 같은 계정의 여러 기기가 동시에 알림을 받습니다.
가용성
- 노드는 게이트웨이로 아웃바운드 연결(
wss://, 보통 443)만 하면 되며 공인 인바운드도 포트 개방도 필요 없습니다. - 게이트웨이에 도달할 수 없으면 노드는 지수 백오프로 자동 재연결하며, 그동안 로컬 기능은 전혀 영향을 받지 않습니다.
