XERJ: محرك بحث محلي لوكلاء البرمجة يعترف بأرقامه هو

من النادر أن تجد مشروعًا تكون أهم ميزة فيه هي اعترافه عن نفسه.
XERJ محرك بحث مكتوب بلغة Rust للشيفرة والمستندات، صُمم لوكلاء البرمجة، ويتحدث بروتوكولًا متوافقًا مع Elasticsearch، برخصة Apache-2.0. لديه جدول قياسات أداء بأرقام دولارية حقيقية. ولديه أيضًا ملاحظة من المشرف تعترف بأن عدد نجوم GitHub منفوخ بنحو ثلاثة عشر ضعفًا بسبب مجموعة اصطناعية، وتطلب من الناس ألا يستشهدوا به.
الأمران يستحقان وقتك، وهما مترابطان.
المشكلة التي يستهدفها
عندما يحتاج وكيل برمجة إلى فهم قاعدة شيفرة، فالخطوة الافتراضية هي grep. الأداة صادقة: تجد الأسطر المطابقة لنمط. لكن الوكيل الذي يستخدم grep عليه أن يقرأ الملفات ليعرف هل التطابق مهم، وقراءة الملفات هي بالضبط ما يملأ نافذة السياق. ملف واحد كبير قد يستهلك رموزًا أكثر مما كانت الإجابة تستحق.
بديل XERJ هو فهرس محلي. وجّهه إلى مجلد، وسيقوم autoindex بفحص أنواع الملفات، واستنتاج مجموعات البيانات، ورمي الحشو، وبناء فهرس منفصل لكل مجموعة. سجل تشغيل حقيقي في المستودع يقول هكذا: استُنتجت 593 مجموعة بيانات، و1,955 ملفًا مهملًا أو متجاوزًا في المرحلة A، ثم المرحلة B تفهرس 25,329 ملفًا بثمانية عمال، وتنتهي في 158.1 ثانية مع 83,103 سجلًا حيًا.
تُحلَّل الشيفرة بـ tree-sitter، مع الحفاظ على الرموز وأرقام الأسطر بدل تسطيح كل شيء إلى نص. لهذا يستطيع xerj def <symbol> إرجاع ملف وسطر وتوقيع — قفزة إلى التعريف على مستوى المستودع، وهو ما كان الوكيل يحتاجه من البداية.
القياس، بقراءة متأنية
شغّل المشروع ثماني مهام بأربع لغات، وست عشرة محاولة لكل ذراع، وقاس استهلاك claude -p الفعلي للرموز بدل تقديره. ثلاث تهيئات: الذاكرة وحدها، والقيادة بـ grep، وXERJ.
الذاكرة وحدها استهلكت 260,916 رمز إخراج، وكلّفت 11.18 دولارًا، وحلّت 11 من 16. وgrep استهلك 26,477 رمزًا، وكلّف 3.27 دولارًا، وحلّ الـ16 كلها. وXERJ استهلك 9,982 رمزًا، وكلّف 1.58 دولارًا، وحلّ الـ16 أيضًا.
أي نحو 2.7 مرة رموز إخراج أقل من grep، و26 مرة أقل من الاعتماد على ذاكرة النموذج، دون تغيّر في نسبة الحل. أفضل حالة منفردة — مهمة Java — وفّرت 278 مرة. ويذكر المستخدمون نحو 5x من طرف إلى طرف.
الآن التحفظ الذي يجعل هذا المقال جديرًا بالكتابة. عنوان المستودع يزعم “رموز أقل 40x من grep”. التجربة المضبوطة في المتن تقول 2.7x. هذان ليسا الادعاء نفسه، والفجوة بينهما هي بالضبط النمط الذي يجعل التسويق القائم على القياسات غير موثوق. ومن محاسن المشروع أن README نفسه يقول بتفضيل رقم المتن. عنوان يبالغ وحاشية تصحّحه طريقة غريبة في الإطلاق، لكن التصحيح موجود على الأقل.
القيد الذي لا يذكره أحد في منشورات الإطلاق
هذه هي الجملة التي تحذفها معظم مشاريع “البحث للوكلاء”: الفائدة تعتمد على ما إذا كان النموذج يعرف الشيفرة أصلًا.
في الشيفرة الخاصة أو الداخلية أو المتخصصة أو ما بعد حد التدريب، يوفّر الاسترجاع كثيرًا، لأن النموذج لا يستطيع التخمين فعلًا. أما في مكتبات المصادر المفتوحة الشائعة التي رآها النموذج عشرة آلاف مرة، فالفهرس محايد أو ضار فعليًا: تنفق رموزًا لاسترجاع ما يعرفه النموذج سلفًا.
هذا القيد وحده يغيّر طريقة نشره. ليس ترقية شاملة. إنه علاج لنمط فشل محدد: وكلاء يعملون على شيفرة لم يكتب عنها أحد مقالًا.
علم --insecure حدّ ثقة حقيقي
تشغيل xerj --insecure يعطّل TLS ومصادقة الـAPI. أي شخص يصل إلى المنفذ هو عمليًا مستخدم خارق: يقرأ ويكتب ويحذف كل الفهرس، بما في ذلك كل ما تحت /_memory. هذا مقبول على حاسوب مطور واحد، وكارثي على أي شيء مشترك.
الإعدادات الافتراضية أفضل من العلم. العقدة الجديدة ترتبط بـ 127.0.0.1، والارتباط النصي بعنوان غير loopback يرفض الإقلاع إلا إذا ضبطت صراحة server.allow_insecure_network_bind = true. ويسجّل المشروع أيضًا أن التشغيل غير الآمن على 0.0.0.0 كان ثغرة حقيقية — عملاء الشبكة المحلية كانوا يكتبون دون تفويض — وأنها أُصلحت. تسمية ثغرتك السابقة باسمها عادة جيدة.
الإفصاح الذي يجب أن يصبح قالبًا
في Commit خاص بالقياس والأجهزة، كتب المشرف أن نجوم المستودع ونسخه الفرعية ضُخّمت نحو ثلاثة عشر ضعفًا بسبب مجموعة اصطناعية، وأن بيانات التثبيت الحقيقية هزيلة — نحو 145 تنزيلًا لملفات الإصدار وحوالي 28 تثبيتًا مكتملًا — وأن Cloudflare RUM توقف عن التسجيل في يوليو، لذا فمخطط الحركة الصفرية على الموقع أثر صناعي.
لمشروع يدّعي التوافق مع Elasticsearch ويمرّر 1,371 اختبار توافق (صفر إخفاقات، ثلاث تجاوزات)، فهذا شيء لافت للنشر. ويقول لك أيضًا شيئًا عن حال إشارات المصادر المفتوحة اليوم: عدد النجوم سطح تسويقي، وأي شخص يدير حلقة نمو يستطيع تحريكه. الأرقام الوحيدة الجديرة بالثقة هي التي يقدّمها المؤلف ضد مصلحته.
أشياء أخرى ستقابلها
التثبيت هو curl موصول بالـshell، يتحقق من SHA256 ويرفض المتابعة إن لم يجد أداة checksum — حارس غير معتاد على الحصافة لهذا النمط. البناء musl ثابت مع jemalloc، لينكس أولًا، وويندوز بالتثبيت اليدوي. هناك خادم MCP يعرض ثلاثة عشر أداة منها xerj_plan وxerj_map، وxerj init يوصّل Claude Code أو Cursor بأمر واحد. وkNN مع تكميم scalar8 مدعوم. ونشر العقد المتعددة يأتي مع Helm chart وملف compose.
الإصدار 1.0.0-rc.x، وواجهة الأوامر ما تزال تتحرك. الـCLA مقتبس من اتفاقية Apache، مع ملاحظة من المشرف بأن محاميًا لم يراجعه وبأن حقلين مؤقتين ما زالا موجودين. كثير من الـcommits كتبها وكلاء برمجة وموسومة بذلك، وهو شفاف وسبب أيضًا لقراءة الشيفرة التي تعتمد عليها.
البرمجة بالمرجع، حالة الاستخدام التي لا يقيسها أحد
مدفونة في README أكثر تطبيق مثير: وجّه الفهرس إلى أقرب مشروع مفتوح المصدر للمشكلة التي تحلها، ثم اكتب نسختك والمرجع في السياق.
هكذا تُنجز هندسة حقيقية كثيرة — تجد المكتبة التي حلّتها، تقرأها، ثم تنفّذ شيئًا أضيق. إساءة ذلك تعني لصق نصف مستودع في prompt. وإحسانه يعني أن تسأل “أين يعالج هذا المشروع الـbackpressure” فتحصل على ملف وسطر وتوقيع دالة.
يكشف ذلك أيضًا حدود القياس أعلاه. البرمجة بالمرجع تتطلب تنزيل مستودع شخص آخر وفهرسته، وهذا يكلّف وقتًا وقرصًا وشبكة. التوفير يأتي في الاستعلام الثاني والثالث، لا الأول. من يريد التقييم عليه قياس الجلسة كاملة، لا مهمة واحدة.
ادعاء التوافق مع Elasticsearch
يتحدث XERJ بروتوكول Elasticsearch، ويعلن المشروع نجاح 1,371 اختبار توافق بصفر إخفاقات وثلاث تجاوزات. إن صحّ ذلك، فالأدوات المكتوبة أصلًا لـElasticsearch يمكن توجيهها إليه بتغييرات طفيفة، وللفرق التي تدفع ثمن عنقود لتخزين بضعة ملايين مستند مخرج.
النقد الموجه لرخصة SSPL الخاصة بـElasticsearch منصف: SSPL ليست مفتوحة المصدر بمعنى OSI، وهذا يهم الشركات التي تريد إطلاق منتج فوق محرك بحث. لكن “التوافق” طيف. تغطية Query DSL والتجميعات وسلوك المحللات هي حيث تظهر الفروق، ومجموعة اختبارات التوافق هي الطريقة الوحيدة لمعرفة أي جانب من الخط أنت عليه.
هل تستخدمه؟
إذا كان وكلاؤك يعملون على شيفرة داخلية أو مستودعات خاصة كبيرة أو سجلات ومستندات لم يرها أي نموذج، فالحجة مقبولة: فهرس محلي، برخصة Apache-2.0، متوافق مع ES، واعٍ برموز tree-sitter، وقياس صادق. أما إذا كان عملك في الغالب على مكتبات عامة، فستجد على الأرجح أن grep وإعداد ripgrep جيدًا بنفس الفعالية وبصيانة أقل بكثير.
وإن أخذت شيئًا واحدًا من هذا المشروع، فخُذ عادة الإفصاح لا محرك البحث. أداة تخبرك أن أرقامها منفوخة تستحق انتباهًا أكثر من أداة تخبرك أنها أفضل بأربعين مرة.
مقالات ذات صلة
الخمسة الكبار يستخدمون الذكاء الاصطناعي بصمت في تصميم أغلفة الكتب
كشفت «ويرد» أن ثلاثًا من كبرى دور النشر الأميركية تولّد أغلفة ونصوص بيع بالذكاء الاصطناعي دون إفصاح أو استشارة المؤلفين.
Character.AI تطلب الحماية من الإفلاس... و«ديزني» تعرض 20 مليون دولار
Character.AI تطلب الحماية من الإفلاس، وديزني تدخل بعرض مرجعي قيمته 20 مليون دولار لأصول مختارة وترخيص براءات فقط. من جولة 150 مليون دولار لم يبقَ سوى براءات.
كفى تعليمًا للوكلاء كيف ينظرون إلى الشاشة: CLI-Anything يمنح كل برنامج سطر أوامر
لا حاجة لتعليم الوكلاء النظر إلى الشاشة. يولّد CLI-Anything في سبع مراحل واجهات أوامر مختبَرة وموثّقة لبرامج مثل GIMP وBlender وLibreOffice، ويكتبها الوكيل فقط.
حوّل Claude Code إلى خطّ إنتاج للتوظيف: 69 طلبًا و20 مقابلة
إطار برخصة MIT يحوّل Claude Code إلى خطّ إنتاج لطلبات التوظيف: 69 طلبًا و20 مقابلة. المثير ليس الكتابة، بل الفحص: الترجمة، وقراءة PDF، واجتياز ATS.