5 ステップで最初の Qoder Cloud Agent を動かします。
5 つのステップで最初の Qoder Cloud Agent を動かしましょう:トークンの取得、環境の選択、Agent の作成、Session の作成、メッセージの送受信。全工程
呼び出し元の ID に応じて PAT または SAT を選択します。以降の手順では共通の
利用可能な環境の一覧を取得し、環境 ID を確認します:
レスポンス例:
シェルツールを備えた汎用 Agent を定義します:
レスポンス例:
Session の作成には 2 つの必須パラメータが必要です:
レスポンス例:
Session にユーザーメッセージを送信し、SSE ストリームで Agent のレスポンスをリアルタイムに受信します:
イベントストリームの出力例:
上記の全ステップを 1 つの実行可能なスクリプトにまとめたものです:
Q: 401 Unauthorized エラーが表示されます。
A:
curl のみで完結し、SDK のインストールは不要です。
前提条件
- Qoder アカウント
- ターミナル環境(macOS / Linux / WSL)
curlおよびjq(オプション、JSON の整形に使用)
Windows ユーザー
Windows ユーザー
本ガイドのコマンドは bash 構文を使用しています。Windows ユーザーは以下のいずれかをご利用ください:
- Git Bash(推奨):Git for Windows に同梱
- WSL:
wsl --installでインストール
- 環境変数の設定:
$env:QODER_ACCESS_TOKEN="your-token"(exportではなく) - 実際の curl を呼び出す:
curl.exeを使用(PowerShell のcurlはInvoke-WebRequestのエイリアス) jqは別途インストール:winget install jqlang.jq
ステップ 1:アクセストークンを取得する
呼び出し元の ID に応じて PAT または SAT を選択します。以降の手順では共通の QODER_ACCESS_TOKEN 環境変数を使用します。
最初にサービスエンドポイントを設定します。SAT の交換と業務 API のリクエストでは、同じリージョンのエンドポイントを使用する必要があります。
オプション 1:PAT(個人ユーザー)
- Qoder コンソールにサインインします。
- 設定 → Personal Access Tokens を開きます。
- Token の作成をクリックし、名前と有効期限を設定します。
- Token をコピーし、環境変数に設定します。
PAT は作成時に一度だけ表示されます。すぐに安全な場所へ保存してください。
オプション 2:SAT(Service Account Token)
- 組織管理者として Qoder コンソールにサインインします。
- 組織管理で Service Account を作成または選択します。
- Service Account の詳細ページで API Key を作成します。作成時にスコープを選択する必要はありません。必要なスコープは SAT に交換するときに指定します。
- SA Key をコピーし、SAT に交換します。
SA Key は SAT との交換にのみ使用し、Cloud Agents の業務 API に直接送信しないでください。SAT の有効期間は最大 12 時間です。SAT の有効期限が切れたら、SA Key を再度交換してください。
ステップ 2:環境を選択する
利用可能な環境の一覧を取得し、環境 ID を確認します:
ステップ 3:Agent を作成する
シェルツールを備えた汎用 Agent を定義します:
ステップ 4:Session を作成する
Session の作成には 2 つの必須パラメータが必要です:agent(Agent ID またはオブジェクト)と environment_id(Environment ID)。
Agent を環境にバインドし、ランタイムインスタンスを作成します:
Session は作成直後は
idle 状態です。次のステップでメッセージを送信して初めて Agent が実行を開始します。ステップ 5:メッセージの送信とイベントの受信
Session にユーザーメッセージを送信し、SSE ストリームで Agent のレスポンスをリアルタイムに受信します:
heartbeatを除くすべてのイベントにはid:行があり、JSON ペイロードにはid、type、processed_atフィールドが含まれます。heartbeatイベントは約 15 秒ごとに送信され、接続を維持します。agent.messageのcontentフィールドは[{"type":"text","text":"..."}]の配列形式を使用します。session.status_running/session.status_idleはid、type、processed_at(idle の場合はstop_reasonも)以外のフィールドを持ちません。agent.thinkingはモデルが推論中であることを示しますが、contentやtextフィールドは含みません。
エンドツーエンドスクリプト
上記の全ステップを 1 つの実行可能なスクリプトにまとめたものです:
よくある質問
Q: 401 Unauthorized エラーが表示されます。
A: $QODER_ACCESS_TOKEN が正しく設定され、有効期限内であることを確認してください。PAT ユーザーは新しい Token を作成し、Service Account ユーザーは SA Key で新しい SAT を取得してください。
Q: Agent の作成で 400 Bad Request が返されます。
A: リクエスト JSON の形式を確認してください。model フィールドは有効な値(例:"ultimate")である必要があり、tools は配列でなければなりません。
Q: Session が idle のままでイベントが受信できません。
A: Session は作成直後は idle 状態です。Agent の実行を開始するには、user.message イベントを送信する必要があります(ステップ 5)。
Q: SSE ストリームの接続が切断されました。
A: ストリームエンドポイントは Last-Event-ID ヘッダーによる再接続リプレイをサポートしています。最後に受信したイベントの id をリクエストヘッダーに含めると、そのイベント以降からストリームが再開されます。イベントタイプによるクエリフィルターは現在サポートされていません。
Q: GET /api/v1/cloud/environments が空配列を返します。
A: 新しいアカウントには事前にプロビジョニングされた環境がない場合があります。ステップ 2 のヒントに従って手動で環境を作成してください。

