← العودة إلى المدونة
Aiحوالي 1 دقيقة قراءة

كفى تعليمًا للوكلاء كيف ينظرون إلى الشاشة: CLI-Anything يمنح كل برنامج سطر أوامر

نُشر في 18 أكتوبر 2026
كفى تعليمًا للوكلاء كيف ينظرون إلى الشاشة: CLI-Anything يمنح كل برنامج سطر أوامر

هناك نوع خاص من اليأس ينتابك حين تشاهد وكيل ذكاء اصطناعي يحاول استخدام برنامج مكتبي. يلتقط صورة للشاشة، يخمّن موضع القائمة، ينقر، يخطئ، يلتقط صورة أخرى. بعد عشرين ثانية يكون قد حرّك شريط تمرير بمقدار بكسّلين ولم يتعلّم شيئًا.

مشروع CLI-Anything، من مختبر الذكاء البياناتي في جامعة هونغ كونغ (HKUDS)، يرى أن المقاربة كلها خاطئة. لا تُعلّم الوكيل أن يرى الشاشة. امنح البرنامج سطر أوامر، ودع الوكيل يكتب.

الفكرة كلها في سطر واحد: جعل كل البرمجيات agent-native. أما الآلية فهي أقل بريقًا وأكثر إثارة للاهتمام: وجّه أمرًا إلى أي تطبيق تملك شيفرته المصدرية، وسيولّد خطّ معالجة من سبع مراحل غلافًا نصيًا منظّمًا له، مع اختبارات وتوثيق وحزمة تُثبَّت بالأمر pip.

المراحل السبع

يعمل خطّ المعالجة داخل وكيل برمجي، ويُستدعى بالأمر /cli-anything <source path or repo>. التحليل: مسح الشيفرة وتحويل عمليات الواجهة الرسومية إلى نداءات API. التصميم: تحديد مجموعات الأوامر ونموذج الحالة وصيغ الخرج. التنفيذ: بناء واجهة سطر أوامر قائمة على Click، مع REPL وخرج JSON وتراجع/إعادة. تخطيط الاختبارات: كتابة خطة اختبار في TEST.md. كتابة الاختبارات: تنفيذ مجموعة الاختبارات. التوثيق: تسجيل النتائج في الملف نفسه. النشر: إنشاء setup.py وتثبيت الأمر في مسار PATH.

وهناك أيضًا مرحلة 6.5 تولّد ملف SKILL.md، حتى يستطيع الوكيل اكتشاف واجهة الأوامر الناتجة كمهارة بدلًا من أن يضطر إنسان إلى ربطها يدويًا. وأمر /cli-anything:refine يجري تحليل فجوات ويوسّع التغطية تدريجيًا.

التسمية صارمة عن قصد: الأوامر تعيش تحت نطاق cli_anything.<software>، والحزم تُسمّى cli-anything-<software>. الأعراف المملّة هي ما يجعل الأدوات قابلة للتركيب، وهذا المشروع يفكّر بوضوح في عالم فيه مئات من هذه الأغلفة.

خلفيات حقيقية، لا إعادة بناء على مستوى اللعب

التفصيل الذي يفصل هذا عن مشروع نهاية أسبوع: الأغلفة تشغّل البرنامج الحقيقي. LibreOffice ينتج ملف PDF حقيقيًا. Blender يُصيّر مشهدًا ثلاثي الأبعاد حقيقيًا. GIMP يفعل بالصورة ما يفعله GIMP بالصور. البديل — إعادة بناء جزء من سلوك التطبيق بلغة Python — ينتج شيئًا يبدو عاملًا إلى أن تحتاج تلك الميزة التي تجاهلتها إعادة البناء.

الثمن أنك تحتاج إلى تثبيت التطبيقات. والفائدة أن الخرج لا يمكن تمييزه عمّا كان سينتجه مشغّل بشري، لأنه صادر عن المحرّك نفسه.

كل أمر يُخرج JSON عند الطلب، وهذا هو الفرق بين واجهة سطر أوامر يستطيع الوكيل تحليلها وأخرى عليه أن يحدّق فيها بعينين ضيّقتين. هناك REPL يحتفظ بالحالة للعمل التفاعلي، وأوامر فرعية عادية للسكربتات، بالإضافة إلى حالة مشروع دائمة وتراجع/إعادة.

ما الذي يغطّيه

النطاق واسع عن قصد، ويُقرأ كقائمة بالبرمجيات التي ظلّ الناس يحاولون أتمتتها ويفشلون: GIMP وBlender وKdenlive للعمل الإبداعي؛ LibreOffice للمستندات المكتبية؛ Godot وs&box للثلاثي الأبعاد والألعاب؛ QGIS وFreeCAD للعلوم والهندسة؛ ComfyUI وOllama في الجانب الذكي؛ LLDB وRenderDoc وNsight للتنقيح.

ComfyUI هو البند الذي يستحق التوقّف عنده إن كنت تعمل بالصور. لدى ComfyUI واجهة API أصلًا، لكنها API على شكل رسم بياني: عقد وأسلاك وكائن JSON يعتمد مخططه على العقد المخصّصة التي ثبّتتها. غلاف سطر أوامر يكشف أوامر على مستوى القصد، بنموذج حالة محدّد وخرج JSON، هو بالضبط ما يحتاجه الوكيل لتشغيل خطّ معالجة صور دون هندسة عكسية لملف سير عمل شخص آخر.

الادّعاء المتعلّق بالاختبارات

