OpenAI Chat Completions (HTTP)
Gateway から OpenAI 互換の /v1/chat/completions HTTP エンドポイントを公開します。
OpenClaw のゲートウェイは、小さな OpenAI 互換のチャット補完エンドポイントを提供できます。
エンドポイントはデフォルトで無効になっています。まず設定で有効にします。
- ''POST /v1/chat/completions''
- ゲートウェイと同じポート(WS + HTTP 多重化):''http://<gateway-host>:<port>/v1/chat/completions''
内部では、リクエストは通常のゲートウェイプロキシとして実行されます(''openclaw agent'' と同じコードパス)、したがってルーティング/権限/設定はゲートウェイと一致します。
Authentication
ゲートウェイ認証設定を使用します。ベアラートークンを送信します:
- ''Authorization: Bearer <token>''
Notes:
- ''gateway.auth.mode="token"'' の場合、''gateway.auth.token''(または ''OPENCLAW_GATEWAY_TOKEN'')を使用します。
- ''gateway.auth.mode="password"'' の場合、''gateway.auth.password''(または ''OPENCLAW_GATEWAY_PASSWORD'')を使用します。
エージェントの選択
カスタムヘッダーは不要:OpenAI ''model'' フィールドでエージェント ID をエンコードします:
- ''model: "openclaw:<agentId>"'' (example: ''"openclaw:main"'', ''"openclaw:beta"'')
- ''model: "agent:<agentId>"''(エイリアス)
またはヘッダーで特定の OpenClaw エージェントをターゲットにします:
- ''x-openclaw-agent-id: <agentId>''(デフォルト:''main'')
Advanced:
- ''x-openclaw-session-key: '' でセッションルーティングを完全に制御します。
エンドポイントの有効化
''gateway.http.endpoints.chatCompletions.enabled'' を ''true'' に設定します:
{
gateway: {
http: {
endpoints: {
chatCompletions: { enabled: true },
},
},
},
}エンドポイントの無効化
''gateway.http.endpoints.chatCompletions.enabled'' を ''false'' に設定します:
{
gateway: {
http: {
endpoints: {
chatCompletions: { enabled: false },
},
},
},
}セッション動作
デフォルトでは、エンドポイントはリクエストごとにステートレスです(呼び出しごとに新しいセッションキーが生成されます)。
リクエストに OpenAI ''user'' 文字列が含まれている場合、ゲートウェイはそこから安定したセッションキーを派生するため、繰り返しの呼び出しでエージェントセッションを共有できます。
ストリーミング (SSE)
''stream: true'' を設定してサーバー送信イベント (SSE) を受信します:
- ''Content-Type: text/event-stream''
- 各イベント行は ''data: <json>''
- ストリームは ''data: [DONE]'' で終了します
Examples
非ストリーミング:
curl -sS http://127.0.0.1:18789/v1/chat/completions \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-H 'x-openclaw-agent-id: main' \
-d {
"model": "openclaw",
"messages": [{"role":"user","content":"hi"}]
}ストリーミング:
curl -N http://127.0.0.1:18789/v1/chat/completions \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-H 'x-openclaw-agent-id: main' \
-d {
"model": "openclaw",
"stream": true,
"messages": [{"role":"user","content":"hi"}]
}