Skip to main content
Sessions

Session リソースを追加

既存の Forward Session にファイルリソースを追加します。

POST /api/v1/forward/sessions/{session_id}/resources 作成済み Session のサンドボックスランタイム環境にファイルリソースを追加でマウントします。セッションの進行中に一時的にファイルをアップロードする場合に使用します。ファイルは事前に Files API でアップロードする必要があります。このインターフェイスは type: "file" のみを受け付けます。

ファイルアップロードの要件

このエンドポイントで使用するファイルは、アップロード時に purpose=session_resource を明示することを推奨します。
curl -X POST 'https://api.qoder.com/api/v1/forward/files' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -F 'file=@spec.md' \
  -F 'purpose=session_resource'
purpose を省略すると、Files API はデフォルトでファイルを user_upload として保存します。このファイルを Session に追加することはできますが、GET /api/v1/forward/files/{file_id}/content ではダウンロードできず、ダウンロード時に 403 permission_error が返されます。POST /api/v1/forward/sessions/{session_id}/resources は既存のファイルを Session にマウントするだけで、user_upload を session_resource に自動変換しません。後からダウンロードする必要がある場合は、ファイルのアップロード時に purpose=session_resource を指定してください。

ヘッダー

Header必須説明
AuthorizationはいBearer <PAT または SAT>
Content-Typeはいapplication/json

パスパラメーター

パラメーター型必須説明
session_idstringはいSession ID。

リクエストボディ

パラメーター型必須説明
typestringはいリソースタイプ。file である必要があります。
file_idstringはいFiles API が返す File ID。ファイルのアップロードが完了している必要があります。
mount_pathstringいいえAgent コンテナ内のマウントパス。省略すると Forward がファイル名から生成します。デフォルトは /data/workspace/<ファイル名> です。

リクエスト例

curl -s -X POST 'https://api.qoder.com/api/v1/forward/sessions/sess_xxx/resources' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "file",
  "file_id": "file_019e6a18dc09abcd",
  "mount_path": "/data/workspace/spec.md"
}'

レスポンス例

HTTP 200 OK
{
  "id": "sesr_0e4323e8f47ba34853f5409e",
  "type": "file",
  "file_id": "file_019e6a18dc09abcd",
  "mount_path": "/data/workspace/spec.md",
  "created_at": "2026-06-23T05:53:19Z",
  "updated_at": "2026-06-23T05:53:38Z"
}

レスポンスフィールド

フィールド型説明
idstringsesr_ で始まる Session リソース ID。
typestringリソースタイプ。常に file。
file_idstringマウントされた File ID。
mount_pathstringAgent コンテナ内の実際のマウントパス。
created_atstringRFC 3339 形式のリソース作成日時。
updated_atstringRFC 3339 形式のリソース更新日時。

ファイルを Agent に通知

ファイルをマウントしても Agent は自動検出しません。Session Events を送信から user.message を送り、返されたファイルパスを含めます。
curl -s -X POST 'https://api.qoder.com/api/v1/forward/sessions/sess_xxx/events' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "events": [{
    "type": "user.message",
    "content": [
      {"type": "text", "text": "ファイルを分析してください"},
      {"type": "text", "text": "ファイルパス:/data/workspace/spec.md"}
    ]
  }]
}'
メッセージには追加時に返された mount_path を使用します。

エラー

HTTPTypeCode発生条件
400invalid_request_errorinvalid_request_bodyリクエストボディが有効な JSON ではありません。
400invalid_request_errorinvalid_resourcetype が file ではない、file_id がない、またはフィールドに制御文字が含まれています。
404not_found_errorsession_not_foundSession が存在しません。
404not_found_errorfile_not_foundFile が存在しないか、削除されています。
409conflict_errorsession_archivedSession がアーカイブされています。
409conflict_errorresource_conflictマウントパスが Session の既存リソースと競合しているか、ファイルがすでに現在の Session にマウントされています。
401authentication_errorauthentication_requiredPAT または SAT が無効か、期限切れです。

注意事項

  • ファイルは事前に Files API で正常にアップロードする必要があります。マウント後、Agent はコンテナ内からファイルを読み取れますが、Event を送信してファイルパスを Agent に通知する必要があります。詳しくはファイルを Agent に通知を参照してください。
  • mount_path を省略すると、Forward は /data/workspace/<ファイル名> を生成します。同名ファイルが複数ある場合は、上書きを避けるため mount_path を明示してください。
  • このインターフェイスはファイルリソースの追加のみをサポートします。他のリソースタイプは受け付けません。
  • アーカイブ済み Session にはリソースを追加できません。続行するには新しい Session を作成してください。
  • 追加したリソースは Session の取得および一覧レスポンスの resources に返され、リソースがない場合は空配列です。

関連