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

Zep - هندسة السياق والذاكرة للوكلاء

Zep - هندسة السياق والذاكرة للوكلاء

Zep هي طبقة ذاكرة و هندسة السياق لوكلاء AI. مبنية على محرك رسم بياني المعرفة الزمني Graphiti، يستقبل سجل المحادثة والبيانات التجارية ويصهرها إلى رسم بياني قابل للاستعلام يتتبع كيفية تغير الحقائق بمرور الوقت ويعيد السياق ذي الصلة والحاكم بكمون منخفض لقاعدة استجابات الوكيل. يوفر نواة مفتوحة المصدر وخدمة سحابية مدارة (SOC 2 / HIPAA)، مع SDKs لـ Python و TypeScript و Go.

التثبيت / الإعداد

الهدفالأمر
SDK Pythonpip install zep-cloud (سحابة)
SDK TypeScriptnpm install @getzep/zep-cloud
مستضاف ذاتياً (الإصدار المجتمعي)قم بالتشغيل عبر Docker Compose للمشروع
مفتاح APIexport ZEP_API_KEY=...

المفاهيم الأساسية

المصطلحالمعنى
المستخدممستخدم نهائي يخدمه الوكيل
الخيطجلسة محادثة لمستخدم
الرسم البيانيرسم بياني المعرفة الزمني للمستخدم/المجموعة
الحقيقةعلاقة تعرّف الوقت في الرسم البياني
كتلة السياقالسياق المجمع الجاهز للحقن

المستخدمون والخيوط

from zep_cloud.client import Zep
zep = Zep(api_key="...")

zep.user.add(user_id="nick", email="nick@example.com")
zep.thread.create(thread_id="t1", user_id="nick")
الاستدعاءالوصف
user.add(...)إنشاء مستخدم
thread.create(...)بدء خيط محادثة
thread.add_messages(...)إضافة الرسائل (استقبال تلقائي إلى الرسم البياني)
user.delete(...)إزالة مستخدم وبياناتهم

إضافة الذاكرة

zep.thread.add_messages(
    thread_id="t1",
    messages=[{"role": "user", "content": "I moved to Berlin.", "name": "Nick"}],
)

# إضافة بيانات تجارية غير الدردشة مباشرة إلى الرسم البياني
zep.graph.add(user_id="nick", type="text",
              data="Nick''s subscription tier is Pro.")
الاستدعاءالوصف
thread.add_messages(...)استقبال أدوار المحادثة
graph.add(...)إضافة النص/JSON التعسفي إلى الرسم البياني
الاستقبالالكيانات/الحقائق المستخرجة والطابع الزمني تلقائياً

استرجاع السياق

# الحصول على كتلة سياق مجمعة للموجه
memory = zep.thread.get_user_context(thread_id="t1")
print(memory.context)   # سلسلة جاهزة للحقن من الحقائق ذات الصلة

# أو الاستعلام عن الرسم البياني مباشرة
edges = zep.graph.search(user_id="nick", query="where does Nick live?")
الاستدعاءالعوائد
thread.get_user_context(...)كتلة سياق مركبة
graph.search(...)الحقائق/الحواف أو العقد المطابقة للاستعلام
نطاق البحثالحواف (الحقائق) أو العقد (الكيانات) أو الحلقات

لماذا الزمني

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

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

سير العمل الشائع

# حلقة الوكيل مع ذاكرة Zep
zep.thread.add_messages(thread_id="t1", messages=user_turn)
context = zep.thread.get_user_context(thread_id="t1").context
# مسبق `context` إلى موجه نظام LLM الخاص بك ثم الإنشاء

Zep مقابل طبقات الذاكرة الأخرى

الجانبZepMem0مخزن متجه خام
النموذجرسم بياني زمني (Graphiti)متعدد الطبقاتالتضمينات فقط
حقائق زمنيةنعممحدودلا
تجميع السياقكتلة مدمجةالاسترجاعيدوي
الأفضل لـذاكرة وكيل الإنتاجالتخصيصتذكر بسيط

موارد