يعلن المستودع نحو 2,461 اختبارًا: 1,732 اختبار وحدة، و579 من طرف إلى طرف، و19 لـ Node.js، بمعدّل نجاح مُعلن يبلغ 100 بالمئة. طبقة E2E تعمل على الخلفية الحقيقية، وهي النوع الوحيد من E2E الذي يهمّ هنا. إذا توقّف LibreOffice عن إنتاج PDF، يفشل الاختبار، وتعرف قبل أن يولّد وكيلك أربعين ملفًا معطوبًا.

تعامل مع نسبة «100 بالمئة» كلقطة في الزمن، لا كضمان. مجموعات الاختبار المولّدة عادةً ما تُرسّخ افتراضات من ولّدها. لكن البنية الرباعية — وحدة، وE2E أصلية، وE2E على خلفية حقيقية، وعملية فرعية لواجهة الأوامر — ذات شكل صحيح.

الحدود، مقولة بصراحة

ملف README يعدّدها، وهذه علامة جيدة.

المشروع يعتمد على نماذج متقدّمة. Claude Opus 4.6 أو Sonnet 4.6، وGPT-5.4، من هذه الفئة. النموذج الأضعف ينتج واجهات ناقصة أو خاطئة تحتاج إلى إصلاح يدوي كثيف، أي أن جدوى الأداة مرتبطة باشتراك قد لا تملكه.

يعتمد على الشيفرة المصدرية. خطّ المعالجة يحلّل المصادر؛ فإن كان كل ما لديك ملفًا تنفيذيًا مُصرّفًا، تنخفض الجودة والتغطية انخفاضًا حادًا. وهذا يستبعد بهدوء معظم البرمجيات التجارية، وهي معظم ما يريد الناس أتمتته فعلًا.

تشغيل واحد نادرًا ما يغطّي كل شيء. توقّع تشغيل /refine عدة مرات قبل أن يصبح الإطار بمستوى الإنتاج. بعض الواجهات تشترط تثبيت التطبيق الأصلي. ونضج المنصّات متفاوت: Goose وOpenCode وCodex وHermes وReasonix مصنّفة تجريبية، وسيصطدم مستخدمو Windows بمشكلات توافق مع bash وcygpath.

سؤال الصيانة الذي لا يريد أحد طرحه

الغلاف المولّد تعهّد. لحظة أن تتبنّى cli-anything-libreoffice تكون قد أضفت طبقة بين وكيلك والتطبيق، وهذه الطبقة عليها أن تظل عاملة حين يغيّر LibreOffice نموذج مستنداته أو يعيد Blender تسمية أحد المشغّلات.

عمليًا، هذا يعني ثلاثة أشياء. أبقِ الإطار المولّد في مستودعك لا في مستودع غيرك، حتى تستطيع ترقيعه. أعد تشغيل خطّ المعالجة عند ترقية التطبيق الأساسي، وقارن النتيجة بالفروق. واعتبر TEST.md هو العقد: الاختبارات هي السبب الوحيد الذي سيجعلك تلاحظ عطلًا قبل أن ينتج وكيلك أربعين ملفًا مشوّهًا.

الجدوى الاقتصادية قائمة لأن إعادة التوليد رخيصة. وهذه هي الرؤية الحقيقية: لا يلزم أن يكون الغلاف مثاليًا إلى الأبد، لأن ما ولّده قادر على توليده مرة أخرى. أُطُر العمل التقليدية مكلفة الصيانة لأن بشرًا يكتبونها. هذا ليس ذاك.

رهان CLI-Hub

هناك مدير حزم، cli-anything-hub، لتصفّح الأغلفة التي يبنيها المجتمع وتثبيتها. هذا هو الجزء الذي يحمل أكبر احتمال صعود وأوضح مخاطرة. مركز لواجهات أوامر مولّدة هو مركز لشيفرة تعمل بصلاحياتك وتلمس ملفاتك.

وهل يصبح منظومة مفيدة أم قصة عن سلسلة التوريد، يتوقّف كليًا على ما إذا كان المشروع يعامل المراجعة كجزء من النشر. الجواب الآن هو «جزئيًا»: الاختبارات مولّدة، والتوثيق مولّد، والمراجعة هي ما يفعله المجتمع.

لماذا يهمّ هذا خارج المستودع

على مدى عامين، كان «استخدام الحاسوب» هو العرض التجريبي المفضّل للصناعة والمنتج الأقل تفضيلًا لديها. العروض تنجح لأن أحدًا كتب المهمة في سكربت بعناية. والمنتجات تتعطّل لأن التحكّم على مستوى البكسل هشّ بطريقة لا تزول تمامًا.

يقترح CLI-Anything تقسيمًا آخر للعمل: بدلًا من جعل الوكلاء أفضل في أن يكونوا بشرًا، اجعل البرمجيات أفضل في أن تكون آلة. كل تطبيق يملك شجرة مصادر يصبح مرشّحًا لواجهة مولّدة، وهذه الواجهة قابلة للاختبار بطريقة لا تستطيع حلقة لقطات الشاشة أن تبلغها أبدًا.

المقايضة حقيقية. واجهات الأوامر المولّدة جودتها بقدر جودة النموذج الذي كتبها، ولا بد أن يتولّى أحد مسؤولية الغلاف حين يتغيّر التطبيق الأصلي. لكن الاتجاه صحيح. وكيل يكتب cli-anything-blender render --scene scene.blend --out frame.png ويحصل على خرج حتمي يفعل شيئًا أنفع بكثير من وكيل ينقر في نافذة العرض ويدعو أن يوفَّق.

مقالات ذات صلة