Skip to Content
👋 Willkommen bei HowToUseOpenClaw Schnellstart
GatewayOpenAI HTTP API

OpenAI Chat Completions (HTTP)

Der OpenClaw-Gateway kann einen kleinen OpenAI-kompatiblen Chat-Completions-Endpunkt bereitstellen. Dieser Endpunkt ist standardmäßig deaktiviert. Zuerst in der Konfiguration aktivieren.

  • POST /v1/chat/completions
  • Gleicher Port wie der Gateway (WS + HTTP gemultiplext): http://<gateway-host>:<port>/v1/chat/completions

Intern werden Anfragen wie ein normaler Gateway-Agenten-Lauf ausgeführt (gleicher Codepfad wie openclaw agent), Routing/Berechtigungen/Konfiguration entsprechen also Ihrem Gateway.

Authentifizierung

Nutzt die Gateway-Auth-Konfiguration. Bearer-Token mitsenden:

  • Authorization: Bearer <token>

Hinweise:

  • Bei gateway.auth.mode="token": gateway.auth.token (oder CLAWDBOT_GATEWAY_TOKEN) verwenden.
  • Bei gateway.auth.mode="password": gateway.auth.password (oder CLAWDBOT_GATEWAY_PASSWORD) verwenden.

Agenten wählen

Keine benutzerdefinierten Header nötig: Agenten-ID im OpenAI-model-Feld kodieren:

  • model: "openclaw:<agentId>" (z. B. "openclaw:main", "openclaw:beta")
  • model: "agent:<agentId>" (Alias)

Oder einen bestimmten OpenClaw-Agenten per Header ansprechen:

  • x-openclaw-agent-id: <agentId> (Standard: main)

Erweitert:

  • x-openclaw-session-key: <sessionKey> für volle Kontrolle über das Sitzungs-Routing.

Endpunkt aktivieren

gateway.http.endpoints.chatCompletions.enabled auf true setzen:

{ gateway: { http: { endpoints: { chatCompletions: { enabled: true } } } } }

Endpunkt deaktivieren

gateway.http.endpoints.chatCompletions.enabled auf false setzen:

{ gateway: { http: { endpoints: { chatCompletions: { enabled: false } } } } }

Sitzungsverhalten

Standardmäßig ist der Endpunkt pro Anfrage zustandslos (pro Aufruf wird ein neuer Sitzungsschlüssel erzeugt). Enthält die Anfrage einen OpenAI-user-String, leitet der Gateway daraus einen stabilen Sitzungsschlüssel ab, sodass wiederholte Aufrufe eine Agenten-Sitzung teilen können.

Streaming (SSE)

stream: true setzen für Server-Sent Events (SSE):

  • Content-Type: text/event-stream
  • Jede Ereigniszeile ist data: <json>
  • Stream endet mit data: [DONE]

Beispiele

Nicht streamend:

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

Streaming:

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"}] }'
Zuletzt aktualisiert am: