TCPモード
通常、SDK は各リクエストごとに新しい Copilot CLI プロセスを起動します(stdio モード)。 TCP モードを使うと、事前に起動した Copilot CLI サーバーへ接続できます。TCPモードのメリット
- パフォーマンス向上: プロセス起動オーバーヘッドがない
- リソース共有: 複数の Laravel プロセスで同一 CLI サーバーを共有できる
- プロセス管理: Laravel Forge / Laravel Cloud でバックグラウンドプロセスとして管理できる
- デプロイ対応: デプロイ時の自動再起動に対応できる
使い方
1. Copilot CLIサーバーを起動
2. 環境変数を設定
tcp://は任意です。http://やスキームなしでも動作します。- ポートだけの指定も可能です。その場合ホストは自動で
127.0.0.1になります。 - ホストだけの指定は
127.0.0.1とlocalhostのみ有効です。その場合ポートはデフォルト12345になります。
設定ファイル
config/copilot.php で TCP 接続を設定できます。
COPILOT_URL(cli_url)と COPILOT_CLI_PATH を両方設定した場合は TCP モードが優先されます。
実行時のモード切り替え
通常は設定ファイルに従って TCP モードか stdio モードかが自動で選ばれます。 コード内で明示的に切り替えることも可能です。Laravel Forge / Laravel Cloudでの運用
Laravel Forge
-
Daemon を作成: Forge 管理画面で Daemon を作成します。
-
環境変数を設定:
.envにCOPILOT_URLを追加します。 - デプロイ時に再起動: デプロイスクリプトで Daemon を再起動します。
Laravel Cloud
Laravel Cloud のワーカー機能を使い、バックグラウンドプロセスとして実行できます。 詳しくは Laravel Cloudでの使い方 を参照してください。注意事項
セキュリティ
再接続
現在のバージョンには自動再接続機能がありません。接続が切れると例外がスローされます。現在モードの確認
プログラム内でクライアントがどちらのモードか確認できます。トラブルシューティング
接続できない
- Copilot CLI サーバーが起動しているか確認
- ポートが正しいか確認
- ファイアウォール設定を確認
タイムアウトエラー
config/copilot.php の timeout 値を増やしてください。
最新情報は GitHub リポジトリ を参照してください。