تفعيل دعم LLMs.txt الأصلي في Discourse

:bookmark: يشرح هذا الدليل كيفية جعل مجتمعك قابلاً للاكتشاف والاستخدام بواسطة وكلاء الذكاء الاصطناعي (AI agents) ومحركات الزحف الخاصة بنماذج اللغة الكبيرة (LLM) من خلال معيار llms.txt. يتناول هذا الدليل كلًا من المستند الافتراضي الذي يتم إنشاؤه تلقائيًا والملفات المخصصة التي يتم رفعها يدويًا.

:person_raising_hand: مستوى المستخدم المطلوب: مدير (Administrator)

ملخص

توفر Discourse دعمًا أصليًا لمعيار llms.txt، وهو اتفاقية مقترحة لتقديم نظرة عامة على الموقع تكون صديقة لنماذج اللغة الكبيرة. فكّر فيه على أنه “robots.txt للذكاء الاصطناعي”: ملف Markdown صغير يقع في المسار /llms.txt يساعد نماذج اللغة الكبيرة (LLMs) ووكلاء الذكاء الاصطناعي على فهم موضوع موقعك وكيفية الوصول إليه بشكل مسؤول.

يمكنك الاختيار بين نهجين، أو دمج بينهما:

  1. دع Discourse يولّد مستندًا افتراضيًا تلقائيًا من إعدادات موقعك
  2. ارفع ملف llms.txt مخصصًا خاصًا بك للتحكم الكامل في المحتوى

يتم دائمًا تفضيل الرفع المخصص على المستند المولّد تلقائيًا.

ما هو llms.txt؟

llms.txt هو معيار مقترح يوفر خريطة منظمة ومُصممة لتكون صديقة للوكلاء (agents) لموقع ويب. يُقدَّم هذا الملف في جذر الموقع (/llms.txt) ويتبع تنسيق Markdown دقيقًا:

  • عنوان H1 يحمل اسم الموقع (القسم الوحيد الإلزامي)
  • اقتباس (blockquote) يحتوي على ملخص قصير
  • أقسام Markdown اختيارية تتضمن تفاصيل أكثر
  • أقسام مفصولة بعناوين H2 تحتوي على قوائم من الروابط المفيدة

على عكس sitemap.xml الذي يدرج الصفحات لمحركات البحث، فإن llms.txt هو نظرة عامة موجزة مصممة لتناسب نافذة سياق نموذج اللغة الكبيرة (LLM context window). التفاصيل موجودة خلف الروابط، والتي يتم جلبها فقط عند الحاجة.

بدءًا من Discourse v2026.1.0، يمكن لـ Discourse تقديم llms.txt من جذر الموقع.

كيف تقدم Discourse ملف /llms.txt

تعامل Discourse مع الطلبات الموجهة إلى /llms.txt بالترتيب التالي:

  1. إذا قمت برفع ملف مخصص، فإن Discourse يقدمه دون تغيير كـ text/plain
  2. إذا لم يتم رفع ملف مخصص وكان الافتراضي المولّد مفعلاً، فإن Discourse يولّد المستند ويقدمه
  3. وإلا، يعيد Discourse رسالة خطأ 404

المستند المولّد تلقائيًا متطابق للزوار غير المسجلين والمستخدمين المسجلين، ولا يتأثر بتحويلات login required (تسجيل الدخول مطلوب).

المستند الافتراضي المولّد تلقائيًا

عندما لا يتم رفع ملف مخصص وكانت الميزة مفعّلة، يبني Discourse مستندًا موجزًا باستخدام الإعدادات الحالية لموقعك واللغة الافتراضية للموقع. يتضمن المستند:

  • عنوان الموقع (من إعداد title)، مع استخدام اسم النطاق (hostname) كبديل احتياطي
  • اقتباس ملخص باستخدام site_description الخاص بك، أو short_site_description كبديل احتياطي
  • سياسة مجتمع بشرية تنص على أن الموقع مخصص للنقاش البشري، وأن على الوكلاء (agents) الكتابة فقط عندما يطلب منهم ذلك صراحةً من قِبل شخص
  • سياسة وصول الوكلاء تطلب من الوكلاء جلب ما يحتاجون إليه فقط، واحترام robots.txt وإعدادات التحكم في الزحف، والالتزام برسالة HTTP 429 مع فترة Retry-After
  • مرجع Discourse MCP، يشير الوكلاء إلى خادم Discourse MCP كواجهة مفضلة ومدركة للصلاحيات
  • قسم واجهة الوكيل المفضلة مع رابط إعداد Discourse MCP
  • قسم الوصول إلى الويب العام مع روابط إلى /search، /filter، /latest، و/categories، بالإضافة إلى /sitemap.xml عندما يكون إعداد enable_sitemap مفعلاً
  • قسم اختياري مع روابط إلى /about، /guidelines، /tos، و/privacy

