نماذج اللغات الكبيرة عديمة الحالة بشكل افتراضي. يبدأ كل استدعاء لواجهة برمجة التطبيقات (API) من جديد. ينسى النموذج رسالتك الأخيرة بمجرد عودة الرد. هذا جيد لسؤال واحد. إنه ينكسر في اللحظة التي تقوم فيها ببناء وكيل.
يخطط الوكلاء، ويتصلون بالأدوات، ويعملون عبر العديد من الخطوات. إنهم بحاجة إلى أن يتذكروا. الذاكرة هي البنية التحتية التي تعمل على إصلاح هذا. إنه يحول النموذج عديم الجنسية إلى نظام يحتفظ بالسياق. يمكن لهذا النظام أن يتعلم من الخبرة ويتصرف بمرور الوقت.
ما هي ذاكرة الوكيل
الذاكرة هي أي آلية تحمل المعلومات عبر منطق النموذج. بعض منه يعيش داخل نافذة السياق. البعض منها يعيش في الخارج، في قواعد البيانات أو الأوزان النموذجية. يقوم كل نوع بتخزين فئة مختلفة من المعلومات لمدة مختلفة.
تختلف الذاكرة حسب الشكل والزمن. النموذج يعني بارامترية، مخزنة في الأوزان، أو غير بارامترية، مخزنة كنص. الوقت يعني المدى القصير أو الطويل. ترسم الأنواع السبعة أدناه هذين المحورين.
الأنواع السبعة لذاكرة الوكيل
1. في السياق / الذاكرة العاملة (قصيرة المدى): هذا هو كل ما يمكن للنموذج رؤيته حاليًا داخل نافذة السياق الخاصة به. ويتضمن موجه النظام والرسائل الحديثة ومخرجات الأداة وخطوات التفكير. فكر في الأمر على أنه ذاكرة الوصول العشوائي (RAM). إنه سريع وضروري، ولكنه مؤقت ومحدود الحجم. كل أنواع الذاكرة الأخرى تتنافس على المساحة هنا.
2. الذاكرة الدلالية (طويلة المدى): هذا مخزن مستمر للحقائق والتفضيلات ومعرفة المجال. يحتوي على إدخالات مثل “يفضل المستخدم بايثون على جافا سكريبت”. يتم فصل المعرفة عن وقت تعلمها. وهي موسوعة الوكيل المنظمة حول مستخدم أو موضوع ما.
3. الذاكرة العرضية (طويلة المدى): يؤدي هذا إلى تسجيل أحداث سابقة محددة ومحادثات كاملة وعمليات تشغيل المهام. ويسجل ما نجح وما فشل. يستخدمه الوكيل للتعلم من الخبرة. تقوم أنظمة مثل Reflexion وExpeL بكتابة التشريح اللفظي بعد الوفاة وتخزين الاستنتاجات للتشغيلات المستقبلية.
4. الذاكرة الإجرائية (طويلة المدى): هذه هي معرفة الوكيل بكيفية القيام بالأشياء. ويغطي المهارات وأنماط استخدام الأدوات وسير العمل والقواعد السلوكية. لا يقوم وكيل الدعم الذي يتعامل مع إعادة تعيين كلمة المرور المائة الخاصة به بإعادة تفسير سير العمل. يقوم بتنفيذ إجراء تم تعلمه بدلاً من ذلك.
5. الذاكرة الخارجية / الاسترجاعية (قصيرة المدى + طويلة المدى): هذه هي المعرفة المخزنة خارج النموذج في قاعدة بيانات المتجهات. يتم سحبها إلى السياق في وقت الاستدلال باستخدام بحث التشابه. يتم تطبيق RAG على سجل الوكيل أو المستندات. جودة الاسترجاع تصبح عنق الزجاجة بسرعة.
6. الذاكرة البارامترية (طويلة المدى): هذه هي المعرفة المخبوزة مباشرة في أوزان النموذج أثناء التدريب. إنه يحمل اللغة وأنماط التفكير والمعرفة العالمية العامة. النموذج لا يبحث عن أي شيء. أنه يولد من الجمعيات المستفادة. والمقايضة هي أن هذه الذاكرة يتم تجميدها في وقت التدريب.
7. الذاكرة المستقبلية (قصيرة المدى + طويلة المدى): هذه هي قدرة الوكيل على تذكر النوايا المستقبلية والأهداف المقررة. إنه يتتبع الأشياء التي خطط لها الوكيل ولكن لم ينفذها بعد. وهو أمر بالغ الأهمية لوكلاء التخطيط طويل الأفق ومتعدد الخطوات. وبدون ذلك، ينسى الوكيل التزاماته.
جنبًا إلى جنب: كيف يقارن السبعة
يعين الجدول أدناه كل نوع وفقًا لمقياسه الزمني وموقعه وتنفيذه النموذجي.
| نوع الذاكرة | الجدول الزمني | أين يعيش | ما يخزنه | التنفيذ المشترك |
|---|---|---|---|---|
| العمل / في السياق | قصير المدى | نافذة السياق | موجه، رسائل، مخرجات الأداة | مواطن في LLM |
| الدلالي | على المدى الطويل | متجر خارجي | الحقائق والتفضيلات ومعرفة المجال | ناقل قاعدة البيانات أو مخطط الملف الشخصي |
| عرضي | على المدى الطويل | متجر خارجي | الأحداث الماضية، تشغيل المهام، النتائج | Vector DB بالإضافة إلى سجلات الأحداث |
| إجرائية | على المدى الطويل | موجه أو الأوزان | المهارات، سير العمل، القواعد السلوكية | موجه النظام أو الضبط الدقيق |
| استرجاع / خارجي | كلاهما | قاعدة بيانات المتجهات | الوثائق وقطع التاريخ | خط أنابيب RAG |
| حدودي | على المدى الطويل | الأوزان النموذجية | المعرفة العالمية واللغة والتفكير | التدريب المسبق أو الضبط الدقيق |
| مأمول | كلاهما | متجر الدولة | النوايا المستقبلية والأهداف المقررة | قائمة انتظار المهام أو جدولة |
الشرح التفاعلي
حالات الاستخدام: أي ذاكرة تحل أي مشكلة؟
كل نوع يلبي حاجة منتج ملموس. خريطة الحاجة إلى الذاكرة.
- يستخدم مساعد الترميز داخل جلسة واحدة الذاكرة العاملة. فهو يتتبع الملفات المفتوحة والتعديلات الأخيرة في السياق. أغلق الجلسة وذهبت تلك الحالة.
- المساعد الشخصي الذي يتذكر أنك بحاجة إلى الذاكرة الدلالية. يقوم بتخزين “حساسية الغلوتين” ويتذكرها الأسبوع المقبل. الحقيقة تبقى عبر الجلسات.
- يحتاج وكيل الأبحاث الذي يتحسن بمرور الوقت إلى ذاكرة عرضية. ويشير إلى أن أقسام المخاطر هبطت بشكل جيد الشهر الماضي. إنه يكرر ما نجح ويتجنب ما فشل.
- يحتاج وكيل حجز السفر إلى ذاكرة إجرائية. إنه يعرف التدفق: ابحث عن الرحلات الجوية، وقارنها، واحجزها، وأكدها. التسلسل هو مهارة مكتسبة، وليس خطة جديدة.
- يحتاج برنامج chatbot للتوثيق إلى ذاكرة استرجاع. يقوم بتضمين المستندات وسحب الأجزاء ذات الصلة لكل استعلام. تبقى الإجابة مستندة إلى النص المسترد.
- يحتاج وكيل الأفق البعيد الذي يدير مشروعًا مدته أسبوع إلى ذاكرة مستقبلية. ويتذكر أن يرسل تقرير الجمعة. النية باقية حتى التنفيذ.
مثال مشترك: كل سبعة في وكيل واحد
فكر في وكيل مستقل لتحليل السوق. مهمة واحدة تمارس كل نوع من الذاكرة في وقت واحد.
توفر الذاكرة البارامترية المنطق الأساسي واللغة. تقوم ذاكرة الاسترجاع بسحب بيانات السوق الحالية من متجر المتجهات. توفر الذاكرة الدلالية تنسيق التقرير المفضل للمستخدم. تتذكر الذاكرة العرضية المصادر التي أثبتت موثوقيتها من قبل. تقود الذاكرة الإجرائية ترتيب الأقسام: الحجم، ثم المناظر الطبيعية، ثم المخاطرة. تقوم الذاكرة المرتقبة بجدولة مسودة المتابعة للأسبوع المقبل. تقوم الذاكرة العاملة بتجميع كل ذلك في السياق النشط.
قم بإزالة أي طبقة واحدة وسيصبح العامل أضعف. كل منهم يتعامل مع وظيفة لا يستطيع الآخرون القيام بها.
التنفيذ: الحد الأدنى من مكدس الذاكرة
هنا رسم تخطيطي تم تجريده في بايثون. يُظهر الذاكرة العاملة والدلالية والعرضية والإجرائية كمخازن منفصلة.
from datetime import datetime
# Semantic memory: durable facts about the user
semantic_memory = {"diet": "vegetarian", "language_pref": "Python"}
# Episodic memory: a log of past events and outcomes
episodic_memory = [
{"timestamp": datetime.now(),
"event": "recipe_request",
"result": "user liked a 20-minute meal"},
]
# Procedural memory: skills the agent can execute
def suggest_recipe(diet):
return f"a quick {diet} recipe"
procedural_memory = {"suggest_recipe": suggest_recipe}
# Working memory: assembled fresh for each inference call
def build_context(query):
diet = semantic_memory["diet"]
last = episodic_memory[-1]["result"]
skill = procedural_memory["suggest_recipe"]
return (
f"Query: {query}\n"
f"Semantic: user is {diet}\n"
f"Episodic: last time, {last}\n"
f"Procedural: returning {skill(diet)}"
)
print(build_context("suggest dinner"))
في الإنتاج، تنتقل المخازن طويلة الأجل إلى قاعدة بيانات المتجهات. النمط يبقى كما هو. اكتب في الذاكرة طويلة المدى، ثم استرجعها في الذاكرة العاملة، ثم فكر.
كيفية وضعها في طبقات: أمر بناء عملي
لا تقم ببناء السبعة دفعة واحدة. قم بإضافة الذاكرة فقط عندما تكون هناك حاجة حقيقية تبرر التعقيد.
- ابدأ بالذاكرة العاملة. ويأتي مع النموذج. معظم الوكلاء البسيطين لا يحتاجون إلى أكثر من ذلك.
- أضف ذاكرة دلالية عندما يتوقع المستخدمون أن يتذكرهم الوكيل عبر الجلسات. هذه هي الطبقة الأولى طويلة المدى التي تتطلبها معظم المنتجات.
- طبقة في الذاكرة العرضية والإجرائية والمستقبلية لاحقًا. قم بإضافتها فقط عندما يتعين على وكيلك التخطيط مسبقًا والتعلم من الفشل والتكيف مع مرور الوقت.
- غالبًا ما تكون الذاكرة البارامترية وذاكرة الاسترجاع موجودة بالفعل. الذاكرة البارامترية هي النموذج الأساسي نفسه. تصل ذاكرة الاسترجاع في اللحظة التي تضيف فيها RAG.
مصادر: إطار عمل CoALA (برينستون، arXiv:2309.02427)؛ استطلاع “الذاكرة في عصر وكلاء الذكاء الاصطناعي” (arXiv:2512.13564)؛ استطلاع “من الذاكرة البشرية إلى ذاكرة الذكاء الاصطناعي” (arXiv:2504.15965)؛ وثائق ذاكرة الوكيل LangChain LangMem وMongoDB وRedis وNeo4j؛ ملاحظات المفهوم الأصلي على أنواع الذاكرة السبعة.
اكتشاف المزيد من كحيل | أخبار التقنية
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.
