リモート接続
スマートフォンや他のデバイスから zqagent をリモートで使用します。タスクはノード上で実行され、進捗、承認リクエスト、結果がリアルタイムに返ります。
1 つの経路、2 つの役割
リモート接続は Rust ゲートウェイ + バイナリ WSS を採用します:
スマートフォン / ブラウザ ──wss──▶ Rust ゲートウェイ ◀──wss── ノード(タスクを実行するマシン)
▲
認証情報を発行(HTTPS)
│
Hub コントロールプレーン- ノード:署名鍵(
FLEET_SECRET)を保持し、接続後に鍵でゲートウェイへ身元を証明します。 - ターミナル(スマートフォン / ブラウザ):ノードの鍵には触れません。アカウントで Hub にログインし、指定ノードのみを認可する 短時間有効のトークンと交換して、それでゲートウェイへ直接接続します。トークンが切れたら再取得するだけで、再ログインは不要です。
この方式の利点:スマートフォンにノードを乗っ取れる鍵を長期間置かずに済み、トークンが漏れても影響は認可された 1 台のノードだけです。
スマートフォンでの使用
- ノードのマシンで接続を完了し(サーバー設定の「クラウド接続」を参照)、 ノード設定でリモートアクセスを有効にします。
- スマートフォンのブラウザでユーザーセンター(Hub アドレス)を開き、同じアカウントでログインします。
- 「ノード」ページで接続済みノードが表示され、クリックするとコンソールに入れます。
ネイティブアプリは現在、同じコンソールページをそのまま利用しています。独自クライアントを開発する場合、プロトコル契約はリポジトリの
docs/wire-protocol.md(フレーム形式、エンベロープ、メッセージ定義、署名アルゴリズム)にあります。
できること
| 操作 | 説明 |
|---|---|
| タスク投入 | メッセージを送るとノードが実行を開始 |
| 補足情報 | 実行中に指示を追加し、現在のタスクへ即時注入 |
| 承認 | 承認が必要な操作に 同意 / すべて同意 / 拒否 を選択 |
| 質問への回答 | AI の質問や計画確認に回答 |
| タスク中断 | いつでも現在のタスクを停止 |
| セッション管理 | 作成、切り替え、セッション一覧の表示 |
| ファイル閲覧 | プロジェクトのディレクトリとファイル内容を表示 |
通知と進捗
- タスクの重要ポイント(承認が必要、回答が必要、完了、エラー)はあなたのアカウントへプッシュされ、どのデバイスでも確認できます。
- 実行進捗(どのツールを呼んでいるか、何を出力したか)がリアルタイムに配信されます。
- 同じアカウントの複数デバイスが同時に通知を受け取ります。
可用性
- ノードはゲートウェイへアウトバウンド接続(
wss://、通常 443)するだけで、公衆からのインバウンドもポート開放も不要です。 - ゲートウェイに到達できない場合、ノードは指数バックオフで自動再接続し、その間もローカル機能はまったく影響を受けません。
