إنتقل إلى المحتوى الرئيسي

الذاكرة

ذاكرة EstaCoda هي سياق دائم محفوظ في ملفات. تساعد الجلسات اللاحقة على تذكر التفضيلات المراجعة، وحقائق المشروع، والملاحظات التي نظمها المشغل.

الذاكرة ليست طبقة سلطة مخفية. تعليمات النظام، وتعليمات المطور، وتعليمات المستودع، وAGENTS.md، وسياسة الأمان، وطلب المستخدم الحالي تبقى أعلى أولوية.

استخدم هذه الصفحة لمعرفة ما الذي يمكن حفظه، وأين يعيش، وكيف تعمل الترقية، وكيف تفحص الذاكرة أو تصلحها.


ما هي الذاكرة

لدى EstaCoda عدة مخازن مرتبطة بالذاكرة. ليست كلها الشيء نفسه.

المخزنالمكانالغرض
تاريخ الجلساتقاعدة بيانات الجلساتالأدوار والأحداث السابقة. يستخدم للنصوص، والاسترجاع، وأدلة الترقية.
ذاكرة الملف الشخصي~/.estacoda/profiles/<id>/USER.md, MEMORY.md, SOUL.mdسياق دائم لملف شخصي واحد.
ذاكرة المشروع/مساحة العملغالبًا MEMORY.md مع سياق المستودع مثل AGENTS.mdحقائق المشروع، والاتفاقيات، وملاحظات سير العمل.
الذاكرة المشتركة~/.estacoda/memory/shared/مقتطفات عامة متاحة عبر الملفات الشخصية.
بيانات الترقية~/.estacoda/profiles/<id>/promotions.jsonتتبع الحقائق المرقاة، وحالتها، وجلسات المصدر، والثقة.

AGENTS.md ليس ملف ذاكرة. هو سياق تعليمات لمساحة العمل. لا ترفعه أدوات الذاكرة، ولا تضغطه، ولا تعدله.


ما ليست عليه الذاكرة

الذاكرة لا تفعل الآتي:

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

استرجاع الجلسات والاسترجاع الخارجي سياق مرجعي غير موثوق. ملفات الذاكرة المنظمة أقوى من الاسترجاع، لكنها ما زالت أدنى من التعليمات الحالية وسياسة الأمان.


ملفات الملف الشخصي

تعيش ذاكرة الملف الشخصي تحت:

~/.estacoda/profiles/<id>/

الملفات المهمة:

الملفالغرضالميزانية الافتراضية
USER.mdتفضيلات المستخدم وأسلوب التواصل1,375 حرفًا
MEMORY.mdحقائق المشروع وسير العمل والعمليات الدائمة2,200 حرف
SOUL.mdإرشادات الهوية والسلامةقابلة للتكوين
promotions.jsonبيانات الترقيةلا ميزانية Markdown

تعيش الذاكرة المشتركة تحت:

~/.estacoda/memory/shared/

ترتيب الذاكرة في الموجه:

memory/shared/ -> USER.md -> SOUL.md -> MEMORY.md

كيف تعمل الترقية

الترقية حتمية. تعمل بعد الدور، وتنظر فقط إلى إدخال المستخدم المباشر في الدور الحالي مع أدلة مطابقة من جلسات جذرية سابقة.

يمكن أن تنشئ الترقية:

المحتوى المرقىالوجهة
تفضيلات مستخدم متكررةUSER.md
حقائق مشروع متكررةMEMORY.md

يمرر وقت التشغيل input.text الأصلي إلى الترقية. النص الموسع للاستئناف وscaffolding وقت التشغيل لا يدخلان مسار الترقية.

تحتاج الترقية إلى:

  1. أن يحتوي إدخال المستخدم المباشر الحالي على مرشح مدعوم.
  2. أن توجد جلستان جذريتان سابقتان على الأقل فيهما المرشح الحتمي نفسه.
  3. أن تكون الرسائل التاريخية المطابقة من دور المستخدم.
  4. أن ينجح المحتوى في فحص السلامة وميزانية ملف الذاكرة.

