Session にサポートされている user イベントを送信します。
POST /api/v1/cloud/sessions/{session_id}/events
1 つ以上の受理可能なイベントを Session に送信します。user.message は非同期に Agent の処理をトリガーします。Agent の出力は list または stream エンドポイントで読み取ってください。
パスパラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
session_id | string | sess_ プレフィックス付きの Session ID |
ヘッダー
| ヘッダー | 必須 | 説明 |
|---|---|---|
Authorization | はい | Bearer $QODER_ACCESS_TOKEN |
Content-Type | はい | application/json |
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
events | array | はい | 空でないイベントオブジェクトの配列 |
サポートされるイベントタイプ
| タイプ | 必須フィールド | 備考 |
|---|---|---|
user.message | content | content は空でない content block の配列でなければなりません |
user.interrupt | なし | session_thread_id は任意です |
user.tool_confirmation | tool_use_id、result | result は allow または deny でなければなりません。deny_message は任意で、result = "deny" の場合にのみ指定できます |
user.tool_result | tool_use_id | 組み込みツールの結果を返すために使用します。content と is_error は任意です |
user.custom_tool_result | custom_tool_use_id | クライアント側カスタムツールの結果を返すために使用します。content と is_error は任意です |
user.define_outcome | description、rubric | rubric はオブジェクトで、{"type":"text","content":"..."} または {"type":"file","file_id":"file_..."} のいずれかです。未知のフィールドは拒否されます。max_iterations は任意で、1 から 20 の整数でなければなりません。outcome_id(outc_ プレフィックス)はサーバーが割り当てるため、クライアントは指定できません |
events[].content はサポートされません。イベントに content フィールドがある場合は、content block の配列として送信してください。
リクエスト例
レスポンス例
HTTP 200 OK
Human-in-the-loop レスポンス
ストリームが確認を必要とする agent.tool_use を発行したら、user.tool_confirmation で応答します。
agent.custom_tool_use を発行したら、クライアント側でツールを実行し、user.custom_tool_result で応答します。
エラー
| HTTP | タイプ | トリガー条件 |
|---|---|---|
| 400 | invalid_request_error | events が空、サポートされないイベントタイプ、必須フィールドの欠落、不正な content block、またはサポートされないレガシーフィールド |
| 401 | authentication_error | PAT または SAT が無効または期限切れ |
| 404 | not_found_error | Session または保留中のアクションが存在しない |
| 409 | invalid_request_error | Session が現在ターンを処理中、またはその他の Session 状態の競合(注意: type は conflict_error ではなく invalid_request_error です) |
例: 400 不正な content
user.message に content block の配列ではなくプレーンな文字列を送信した場合:
例: 404 Session が見つからない
例: 409 Session が実行中
Session がすでにターンを処理しているときに user.message を送信した場合: