全部產品
Search
文件中心

Qoder CN 系列:session&event資料結構

更新時間:Jul 03, 2026

適用於 Forward Session API 的Session和Event相關的資料結構說明。

Session 對象

建立、擷取、列出、更新和歸檔 Session 的介面都會返回該對象。

{
  "id": "sess_xxx",
  "type": "session",
  "identity_id": "idn_xxx",
  "template": {
    "id": "tmpl_support",
    "type": "template",
    "name": "客服助手",
    "model": "ultimate",
    "version": 3
  },
  "source_type": "api",
  "status": "idle",
  "title": "客戶支援會話",
  "incremental_streaming_enabled": true,
  "metadata": {
    "source": "web",
    "biz_id": "ticket_123"
  },
  "config": {
    "environment_variables": {
      "API_KEY": "sk-xxx"
    }
  },
  "stats": {
    "active_seconds": 30,
    "duration_seconds": 3600
  },
  "usage": {
    "credits": 12.5
  },
  "archived_at": null,
  "created_at": "2026-06-22T10:00:00Z",
  "updated_at": "2026-06-22T11:00:00Z"
}

欄位

類型

必返

說明

id

string

sess_ 首碼的 Session ID。

type

string

固定為 "session"

identity_id

string

Forward Identity ID,表示該 Session 歸屬的終端使用者身份。

template

object

Forward Template 摘要,欄位見 添加網頁連結

source_type

string

Session 來源:apiim 或 schedule

status

string

Session 運行狀態:idlerunningreschedulingcanceling 或 terminated。歸檔狀態通過 archived_at 表達。

title

string

Session 標題。

incremental_streaming_enabled

boolean

是否為該 Session 開啟增量流式事件。建立時省略則為 false,建立後不支援修改。

metadata

object

調用方業務中繼資料。

config

object

Session 配置;未傳入時可能省略。

config.environment_variables

object

會話級環境變數,key-value 形式。

stats

object

Session 統計資訊,欄位見 添加網頁連結

usage

object

用量資訊;相關計費模組未啟用時可能省略。

usage.credits

number

Credit 消耗。

archived_at

string | null

歸檔時間,未歸檔時為 null

created_at

string

建立時間,RFC 3339 格式。

updated_at

string

最新動向時間,RFC 3339 格式。

Template 摘要

欄位

類型

必返

說明

id

string

Forward Template ID。

type

string

固定為 "template"

name

string

Template 名稱。

model

string

Template 使用的模型檔位或模型標識。

version

integer

Template 版本號碼。

Session stats

欄位

類型

必返

說明

active_seconds

integer

活躍處理時間長度,單位秒;新 Session 通常為 0

duration_seconds

integer

Session 持續時間長度,單位秒;新 Session 通常為 0

Event 對象

介面返回的 Event 是按 type 變化的 JSON 對象。所有返回 Event 都包含通用欄位,不同事件類型會攜帶不同的 payload 欄位。

{
  "id": "evt_xxx",
  "type": "agent.message",
  "session_id": "sess_xxx",
  "content": [
    {
      "type": "text",
      "text": "這是分析結果。"
    }
  ],
  "processed_at": "2026-06-22T11:00:03Z"
}

欄位

類型

必返

說明

id

string

evt_ 首碼的 Event ID。

type

string

Event 類型。

session_id

string

Event 所屬 Session ID。

processed_at

string

事件被處理的時間,RFC 3339 格式。部分 agent 建置事件或增量事件可能不包含該欄位。

按事件類型允許出現的 payload 欄位如下。表中不重複列出通用欄位 idtypesession_id 和 processed_at

Event 類型

允許欄位

user.message

content

user.interrupt

user.tool_confirmation

tool_use_idresultdeny_message

user.tool_result

tool_use_idcontentis_error

user.custom_tool_result

custom_tool_use_idcontentis_error

user.define_outcome

descriptionrubricoutcome_idmax_iterations

system.message

content

agent.message

content

agent.thinking

agent.message_start

message_idmessage

agent.content_block_start

message_idindexcontent_block

agent.content_block_delta

message_idindexdelta

agent.content_block_stop

message_idindex

agent.message_delta

message_iddeltausage

agent.message_stop

message_id

agent.tool_use

nameinputevaluated_permission

agent.tool_result

tool_use_idcontentis_error

agent.custom_tool_use

nameinput

agent.mcp_tool_use

mcp_server_namenameinputevaluated_permission

agent.mcp_tool_result

