/v1/* المتوافقة مع OpenAI، تُعامل مصادقة حامل السر المشترك بوصفها وصولًا موثوقًا للمشغّل إلى Gateway بالكامل.
POST /tools/invoke- المنفذ نفسه الذي تستخدمه Gateway (تعدد إرسال WS وHTTP):
http://<gateway-host>:<port>/tools/invoke - الحد الأقصى الافتراضي لحجم نص الطلب: 2 ميغابايت
المصادقة
تستخدم إعدادات مصادقة Gateway. مسارات مصادقة HTTP الشائعة:- مصادقة السر المشترك (
gateway.auth.mode="token"أو"password"):Authorization: Bearer <token-or-password> - مصادقة HTTP الموثوقة الحاملة للهوية (
gateway.auth.mode="trusted-proxy"): وجّه الطلب عبر الوكيل المهيأ والمدرك للهوية، ودعه يحقن ترويسات الهوية المطلوبة - المصادقة المفتوحة عند الإدخال الخاص (
gateway.auth.mode="none"): لا تلزم ترويسة مصادقة
- يستخدم
mode="token"القيمةgateway.auth.token(أوOPENCLAW_GATEWAY_TOKEN). - يستخدم
mode="password"القيمةgateway.auth.password(أوOPENCLAW_GATEWAY_PASSWORD). - يتطلب
mode="trusted-proxy"أن يأتي طلب HTTP من مصدر وكيل موثوق مهيأ؛ وتتطلب وكلاء local loopback على المضيف نفسه تعيينgateway.auth.trustedProxy.allowLoopback = trueصراحةً. - يمكن للجهات الداخلية المستدعية على المضيف نفسه التي تتجاوز الوكيل استخدام
gateway.auth.password/OPENCLAW_GATEWAY_PASSWORDكخيار احتياطي محلي مباشر. ويؤدي وجود أي دليل في ترويساتForwardedأوX-Forwarded-*أوX-Real-IPإلى إبقاء الطلب على مسار الوكيل الموثوق بدلًا من ذلك. - إذا كان
gateway.auth.rateLimitمهيأً وحدثت إخفاقات مصادقة كثيرة جدًا، فتعيد نقطة النهاية429معRetry-After.
الحد الأمني (مهم)
تعامل مع نقطة النهاية هذه بوصفها واجهة وصول كامل للمشغّل إلى مثيل Gateway.- مصادقة حامل HTTP هنا ليست نموذج نطاق ضيقًا لكل مستخدم.
- يجب التعامل مع رمز Gateway المميز/كلمة المرور الصالحة لنقطة النهاية هذه باعتبارها بيانات اعتماد للمالك/المشغّل.
- في أوضاع مصادقة السر المشترك (
tokenوpassword)، تستعيد نقطة النهاية الإعدادات الافتراضية المعتادة للوصول الكامل للمشغّل، حتى إذا أرسل المستدعي ترويسةx-openclaw-scopesأضيق نطاقًا. - تعامل مصادقة السر المشترك أيضًا الاستدعاءات المباشرة للأدوات على نقطة النهاية هذه على أنها أدوار واردة من المالك.
- تحترم أوضاع HTTP الموثوقة الحاملة للهوية (مصادقة الوكيل الموثوق، أو
gateway.auth.mode="none"عند إدخال خاص) الترويسةx-openclaw-scopesعند وجودها، وإلا تعود إلى مجموعة النطاقات الافتراضية المعتادة للمشغّل. - أبقِ نقطة النهاية هذه مقتصرة على local loopback أو شبكة Tailscale أو الإدخال الخاص؛ ولا تكشفها مباشرةً للإنترنت العام.
نص الطلب
tool/name(سلسلة نصية، مطلوب): اسم الأداة المراد استدعاؤها. تكون الأولوية لـnameإذا أُرسل كلاهما.action(سلسلة نصية، اختياري): يُدمج فيargs.actionإذا كان مخطط الأداة يدعم الخاصيةactionولم تكنargsقد عيّنتها بالفعل.args(كائن، اختياري): وسائط خاصة بالأداة.sessionKey(سلسلة نصية، اختياري): مفتاح الجلسة المستهدفة. إذا حُذف أو كان"main"، تستخدم Gateway مفتاح الجلسة الرئيسية المهيأ (مع مراعاةsession.mainKeyوالوكيل الافتراضي، أوglobalفي نطاق الجلسة العام).agentId(سلسلة نصية، اختياري): يحل مفتاح الجلسة لذلك الوكيل. يعيد خطأ400إذا تعارض معsessionKeyصريح مرتبط مسبقًا بوكيل مختلف.idempotencyKey(سلسلة نصية، اختياري): يُستخدم لاشتقاق معرّف ثابت لاستدعاء الأداة.dryRun(قيمة منطقية، اختياري): محجوز للاستخدام المستقبلي؛ ويُتجاهل حاليًا.
سلوك السياسة والتوجيه
تُرشَّح إتاحة الأدوات عبر سلسلة السياسات نفسها التي تستخدمها وكلاء Gateway:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- سياسات المجموعة (إذا كان مفتاح الجلسة مرتبطًا بمجموعة أو قناة)
- سياسة الوكيل الفرعي (عند الاستدعاء باستخدام مفتاح جلسة وكيل فرعي)
- موافقات
execهي ضوابط حماية للمشغّل، وليست حد تفويض منفصلًا لنقطة نهاية HTTP هذه. إذا أمكن الوصول إلى أداة هنا عبر مصادقة Gateway وسياسة الأدوات، فلن يضيف/tools/invokeمطالبة موافقة إضافية لكل استدعاء. - إذا أمكن الوصول إلى
execهنا، فتعامل معه بوصفه واجهة صدفة قادرة على إجراء تغييرات. إن رفضwriteأوeditأوapply_patchأو أدوات HTTP التي تكتب إلى نظام الملفات لا يجعل تنفيذ أوامر الصدفة للقراءة فقط. - لا تشارك بيانات اعتماد حامل Gateway مع مستدعين غير موثوقين. إذا احتجت إلى الفصل بين حدود الثقة، فشغّل بوابات Gateway منفصلة (ويُفضّل تشغيلها تحت مستخدمي نظام تشغيل أو مضيفين منفصلين).
كما أن
cron وgateway وnodes مقتصرة على المالك: حتى خارج قائمة الرفض الافتراضية هذه، لا يمكن للمستدعين من غير المالك استدعاؤها عبر هذه الواجهة.
خصّص قائمة الرفض العامة عبر gateway.tools:
gateway.tools.allow تجاوزًا للإتاحة، وليس ترقية للنطاق. في أوضاع HTTP الحاملة للهوية، تظل cron وgateway وnodes غير متاحة للمستدعين الذين لا يملكون هوية المالك/المسؤول (operator.admin)، حتى عند إدراجها في gateway.tools.allow. وتظل مصادقة حامل السر المشترك تتبع قاعدة المشغّل الموثوق بالكامل المذكورة أعلاه.
للمساعدة في تمكين سياسات المجموعة من تحديد السياق، يمكنك اختياريًا تعيين:
x-openclaw-message-channel: <channel>(مثال:slack،telegram)x-openclaw-account-id: <accountId>(عند وجود حسابات متعددة)x-openclaw-message-to: <target>(هدف التسليم لسياسة أداة الرسائل)x-openclaw-thread-id: <threadId>(سياق سلسلة المحادثة لسياسة أداة الرسائل)