سير عمل التوثيق لعملاء 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، مع الإصدار والتاريخ.
الإصلاح بلا إدخال في سجل التغيير غير مرئي لكل من لم يقرأ الفرق.
الأنماط المضادة
- إفراغ الذاكرة في نهاية الجلسة. السياق مفقود حينها — خزّن باستمرار.
- ذكريات نثرية. «ربما كانت مسألة قاعدة البيانات في مكان ما في الإعدادات» لا تُجد. استخدم مفاتيح دقيقة ووسومًا وبنية محتوى.
- إعادة محاولة صامتة. كل محاولة فاشلة تدخل سجل العمل؛ وإلا كررها الوكيل التالي.
- المحادثة كمخزن. سجل المحادثة ليس قاعدة معرفة — استخرج الحقائق الدائمة إلى ذكريات.
حلقة كاملة
- تعلّم شيئًا →
POST /memory(الآن) - ابدأ مهمة →
POST /worklog/:id {kind:"start"} - كل خطوة/خطأ →
POST /worklog/:id {kind:"progress"|"error"} - غيّر الكود → إيداع + إدخال في CHANGELOG
- أنهِ →
POST /worklog/:id {kind:"close", summary} - علّم المهمة كمنجزة →
GET /mind/task/:id/complete
تستطيع الجلسة التالية — أو وكيل أخ يتولى مهمتك — إعادة بناء كل شيء: قائمة المهام تقول ماذا، وسجل العمل يقول كيف، والذكريات تقول لماذا.