تخطَّ إلى المحتوى

الذاكرة المستقلة

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

معطّلة افتراضيًا. يمكن تفعيلها عبر /settings أو config.yml:

memories:
enabled: true

عند بدء الجلسة، إذا وُجد ملخص ذاكرة للمشروع الحالي، يتم حقنه في موجه النظام ككتلة إرشادات الذاكرة. يُوجَّه الوكيل إلى:

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

يمكن للوكيل قراءة ملفات الذاكرة مباشرةً باستخدام عناوين memory:// مع أداة read:

العنوانالمحتوى
memory://rootالملخص المضغوط المحقون عند بدء التشغيل
memory://root/MEMORY.mdمستند الذاكرة الكامل طويل المدى
memory://root/skills/<name>/SKILL.mdدليل مهارة مُنشأ
الأمر الفرعيالتأثير
viewعرض حمولة حقن الذاكرة الحالية
clear / resetحذف جميع بيانات الذاكرة والمصنوعات المُنشأة
enqueue / rebuildفرض تشغيل التجميع عند بدء التشغيل التالي

تُبنى الذكريات بواسطة خط أنابيب يعمل في الخلفية عند بدء التشغيل أو يُفعَّل يدويًا عبر الأمر المائل.

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

المرحلة الثانية — التجميع: بعد الاستخراج، تقرأ مرحلة نموذج ثانية جميع الاستخراجات لكل جلسة وتنتج ثلاثة مخرجات تُكتب على القرص:

  • MEMORY.md — مستند ذاكرة طويل المدى مُنسّق
  • memory_summary.md — النص المضغوط المحقون عند بدء الجلسة
  • skills/ — أدلة إجرائية قابلة لإعادة الاستخدام، كل منها في دليل فرعي خاص

تستخدم المرحلة الثانية قفلًا (lease) لمنع التشغيل المزدوج عند بدء عمليات متعددة في وقت واحد. تُحذف أدلة المهارات القديمة من التشغيلات السابقة تلقائيًا.

تُفحص جميع المخرجات بحثًا عن الأسرار قبل كتابتها على القرص.

يُحدَّد سلوك استخراج الذاكرة والتجميع بالكامل بواسطة ملفات موجهات ثابتة في src/prompts/memories/.

الملفالغرضالمتغيرات
stage_one_system.mdموجه النظام للاستخراج لكل جلسة
stage_one_input.mdقالب دور المستخدم الذي يغلف محتوى الجلسة{{thread_id}}، {{response_items_json}}
consolidation.mdموجه التجميع عبر الجلسات{{raw_memories}}، {{rollout_summaries}}
read_path.mdإرشادات الذاكرة المحقونة في الجلسات الحية{{memory_summary}}

تعتمد الذاكرة على نظام أدوار النماذج.

المرحلةالدورالغرض
المرحلة الأولى (الاستخراج)defaultاستخراج المعرفة لكل جلسة
المرحلة الثانية (التجميع)smolالتوليف عبر الجلسات

إذا لم يكن smol مُهيّأً، تعود المرحلة الثانية إلى دور default.

الإعدادالقيمة الافتراضيةالوصف
memories.enabledfalseمفتاح التشغيل الرئيسي
memories.maxRolloutAgeDays30لا تُعالج الجلسات الأقدم من هذا
memories.minRolloutIdleHours12تُتخطى الجلسات النشطة مؤخرًا أكثر من هذا
memories.maxRolloutsPerStartup64الحد الأقصى للجلسات المعالجة في بدء تشغيل واحد
memories.summaryInjectionTokenLimit5000الحد الأقصى لرموز الملخص المحقون في موجه النظام

تتوفر مفاتيح ضبط إضافية (التزامن، مدد القفل، ميزانيات الرموز) في الإعدادات للاستخدام المتقدم.

  • src/memories/index.ts — تنسيق خط الأنابيب، الحقن، معالجة الأوامر المائلة
  • src/memories/storage.ts — طابور المهام وسجل السلاسل المدعوم بـ SQLite
  • src/prompts/memories/ — قوالب موجهات الذاكرة
  • src/internal-urls/memory-protocol.ts — معالج عناوين memory://