API OpenResponses (HTTP)
Gateway của OpenClaw có thể cung cấp endpointPOST /v1/responses tương thích với OpenResponses.
Endpoint này mặc định bị vô hiệu hóa. Cần kích hoạt trong cấu hình trước.
POST /v1/responses- Cùng cổng với Gateway (WS + HTTP multiplex):
http://<gateway-host>:<port>/v1/responses
openclaw agent), do đó việc định tuyến/quyền hạn/cấu hình sẽ khớp với Gateway của bạn.
Xác thực, bảo mật và định tuyến
Hành vi hoạt động tương tự OpenAI Chat Completions:- sử dụng
Authorization: Bearer <token>với cấu hình xác thực Gateway thông thường - coi endpoint này như quyền truy cập đầy đủ cho instance gateway
- chọn agent với
model: "openclaw:<agentId>",model: "agent:<agentId>", hoặcx-openclaw-agent-id - sử dụng
x-openclaw-session-keyđể định tuyến phiên rõ ràng
gateway.http.endpoints.responses.enabled.
Hành vi phiên
Mặc định, endpoint này là không trạng thái cho mỗi 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 OpenResponses, Gateway sẽ tạo ra một khóa phiên ổn định từ đó, cho phép các lần gọi lặp lại có thể chia sẻ một phiên agent.
Định dạng yêu cầu (hỗ trợ)
Yêu cầu tuân theo API OpenResponses với đầu vào theo từng mục. Hỗ trợ hiện tại:input: chuỗi hoặc mảng các đối tượng mục.instructions: được gộp vào lời nhắc hệ thống.tools: định nghĩa công cụ client (công cụ chức năng).tool_choice: lọc hoặc yêu cầu công cụ client.stream: kích hoạt streaming SSE.max_output_tokens: giới hạn đầu ra tối đa (phụ thuộc vào nhà cung cấp).user: định tuyến phiên ổn định.
max_tool_callsreasoningmetadatastoreprevious_response_idtruncation
Mục (đầu vào)
message
Vai trò: system, developer, user, assistant.
systemvàdeveloperđược thêm vào lời nhắc hệ thống.- Mục
userhoặcfunction_call_outputgần nhất trở thành “tin nhắn hiện tại.” - Các tin nhắn user/assistant trước đó được bao gồm như lịch sử để làm ngữ cảnh.
function_call_output (công cụ theo lượt)
Gửi kết quả công cụ trở lại mô hình:
reasoning và item_reference
Chấp nhận để tương thích với schema nhưng bị bỏ qua khi xây dựng lời nhắc.
Công cụ (công cụ chức năng phía client)
Cung cấp công cụ vớitools: [{ type: "function", function: { name, description?, parameters? } }].
Nếu agent quyết định gọi một công cụ, phản hồi sẽ trả về một mục đầu ra function_call.
Sau đó, bạn gửi một yêu cầu tiếp theo với function_call_output để tiếp tục lượt.
Hình ảnh (input_image)
Hỗ trợ nguồn base64 hoặc URL:
image/jpeg, image/png, image/gif, image/webp, image/heic, image/heif.
Kích thước tối đa (hiện tại): 10MB.
Tệp tin (input_file)
Hỗ trợ nguồn base64 hoặc URL:
text/plain, text/markdown, text/html, text/csv,
application/json, application/pdf.
Kích thước tối đa (hiện tại): 5MB.
Hành vi hiện tại:
- Nội dung tệp được giải mã và thêm vào lời nhắc hệ thống, không phải tin nhắn user, do đó nó không được lưu trữ trong lịch sử phiên.
- PDF được phân tích để lấy văn bản. Nếu tìm thấy ít văn bản, các trang đầu tiên sẽ được chuyển thành hình ảnh và gửi đến mô hình.
pdfjs-dist thân thiện với Node (không có worker). Bản dựng PDF.js hiện đại yêu cầu worker trình duyệt/globals DOM, do đó không được sử dụng trong Gateway.
Mặc định khi lấy URL:
files.allowUrl:trueimages.allowUrl:truemaxUrlParts:8(tổng số phầninput_file+input_imagedựa trên URL cho mỗi yêu cầu)- Các yêu cầu được bảo vệ (giải quyết DNS, chặn IP riêng, giới hạn chuyển hướng, timeout).
- Hỗ trợ danh sách cho phép hostname tùy chọn cho mỗi loại đầu vào (
files.urlAllowlist,images.urlAllowlist).- Host chính xác:
"cdn.example.com" - Tên miền phụ wildcard:
"*.assets.example.com"(không khớp với apex) - Danh sách cho phép trống hoặc bị bỏ qua có nghĩa là không có hạn chế danh sách cho phép hostname.
- Host chính xác:
- Để vô hiệu hóa hoàn toàn việc lấy dựa trên URL, đặt
files.allowUrl: falsevà/hoặcimages.allowUrl: false.
Giới hạn tệp + hình ảnh (cấu hình)
Mặc định có thể điều chỉnh dướigateway.http.endpoints.responses:
maxBodyBytes: 20MBmaxUrlParts: 8files.maxBytes: 5MBfiles.maxChars: 200kfiles.maxRedirects: 3files.timeoutMs: 10sfiles.pdf.maxPages: 4files.pdf.maxPixels: 4,000,000files.pdf.minTextChars: 200images.maxBytes: 10MBimages.maxRedirects: 3images.timeoutMs: 10s- Nguồn
input_imageHEIC/HEIF được chấp nhận và chuẩn hóa thành JPEG trước khi gửi đến nhà cung cấp.
- Danh sách cho phép URL được thực thi trước khi lấy và trên các bước chuyển hướng.
- Cho phép một hostname không bỏ qua việc chặn IP riêng/nội bộ.
- Đối với các gateway tiếp xúc với internet, áp dụng kiểm soát egress mạng ngoài các biện pháp bảo vệ cấp ứng dụng. Xem Bảo mật.
Streaming (SSE)
Đặtstream: true để nhận Server-Sent Events (SSE):
Content-Type: text/event-stream- Mỗi dòng sự kiện là
event: <type>vàdata: <json> - Stream kết thúc với
data: [DONE]
response.createdresponse.in_progressresponse.output_item.addedresponse.content_part.addedresponse.output_text.deltaresponse.output_text.doneresponse.content_part.doneresponse.output_item.doneresponse.completedresponse.failed(khi có lỗi)
Sử dụng
usage được điền khi nhà cung cấp cơ bản báo cáo số lượng token.
Lỗi
Lỗi sử dụng một đối tượng JSON như:401thiếu/sai xác thực400yêu cầu không hợp lệ405phương thức sai