Cloud Sessions
Cloud Sessions 是不透過本機的 Copilot CLI 程序,而是於 GitHub 端的託管環境執行 session 的功能。任務會在 Mission Control 中預約,由雲端的copilot-agent 連線並執行處理。
一般的 Remote Sessions 是「讓在本機執行的 session 能被 GitHub Web/行動裝置看見」的功能。若希望執行位置本身位於 GitHub 託管環境,則使用 Cloud Sessions。
前置條件
- 使用者具備可使用 Cloud Agent 的 Copilot 權限
- 可透過 GitHub token 或已登入的 Copilot CLI 使用者進行認證
- 若可能,請關聯 GitHub 儲存庫資訊
- 組織政策允許雲端執行與遠端瀏覽
基本用法
於SessionConfig 的 cloud 中指定 CloudSessionOptions。儲存庫資訊在 SDK 型別上為選填,但為向 Mission Control 與雲端 agent 傳遞脈絡,建議指定。
送出第一個 prompt 的時機
Cloud Session 是分兩階段初始化。session.create 會在 Mission Control 預約任務時就回傳,但雲端的 copilot-agent 連線並發出 session.start 之前還會有一段時間。
為確保首個 prompt 能可靠送達,請先訂閱事件,並在 producer 確認 copilot-agent 的 session.start 之後再送出。
session.start 後再送出 prompt」的架構會更易於管理。
與 Remote Sessions 的差異
注意事項
- Cloud Sessions 會受權限與組織政策影響
- 設定
streaming: true後即可接收assistant.message_delta等即時事件 - 權限請求的處理方式與一般 session 相同。透過 Laravel 版 Facade 時預設為 deny-all,如有需要請指定
PermissionHandler::approveSafety()等
參考
最新資訊請參考 GitHub 儲存庫。