2.8 KiB
summary, read_when
| summary | read_when | |
|---|---|---|
| Expose an OpenAI-compatible /v1/chat/completions HTTP endpoint from the Gateway |
|
OpenAI Chat Completions (HTTP)
Moltbot’s Gateway can serve a small OpenAI-compatible Chat Completions endpoint.
This endpoint is disabled by default. Enable it in config first.
POST /v1/chat/completions- Same port as the Gateway (WS + HTTP multiplex):
http://<gateway-host>:<port>/v1/chat/completions
Under the hood, requests are executed as a normal Gateway agent run (same codepath as moltbot agent), so routing/permissions/config match your Gateway.
Authentication
Uses the Gateway auth configuration. Send a bearer token:
Authorization: Bearer <token>
Notes:
- When
gateway.auth.mode="token", usegateway.auth.token(orCLAWDBOT_GATEWAY_TOKEN). - When
gateway.auth.mode="password", usegateway.auth.password(orCLAWDBOT_GATEWAY_PASSWORD).
Choosing an agent
No custom headers required: encode the agent id in the OpenAI model field:
model: "moltbot:<agentId>"(example:"moltbot:main","moltbot:beta")model: "agent:<agentId>"(alias)
Or target a specific Moltbot agent by header:
x-moltbot-agent-id: <agentId>(default:main)
Advanced:
x-moltbot-session-key: <sessionKey>to fully control session routing.
Enabling the endpoint
Set gateway.http.endpoints.chatCompletions.enabled to true:
{
gateway: {
http: {
endpoints: {
chatCompletions: { enabled: true }
}
}
}
}
Disabling the endpoint
Set gateway.http.endpoints.chatCompletions.enabled to false:
{
gateway: {
http: {
endpoints: {
chatCompletions: { enabled: false }
}
}
}
}
Session behavior
By default the endpoint is stateless per request (a new session key is generated each call).
If the request includes an OpenAI user string, the Gateway derives a stable session key from it, so repeated calls can share an agent session.
Streaming (SSE)
Set stream: true to receive Server-Sent Events (SSE):
Content-Type: text/event-stream- Each event line is
data: <json> - Stream ends with
data: [DONE]
Examples
Non-streaming:
curl -sS http://127.0.0.1:18789/v1/chat/completions \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-H 'x-moltbot-agent-id: main' \
-d '{
"model": "moltbot",
"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-moltbot-agent-id: main' \
-d '{
"model": "moltbot",
"stream": true,
"messages": [{"role":"user","content":"hi"}]
}'