跳转到主要内容

Cloud Sessions

Cloud Sessions 是一项功能,它不使用本地 Copilot CLI 进程,而是在 GitHub 侧的托管环境中运行会话。任务会在 Mission Control 上被预约,云端的 copilot-agent 会连接进来推进处理。 普通的 Remote Sessions 是「让本地运行的会话能从 GitHub Web/移动端看到」的功能。如果你想让执行位置本身也位于 GitHub 托管环境,请使用 Cloud Sessions。

前置条件

  • 用户拥有可以使用 Cloud Agent 的 Copilot 权限
  • 可以通过 GitHub token 或已登录的 Copilot CLI 用户进行认证
  • 尽可能关联 GitHub 仓库信息
  • 组织策略允许云端执行与远程查看

基本使用方式

SessionConfigcloud 字段中指定 CloudSessionOptions。仓库信息在 SDK 类型上是可选的,但为了向 Mission Control 和云端代理传递上下文,建议指定。
也可以用数组指定。

发送第一个 prompt 的时机

Cloud Session 会分两阶段初始化。session.create 在 Mission Control 上预约任务的时刻返回,但要等到云端 copilot-agent 连接并发出 session.start,会有一小段时间。 为了让第一个 prompt 可靠送达,请先订阅事件,等 producer 确认了 copilot-agentsession.start 之后再发送。
在实际应用中,如果在队列或异步处理侧构造为「session.start 确认后再发送 prompt」的结构,会更容易处理。

与 Remote Sessions 的区别

注意事项

  • Cloud Sessions 会受到权限与组织策略的影响
  • 设置为 streaming: true 后,可以接收 assistant.message_delta 等实时事件
  • 权限请求的处理与普通会话相同。通过 Laravel 版 Facade 时默认是 deny-all,因此请根据需要指定 PermissionHandler::approveSafety()

参考

最新信息请参考 GitHub 仓库
最后修改于 2026年7月18日