إذا كان موقعك يحتوي على تفعيل login_required، يضيف المستند ملاحظة تفيد بأن المحتوى متاح فقط للأعضاء الموثقين ويحذف روابط الاكتشاف العام المذكورة أعلاه. الروابط واعية بمسار الأساس (base-path)، لذا تعمل بشكل صحيح في التثبيتات الفرعية (subfolder installs).

يمكنك الاطلاع على الإعلان ومناقشة القالب المولّد تلقائيًا في Automatically generated llms.txt. حاليًا، يقدم موقع Meta نفسه ملفًا مخصصًا خاصًا بالموقع.

تفعيل المستند الافتراضي المولّد تلقائيًا

يتم تسليم المستند الافتراضي المولّد تلقائيًا من خلال نظام التغييرات القادمة كتغيير تجريبي (beta) يمكن للمديرين اختيار تفعيله أو تعطيله.

  1. انتقل إلى الإدارة → الإعدادات → التغييرات القادمة (Admin → Configure → Upcoming Changes)، أو زُر /admin/config/upcoming-changes
  2. ابحث عن التغيير الذي يولّد /llms.txt افتراضيًا عندما لا يتم رفع ملف مخصص
  3. في قائمة مفعّل لـ (Enabled for)، اختر الجميع (Everyone) لتفعيله لجميع الزوار
  4. لتعطيله، اختر لا أحد (No one)

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

رفع ملف llms.txt مخصص

إذا كنت تفضل التحكم الدقيق في المحتوى، يمكنك رفع ملفك الخاص.

  1. جهّز ملف llms.txt بتنسيق .txt أو .md (الحجم الأقصى للملف هو 512 ك.ب)
  2. انتقل إلى الإدارة → الإعدادات → الأمان (Admin → Settings → Security)، أو زُر /admin/config/security، وابحث عن LLMs TXT
  3. ارفع ملفك واحفظ الإعدادات

بمجرد الإعداد، تقدم Discourse ملفك دون تغيير في:

https://yourforum.com/llms.txt

راجع llmstxt.org للحصول على إرشادات حول الصياغة والتنسيق. يستبدل الرفع المخصص دائمًا المستند المولّد تلقائيًا. للاطلاع، يمكنك عرض ملف Meta.

التحقق من إعدادك

يمكنك التحقق مما سيراه الوكلاء من خلال طلب الملف في متصفح الويب أو باستخدام curl:

curl https://yourforum.com/llms.txt

أفضل الممارسات

  • حافظ على الملف موجزًا. llms.txt هو خريطة وليس قائمة شاملة (manifest)؛ كل رمز (token) يكلف مساحة من السياق، والملف الضخم يؤدي إلى خلط الوكلاء ونتائج أسوأ
  • قدّم المستند الافتراضي المولّد تلقائيًا فقط إذا كان محتواه يتوافق مع سياساتك. إذا كنت بحاجة إلى صياغة مختلفة، انسخ النص المولّد تلقائيًا، عدّله ليناسب مجتمعك، وارفعه كملف مخصص
  • هيكل الملفات المخصصة وفقًا للمواصفة: عنوان H1، اقتباس ملخص، ثم أقسام H2 مع قوائم روابط، مع استخدام قسم Optional (اختياري) للروابط الثانوية
  • ادمج llms.txt مع إعدادات التحكم في الزحف. لضبط الوصول الآلي، قم بإعداد خيارات slow_down_crawler_user_agents وslow_down_crawler_rate (الإدارة → الإعدادات → الأمان)
  • تذكر أن llms.txt يصف موقعك، بينما يتحكم robots.txt في الوصول. لكل منهما غرض مختلف ويتكاملان معًا

مشاكل شائعة وحلولها

أحصل على خطأ 404 في /llms.txt

يحدث هذا عندما لا يتم رفع ملف مخصص ولم يتم تفعيل المستند الافتراضي المولّد تلقائيًا. ارفع ملفًا مخصصًا، أو فعّل الافتراضي المولّد تلقائيًا في الإدارة → التغييرات القادمة، أو افعل الأمرين معًا.

