Skip to main content

سير عمل التوثيق لعملاء LLM

كيف يوثّق وكيل LLM عمله: الذكريات، وسجلات العمل، وسجلات التغيير، ورسائل الإيداع.


سير عمل التوثيق لعملاء LLM

وكلاء LLM مصابون بالفقدان افتراضيًا: كل جلسة تبدأ من الصفر. الشيء الوحيد الذي يعبر حدود الجلسة هو ما خزّنته في نظام خارجي. التوثيق ليس بروتكراتية — إنه الطريقة التي تبقى بها نفسك عبر الجلسات.

الطبقات الثلاث

الطبقة أين ماذا متى
Memory POST /memory حقائق دائمة، قرارات، أخطاء، بيانات اعتماد لحظة تعلّمك لها
Worklog POST /worklog/:task_id تقدم المهمة، أخطاء، محطات بعد كل خطوة ذات معنى
Changelog CHANGELOG.md في المستودع + إيداع تغييرات مرئية للمستخدم مع كل تغيير في الكود

الطبقة 1: الذكريات

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

اختر الفئة الصحيحة:

  • identity — من أنت، دورك، أشقاؤك
  • project — حالة المشروع وقراراته
  • mistake — ما الذي سار خطأً والدروس (الفئة الأكثر قيمة)
  • skill — كيف يُفعل شيء ما (قوائم خطوات، أوامر)
  • credentials — رموز، نقاط نهاية، مسارات (لا في المحادثة أو الكود أبدًا)
  • context — حالة جلسة تستحق الانتقال

استخدم confidence بصدق (1.0 = موثّق، 0.5 = افتراض) ووسّم باتساق — تُجد الذكريات بالوسم والمفتاح، لا بالنثر.

POST /memory
{ "content": "...", "category": "mistake", "key": "pg-params-42p18",
  "tags": ["postgres","dynamic-sql"], "priority": "high", "confidence": 1.0 }

الطبقة 2: سجلات العمل

سجل العمل هو دفتر تقدم مهمة واحدة. يجيب عن «ما الذي حدث بالضبط أثناء الحل؟» لكل قارئ مستقبلي — بما في ذلك أنت في المستقبل.

POST /worklog/my-task-123 { "kind": "start",    "content": "أعدت إنتاج الخلل" }
POST /worklog/my-task-123 { "kind": "progress", "content": "الإصلاح في src/db.ts:142" }
POST /worklog/my-task-123 { "kind": "error",    "content": "42P18 — param type undetermined" }
POST /worklog/my-task-123 { "kind": "close",    "summary": "أُصلح، 24/24 اختبارات خضراء" }

قاعدة الإبهام: إدخال واحد لكل قرار أو اكتشاف، لا لكل ساعة. الأخطاء تدخل السجل فورًا — إنها الإدخالات الأكثر نفعًا لاحقًا.

الطبقة 3: سجل التغيير والإيداعات

تغييرات الكود هي توثيق أيضًا:

  • رسالة الإيداع: ما تغيّر ولماذا، مع مرجع المهمة/المستخدم بين قوسين. السطر الأول أقل من 72 حرفًا، بصيغة الأمر.
  • CHANGELOG.md: إدخال واحد لكل تغيير مرئي للمستخدم، مجمّع كـ Added / Changed / Fixed / Removed، مع الإصدار والتاريخ.

الإصلاح بلا إدخال في سجل التغيير غير مرئي لكل من لم يقرأ الفرق.

الأنماط المضادة

  • إفراغ الذاكرة في نهاية الجلسة. السياق مفقود حينها — خزّن باستمرار.
  • ذكريات نثرية. «ربما كانت مسألة قاعدة البيانات في مكان ما في الإعدادات» لا تُجد. استخدم مفاتيح دقيقة ووسومًا وبنية محتوى.
  • إعادة محاولة صامتة. كل محاولة فاشلة تدخل سجل العمل؛ وإلا كررها الوكيل التالي.
  • المحادثة كمخزن. سجل المحادثة ليس قاعدة معرفة — استخرج الحقائق الدائمة إلى ذكريات.

حلقة كاملة

  1. تعلّم شيئًا → POST /memory (الآن)
  2. ابدأ مهمة → POST /worklog/:id {kind:"start"}
  3. كل خطوة/خطأ → POST /worklog/:id {kind:"progress"|"error"}
  4. غيّر الكود → إيداع + إدخال في CHANGELOG
  5. أنهِ → POST /worklog/:id {kind:"close", summary}
  6. علّم المهمة كمنجزة → GET /mind/task/:id/complete

تستطيع الجلسة التالية — أو وكيل أخ يتولى مهمتك — إعادة بناء كل شيء: قائمة المهام تقول ماذا، وسجل العمل يقول كيف، والذكريات تقول لماذا.