mcp_tool_use_idcontentis_error

agent.artifact_delivered

file_idoriginal_filenamesizecontent_type

session.status_running

session.status_idle

stop_reason

session.status_terminated

session.error

error

session.updated

agentmetadatatitle

用戶端可發送事件類型

POST /api/v1/forward/sessions/{session_id}/events 只接受以下事件類型。

類型

必要欄位

說明

user.message

content

使用者訊息。content 必須是非空 content block 數組,支援 textimagedocument 等塊類型。

user.interrupt

請求中斷當前處理。

user.tool_confirmation

tool_use_idresult

工具調用確認。result 為 allow 或 deny;拒絕時可傳 deny_message

user.tool_result

tool_use_id

返回內建工具結果;content 和 is_error 可選。

user.custom_tool_result

custom_tool_use_id

返回用戶端自訂工具結果;content 和 is_error 可選。

user.define_outcome

descriptionrubric

定義期望結果和評判標準;max_iterations 可選。

system.message 是公開 Event 類型,但不作為 Forward 用戶端寫入事件開放。

公開事件類型

查詢歷史和訂閱 SSE 事件流時,可能收到以下公開事件類型:

user.messageuser.interruptuser.tool_confirmationuser.tool_resultuser.custom_tool_resultuser.define_outcomesystem.messageagent.messageagent.thinkingagent.message_startagent.content_block_startagent.content_block_deltaagent.content_block_stopagent.message_deltaagent.message_stopagent.tool_useagent.tool_resultagent.custom_tool_useagent.mcp_tool_useagent.mcp_tool_resultagent.artifact_deliveredsession.status_runningsession.status_idlesession.status_terminatedsession.error 和 session.updated

增量流式事件

是否暴露增量流式事件由建立 Session 時的 incremental_streaming_enabled 欄位控制,不通過查詢歷史或訂閱 SSE 的請求參數控制:

  • true:事件流會在最終完整 agent.message 之前返回 assistant 輸出片段;歷史查詢也會返回同一批增量事件。

  • false 或省略:保持普通模式,只返回完整公開事件,不返回增量事件。

開啟增量流式後,最終完整的 agent.message 仍會返回。用戶端可使用增量事件做即時展示,再以最終 agent.message 作為持久化或展示校準結果。

頂層增量事件類型只有以下 6 種:

事件類型

關鍵字段

說明

agent.message_start

message_idmessage

開始一條 assistant message。

agent.content_block_start

message_idindexcontent_block

開始一個 content block,例如 text、thinking 或 tool use。

agent.content_block_delta

message_idindexdelta

承載 index 對應 content block 的增量片段。

agent.content_block_stop

message_idindex

結束 index 對應 content block。

agent.message_delta

message_iddeltausage

承載 message 級增量,例如 stop_reasonstop_sequence 或用量資訊。

agent.message_stop

message_id

結束一條 assistant message。

text_deltathinking_deltasignature_deltainput_json_delta 和 tool_output_delta 不是頂層 Event 類型,只會作為 agent.content_block_delta.delta.type 出現。

delta.type

欄位

說明

text_delta

text

文本輸出片段,用戶端可追加 delta.text 重建文本。

thinking_delta

thinking

模型或 provider 輸出 thinking 時的思考片段。

signature_delta

signature

thinking block 的簽名片段,存在時透出。

input_json_delta

partial_json

工具入參 JSON 片段。

tool_output_delta

varies

預留給未來的工具輸出資料流式;當前仍以完整 agent.tool_result 為準。

agent.content_block_delta 樣本:

1{2  "id": "evt_delta_xxx",3  "type": "agent.content_block_delta",4  "session_id": "sess_xxx",5  "message_id": "msg_xxx",6  "index": 0,7  "delta": {8    "type": "text_delta",9    "text": "這是"10  },11  "processed_at": "2026-06-22T11:00:01Z"12}

增量事件解析約定:

  • SSE event: 與 JSON data.type 都使用公開 Event 類型。

  • agent.content_block_delta.index 用於區分多個 content block。

  • processed_at 在增量事件上可能缺失,用戶端應按可選欄位處理。

  • 網路中斷後可使用 Last-Event-ID 攜帶最後收到的 Event ID 重連。

  • include_thinking=false 時,會過濾 thinking_deltasignature_delta 及可識別的 thinking content block start/stop 事件。

  • include_tool_calls=false 時,會過濾 input_json_deltatool_output_delta 及可識別的 tool content block start/stop 事件。