فهم الوسائط - الوارد (2026-01-17)
يمكن لـ OpenClaw تلخيص الوسائط الواردة (الصور/الصوت/الفيديو) قبل تشغيل مسار الرد. وهو يكتشف تلقائيًا متى تكون الأدوات المحلية أو مفاتيح الموفّرين متاحة، ويمكن تعطيله أو تخصيصه. وإذا كان الفهم معطلًا، فلا تزال النماذج تتلقى الملفات/عناوين URL الأصلية كالمعتاد. يتم تسجيل سلوك الوسائط الخاص بكل جهة مصنّعة بواسطة إضافات الجهات المصنّعة، بينما تملك core في OpenClaw الإعداد المشتركtools.media، وترتيب المسارات الاحتياطية،
والتكامل مع مسار الرد.
الأهداف
- اختياري: هضم أولي للوسائط الواردة إلى نص قصير لتوجيه أسرع + تحليل أفضل للأوامر.
- الحفاظ دائمًا على تسليم الوسائط الأصلية إلى النموذج.
- دعم واجهات API الخاصة بالموفّرين والمسارات الاحتياطية عبر CLI.
- السماح بعدة نماذج مع تراجع احتياطي مرتب (خطأ/حجم/مهلة).
السلوك عالي المستوى
- جمع المرفقات الواردة (
MediaPathsوMediaUrlsوMediaTypes). - لكل قدرة مفعلة (صورة/صوت/فيديو)، تحديد المرفقات وفق السياسة (الافتراضي: الأول).
- اختيار أول إدخال نموذج مؤهل (الحجم + القدرة + المصادقة).
- إذا فشل نموذج أو كانت الوسائط كبيرة جدًا، يتم الرجوع إلى الإدخال التالي.
- عند النجاح:
- تصبح
Bodyكتلة[Image]أو[Audio]أو[Video]. - يضبط الصوت
{{Transcript}}؛ ويستخدم تحليل الأوامر نص التسمية التوضيحية عند وجوده، وإلا يستخدم النص المفرغ. - تُحفَظ التسميات التوضيحية بوصفها
User text:داخل الكتلة.
- تصبح
نظرة عامة على الإعداد
يدعمtools.media نماذج مشتركة بالإضافة إلى تجاوزات لكل قدرة:
tools.media.models: قائمة النماذج المشتركة (استخدمcapabilitiesللبوابة).tools.media.image/tools.media.audio/tools.media.video:- القيم الافتراضية (
promptوmaxCharsوmaxBytesوtimeoutSecondsوlanguage) - تجاوزات الموفّر (
baseUrlوheadersوproviderOptions) - خيارات Deepgram للصوت عبر
tools.media.audio.providerOptions.deepgram - عناصر تحكم صدى النص المفرغ للصوت (
echoTranscript، الافتراضيfalse؛ وechoFormat) - قائمة
modelsاختيارية لكل قدرة (وتُفضَّل قبل النماذج المشتركة) - سياسة
attachments(modeوmaxAttachmentsوprefer) scope(بوابة اختيارية حسب القناة/نوع الدردشة/مفتاح الجلسة)
- القيم الافتراضية (
tools.media.concurrency: الحد الأقصى لتشغيلات القدرات المتزامنة (الافتراضي 2).
إدخالات النماذج
يمكن أن يكون كل إدخالmodels[] من نوع provider أو CLI:
{{MediaDir}}(الدليل الذي يحتوي على ملف الوسائط){{OutputDir}}(دليل مؤقت أُنشئ لهذا التشغيل){{OutputBase}}(المسار الأساسي للملف المؤقت، من دون امتداد)
القيم الافتراضية والحدود
القيم الافتراضية الموصى بها:maxChars: 500 للصورة/الفيديو (قصير وملائم للأوامر)maxChars: غير مضبوطة للصوت (النص المفرغ الكامل ما لم تضبط حدًا)maxBytes:- الصورة: 10MB
- الصوت: 20MB
- الفيديو: 50MB
- إذا تجاوزت الوسائط
maxBytes، يتم تخطي ذلك النموذج وتجربة النموذج التالي. - تُعامَل الملفات الصوتية الأصغر من 1024 بايت على أنها فارغة/تالفة ويتم تخطيها قبل النسخ عبر الموفّر/CLI.
- إذا أعاد النموذج أكثر من
maxChars، يتم اقتطاع الإخراج. - تفترض
promptافتراضيًا عبارة بسيطة من نوع “Describe the .” بالإضافة إلى توجيهmaxChars(للصورة/الفيديو فقط). - إذا كان نموذج الصورة الأساسي النشط يدعم الرؤية أصلًا، فإن OpenClaw
يتخطى كتلة الملخص
[Image]ويمرر الصورة الأصلية مباشرة إلى النموذج. - إذا كانت
<capability>.enabled: trueلكن لا توجد نماذج مهيأة، يحاول OpenClaw نموذج الرد النشط عندما يدعم موفّره تلك القدرة.
الاكتشاف التلقائي لفهم الوسائط (الافتراضي)
إذا لم يتم ضبطtools.media.<capability>.enabled على false ولم تكن قد
هيأت نماذج، فإن OpenClaw يكتشف تلقائيًا بهذا الترتيب ويتوقف عند أول
خيار يعمل:
- نموذج الرد النشط عندما يدعم موفّره تلك القدرة.
- مراجع
agents.defaults.imageModelprimary/fallback (للصورة فقط). - CLI محلية (للصوت فقط؛ إذا كانت مثبتة)
sherpa-onnx-offline(يتطلبSHERPA_ONNX_MODEL_DIRمع encoder/decoder/joiner/tokens)whisper-cli(whisper-cpp; يستخدمWHISPER_CPP_MODELأو النموذج tiny المضمّن)whisper(Python CLI؛ ينزّل النماذج تلقائيًا)
- Gemini CLI (
gemini) باستخدامread_many_files - مصادقة الموفّر
- تتم تجربة إدخالات
models.providers.*المهيأة التي تدعم القدرة قبل ترتيب التراجع الاحتياطي المضمّن. - يتم تسجيل موفّري الإعداد ذوي الصور فقط مع نموذج قادر على الصور تلقائيًا لفهم الوسائط حتى عندما لا يكونون إضافة vendor مدمجة.
- ترتيب التراجع الاحتياطي المضمّن:
- الصوت: OpenAI → Groq → Deepgram → Google → Mistral
- الصورة: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- الفيديو: Google → Qwen → Moonshot
- تتم تجربة إدخالات
PATH (نحن نوسّع ~)، أو اضبط نموذج CLI صريحًا مع مسار أمر كامل.
دعم بيئة Proxy (نماذج الموفّر)
عندما تكون نماذج فهم الوسائط الصوتية والفيديو المعتمدة على الموفّر مفعلة، فإن OpenClaw يحترم متغيرات بيئة proxy الصادرة القياسية لاستدعاءات HTTP الخاصة بالموفّر:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
القدرات (اختياري)
إذا ضبطتcapabilities، فلن يعمل الإدخال إلا مع أنواع الوسائط تلك. وبالنسبة إلى القوائم
المشتركة، يستطيع OpenClaw استنتاج القيم الافتراضية:
openaiوanthropicوminimax: صورةminimax-portal: صورةmoonshot: صورة + فيديوopenrouter: صورةgoogle(Gemini API): صورة + صوت + فيديوqwen: صورة + فيديوmistral: صوتzai: صورةgroq: صوتdeepgram: صوت- أي فهرس
models.providers.<id>.models[]يحتوي على نموذج قادر على الصور: صورة
capabilities صراحة لتجنب المطابقات المفاجئة.
إذا حذفت capabilities، فسيكون الإدخال مؤهلًا للقائمة التي يظهر فيها.
مصفوفة دعم الموفّر (تكاملات OpenClaw)
| القدرة | تكامل الموفّر | ملاحظات |
|---|---|---|
| الصورة | OpenAI وOpenRouter وAnthropic وGoogle وMiniMax وMoonshot وQwen وZ.AI وموفّرو الإعداد | تسجل إضافات vendor دعم الصور؛ ويستخدم كل من MiniMax وMiniMax OAuth الموفّر MiniMax-VL-01؛ ويتم تسجيل موفّري الإعداد القادرين على الصور تلقائيًا. |
| الصوت | OpenAI وGroq وDeepgram وGoogle وMistral | نسخ عبر الموفّر (Whisper/Deepgram/Gemini/Voxtral). |
| الفيديو | Google وQwen وMoonshot | فهم فيديو عبر الموفّر بواسطة إضافات vendor؛ ويستخدم فهم الفيديو في Qwen نقاط نهاية DashScope Standard. |
- يأتي فهم الصور في
minimaxوminimax-portalمن موفّر الوسائطMiniMax-VL-01المملوك للإضافة. - لا يزال فهرس النصوص المضمّن لـ MiniMax يبدأ كنصي فقط؛ وتُنشئ
إدخالات
models.providers.minimaxالصريحة مراجع دردشة M2.7 القادرة على الصور.
إرشادات اختيار النموذج
- فضّل أقوى نموذج من أحدث الأجيال متاح لكل قدرة وسائط عندما تكون الجودة والسلامة مهمتين.
- بالنسبة إلى الوكلاء المفعلة لديهم الأدوات ويتعاملون مع مدخلات غير موثوقة، تجنب نماذج الوسائط الأقدم/الأضعف.
- احتفظ بمسار احتياطي واحد على الأقل لكل قدرة من أجل التوافر (نموذج عالي الجودة + نموذج أسرع/أرخص).
- تُعد المسارات الاحتياطية عبر CLI (
whisper-cliوwhisperوgemini) مفيدة عندما لا تتوفر واجهات API الخاصة بالموفّرين. - ملاحظة
parakeet-mlx: مع--output-dir، يقرأ OpenClaw الملف<output-dir>/<media-basename>.txtعندما يكون تنسيق الإخراج هوtxt(أو غير محدد)؛ أما التنسيقات غيرtxtفتعود احتياطيًا إلى stdout.
سياسة المرفقات
يتحكمattachments لكل قدرة في المرفقات التي تتم معالجتها:
mode: first(الافتراضي) أوallmaxAttachments: حد أقصى للعدد المعالَج (الافتراضي 1)prefer: firstأوlastأوpathأوurl
mode: "all"، يتم وسم المخرجات بالشكل [Image 1/2] و[Audio 2/2]، وهكذا.
سلوك استخراج مرفقات الملفات:
- يُغلَّف النص المستخرج من الملفات بوصفه محتوى خارجيًا غير موثوق قبل إلحاقه بموجّه الوسائط.
- تستخدم الكتلة المحقونة علامات حدود صريحة مثل
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>وتتضمن سطر بيانات وصفيةSource: External. - يتعمد مسار استخراج المرفقات هذا حذف لافتة
SECURITY NOTICE:الطويلة لتجنب تضخيم موجّه الوسائط؛ لكن تظل علامات الحدود والبيانات الوصفية موجودة. - إذا لم يكن للملف نص قابل للاستخراج، يحقن OpenClaw القيمة
[No extractable text]. - إذا عاد PDF في هذا المسار احتياطيًا إلى صور صفحات معروضة، فإن موجّه الوسائط يحتفظ
بالنص النائب
[PDF content rendered to images; images not forwarded to model]لأن خطوة استخراج المرفقات هذه تمرر كتل نصية، وليس صور PDF المعروضة.
أمثلة على الإعداد
1) قائمة نماذج مشتركة + تجاوزات
2) الصوت + الفيديو فقط (الصورة معطلة)
3) فهم الصور الاختياري
4) إدخال واحد متعدد الوسائط (قدرات صريحة)
إخراج الحالة
عندما يعمل فهم الوسائط، يتضمن/status سطر ملخص قصيرًا:
ملاحظات
- يكون الفهم بأفضل جهد. ولا تمنع الأخطاء الردود.
- تظل المرفقات تُمرَّر إلى النماذج حتى عندما يكون الفهم معطلًا.
- استخدم
scopeلتقييد الأماكن التي يعمل فيها الفهم (مثل الرسائل المباشرة فقط).