Cloud Sessions
Cloud Sessions permite ejecutar sesiones en el entorno hospedado por GitHub en lugar de en el proceso local de Copilot CLI. La tarea se reserva en Mission Control y elcopilot-agent de la nube se conecta y realiza el procesamiento.
Las Remote Sessions habituales sirven para «hacer visibles desde la web/móvil de GitHub sesiones que se ejecutan en local». Si lo que quieres es que la ejecución se realice en el entorno hospedado por GitHub, usa Cloud Sessions.
Requisitos previos
- El usuario tiene permisos de Copilot suficientes para usar Cloud Agent
- Puedes autenticarte con un token de GitHub o con un usuario ya logueado en Copilot CLI
- Si es posible, asocia la información del repositorio de GitHub
- La política de la organización permite la ejecución en la nube y la visualización remota
Uso básico
Indica unCloudSessionOptions en cloud dentro de SessionConfig. La información del repositorio es opcional en el tipo del SDK, pero se recomienda indicarla para pasar contexto a Mission Control y al agente de la nube.
Cuándo enviar el primer prompt
Una Cloud Session se inicializa en dos fases.session.create retorna en cuanto la tarea queda reservada en Mission Control, pero pasa un tiempo hasta que el copilot-agent de la nube se conecta y emite session.start.
Para asegurarte de entregar el primer prompt, suscríbete a los eventos primero y envíalo solo después de que producer confirme el session.start del copilot-agent.
session.start desde el lado de la cola o del proceso asíncrono.
Diferencias con Remote Sessions
| Función | Lugar de ejecución | Uso principal |
|---|---|---|
| Remote Sessions | Local o servidor propio | Ver/manipular sesiones existentes desde web/móvil |
| Cloud Sessions | Entorno hospedado por GitHub | Procesar sin ejecutar Copilot CLI en el equipo del usuario o servidor propio |
Consideraciones
- Cloud Sessions se ve afectado por los permisos y la política de la organización
- Con
streaming: truerecibes eventos en tiempo real comoassistant.message_delta - El manejo de solicitudes de permiso es igual que en una sesión normal. Vía el Facade de la versión Laravel, el valor por defecto es deny-all, por lo que indica
PermissionHandler::approveSafety()u otro cuando lo necesites
Referencias
Consulta la información más reciente en el repositorio de GitHub.