すべてのプロダクト
Search
ドキュメントセンター

Qoder CN シリーズ:セッションとイベントのデータ構造

最終更新日:Jul 04, 2026

Forward Session API が返すセッションおよびイベントオブジェクトのリファレンスです。

Session オブジェクト

Create、Get、List、Update、および Archive Session エンドポイントはすべて、このオブジェクトを返します。

{
  "id": "sess_xxx",
  "type": "session",
  "identity_id": "idn_xxx",
  "template": {
    "id": "tmpl_support",
    "type": "template",
    "name": "Customer support assistant",
    "model": "ultimate",
    "version": 3
  },
  "source_type": "api",
  "status": "idle",
  "title": "Customer support conversation",
  "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

文字列

はい

sess_ で始まるセッション ID。

type

文字列

はい

常に "session" です。

identity_id

文字列

はい

このセッションが属するエンドユーザーの Forward アイデンティティ ID。

template

オブジェクト

はい

Forward テンプレートの概要です。以下の「テンプレートの概要」テーブルをご参照ください。

source_type

文字列

はい

セッションソース: apiim、または schedule

status

文字列

はい

セッションのランタイムステータス: idlerunningreschedulingcanceling、または terminated。アーカイブ状態は archived_at で表されます。

title

文字列

はい

セッションのタイトルです。

incremental_streaming_enabled

ブール値

はい

このセッションでインクリメンタルストリーミングイベントを有効にするかどうかを指定します。作成時に省略した場合、デフォルトは false です。作成後は変更できません。

metadata

オブジェクト

いいえ

呼び出し元が定義したビジネスメタデータ。

config

オブジェクト

いいえ

セッションの設定。設定が指定されていない場合は省略されます。

config.environment_variables

オブジェクト

いいえ

キーバリューペアとして表されるセッションレベルの環境変数。

stats

オブジェクト

いいえ

セッションの使用量統計です。以下の「セッション統計」テーブルをご参照ください。

usage

オブジェクト

いいえ

使用量情報。課金モジュールが有効でない場合は省略される可能性があります。

usage.credits

数値

いいえ

消費したクレジット。

archived_at

文字列 | null

はい

アーカイブタイムスタンプ。セッションがアーカイブされていない場合は null になります。

created_at

文字列

はい

RFC 3339 形式の作成日時。

updated_at

文字列

はい

RFC 3339 形式の最終更新日時。

テンプレートの概要

フィールド

タイプ

常に返却

説明

id

文字列

はい

転送テンプレート ID です。

type

文字列

はい

常に "template" です。

name

文字列

はい

テンプレート名です。

model

文字列

はい

テンプレートが使用するモデルティアまたはモデル識別子です。

version

整数

はい

テンプレートのバージョン番号です。

セッション統計

フィールド

タイプ

常に返されるか

説明

active_seconds

整数

いいえ

アクティブ処理時間を秒単位で示します。新しいセッションの場合、通常は 0 です。

duration_seconds

整数

いいえ

合計セッション期間を秒単位で示します。新しいセッションの場合、通常は 0 です。

イベントオブジェクト

API によって返されるイベントは JSON オブジェクトで、ペイロードは type によって異なります。すべてのイベントには同じ共通フィールドのセットに加え、タイプ固有のペイロードフィールドが含まれます。

{
  "id": "evt_xxx",
  "type": "agent.message",
  "session_id": "sess_xxx",
  "content": [
    {
      "type": "text",
      "text": "Here is the analysis result."
    }
  ],
  "processed_at": "2026-06-22T11:00:03Z"
}

フィールド

タイプ

常に返される

説明

id

文字列

はい

evt_ で始まるイベント ID です。

type

文字列

はい

イベントタイプです。

session_id

文字列

はい

このイベントが属するセッションの ID です。

processed_at

文字列

いいえ

イベントが処理された時刻です (RFC 3339 フォーマット)。特定のエージェント生成イベントまたはインクリメンタルイベントでは存在しない場合があります。

各イベントタイプで使用できるペイロードフィールドは、以下のとおりです。共通フィールドの idtypesession_id、および processed_at は、繰り返しになるため表には記載していません。

イベントタイプ

許可されるフィールド

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 は、空ではないコンテンツブロックの配列で、textimagedocument などのブロックタイプをサポートします。

user.interrupt

なし

現在のターンを中断するようリクエストします。

user.tool_confirmation

tool_use_idresult

ツール呼び出しの確認。resultallow または deny である必要があります。拒否する場合は、deny_message も送信できます。

user.tool_result

tool_use_id

組み込みツールの結果を返します。contentis_error は任意です。

user.custom_tool_result

custom_tool_use_id

クライアント定義のカスタムツールの結果を返します。contentis_error は任意です。

user.define_outcome

descriptionrubric

望ましい成果と、その評価ルーブリックを定義します。max_iterations は任意です。

system.message はパブリックイベントタイプですが、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

インクリメンタルストリーミングイベント

インクリメンタルストリーミングイベントを公開するかどうかは、会話の作成時に設定する incremental_streaming_enabled フィールドによって制御され、履歴クエリや SSE サブスクリプションのリクエストパラメータには依存しません。

  • true :イベントストリームは、最終的な agent.message の前にアシスタントの部分的な出力を返します。履歴クエリも同じインクリメンタルイベントを返します。

  • false または省略:標準モード。完全な公開イベントのみが返され、インクリメンタルイベントは発行されません。

インクリメンタルストリーミングが有効な場合でも、最終的な完全な agent.message は返されます。クライアントは、即時レンダリングのためにインクリメンタルイベントを使用し、永続化や表示の調整における信頼できる唯一の情報源として、最終的な agent.message に依存できます。

以下の 6 つのトップレベルイベントタイプのみがインクリメンタルです。

イベントタイプ

主要なフィールド

説明

agent.message_start

message_idmessage

アシスタントメッセージの開始を示します。

agent.content_block_start

message_idindexcontent_block

テキスト、思考、ツールの使用などのコンテンツブロックの開始を示します。

agent.content_block_delta

message_idindexdelta

index のコンテンツブロックに対するインクリメンタルフラグメントを配信します。

agent.content_block_stop

message_idindex

index のコンテンツブロックの終了を示します。

agent.message_delta

message_iddeltausage

stop_reasonstop_sequence 、使用量情報などのメッセージレベルのデルタを配信します。

agent.message_stop

message_id

アシスタントメッセージの終了を示します。

text_deltathinking_deltasignature_deltainput_json_delta 、および tool_output_delta はトップレベルのイベントタイプではありません。これらは agent.content_block_delta.delta.type の値としてのみ現れます。

delta.type

フィールド

説明

text_delta

text

テキスト出力のフラグメント。クライアントは delta.text を連結して全文を再構築できます。

thinking_delta

thinking

モデルまたはプロバイダーの思考出力のフラグメント。

signature_delta

signature

思考ブロックのシグネチャフラグメント。シグネチャが存在する場合にのみ発行されます。

input_json_delta

partial_json

ツール入力 JSON のフラグメント。

tool_output_delta

可変

将来のツール出力のストリーミングのために予約されています。現在、完全な agent.tool_result が引き続き信頼できる唯一の情報源となります。

agent.content_block_delta の例:

{
  "id": "evt_delta_xxx",
  "type": "agent.content_block_delta",
  "session_id": "sess_xxx",
  "message_id": "msg_xxx",
  "index": 0,
  "delta": {
    "type": "text_delta",
    "text": "Here"
  },
  "processed_at": "2026-06-22T11:00:01Z"
}

インクリメンタルイベントを解析するためのルール:

  • SSE の event: 行と JSON の data.type は、両方とも公開イベントタイプを使用します。

  • agent.content_block_delta.index は、複数のコンテンツブロックを区別します。

  • processed_at はインクリメンタルイベントに存在しない場合があります。クライアントはこれを任意として扱う必要があります。

  • ネットワークが中断した後は、最後に受信したイベント ID を含む Last-Event-ID ヘッダーを使用して再開します。

  • include_thinking=false を設定すると、thinking_deltasignature_delta 、および認識可能な思考コンテンツブロックの開始/停止イベントが除外されます。

  • include_tool_calls=false を設定すると、input_json_deltatool_output_delta 、および認識可能なツールコンテンツブロックの開始/停止イベントが除外されます。