أستخدم إضافة (plugin) لتوليد llms.txt وتوقف الملف الرئيسي عن العمل

يقدّم Discourse الأساسي مسار /llms.txt، لذا فهو له الأولوية على الإضافات التي تولّده. إذا كنت تعتمد على الملفات المولّدة ديناميكيًا بواسطة الإضافة (مثل فهرس كامل للمواضيع)، فإن حلًا عمليًا هو رفع ملف llms.txt مخصص بسيط يشير الوكلاء إلى المحتوى المولّد بواسطة الإضافة، على سبيل المثال:

# [عنوان موقعك]

Go to https://yourforum.com/llms-full.txt

تقوم الإضافة أيضًا بتوليد ملفات لكل تصنيف، وكل موضوع، وكل وسم، والتي لا تتأثر بهذا التغيير.

رفعت ملفًا لكن /llms.txt يعيد 404

إذا تعذر قراءة الملف المرفوع من التخزين (على سبيل المثال، إذا كان مفقودًا من مخزن كائنات خارجي)، تعيد Discourse خطأ 404 ولا تعود إلى المستند المولّد تلقائيًا. أعد رفع الملف لحل هذه المشكلة.

يتطلب موقعي تسجيل الدخول، فكيف يعمل هذا؟

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

الأسئلة الشائعة

هل يقوم Discourse تلقائيًا بتضمين جميع مواضيعي في llms.txt؟

لا يقصد المستند الافتراضي المولّد تلقائيًا إدراج المواضيع الفردية. إنه خريطة minimale تصف موقعك، وتحدد سياسات الوصول، وتوجه الوكلاء إلى واجهة Discourse MCP وبعض مسارات الاكتشاف.

ما هي لغة المستند المولّد تلقائيًا؟

يتم توليده بلغة موقعك الافتراضية (إعداد default_locale)، بغض النظر عن لغة الطلب.

هل يمكنني الانسحاب (Opt out)؟

نعم. عيّن التغيير إلى لا أحد في الإدارة → التغييرات القادمة. بديلًا عن ذلك، ارفع ملفًا مخصصًا بمحتواك الخاص.

لماذا يصف المستند المولّد تلقائيًا Discourse MCP؟

يوفر خادم Discourse MCP أدوات مدركة للصلاحيات للمواضيع، والمشاركات، والبحث، والمستخدمين، والتصنيفات، والإجراءات المدعومة للمجتمع. إنه الطريقة المفضلة للوكلاء للتعامل مع مجتمعك، لذا يتم تضمين رابط إعداد MCP محلي في قسم “واجهة الوكيل المفضلة” عندما يكون متاحًا.

موارد إضافية

14 إعجابًا

أليس من الممكن أن يقوم Discourse بإنشاء ملف llms.txt ديناميكيًا للموقع؟ يبدو أن هذه ستكون ميزة أكثر فائدة بكثير، وستجعلها متوافقة مع 🤖 Discourse llms.txt Generator Plugin - #2 by Ivan_Rapekas التي تتعارض هذه الميزة الجديدة معها، حيث تتجاوز المسار /llms.txt وتعيد خطأ 404 حتى لو كانت الإضافة مُهيأة بشكل صحيح.

هل هذه الإضافة على خارطة الطريق في مكان ما؟

5 إعجابات

كانت حليتي المؤقتة لهذه المشكلة كالتالي:

  • قم بإنشاء ملف llms.txt في VS Code يحتوي فقط على

    انتقل إلى [https://<YOUR-BASEURL>/llms-full.txt](https://<YOUR-BASEURL>/llms-full.txt)
    
  • ارفع هذا الملف إلى قسم llms.txt الأساسي في Discourse الموجود في admin/config/security?filter=LLMs%20TXT. احفظ التغييرات.

  • اختبر أن رابط https://<YOUR-BASEURL>/llms.txt يعرض محتويات ملف النص أعلاه.

  • الآن، نأمل أن يتم توجيه نماذج الذكاء الاصطناعي (LLMs) التي تصل إلى llms.txt للانتقال إلى llms-full.txt، والذي يتم إنشاؤه ديناميكيًا عبر 🤖 Discourse llms.txt Generator Plugin

إعجاب واحد (1)

تم تحديث الدليل ليعكس التغييرات المُعلَن عنها في ملف llms.txt المُولَّد تلقائيًا.

3 إعجابات