الجلسات الفرعية مستبعدة من أدلة الترقية. العمل المفوض قد يكون سياقًا مفيدًا، لكنه لا يعلّم تفضيلات دائمة بمفرده.


ما الذي يمكن ترقيته

أنماط تفضيلات المستخدم ضيقة عمدًا.

أمثلة إنجليزية:

الإدخالالذاكرة المرقاة
I prefer TypeScriptPrefer TypeScript.
I'd prefer TypeScriptPrefer TypeScript.
My preference is TypeScriptPrefer TypeScript.
We prefer TypeScriptPrefer TypeScript.
Default to TypeScriptPrefer TypeScript.
Use TypeScript by defaultPrefer TypeScript.
Please switch to TypeScript by defaultPrefer TypeScript.
I prefer concise repliesPrefer concise replies.

أمثلة عربية:

الإدخالالذاكرة المرقاة
أفضل TypeScriptPrefer TypeScript.
أفضّل TypeScriptPrefer TypeScript.
افضل TypeScriptPrefer TypeScript.
استخدم pnpm افتراضياًPrefer pnpm.
استخدم pnpm افتراضياPrefer pnpm.
استخدم pnpm كافتراضيPrefer pnpm.
خلّي الردود مختصرةPrefer concise replies.
خلي الردود مختصرةPrefer concise replies.
خلّي الردود مفصلةPrefer detailed replies.
خلي الردود مفصلةPrefer detailed replies.

قيم التفضيل العربية المختلطة تقبل فقط رموزًا تقنية محدودة، مثل:

  • TypeScript
  • pnpm test
  • ~/.estacoda/foo
  • GPT-5

هذا يحافظ على حالة الأحرف، والمسافات، والمسارات، وأسماء المزود/النموذج حيث تكون مدعومة. عبارات اللغة الطبيعية مثل أفضل لغة آمنة أو استخدم careful release notes كافتراضي لا تترقى.

ترقية حقائق المشروع منفصلة عن تفضيلات المستخدم. أمثلة:

الإدخالالذاكرة المرقاة
project uses TypeScriptProject uses TypeScript.
run tests with pnpm testRun tests with pnpm test.
foo is stored under ~/.estacoda/fooFoo is stored under ~/.estacoda/foo.

ما الذي لا يترقى

هذه المدخلات لا تصلح كدليل ترقية:

  • النص المقتبس أو المحاط بـ backticks
  • كتل الكود
  • الفقرات العرضية الطويلة
  • ملاحظات المساعد
  • مخرجات الأدوات
  • نص السير الذاتية
  • النص المفوض أو نص الجلسات الفرعية
  • النص الذي يشبه حقن الموجهات
  • النص الذي يشبه الأسرار
  • النص الذي يحتوي أحرف تحكم غير مرئية أو ثنائية الاتجاه

أمثلة لا تترقى:

Please summarize this: "I prefer concise replies."
The attached resume says: "I prefer concise replies."
Agent note: I prefer concise replies.
Earlier assistant said: "User prefers concise replies."
لخّص هذا: "أفضل TypeScript"
لخّص هذا: «أفضل TypeScript»
ملاحظة الوكيل: أفضل TypeScript
السيرة تقول: أفضل TypeScript
قال المساعد سابقاً: المستخدم يفضل TypeScript

عبارات إنجليزية قريبة لكنها غير مدعومة:

I like TypeScript
It would be nice if TypeScript
Maybe use TypeScript
Could you use TypeScript
Can we use TypeScript
For this one, use TypeScript
Try TypeScript
Switch to TypeScript

التعارض والنسيان

بعض فئات التفضيلات حصرية عمدًا:

الفئةأمثلة
تفصيل الردودPrefer concise replies., Prefer detailed replies.
لغة افتراضيةPrefer TypeScript., Prefer JavaScript.
أمر الاختبارPrefer pnpm test., Prefer npm test.
مدير الحزمPrefer pnpm., Prefer npm.
أسلوب الكودAlways use strict mode., Always use semicolons.

