الدرس 05 · تخطيط

معرفة المجال محملة عند الطلب

「Don't put everything in the system prompt. Load on demand.」

⏱ ~10 د · 📝 3 مكونات تفاعلية · 🧑‍💻 مبني على shareAI-lab · s05_skill_loading.py

مأزق "موجه النظام الكامل"

لديك 20 مهارة، كل منها مكتوبة بالتفصيل: pdf-processing (كيفية قراءة PDF)، مراجعة الكود (قائمة مراجعة المراجعة)، git-workflow (إجراءات git شائعة الاستخدام)... طريقة بديهية: ضعها كلها في موجه النظام حتى يمكن الرجوع إلى النموذج في أي وقت.

النتيجة:

  • احرق 15-30 ألف رمز إدخال مميز لكل مكالمة (حتى لو كانت المشكلة لا تتطلب أي مهارات على الإطلاق).
  • تم تخفيف انتباه النموذج - سينخفض الالتزام بالقواعد المذكورة في موجه النظام الطويل.
  • قم بتغيير مهارة وسيتم إبطال ذاكرة التخزين المؤقت لجميع المحادثات التاريخية.

طريقة عمل s05 هي تقسيمها إلى طبقتين.

العمارة ذات المستويين

الطبقة الأولى · الرخيص: يتم وضع اسم المهارة ووصف مكون من جملة واحدة فقط في موجه النظام (حوالي 100 رمز مميز لكل منهما). 20 مهارة = 2 ألف رمز، مقبولة.

# قائمة المهارات في موجه النظام
المهارات المتاحة:
  - pdf: معالجة ملفات PDF. استخراج النص والجداول والبيانات الوصفية.
  - مراجعة الكود: قائمة المراجعة المنهجية للكود.
  - سير عمل git: أنماط تفرع git الشائعة وإعادة القاعدة.

الطبقة الثانية · عند الطلب: عندما يحتاج النموذج إلى استخدام مهارة معينة، اتصل بـ load_skill(name="pdf")، ويتم إدراج نص المهارة الكامل (ربما 5-10 آلاف رمز مميز) في السياق من خلال tool_result. لا يتم تحميل أي من الرموز المميزة للمهارات غير المستخدمة.

# tool_result تُرجع المهارة الكاملة
<اسم المهارة="pdf">
  الخطوة 1: استخدم pdfplumber لاستخراج...
  الخطوة 2: التعامل مع احتياطي التعرف الضوئي على الحروف عند الحاجة...
  الخطوة 3: هيكلة الإخراج كجدول تخفيض السعر...
</المهارة>

قارن تكاليف الرمز المميز

اختبره في سيناريو حقيقي. لنفترض أن لديك 20 مهارة وكل جسد لديه في المتوسط ​​3000 قطعة. يطرح المستخدم سؤالاً (مثل "إصلاح الخلل في واجهة تسجيل الدخول") - ربما لا يتطلب هذا السؤال أي مهارات.

تنسيق SKILL.md

تستخدم ملفات المهارات YAML frontmatter + body:

---
الاسم: pdf
الوصف: معالجة ملفات PDF. استخراج النص والجداول والبيانات الوصفية.
العلامات: وثيقة، تحليل
---

الخطوة 1: استخدم pdfplumber للاستخراج. التعامل مع التخطيطات متعددة الأعمدة...
الخطوة 2: بالنسبة لملفات PDF الممسوحة ضوئيًا، ارجع إلى التعرف الضوئي على الحروف (OCR) عبر tesseract...

المادة الأمامية مخصصة للطبقة الأولى (الاسم/الوصف/العلامات)، والنص مخصص للطبقة الثانية. طريقة الكتابة هذه مستوحاة من المدونات الثابتة (Jekyll، Hugo)، ويمكن للأشخاص الذين هم على دراية بها فهمها في لمحة.

تفاعلي

Widget 1 · الاقتصاد الرمزي · مقارنة بين معماريتين

اليسار: موجه النظام الكامل. على اليمين: بنية ذات مستويين. انظر إلى الرموز المتراكمة بعد 20 محادثة.

全塞 system prompt
System prompt: 60000 tokens
(20 × 3000 token 的 skill 全塞入)
× 对话次数: 1

总计: 60000 tokens
两层架构
System prompt: 2000 tokens
(20 个描述 × ~100 token 每个)
+ 按需加载的 skill body: 0 tokens
(每 5 次对话触发一次)

总计: 2000 tokens
1
省 0%
تفاعلي

Widget 2 · Frontmatter Parser · استخراج البيانات الوصفية للمهارة

أدخل SKILL.md واستخدم منطق تحليل المادة الأمامية YAML في s05 لمعرفة ما تحصل عليه الطبقة 1 والطبقة 2 على التوالي.

SKILL.md(可编辑)
Layer 1 · system prompt 里塞这个

          
Layer 2 · load_skill 时的 tool_result

          
تفاعلي

Widget 3 · قابلية الاكتشاف · لا يمكن العثور على النموذج إلا بعد كتابة وصف المهارة.

وصف الطبقة 1 هو الأساس لاختيار المهارات للنموذج. أعطيك 3 مجموعات من المقارنات، واختر المجموعة التي تتمتع بكتابة أفضل - بعض أساليب الكتابة ستجعل النموذج لا يجد هذه المهارة أبدًا.

答对 0 / 3