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 저장소를 참고하세요.