本文へ移動
AIP
HTTP 接続
サーバーから Agent を呼び出し、会話の継続、応答の取得、停止を行います。
呼び出し URL を準備
Agent が有効であることを確認し、先にデバッグで同じタスクを試します。以下の例は実際に実行します。
最初のメッセージを送信
curl --fail-with-body "$AIP_HOOK_URL" \
-H 'Content-Type: application/json' \
--data '{
"action": "created",
"payload": {
"session_id": "requirements-demo-001",
"request_id": "message-001",
"prompt": "サポート担当者が注文番号を入力して状態を照会できる、という要件を整理してください。",
"context": {"source": "requirements-form"}
}
}'同じ会話では session_id を再利用します。新しいメッセージには新しい request_id を使い、同じメッセージの再試行では元の ID と内容を保持します。例の ID は説明用であり、アプリでは会話やメッセージごとに別の ID を生成してください。
受け付け後も実行イベントを読む必要があります。送信成功はタスク完了ではありません。
応答をストリーミングで取得
curl -N --fail-with-body "$AIP_HOOK_URL" \
-H 'Content-Type: application/json' \
--data '{
"action": "sse",
"payload": {
"session_id": "requirements-demo-001",
"after_event_id": 0
}
}'応答のセッション ID を使います。最後に受信したイベント番号を保存し、切断後はその位置から再開して番号で重複排除します。
会話を継続
curl --fail-with-body "$AIP_HOOK_URL" \
-H 'Content-Type: application/json' \
--data '{
"action": "prompted",
"payload": {
"session_id": "requirements-demo-001",
"request_id": "message-002",
"signal": "continue",
"prompt": "未確認事項を優先順位順に並べてください。"
}
}'生成を停止
curl --fail-with-body "$AIP_HOOK_URL" \
-H 'Content-Type: application/json' \
--data '{
"action": "prompted",
"payload": {
"session_id": "requirements-demo-001",
"signal": "stop"
}
}'SSE を閉じるだけでは受信しか止まりません。実行を止める場合は上記の停止リクエストを送り、結果を引き続き確認します。
リクエスト項目
| 項目 | 使用箇所 | 意味 |
|---|---|---|
action | 全リクエスト | created、prompted、sse |
payload.session_id | 全リクエスト | 同じ会話の識別子 |
payload.request_id | 新規メッセージ | 再試行の識別。新規ごとに別の値 |
payload.prompt | 初回と継続 | 入力テキスト |
payload.context | 初回の例 | 業務の背景オブジェクト |
payload.signal | prompted | continue または stop |
payload.after_event_id | sse | 指定位置の後から取得 |
業務システム側でメッセージ入口、ユーザー検証、セッション対応付けを管理します。顧客ごとに異なるセッション ID を割り当ててください。