OpenResponses API (HTTP)
OpenClaw’ın Gateway’i, OpenResponses uyumlu birPOST /v1/responses uç noktası sunabilir.
Bu uç nokta varsayılan olarak devre dışıdır. Önce yapılandırmada etkinleştirin.
POST /v1/responses- Gateway ile aynı port (WS + HTTP çoklama):
http://<gateway-host>:<port>/v1/responses
openclaw agent ile kullanılır), bu nedenle yönlendirme/izinler/yapılandırma Gateway’inizle eşleşir.
Kimlik doğrulama, güvenlik ve yönlendirme
İşletim davranışı OpenAI Chat Completions ile eşleşir:- eşleşen Gateway HTTP kimlik doğrulama yolunu kullanın:
- paylaşılan gizli kimlik doğrulaması (
gateway.auth.mode="token"veya"password"):Authorization: Bearer <token-or-password> - trusted-proxy kimlik doğrulaması (
gateway.auth.mode="trusted-proxy"): yapılandırılmış loopback dışı trusted proxy kaynağından gelen kimlik farkında proxy başlıkları - private-ingress açık kimlik doğrulama (
gateway.auth.mode="none"): kimlik doğrulama başlığı yok
- paylaşılan gizli kimlik doğrulaması (
- uç noktayı gateway örneği için tam operatör erişimi olarak değerlendirin
- paylaşılan gizli kimlik doğrulama modlarında (
tokenvepassword), daha dar bearer bildirilenx-openclaw-scopesdeğerlerini yok sayın ve normal tam operatör varsayılanlarını geri yükleyin - trusted kimlik taşıyan HTTP modlarında (örneğin trusted proxy kimlik doğrulaması veya
gateway.auth.mode="none"), mevcutsax-openclaw-scopesdeğerine uyun, aksi takdirde normal operatör varsayılan kapsam kümesine geri dönün - agent seçimi için
model: "openclaw",model: "openclaw/default",model: "openclaw/<agentId>"veyax-openclaw-agent-idkullanın - seçili agent’ın backend modelini geçersiz kılmak istediğinizde
x-openclaw-modelkullanın - açık oturum yönlendirmesi için
x-openclaw-session-keykullanın - varsayılan olmayan sentetik ingress kanal bağlamı istediğinizde
x-openclaw-message-channelkullanın
gateway.auth.mode="token"veya"password"+Authorization: Bearer ...- paylaşılan gateway operatör gizlisine sahip olunduğunu kanıtlar
- daha dar
x-openclaw-scopesdeğerlerini yok sayar - tam varsayılan operatör kapsam kümesini geri yükler:
operator.admin,operator.approvals,operator.pairing,operator.read,operator.talk.secrets,operator.write - bu uç noktadaki sohbet dönüşlerini owner-sender dönüşleri olarak ele alır
- trusted kimlik taşıyan HTTP modları (örneğin trusted proxy kimlik doğrulaması veya private ingress üzerinde
gateway.auth.mode="none")- başlık mevcut olduğunda
x-openclaw-scopesdeğerine uyar - başlık yoksa normal operatör varsayılan kapsam kümesine geri döner
- yalnızca çağıran kişi kapsamları açıkça daraltır ve
operator.admineklemezse owner semantiğini kaybeder
- başlık mevcut olduğunda
gateway.http.endpoints.responses.enabled ile etkinleştirin veya devre dışı bırakın.
Aynı uyumluluk yüzeyi şunları da içerir:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completions
openclaw/default değerinin, embeddings pass-through’unun ve backend model geçersiz kılmalarının nasıl birlikte çalıştığının kanonik açıklaması için OpenAI Chat Completions ve Model list and agent routing belgelerine bakın.
Oturum davranışı
Varsayılan olarak bu uç nokta istek başına durumsuzdur (her çağrıda yeni bir oturum anahtarı oluşturulur). İstek bir OpenResponsesuser dizesi içeriyorsa, Gateway bundan kararlı bir oturum anahtarı türetir;
böylece tekrarlanan çağrılar aynı agent oturumunu paylaşabilir.
İstek şekli (desteklenen)
İstek, öğe tabanlı girdiyle OpenResponses API’yi izler. Mevcut destek:input: dize veya öğe nesneleri dizisi.instructions: sistem istemine birleştirilir.tools: istemci araç tanımları (function tools).tool_choice: istemci araçlarını filtreler veya zorunlu kılar.stream: SSE akışını etkinleştirir.max_output_tokens: best-effort çıktı sınırı (sağlayıcıya bağlıdır).user: kararlı oturum yönlendirmesi.
max_tool_callsreasoningmetadatastoretruncation
previous_response_id: OpenClaw, istek aynı agent/user/istenen-oturum kapsamı içinde kaldığında önceki yanıt oturumunu yeniden kullanır.
Öğeler (girdi)
message
Roller: system, developer, user, assistant.
systemvedeveloper, sistem istemine eklenir.- En son
userveyafunction_call_outputöğesi “geçerli mesaj” olur. - Daha önceki user/assistant mesajları bağlam için geçmişe dahil edilir.
function_call_output (dönüş tabanlı araçlar)
Araç sonuçlarını modele geri gönderin:
reasoning ve item_reference
Şema uyumluluğu için kabul edilir ancak istem oluşturulurken yok sayılır.
Araçlar (istemci tarafı function tools)
Araçlarıtools: [{ type: "function", function: { name, description?, parameters? } }] ile sağlayın.
Agent bir aracı çağırmaya karar verirse, yanıt bir function_call çıktı öğesi döndürür.
Ardından dönüşe devam etmek için function_call_output ile bir takip isteği gönderirsiniz.
Görseller (input_image)
Base64 veya URL kaynaklarını destekler:
image/jpeg, image/png, image/gif, image/webp, image/heic, image/heif.
En büyük boyut (mevcut): 10MB.
Dosyalar (input_file)
Base64 veya URL kaynaklarını destekler:
text/plain, text/markdown, text/html, text/csv,
application/json, application/pdf.
En büyük boyut (mevcut): 5MB.
Mevcut davranış:
- Dosya içeriği çözülür ve kullanıcı mesajına değil sistem istemine eklenir, böylece geçici kalır (oturum geçmişinde kalıcı olmaz).
- Çözülen dosya metni eklenmeden önce güvenilmeyen harici içerik olarak sarılır, böylece dosya baytları güvenilir yönergeler değil veri olarak ele alınır.
- Eklenen blok, şu gibi açık sınır işaretçileri kullanır:
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>veSource: Externalmeta veri satırı içerir. - Bu dosya-girdi yolu, istem bütçesini korumak için uzun
SECURITY NOTICE:başlığını özellikle atlar; sınır işaretçileri ve meta veriler yine de yerinde kalır. - PDF’ler önce metin için ayrıştırılır. Az metin bulunursa ilk sayfalar
görsellere rasterize edilir ve modele geçirilir; eklenen dosya bloğu da
[PDF content rendered to images]yer tutucusunu kullanır.
pdfjs-dist legacy derlemesini kullanır (worker yok). Modern
PDF.js derlemesi tarayıcı worker’ları/DOM global’leri bekler, bu nedenle Gateway’de kullanılmaz.
URL getirme varsayılanları:
files.allowUrl:trueimages.allowUrl:truemaxUrlParts:8(istek başına URL tabanlı toplaminput_file+input_imageparçası)- İstekler korunur (DNS çözümleme, özel IP engelleme, yönlendirme sınırları, zaman aşımları).
- İsteğe bağlı ana bilgisayar allowlist’leri girdi türü başına desteklenir (
files.urlAllowlist,images.urlAllowlist).- Tam ana bilgisayar:
"cdn.example.com" - Joker alt etki alanları:
"*.assets.example.com"(apex’i eşleştirmez) - Boş veya atlanmış allowlist’ler, ana bilgisayar allowlist kısıtlaması olmadığı anlamına gelir.
- Tam ana bilgisayar:
- URL tabanlı getirmeleri tamamen devre dışı bırakmak için
files.allowUrl: falseve/veyaimages.allowUrl: falseayarlayın.
Dosya + görsel sınırları (yapılandırma)
Varsayılanlargateway.http.endpoints.responses altında ayarlanabilir:
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- HEIC/HEIF
input_imagekaynakları kabul edilir ve sağlayıcıya iletilmeden önce JPEG’e normalize edilir.
- URL allowlist’leri, getirmeden önce ve yönlendirme sıçramalarında uygulanır.
- Bir ana bilgisayarı allowlist’e almak, özel/dahili IP engellemesini aşmaz.
- İnternete açık gateway’lerde, uygulama düzeyi korumalara ek olarak ağ çıkış denetimleri uygulayın. Bkz. Security.
Akış (SSE)
SSE (Server-Sent Events) almak içinstream: true ayarlayın:
Content-Type: text/event-stream- Her olay satırı
event: <type>vedata: <json>biçimindedir - Akış
data: [DONE]ile biter
response.createdresponse.in_progressresponse.output_item.addedresponse.content_part.addedresponse.output_text.deltaresponse.output_text.doneresponse.content_part.doneresponse.output_item.doneresponse.completedresponse.failed(hata durumunda)
Kullanım
usage, alttaki sağlayıcı token sayılarını bildirdiğinde doldurulur.
OpenClaw, bu sayaçlar
aşağı akış durum/oturum yüzeylerine ulaşmadan önce yaygın OpenAI tarzı takma adları normalize eder;
bunlara input_tokens / output_tokens
ve prompt_tokens / completion_tokens dahildir.
Hatalar
Hatalar şu gibi bir JSON nesnesi kullanır:401eksik/geçersiz kimlik doğrulama400geçersiz istek gövdesi405yanlış yöntem