Tai Link が NAT やファイアウォールを越えて Yao との接続を維持する仕組みと、ローカルネットワーク環境向けの設定方法について説明します。 ## デフォルト:gRPC トンネル Tai Link は起動後すぐに Yao の gRPC エンドポイント(デフォルトポート 9900)への**アウトバウンド接続**を確立します: - **ポートフォワーディング不要。** リモートマシンはインバウンドポートを開ける必要がありません。 - **NAT 越え対応。** ホームルーターや 4G ネットワーク内のマシンでも接続できます。 - **固定 IP 不要。** 永続 gRPC ストリームで接続を維持し、切断後は自動的に再接続します。 この永続ストリームが**トンネル**です。Yao はこれを通じて Tai Link にコマンドを送り、Tai Link が結果をストリームで返します。 ### 再接続ロジック ネットワークが不安定になると、Tai Link は指数バックオフで自動リトライします: | 試行回数 | 待機時間 | |---------|---------| | 1 | 即時 | | 2 | 2 秒 | | 3 | 4 秒 | | 4 | 8 秒 | | 5+ | 最大 2 分 | 安定した接続が回復するとカウンターがリセットされます。 ## ダイレクトモード Tai Link が Yao と同じローカルネットワーク上にある場合、gRPC トンネルをスキップしてネットワークホップを一つ減らす**ダイレクトモード**を使えます。 起動時に `--direct-addr` フラグを追加します: ```bash tai server --direct-addr 0.0.0.0:9910 http://<YOUR_YAO_SERVER>:5099 ``` Tai Link が指定ポートでダイレクト接続リクエストを待ち受け、`direct_addr` が宣言されていることを Yao が検出すると可能な場合はダイレクト接続を優先し、フォールバック時にトンネルを使います。 `config.yml` では: ```yaml direct: addr: "0.0.0.0:9910" ``` > ⚠️ ダイレクトモードは Tai Link デバイス上でリスニングポートを開きます。ファイアウォールで Yao サーバーの IP のみがそのポートにアクセスできるよう制限してください。 ## CLI フラグリファレンス `tai server` のよく使うフラグ: | フラグ | デフォルト | 説明 | |-------|-----------|------| | `--config` | — | 設定ファイルのパス | | `--display-name` | ホスト名 | Yao Agents に表示される名前 | | `--data` | `./data` | ワークスペースのデータルートディレクトリ | | `--host-exec` | `false` | ホスト Shell アクセスを有効にする | | `--host-vnc-port` | — | ホスト VNC リスニングポート | | `--direct-addr` | — | ダイレクトモードのリスニングアドレス | | `--kubeconfig` | — | Kubernetes 設定ファイルのパス | | `--log-level` | `info` | ログレベル(debug・info・warn・error)| | `--log-file` | — | ファイルに出力(デフォルトは stdout)| ## 次のステップ - [セキュリティとプライバシー](/docs/ja-jp/tai-link/security-and-privacy) — 認証とデータの分離 - [リモート操作](/docs/ja-jp/tai-link/remote-operations) — Agent がトンネルを使ってタスクを実行する仕組み