TCP 模式
通常,SDK 会为每个请求启动新的 Copilot CLI 进程(stdio 模式)。 使用 TCP 模式后,可以连接到预先启动的 Copilot CLI 服务器。TCP 模式的优点
- 性能提升: 没有进程启动开销
- 资源共享: 多个 Laravel 进程可以共享同一个 CLI 服务器
- 进程管理: 可以在 Laravel Forge / Laravel Cloud 中作为后台进程管理
- 部署适配: 可以支持部署时的自动重启
使用方式
1. 启动 Copilot CLI 服务器
2. 设置环境变量
tcp://是可选的。使用http://或没有 scheme 也可以工作。- 也可以只指定端口。这种情况下 host 会自动为
127.0.0.1。 - 只指定 host 时仅
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 的 worker 功能,作为后台进程运行。 详情请参考 在 Laravel Cloud 中的使用。注意事项
安全
重连
当前版本没有自动重连功能。连接断开时会抛出异常。确认当前模式
可以在程序内确认客户端处于哪种模式。故障排查
无法连接
- 确认 Copilot CLI 服务器是否启动
- 确认端口是否正确
- 确认防火墙配置
超时错误
请增大config/copilot.php 中 timeout 的值。
最新信息请参考 GitHub 仓库。