Skip to main content

Modo TCP

Normalmente el SDK arranca un nuevo proceso de Copilot CLI por cada petición (modo stdio). Con el modo TCP puedes conectar a un servidor Copilot CLI arrancado previamente.

Ventajas del modo TCP

  • Mejor rendimiento: no hay overhead de arranque de proceso
  • Recursos compartidos: varios procesos Laravel pueden compartir el mismo servidor CLI
  • Gestión de procesos: puedes gestionarlo como proceso en segundo plano con Laravel Forge / Laravel Cloud
  • Compatible con despliegues: soporta el reinicio automático en cada despliegue

Uso

1. Arranca el servidor Copilot CLI

2. Configura la variable de entorno

Con solo esto, el SDK pasa automáticamente de stdio a TCP.
  • tcp:// es opcional. Funciona también con http:// o sin esquema.
  • Puedes indicar solo el puerto; en ese caso el host es 127.0.0.1 de forma automática.
  • Si indicas solo el host, únicamente son válidos 127.0.0.1 y localhost; en ese caso el puerto por defecto es 12345.

Fichero de configuración

Puedes configurar la conexión TCP en config/copilot.php.
Si defines tanto COPILOT_URL (cli_url) como COPILOT_CLI_PATH, tiene prioridad el modo TCP.

Cambio de modo en tiempo de ejecución

Normalmente se elige automáticamente TCP o stdio según el fichero de configuración. También puedes cambiarlo explícitamente en el código.
Según el servidor, es posible que el modo TCP no funcione correctamente. También puedes usarlo de forma mixta: modo TCP para procesos en cola y modo stdio para procesos dentro de peticiones HTTP.

Operar en Laravel Forge / Laravel Cloud

Laravel Forge

  1. Crea un Daemon: crea un Daemon en el panel de Forge.
  2. Configura la variable de entorno: añade COPILOT_URL en .env.
  3. Reinicia en el despliegue: reinicia el Daemon en el script de despliegue.
Puede no ser necesario en las versiones actuales de Forge.

Laravel Cloud

Puedes ejecutarlo como proceso en segundo plano con la funcionalidad de workers de Laravel Cloud. Consulta Uso en Laravel Cloud para más detalles.

Consideraciones

Seguridad

Siempre que sea posible, haz que el servidor TCP escuche localmente (127.0.0.1). Si vas a exponerlo al exterior, configura el firewall adecuadamente.

Reconexión

La versión actual no tiene reconexión automática. Si se pierde la conexión, se lanza una excepción.

Comprobar el modo actual

Puedes comprobar en qué modo está el cliente desde el programa.

Solución de problemas

No se puede conectar

  1. Comprueba que el servidor Copilot CLI está arrancado
  1. Comprueba que el puerto es correcto
  1. Revisa la configuración del firewall

Error de timeout

Aumenta el valor de timeout en config/copilot.php.
Consulta la información más reciente en el repositorio de GitHub.
Última modificación el 13 de julio de 2026