/v1/* المتوافق مع OpenAI، تُعامل مصادقة الحامل ذات السر المشترك كوصول مشغّل موثوق به للبوابة بالكامل.
POST /tools/invoke- المنفذ نفسه مثل Gateway (تعدد إرسال WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
المصادقة
تستخدم تهيئة مصادقة Gateway. مسارات مصادقة HTTP الشائعة:- مصادقة السر المشترك (
gateway.auth.mode="token"أو"password"):Authorization: Bearer <token-or-password> - مصادقة HTTP الموثوقة الحاملة للهوية (
gateway.auth.mode="trusted-proxy"): مرّر عبر الوكيل المهيأ والمدرك للهوية ودعه يحقن ترويسات الهوية المطلوبة - مصادقة مفتوحة عبر منفذ دخول خاص (
gateway.auth.mode="none"): لا يلزم ترويسة مصادقة
- عندما تكون
gateway.auth.mode="token"، استخدمgateway.auth.token(أوOPENCLAW_GATEWAY_TOKEN). - عندما تكون
gateway.auth.mode="password"، استخدمgateway.auth.password(أوOPENCLAW_GATEWAY_PASSWORD). - عندما تكون
gateway.auth.mode="trusted-proxy"، يجب أن يأتي طلب HTTP من مصدر وكيل موثوق مهيأ؛ تتطلب وكلاء استرجاع الحلقة على المضيف نفسهgateway.auth.trustedProxy.allowLoopback = trueصراحةً. - إذا كانت
gateway.auth.rateLimitمهيأة وحدث عدد كبير جدًا من إخفاقات المصادقة، فستعيد نقطة النهاية429معRetry-After.
حد الأمان (مهم)
تعامل مع نقطة النهاية هذه كسطح وصول كامل للمشغّل لمثيل البوابة.- مصادقة حامل HTTP هنا ليست نموذج نطاق ضيقًا لكل مستخدم.
- يجب التعامل مع رمز/كلمة مرور Gateway الصالحة لنقطة النهاية هذه كاعتماد مالك/مشغّل.
- بالنسبة إلى أوضاع مصادقة السر المشترك (
tokenوpassword)، تستعيد نقطة النهاية إعدادات المشغّل الافتراضية الكاملة المعتادة حتى إذا أرسل المستدعي ترويسةx-openclaw-scopesأضيق. - تعامل مصادقة السر المشترك أيضًا استدعاءات الأدوات المباشرة على نقطة النهاية هذه كدورات مرسل مالك.
- أوضاع HTTP الموثوقة الحاملة للهوية (على سبيل المثال مصادقة الوكيل الموثوق أو
gateway.auth.mode="none"على منفذ دخول خاص) تحترمx-openclaw-scopesعند وجودها، وإلا فتعود إلى مجموعة نطاقات المشغّل الافتراضية المعتادة. - أبقِ نقطة النهاية هذه على loopback/tailnet/منفذ دخول خاص فقط؛ لا تكشفها مباشرة للإنترنت العامة.
gateway.auth.mode="token"أو"password"+Authorization: Bearer ...- يثبت امتلاك سر مشغّل البوابة المشترك
- يتجاهل
x-openclaw-scopesالأضيق - يستعيد مجموعة نطاقات المشغّل الافتراضية الكاملة:
operator.admin,operator.approvals,operator.pairing,operator.read,operator.talk.secrets,operator.write - يعامل استدعاءات الأدوات المباشرة على نقطة النهاية هذه كدورات مرسل مالك
- أوضاع HTTP الموثوقة الحاملة للهوية (على سبيل المثال مصادقة الوكيل الموثوق، أو
gateway.auth.mode="none"على منفذ دخول خاص)- تصادق هوية خارجية موثوقة أو حد نشر
- تحترم
x-openclaw-scopesعند وجود الترويسة - تعود إلى مجموعة نطاقات المشغّل الافتراضية المعتادة عند غياب الترويسة
- لا تفقد دلالات المالك إلا عندما يضيّق المستدعي النطاقات صراحةً ويحذف
operator.admin
جسم الطلب
tool(سلسلة نصية، مطلوب): اسم الأداة المراد استدعاؤها.action(سلسلة نصية، اختياري): يُعيّن ضمن الوسائط إذا كان مخطط الأداة يدعمactionوكانت حمولة الوسائط قد حذفته.args(كائن، اختياري): وسيطات خاصة بالأداة.sessionKey(سلسلة نصية، اختياري): مفتاح الجلسة الهدف. إذا حُذف أو كان"main"، يستخدم Gateway مفتاح الجلسة الرئيسي المهيأ (يحترمsession.mainKeyوالوكيل الافتراضي، أوglobalفي النطاق العام).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 مع مستدعين غير موثوقين. إذا كنت تحتاج إلى فصل عبر حدود الثقة، فشغّل بوابات منفصلة (ومن الأفضل مستخدمين/مضيفين منفصلين لنظام التشغيل).
exec- تنفيذ أوامر مباشر (سطح RCE)spawn- إنشاء عمليات فرعية عشوائية (سطح RCE)shell- تنفيذ أوامر الصدفة (سطح RCE)fs_write- تعديل ملفات عشوائي على المضيفfs_delete- حذف ملفات عشوائي على المضيفfs_move- نقل/إعادة تسمية ملفات عشوائي على المضيفapply_patch- يمكن لتطبيق التصحيحات إعادة كتابة ملفات عشوائيةsessions_spawn- تنسيق الجلسات؛ إن إنشاء وكلاء عن بُعد هو RCEsessions_send- حقن رسائل عبر الجلساتcron- مستوى تحكم أتمتة مستمرةgateway- مستوى تحكم البوابة؛ يمنع إعادة التهيئة عبر HTTPnodes- يمكن لترحيل أوامر العقد الوصول إلى system.run على المضيفين المقترنينwhatsapp_login- إعداد تفاعلي يتطلب مسح QR من الطرفية؛ يعلق على HTTP
gateway.tools:
x-openclaw-message-channel: <channel>(مثال:slack,telegram)x-openclaw-account-id: <accountId>(عند وجود حسابات متعددة)
الاستجابات
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(طلب غير صالح أو خطأ في إدخال الأداة)401→ غير مخوّل429→ محدود معدل المصادقة (Retry-Afterمضبوط)404→ الأداة غير متاحة (غير موجودة أو غير مدرجة في قائمة السماح)405→ الطريقة غير مسموحة500→{ ok: false, error: { type, message } }(خطأ غير متوقع في تنفيذ الأداة؛ رسالة منقّحة)