Skip to main content

Streaming Events

SessionConfig 中啟用 streaming: true 後,Session 中的動作會以事件形式依序傳遞。 本頁是將官方的 streaming-events.md 針對 Laravel 版做易讀化整理的版本。
SessionEvent 頁面是 Laravel 版擴充的 SessionEvent 類別本身的說明。 本頁則是「何種事件類型會傳送何種資料」的參考文件。

概觀

Copilot Agent 的處理(推論、訊息生成、工具執行、權限確認等)全部都以 Session Event 形式傳遞。
  • Ephemeral event: 僅即時傳遞。不會持久化至 Session log(恢復時不會重播)
  • Persisted event: 儲存於 Session log(恢復時會重播)
  • Delta event: 分段傳來的差異事件(如 deltaContent),需串接以構成全文
  • parentId chain: 每個事件參照前一個事件 ID 形成的鏈結

Event envelope(共用欄位)

所有事件都具備以下共用結構。

Laravel 訂閱範例

主要事件分類

Assistant events

assistant.turn_start

Turn 開始。
  • turnId(必填)
  • interactionId(選填)

assistant.intent(ephemeral)

目前的執行意圖(例如 Exploring codebase)。
  • intent(必填)

assistant.reasoning

推論區塊的完整版。
  • reasoningId(必填)
  • content(必填)

assistant.reasoning_delta(ephemeral)

推論文字的差異。
  • reasoningId(必填)
  • deltaContent(必填)

assistant.message

Assistant 的完整訊息。 主要欄位:
  • messageId(必填)
  • content(必填)
  • toolRequests(選填)
  • reasoningOpaque / reasoningText / encryptedContent(選填)
  • phase / outputTokens / interactionId(選填)
  • parentToolCallId(選填,由 sub-agent 產生時)

assistant.message_delta(ephemeral)

訊息本文的差異。
  • messageId(必填)
  • deltaContent(必填)
  • parentToolCallId(選填)

assistant.turn_end

Turn 結束。
  • turnId(必填)

assistant.usage(ephemeral)

單一 API 呼叫的使用量資訊。 主要欄位:
  • model(必填)
  • inputTokens / outputTokens / cost / duration(選填)
  • apiCallId / providerCallId(選填)
  • quotaSnapshots / copilotUsage(選填)

assistant.streaming_delta(ephemeral)

低層次的接收進度。
  • totalResponseSizeBytes(必填)

Tool execution events

tool.execution_start

工具執行開始。
  • toolCallId(必填)
  • toolName(必填)
  • arguments / mcpServerName / mcpToolName / parentToolCallId(選填)

tool.execution_partial_result(ephemeral)

工具執行中的部分輸出。
  • toolCallId(必填)
  • partialOutput(必填)

tool.execution_progress(ephemeral)

進度訊息。
  • toolCallId(必填)
  • progressMessage(必填)

tool.execution_complete

工具執行完成(成功/失敗)。
  • toolCallId(必填)
  • success(必填)
  • result(成功時)
  • error(失敗時)
  • toolTelemetry / parentToolCallId(選填)

tool.user_requested

使用者明確要求的工具呼叫。
  • toolCallId(必填)
  • toolName(必填)
  • arguments(選填)

Session lifecycle events

session.start

Session 開始。在 Cloud Sessions 中,建議確認 producercopilot-agentsession.start 後再送出第一個 prompt,較為安全。
  • producer(選填)

session.idle(ephemeral)

目前處理完成,等待下一個輸入。
  • backgroundTasks(選填)

session.error

Session 處理中的錯誤。
  • errorType(必填)
  • message(必填)
  • stack / statusCode / providerCallId(選填)

session.compaction_start

Context 壓縮開始(data 為空物件)。

session.compaction_complete

Context 壓縮完成。 主要欄位:
  • success(必填)
  • error(選填)
  • preCompactionTokens / postCompactionTokens(選填)
  • summaryContent / checkpointPath(選填)

session.title_changed(ephemeral)

自動標題更新。
  • title(必填)

session.context_changed

Working context 變更。
  • cwd(必填)
  • gitRoot / repository / branch(選填)

session.info

遠端 URL 等 Session 資訊。
  • infoType(必填)
  • url(選填,例如 infoTyperemote 時)

session.remote_steerable_changed

表示來自 Mission Control 的遠端操作可否發生變化。
  • remoteSteerable(選填)

session.usage_info(ephemeral)

Context window 使用狀況。
  • tokenLimit(必填)
  • currentTokens(必填)
  • messagesLength(必填)

session.task_complete

任務完成通知。
  • summary(選填)

session.shutdown

Session 結束。 主要欄位:
  • shutdownType(必填)
  • errorReason(選填)
  • totalPremiumRequests / totalApiDurationMs(必填)
  • codeChanges / modelMetrics(必填)

Permission / user input events

permission.requested(ephemeral)

權限確認要求。
  • requestId(必填)
  • permissionRequest(必填)
permissionRequest.kind:
  • shell
  • write
  • read
  • mcp
  • url
  • memory
  • custom-tool

permission.completed(ephemeral)

權限確認的解決結果。
  • requestId(必填)
  • result.kind(必填)

user_input.requested(ephemeral)

向使用者提問。
  • requestId(必填)
  • question(必填)
  • choices / allowFreeform(選填)

user_input.completed(ephemeral)

使用者輸入完成。
  • requestId(必填)

elicitation.requested(ephemeral)

結構化輸入(表單)要求。
  • requestId(必填)
  • message(必填)
  • requestedSchema(必填)

elicitation.completed(ephemeral)

結構化輸入完成。
  • requestId(必填)

Sub-agent / skill events

subagent.started

  • toolCallId(必填)
  • agentName / agentDisplayName / agentDescription(必填)

subagent.completed

  • toolCallId(必填)
  • agentName / agentDisplayName(必填)

subagent.failed

  • toolCallId(必填)
  • agentName / agentDisplayName(必填)
  • error(必填)

subagent.selected

  • agentName(必填)
  • agentDisplayName(必填)
  • tools(必填,允許 null)

subagent.deselected

回到預設 Agent(data 為空物件)。

skill.invoked

  • name / path / content(必填)
  • allowedTools / pluginName / pluginVersion(選填)

Other events

abort

  • reason(必填)

user.message

  • content(必填)
  • transformedContent / attachments / source / agentMode / interactionId(選填)

system.message

  • content(必填)
  • role(必填)
  • name / metadata(選填)

external_tool.requested(ephemeral)

  • requestId / sessionId / toolCallId / toolName(必填)
  • arguments(選填)

external_tool.completed(ephemeral)

  • requestId(必填)

exit_plan_mode.requested(ephemeral)

  • requestId / summary / planContent / actions / recommendedAction(必填)

exit_plan_mode.completed(ephemeral)

  • requestId(必填)

command.queued(ephemeral)

  • requestId(必填)
  • command(必填)

command.completed(ephemeral)

  • requestId(必填)

典型事件順序

全事件一覽(快速參考)

相關文件

最後修改於 2026年8月2日