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(oderCLAWDBOT_GATEWAY_TOKEN) verwenden. - Bei
gateway.auth.mode="password":gateway.auth.password(oderCLAWDBOT_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"}]
}'