استدعاء الأدوات (HTTP)¶
تُوفّر Gateway في OpenClaw نقطة نهاية HTTP بسيطة لاستدعاء أداة واحدة مباشرة. تكون مُمكّنة دائمًا، لكنها مقيّدة بمصادقة Gateway وسياسة الأدوات.
POST /tools/invoke- نفس المنفذ المستخدم لـ Gateway (تعدد WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
الحد الأقصى الافتراضي لحجم الحمولة هو 2 ميغابايت.
المصادقة¶
تستخدم تهيئة مصادقة Gateway. أرسل رمز Bearer:
Authorization: Bearer <token>
ملاحظات:
- عند
gateway.auth.mode="token"، استخدمgateway.auth.token(أوOPENCLAW_GATEWAY_TOKEN). - عند
gateway.auth.mode="password"، استخدمgateway.auth.password(أوOPENCLAW_GATEWAY_PASSWORD).
طلب الجسم¶
{
"tool": "sessions_list",
"action": "json",
"args": {},
"sessionKey": "main",
"dryRun": false
}
الحقول:
tool(string، مطلوب): اسم الأداة المراد استدعاؤها.action(string، اختياري): يُدرج في args إذا كان مخطط الأداة يدعمactionولم تتضمن حمولة args هذا الحقل.args(object، اختياري): وسائط خاصة بالأداة.sessionKey(string، اختياري): مفتاح الجلسة الهدف. إذا تم إهماله أو كان"main"، تستخدم Gateway مفتاح الجلسة الرئيسي المُهيّأ (مع احترامsession.mainKeyوالوكيل الافتراضي، أوglobalفي النطاق العام).dryRun(boolean، اختياري): محجوز للاستخدام المستقبلي؛ يتم تجاهله حاليًا.
السلوك الخاص بالسياسات والتوجيه¶
تُرشَّح إتاحة الأدوات عبر سلسلة السياسات نفسها المستخدمة بواسطة وكلاء Gateway:
tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- سياسات المجموعات (إذا كان مفتاح الجلسة يطابق مجموعة أو قناة)
- سياسة الوكيل الفرعي (عند الاستدعاء باستخدام مفتاح جلسة وكيل فرعي)
إذا لم يُسمح بالأداة وفق السياسة، تُعيد نقطة النهاية الرمز 404.
لمساعدة سياسات المجموعات على حلّ السياق، يمكنك اختياريًا تعيين:
x-openclaw-message-channel: <channel>(مثال:slack،telegram)x-openclaw-account-id: <accountId>(عند وجود حسابات متعددة)
الاستجابات¶
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(طلب غير صالح أو خطأ في الأداة)401→ غير مُصرّح404→ الأداة غير متاحة (غير موجودة أو غير مُدرجة في قائمة السماح)405→ الطريقة غير مسموح بها
مثال¶
curl -sS http://127.0.0.1:18789/tools/invoke \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"tool": "sessions_list",
"action": "json",
"args": {}
}'