نظرة عامة
الأدوات
يعرض OpenClaw أدوات وكيل من الدرجة الأولى للمتصفح، اللوحة القماشية، العقد، والمهام المجدولة. هذه تحل محل مهارات openclaw-* القديمة: الأدوات مكتوبة، لا تتطلب shell، ويجب أن يعتمد الوكيل عليها مباشرة.
تعطيل الأدوات
يمكنك السماح/منع الأدوات عالميًا عبر tools.allow / tools.deny في openclaw.json (المنع يفوز). هذا يمنع إرسال الأدوات غير المسموح بها إلى مقدمي النماذج.
{
tools: { deny: ["browser"] },
}
ملاحظات:
- المطابقة غير حساسة لحالة الأحرف.
- الرموز البديلة
*مدعومة ("*"تعني جميع الأدوات). - إذا كانت
tools.allowتشير فقط إلى أسماء أدوات إضافات غير معروفة أو غير محملة، يسجل OpenClaw تحذيرًا ويتجاهل قائمة السماح حتى تبقى الأدوات الأساسية متاحة.
ملفات تعريف الأدوات (قائمة السماح الأساسية)
يحدد tools.profile قائمة السماح الأساسية للأدوات قبل tools.allow/tools.deny. تجاوز لكل وكيل: agents.list[].tools.profile. الملفات الشخصية:
minimal:session_statusفقطcoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: لا قيود (نفس عدم التعيين)
مثال (المراسلة فقط ا فتراضيًا، السماح بأدوات Slack + Discord أيضًا):
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}
مثال (ملف تعريف البرمجة، ولكن منع exec/process في كل مكان):
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}
مثال (ملف تعريف برمجة عالمي، وكيل دعم للمراسلة فقط):
{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging", allow: ["slack"] },
},
],
},
}
سياسة الأداة الخاصة بمقدم الخدمة
استخدم tools.byProvider لتقييد الأدوات لمقدمي خدمة محددين (أو provider/model واحد) دون تغيير الإعدادات الافتراضية العالمية. تجاوز لكل وكيل: agents.list[].tools.byProvider. يتم تطبيق هذا بعد ملف تعريف الأداة الأساسي وقبل قوائم السماح/المنع، لذا يمكنه فقط تضييق مجموعة الأدوات. تقبل مفاتيح المزود إما provider (مثل google-antigravity) أو provider/model (مثل openai/gpt-5.2). مثال (احتفظ بملف تعريف البرمجة العالمي، ولكن أدوات دنيا لـ Google Antigravity):
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}
مثال (قائمة السماح الخاصة بـ provider/model لنقطة نهاية غير مستقرة):
{
tools: {
allow: ["group:fs", "group:runtime", "sessions_list"],
byProvider: {
"openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
},
},
}
مثال (تجاوز خاص بالوكيل لمزود واحد):
{
agents: {
list: [
{
id: "support",
tools: {
byProvider: {
"google-antigravity": { allow: ["message", "sessions_list"] },
},
},
},
],
},
}
مجموعات الأدوات (اختصارات)
تدعم سياسات الأدوات (العالمية، الوكيل، sandbox) إدخالات group:* التي تتوسع إلى أدوات متعددة. استخدم هذه في tools.allow / tools.deny. المجموعات المتاحة:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: جميع أدوات OpenClaw المدمجة (تستثني إضافات المزود)
مثال (السماح بأدوات الملفات + المتصفح فقط):
{
tools: {
allow: ["group:fs", "browser"],
},
}
الإضافات + الأدوات
يمكن للإضافات تسجيل أدوات إضافية (وأوامر CLI) تتجاوز المجموعة الأساسية. راجع الإضافات للتثبيت + التكوين، والمهارات لكيفية حقن إرشادات استخدام الأداة في المحفزات. بعض الإضافات تشحن مهاراتها الخاصة جنبًا إلى جنب مع الأدوات (على سبيل المثال، إضافة voice-call). أدوات الإضافات الاختيارية:
- Lobster: وقت تشغيل سير عمل مكتوب مع موافقات قابلة للاستئناف (يتطلب Lobster CLI على مضيف البوابة).
- LLM Task: خطوة LLM بـ JSON فقط لإخراج سير عمل منظم (تحقق اختياري من المخطط).
- Diffs: عارض فروق للقراءة فقط وعارض مل فات PNG أو PDF للنصوص قبل/بعد أو تصحيحات موحدة.
جرد الأدوات
apply_patch
تطبيق تصحيحات منظمة عبر ملف واحد أو أكثر. استخدم للتعديلات متعددة الأجزاء. تجريبي: تمكين عبر tools.exec.applyPatch.enabled (نماذج OpenAI فقط). tools.exec.applyPatch.workspaceOnly الافتراضي هو true (محتوى مساحة العمل). اضبطه على false فقط إذا كنت تريد عمدًا أن يكتب apply_patch/يحذف خارج دليل مساحة العمل.
exec
تشغيل أوامر shell في مساحة العمل. المعلمات الأساسية:
command(مطلوب)yieldMs(خلفية تلقائية بعد المهلة، الافتراضي 10000)background(خلفية فورية)timeout(ثواني؛ يقتل العملية إذا تم تجاوزها، الافتراضي 1800)elevated(منطقي؛ تشغيل على المضيف إذا تم تمكين/السماح بالوضع المرتفع؛ يغير السلوك فقط عندما يكون الو كيل في sandbox)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(معرف/اسم العقدة لـhost=node)- تحتاج إلى TTY حقيقي؟ اضبط
pty: true.
ملاحظات:
- يُرجع
status: "running"معsessionIdعند الانتقال للخلفية. - استخدم
processللاستطلاع/التسجيل/الكتابة/القتل/مسح جلسات الخلفية. - إذا تم منع
process، يعملexecبشكل متزامن ويتجاهلyieldMs/background. elevatedمحمي بـtools.elevatedبالإضافة إلى أي تجاوزagents.list[].tools.elevated(يجب أن يسمح كلاهما) وهو اسم مستعار لـhost=gateway+security=full.elevatedيغير السلوك فقط عندما يكون الوكيل في sandbox (وإلا فهو لا يعمل).- يمكن لـ
host=nodeاستهداف تطبيق مرافق macOS أو مضيف عقدة بدون واجهة (openclaw node run). - موافقات البوابة/العقدة وقوائم السماح: موافقات التنفيذ.
process
إدارة جلسات exec في الخلفية. الإجراءات الأساسية:
list,poll,log,write,kill,clear,remove
ملاحظات:
- يُرجع
pollمخرجات جديدة وحالة خروج عند الاكتمال. - يدعم
logoffset/limitقائم على الأسطر (احذفoffsetلأخذ آخر N سطر). processمحدد لكل وكيل؛ الجلسات من وكلاء آخرين غير مرئية.
loop-detection (حواجز حماية حلقة استدعاء الأداة)
يتتبع OpenClaw تاريخ استدعاءات الأداة الحديثة ويمنع أو يحذر عند اكتشاف حلقات متكررة بدون تقدم. تمكين بـ tools.loopDetection.enabled: true (الافتراضي هو false).
{
tools: {
loopDetection: {
enabled: true,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
historySize: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
genericRepeat: نمط استدعاء نفس الأداة + نفس المعلمات المتكرر.knownPollNoProgress: تكرار أدوات شبيهة بـ poll مع مخرجات متطابقة.pingPong: أنماطA/B/A/Bمتناوبة بدون تقدم.- تجاوز لكل وكيل:
agents.list[].tools.loopDetection.
web_search
البحث على الويب باستخدام Perplexity أو Brave أو Gemini أو Grok أو Kimi. المعلمات الأساسية:
query(مطلوب)count(1–10؛ الافتراضي منtools.web.search.maxResults)
ملاحظات:
- يتطلب مفتاح API لمزود الخدمة المختار (موصى به:
openclaw configure --section web). - تمكين عبر
tools.web.search.enabled. - يتم تخزين الردود مؤقتًا (افتراضي 15 دقيقة).
- راجع أدوات الويب للإعداد.