Skip to main content
POST /agent/runsdelta_v1 は、会話履歴全体ではなく最新のユーザーメッセージだけを送ります。 QAIP は保存済みの現在枝から、モデルの上限に収まる rolling context を再構築します。 API キーには inference:run scope が必要です。すべての delta_v1 request に、一意で非空の Idempotency-Key を付けてください。

新しい会話を開始する

新規会話では threadIdbaseRunId を省略します。
202 response の thread_idrun_id を保存します。同じ request の response を受け取れなかった場合は、 body と Idempotency-Key を変えずに再送してください。同じ run に収束します。

current_run_idから継続する

GET /agent/threadsagent_idcurrent_run_id を取得します。
current_run_id は continuation の権威値です。latest_run_id は最新作成 run の表示情報であり、 baseRunId には使わないでください。
別の request が先に thread を進めた場合は 409 THREAD_ADVANCED になります。最新の thread 一覧を取得し、 利用者に競合を示してから再送してください。自動 merge や自動再送はしないでください。

失敗したrunを再試行する

現在の run が FAILED または CANCELLED の場合だけ sibling retry を作れます。retryRunIdbaseRunId に同じ current run ID を指定し、元 run と同じ newUserMessage を送ります。新しい Idempotency-Key を使ってください。

rolling contextの状態を確認する

Agent run response は次を返します。
  • input_history_mode: legacy_full または delta_v1
  • context_start_run_id: 再構築した文脈に含まれる最古の run。過去文脈が不要なら null
  • context_truncated: モデルの context budget に合わせて古い run を除外した場合は true
context_truncated=true でも保存履歴は削除されません。モデルへ渡す文脈だけが短くなります。

legacy_fullと混在させない

既存 client は、inputHistoryMode を省略して full-history の messagesstate を送る legacy_full を引き続き利用できます。
  • legacy_fullbaseRunIdretryRunIdnewUserMessageuiStateDelta は指定できません。
  • delta_v1state または parentRunId は指定できません。messages を送る場合は空配列だけです。
  • 異なる mode の field を混在させると 422 になります。

Dashboard会話とは分離される

API キーで作成した thread の origin は api_key です。GET /agent/threads は同じ API key principal と api_key origin の thread だけを返します。Dashboard で作成した会話は返さず、Dashboard の履歴画面にも API key の会話は表示されません。Dashboard 専用の履歴検索、snapshot、rename、delete API は API キー向け 公開 API ではありません。