عند ترقية تفضيل نشط جديد داخل إحدى هذه الفئات، يستبدل التفضيل النشط القديم في الفئة نفسها. التفضيلات غير المرتبطة تتعايش.

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

لنسيان تفضيل مرقى، استخدم طلب نسيان مباشرًا مثل:

forget that i prefer concise replies

إذا وجد التفضيل النشط، تضع EstaCoda علامة forgotten عليه في promotions.json وتحذف السطر المقابل من USER.md.


سلامة الكتابة

كتابات الذاكرة تمر بفحوصات قبل الحفظ.

يرفض المسار:

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

قد تطابق عبارة عربية مثل استخدم OPENAI_API_KEY كافتراضي الصيغة الحتمية، لكن مسار provider/store يرفضها قبل الحفظ.

تستخدم كتابات الذاكرة استبدالًا ذريًا: تكتب ملفًا مؤقتًا في الدليل الهدف ثم تعيد تسميته. إذا فشلت الكتابة، يبقى الملف السابق.

الحفظ واع بالانحراف. قبل الكتابة، تقارن الخدمة ملف القرص الحالي بالنسخة التي حُملت سابقًا. إذا عدلته عملية أخرى، ترفض EstaCoda الكتابة افتراضيًا.

إذا فشلت خطوة لاحقة في الترقية، يتراجع المسار عن Markdown وعن promotions.json معًا.

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


فحص الذاكرة

ابدأ بقراءة/بحث CLI:

estacoda memory read USER.md
estacoda memory read MEMORY.md
estacoda memory search <query>
estacoda memory read shared <key>

SOUL.md محمي. اقرأه فقط بعلم صريح:

estacoda memory read SOUL.md --include-protected

لإصلاح الحالة، افحص الملفات مباشرة:

ls ~/.estacoda/profiles/<id>/
sed -n '1,160p' ~/.estacoda/profiles/<id>/USER.md
sed -n '1,160p' ~/.estacoda/profiles/<id>/MEMORY.md
sed -n '1,160p' ~/.estacoda/profiles/<id>/promotions.json

لا تعدل promotions.json بلا مراجعة. هو يتتبع الترقيات النشطة، والمستبدلة، والمنسية.


تعديل الذاكرة بأمان

ملفات الذاكرة Markdown عادي. أوقف وقت التشغيل قبل التعديل اليدوي عندما يكون ذلك ممكنًا:

$EDITOR ~/.estacoda/profiles/<id>/USER.md
$EDITOR ~/.estacoda/profiles/<id>/MEMORY.md

استخدم سطرًا واحدًا لكل حقيقة أو تفضيل دائم. أبق المدخلات قصيرة وقابلة للمراجعة.

انسخ الملفات قبل التعديلات الكبيرة:

cp ~/.estacoda/profiles/<id>/USER.md ~/.estacoda/profiles/<id>/USER.md.bak
cp ~/.estacoda/profiles/<id>/MEMORY.md ~/.estacoda/profiles/<id>/MEMORY.md.bak

إذا حذفت سطرًا مرقى يدويًا، افحص promotions.json أيضًا. يفضل استخدام طلب النسيان الصريح لتبقى metadata وMarkdown متطابقين.


الاسترجاع اللفظي المحلي

قراءة/بحث الذاكرة المحلي هو استرجاع لفظي حتمي فوق ملفات الذاكرة صاحبة السلطة. ليس استرجاعًا دلاليًا ولا بحث vectors.

الفهرس القابل لإعادة البناء يعيش تحت حالة الملف الشخصي:

<profile-state-dir>/memory-index.sqlite

حذف هذا الملف لا يحذف USER.md، أو SOUL.md، أو MEMORY.md، أو الذاكرة المشتركة، أو promotions.json.

أصلح الفهرس عبر:

