OpenClawSkills
GitHub
Gateway / Operations • 5分で読める

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'' と同じコードパス)、したがってルーティング/権限/設定はゲートウェイと一致します。

Tutorial.step

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'')を使用します。

Tutorial.step

エージェントの選択

カスタムヘッダーは不要: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: '''' でセッションルーティングを完全に制御します。

Tutorial.step

エンドポイントの有効化

''gateway.http.endpoints.chatCompletions.enabled'' を ''true'' に設定します:

Json5
{
  gateway: {
    http: {
      endpoints: {
        chatCompletions: { enabled: true },
      },
    },
  },
}
Tutorial.step

エンドポイントの無効化

''gateway.http.endpoints.chatCompletions.enabled'' を ''false'' に設定します:

Json5
{
  gateway: {
    http: {
      endpoints: {
        chatCompletions: { enabled: false },
      },
    },
  },
}
Tutorial.step

セッション動作

デフォルトでは、エンドポイントはリクエストごとにステートレスです(呼び出しごとに新しいセッションキーが生成されます)。

リクエストに OpenAI ''user'' 文字列が含まれている場合、ゲートウェイはそこから安定したセッションキーを派生するため、繰り返しの呼び出しでエージェントセッションを共有できます。

Tutorial.step

ストリーミング (SSE)

''stream: true'' を設定してサーバー送信イベント (SSE) を受信します:

- ''Content-Type: text/event-stream''

- 各イベント行は ''data: <json>''

- ストリームは ''data: [DONE]'' で終了します

Tutorial.step

Examples

非ストリーミング:

Bash
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"}]
  }

ストリーミング:

Bash
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"}]
  }