Gateway của OpenClaw có thể phục vụ một điểm cuối Chat Completions nhỏ tương thích với OpenAI. Điểm cuối này bị tắt theo mặc định. Trước tiên hãy bật nó trong cấu hình.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/chat/completions- Cùng cổng với Gateway (ghép kênh WS + HTTP):
http://<gateway-host>:<port>/v1/chat/completions
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/responses
openclaw agent), nên định tuyến/quyền/cấu hình khớp với Gateway của bạn.
Xác thực
Sử dụng cấu hình xác thực của Gateway. Các đường dẫn xác thực HTTP phổ biến:- xác thực shared-secret (
gateway.auth.mode="token"hoặc"password"):Authorization: Bearer <token-or-password> - xác thực HTTP mang danh tính đáng tin cậy (
gateway.auth.mode="trusted-proxy"): định tuyến qua proxy nhận biết danh tính đã cấu hình và để proxy đó chèn các header danh tính bắt buộc - xác thực mở qua ngõ vào riêng tư (
gateway.auth.mode="none"): không cần header xác thực
- Khi
gateway.auth.mode="token", dùnggateway.auth.token(hoặcOPENCLAW_GATEWAY_TOKEN). - Khi
gateway.auth.mode="password", dùnggateway.auth.password(hoặcOPENCLAW_GATEWAY_PASSWORD). - Khi
gateway.auth.mode="trusted-proxy", yêu cầu HTTP phải đến từ một nguồn proxy đáng tin cậy đã cấu hình; proxy loopback cùng máy chủ yêu cầu đặt rõgateway.auth.trustedProxy.allowLoopback = true. - Nếu
gateway.auth.rateLimitđược cấu hình và xảy ra quá nhiều lần xác thực thất bại, điểm cuối trả về429kèmRetry-After.
Ranh giới bảo mật (quan trọng)
Hãy xem điểm cuối này là một bề mặt toàn quyền truy cập operator cho phiên bản gateway.- Xác thực bearer HTTP ở đây không phải là mô hình phạm vi hẹp theo từng người dùng.
- Token/mật khẩu Gateway hợp lệ cho điểm cuối này nên được xem như thông tin xác thực owner/operator.
- Các yêu cầu chạy qua cùng đường dẫn agent control-plane như các hành động operator đáng tin cậy.
- Không có ranh giới công cụ riêng cho không phải owner/theo từng người dùng trên điểm cuối này; sau khi caller vượt qua xác thực Gateway ở đây, OpenClaw xem caller đó là operator đáng tin cậy cho gateway này.
- Với các chế độ xác thực shared-secret (
tokenvàpassword), điểm cuối khôi phục các mặc định toàn quyền operator thông thường ngay cả khi caller gửi headerx-openclaw-scopeshẹp hơn. - Các chế độ HTTP mang danh tính đáng tin cậy (ví dụ xác thực trusted proxy hoặc
gateway.auth.mode="none") tôn trọngx-openclaw-scopeskhi có mặt và nếu không thì quay về bộ phạm vi mặc định operator thông thường. - Nếu chính sách agent đích cho phép các công cụ nhạy cảm, điểm cuối này có thể dùng chúng.
- Chỉ giữ điểm cuối này trên loopback/tailnet/ngõ vào riêng tư; không phơi bày trực tiếp ra internet công cộng.
gateway.auth.mode="token"hoặc"password"+Authorization: Bearer ...- chứng minh quyền sở hữu shared gateway operator secret
- bỏ qua
x-openclaw-scopeshẹp hơn - khôi phục bộ phạm vi operator mặc định đầy đủ:
operator.admin,operator.approvals,operator.pairing,operator.read,operator.talk.secrets,operator.write - xem các lượt chat trên điểm cuối này là lượt của owner-sender
- các chế độ HTTP mang danh tính đáng tin cậy (ví dụ xác thực trusted proxy, hoặc
gateway.auth.mode="none"trên ngõ vào riêng tư)- xác thực một danh tính đáng tin cậy bên ngoài hoặc ranh giới triển khai
- tôn trọng
x-openclaw-scopeskhi header có mặt - quay về bộ phạm vi mặc định operator thông thường khi header vắng mặt
- chỉ mất ngữ nghĩa owner khi caller thu hẹp phạm vi rõ ràng và bỏ qua
operator.admin
Hợp đồng mô hình ưu tiên agent
OpenClaw xem trườngmodel của OpenAI là một đích agent, không phải id mô hình provider thô.
model: "openclaw"định tuyến đến agent mặc định đã cấu hình.model: "openclaw/default"cũng định tuyến đến agent mặc định đã cấu hình.model: "openclaw/<agentId>"định tuyến đến một agent cụ thể.
x-openclaw-model: <provider/model-or-bare-id>ghi đè mô hình backend cho agent đã chọn.x-openclaw-agent-id: <agentId>vẫn được hỗ trợ như một ghi đè tương thích.x-openclaw-session-key: <sessionKey>kiểm soát hoàn toàn định tuyến phiên.x-openclaw-message-channel: <channel>đặt ngữ cảnh kênh ngõ vào tổng hợp cho các prompt và chính sách nhận biết kênh.
model: "openclaw:<agentId>"model: "agent:<agentId>"
Bật điểm cuối
Đặtgateway.http.endpoints.chatCompletions.enabled thành true:
Tắt điểm cuối
Đặtgateway.http.endpoints.chatCompletions.enabled thành false:
Hành vi phiên
Theo mặc định, điểm cuối là không trạng thái theo từng yêu cầu (một khóa phiên mới được tạo ở mỗi lần gọi). Nếu yêu cầu bao gồm chuỗiuser của OpenAI, Gateway sẽ suy ra một khóa phiên ổn định từ chuỗi đó, để các lần gọi lặp lại có thể chia sẻ một phiên agent.
Vì sao bề mặt này quan trọng
Đây là bộ tương thích có đòn bẩy cao nhất cho các frontend và công cụ tự lưu trữ:- Hầu hết các thiết lập Open WebUI, LobeChat và LibreChat mong đợi
/v1/models. - Nhiều hệ thống RAG mong đợi
/v1/embeddings. - Các client chat OpenAI hiện có thường có thể bắt đầu với
/v1/chat/completions. - Các client thiên về agent-native hơn ngày càng ưu tiên
/v1/responses.
Danh sách mô hình và định tuyến agent
What does `/v1/models` return?
What does `/v1/models` return?
Một danh sách đích agent OpenClaw.Các id được trả về là các mục
openclaw, openclaw/default và openclaw/<agentId>.
Dùng chúng trực tiếp làm giá trị model của OpenAI.Does `/v1/models` list agents or sub-agents?
Does `/v1/models` list agents or sub-agents?
Nó liệt kê các đích agent cấp cao nhất, không phải mô hình provider backend và không phải sub-agent.Sub-agent vẫn là topo thực thi nội bộ. Chúng không xuất hiện dưới dạng mô hình giả.
Why is `openclaw/default` included?
Why is `openclaw/default` included?
openclaw/default là alias ổn định cho agent mặc định đã cấu hình.Điều đó có nghĩa là client có thể tiếp tục dùng một id có thể dự đoán ngay cả khi id agent mặc định thực tế thay đổi giữa các môi trường.How do I override the backend model?
How do I override the backend model?
Dùng
x-openclaw-model.Ví dụ:
x-openclaw-model: openai/gpt-5.4
x-openclaw-model: gpt-5.5Nếu bạn bỏ qua nó, agent đã chọn sẽ chạy với lựa chọn mô hình được cấu hình bình thường của nó.How do embeddings fit this contract?
How do embeddings fit this contract?
/v1/embeddings dùng cùng các id model đích agent.Dùng model: "openclaw/default" hoặc model: "openclaw/<agentId>".
Khi bạn cần một mô hình embedding cụ thể, hãy gửi nó trong x-openclaw-model.
Nếu không có header đó, yêu cầu sẽ được chuyển tiếp đến thiết lập embedding bình thường của agent đã chọn.Streaming (SSE)
Đặtstream: true để nhận Server-Sent Events (SSE):
Content-Type: text/event-stream- Mỗi dòng sự kiện là
data: <json> - Luồng kết thúc bằng
data: [DONE]
Hợp đồng công cụ chat
/v1/chat/completions hỗ trợ một tập con function-tool tương thích với các client OpenAI Chat phổ biến.
Các trường yêu cầu được hỗ trợ
tools: mảng{ "type": "function", "function": { ... } }tool_choice:"auto","none"- lượt theo dõi
messages[*].role: "tool" messages[*].tool_call_idđể liên kết kết quả công cụ trở lại một lệnh gọi công cụ trước đó
Các biến thể không được hỗ trợ
Điểm cuối trả về400 invalid_request_error cho các biến thể công cụ không được hỗ trợ, bao gồm:
toolskhông phải mảng- mục công cụ không phải function
- thiếu
tool.function.name - các biến thể
tool_choicenhưallowed_toolsvàcustom tool_choice: "required"(chưa được thực thi tại runtime; sẽ được hỗ trợ sau khi thực thi cứng được triển khai)tool_choice: { "type": "function", "function": { "name": "..." } }(cùng lý do nhưrequired)- các giá trị
tool_choice.function.namekhông khớp vớitoolsđã cung cấp
Hình dạng phản hồi công cụ không streaming
Khi agent quyết định gọi công cụ, phản hồi dùng:choices[0].finish_reason = "tool_calls"- các mục
choices[0].message.tool_calls[]với:idtype: "function"function.namefunction.arguments(chuỗi JSON)
choices[0].message.content (có thể rỗng).
Hình dạng phản hồi công cụ streaming
Khistream: true, các lệnh gọi công cụ được phát ra dưới dạng các đoạn SSE tăng dần:
- delta vai trò assistant ban đầu
- các delta bình luận assistant tùy chọn
- một hoặc nhiều đoạn
delta.tool_callsmang danh tính công cụ và các mảnh đối số - đoạn cuối cùng với
finish_reason: "tool_calls" data: [DONE]
stream_options.include_usage=true, một đoạn usage ở cuối được phát ra trước [DONE].
Vòng lặp theo dõi công cụ
Sau khi nhậntool_calls, client nên thực thi các function được yêu cầu và gửi một yêu cầu theo dõi bao gồm:
- thông điệp gọi công cụ trước đó của assistant
- một hoặc nhiều thông điệp
role: "tool"vớitool_call_idkhớp
Thiết lập nhanh Open WebUI
Để kết nối Open WebUI cơ bản:- Base URL:
http://127.0.0.1:18789/v1 - Base URL Docker trên macOS:
http://host.docker.internal:18789/v1 - Khóa API: token bearer Gateway của bạn
- Mô hình:
openclaw/default
GET /v1/modelsnên liệt kêopenclaw/default- Open WebUI nên dùng
openclaw/defaultlàm id mô hình chat - Nếu bạn muốn một provider/mô hình backend cụ thể cho agent đó, hãy đặt mô hình mặc định bình thường của agent hoặc gửi
x-openclaw-model
openclaw/default, hầu hết các thiết lập Open WebUI có thể kết nối với cùng base URL và token.
Ví dụ
Không streaming:/v1/modelstrả về các đích agent OpenClaw, không phải catalog provider thô.openclaw/defaultluôn có mặt để một id ổn định hoạt động trên nhiều môi trường.- Các ghi đè provider/mô hình backend nằm trong
x-openclaw-model, không phải trườngmodelcủa OpenAI. /v1/embeddingshỗ trợinputdưới dạng chuỗi hoặc mảng chuỗi.