estacoda memory index path
estacoda memory index status
estacoda memory index rebuild

إذا كان الفهرس معطلًا أو مفقودًا، يمكن أن يرجع memory.read وmemory.search وCLI إلى قراءة ملفات محدودة أو بحث substring حيثما أمكن.


ذاكرة نتائج التفويض

ذاكرة نتائج التفويض منفصلة عن استرجاع نصوص الجلسات الفرعية. هي معطلة افتراضيًا تحت delegation.outcomeMemory.enabled.

عند تفعيلها، تسجل metadata محدودة مثل معرف جلسة الأب، ومعرف جلسة الطفل، والدور، والعمق، وفهرس المهمة، والحالة، والسبب، والطابع الزمني، واستخدام الرموز، ومعاينة محدودة للمهمة.

لا تخزن مخرجات الطفل الخام، أو prompts، أو transcripts، أو tool arguments، أو محتوى الملفات، أو diagnostic payloads، أو credentials. وتبقى نصوص الجلسات الفرعية مستبعدة من أدلة الترقية.


ضغط الجلسات وضغط ملفات الذاكرة

ضغط الجلسة وضغط ملف الذاكرة عمليتان مختلفتان.

العمليةما الذي تغيره
ضغط الجلسةتاريخ الجلسة الأقدم. ينتج ملخصات تاريخية غير موثوقة.
ضغط ملف الذاكرةUSER.md أو MEMORY.md. ينتج محتوى بديلًا بعد الفحوصات.

ضغط ملف الذاكرة يستخدم route المساعد memory_compaction، ويدعم dryRun، وينشئ نسخة احتياطية مؤرخة قبل التطبيق. لا يضغط SOUL.md، أو AGENTS.md، أو الذاكرة المشتركة، أو تاريخ الجلسة، أو promotions.json.


الذاكرة الخارجية

الذاكرة الخارجية معطلة افتراضيًا. المزود المنفذ مبني على الملفات ومحلي للملف الشخصي تحت:

~/.estacoda/profiles/<id>/external-memory/

الاسترجاع الخارجي سياق مرجعي غير موثوق. لا يمكنه استبدال USER.md، أو MEMORY.md، أو SOUL.md، أو الذاكرة المشتركة، أو promotions.json، أو استرجاع الجلسات.


استكشاف الأخطاء

العرضالسبب المحتملأول فحص
تفضيل متوقع لم يترقظهر في أقل من جلستين جذريتين سابقتين، أو استخدم صيغة غير مدعومة، أو ظهر فقط في نص مفوض/مقتبس/سيرةافحص تاريخ الجلسات الجذرية وشكل العبارة
عبارة عربية أو مختلطة لم تترقالقيمة لغة طبيعية وليست رمزًا تقنيًا مدعومًا، أو تحتوي أحرف bidi/invisibleجرب أفضل TypeScript أو استخدم pnpm test افتراضياً
ظهرت ذاكرة خاطئةقد تختلف metadata النشطة عن Markdown، أو بقيت ترقية قديمة نشطةافحص USER.md وMEMORY.md وpromotions.json
تغير ملف الذاكرة خارجيًارفض drift detection الكتابةأعد تشغيل وقت التشغيل أو صالح التعديل اليدوي
فشلت كتابة الذاكرةرفض الماسح، أو تجاوز الميزانية، أو drift، أو خطأ حفظافحص التشخيصات وحجم الملفات؛ اضغط أو حرر الذاكرة عند الحاجة
لم يحفظ محتوى يشبه سرًارفضه ماسح السلامةضع الاعتمادات في .env أو مخزن أسرار، لا في الذاكرة
البحث في الفهرس قديمالفهرس اللفظي المشتق قديمشغل estacoda memory index rebuild

عند فحص الترقية، ابدأ بإدخال المستخدم المباشر الحالي، ثم رسائل المستخدم في الجلسات الجذرية المطابقة، ثم promotions.json.


مرتبطات