يقلل ضغط السياق استخدام الرموز بذكاء مع الحفاظ على المعنى الدلالي:
قبل: 847 رسالة، ~142 ألف رمز
بعد: 23 رسالة، ~3 آلاف رمز
[ملخص السياق — مضغوط من 847 رسالة]
## الطلب الأصلي
طلب المستخدم توليد schema (مخطط يصف بنية التطبيق) من نوع orbital لتطبيق إدارة مهام...
## الإجراءات المتخذة
1. إنشاء schema الـ `taskly.orb` مع 3 orbitals (وحدات بناء التطبيق)
2. التحقق — إصلاح 4 أخطاء
3. الـ compile (تحويل الـ schema لكود قابل للتشغيل) إلى قالب TypeScript
4. طلب المستخدم إضافة حقل "الأولوية"
## الحالة الحالية
- الـ schema صالح ويُصرَّف بنجاح
- مجلد العمل: /home/user/projects/taskly
const summaryPrompt = `
Summarize this conversation for an AI assistant.
Focus on:
1. What the user originally requested
2. What actions have been taken
3. What the current state is
4. Any errors encountered and how they were fixed
Be concise but comprehensive.
`;
const summary = await llm.generate(summaryPrompt, oldMessages);
الساعة 1:
- إنشاء entities (نماذج البيانات) الـ Order, Product, User
- إعداد traits (سلوكيات) الـ CRUD
- الـ compile بنجاح
[الرسائل: 15، الرموز: ~8 آلاف]
الساعة 2:
- إضافة orbital عربة التسوق
- تنفيذ تدفق الدفع
- إصلاح أخطاء التحقق
[الرسائل: 35، الرموز: ~25 ألف]
الساعة 3:
- إضافة تكامل الدفع
- الاختبار من البداية للنهاية
- إعادة الهيكلة للأداء
[الرسائل: 67، الرموز: ~62 ألف]
الساعة 4:
- إضافة إدارة المخزون
- أدركنا: الرموز تنفد!
تم تشغيل الضغط:
[ملخص السياق — مضغوط من 67 رسالة]
## الطلب الأصلي
بناء منصة تجارة إلكترونية مع كتالوج منتجات،
عربة تسوق، ودفع.
## الـ entities المُنشأة
- Product: name, price, inventory
- User: email, name, addresses
- Order: items, total, status
- Cart: items, user relation
## الميزات الرئيسية المُنفَّذة
1. تصفح المنتجات (pattern الـ entity-table)
2. عربة التسوق (مبنية على الجلسة)
3. معالج الدفع (تدفق من 3 خطوات)
4. تكامل الدفع (Stripe)
5. إدارة المخزون
## الحالة الحالية
- 5 orbitals مُعرَّفة
- جميع الاختبارات ناجحة
- جاهز للنشر
## التركيز الأخير
إضافة إدارة المخزون وتنبيهات المخزون المنخفض.
// داخلي: نظام إدارة الجلسات في المدار
const sessionManager = new SessionManager({
mode: 'firestore',
firestoreDb: db,
memoryManager,
compactionConfig: {
maxTokens: 150000,
triggerThreshold: 0.8,
keepRecentMessages: 10,
strategy: 'hybrid',
},
});
// التحقق مما إذا كان الضغط مطلوباً
const shouldCompact = sessionManager.shouldCompactMessages(messages);
if (shouldCompact) {
console.log('Compacting context...');
// في حلقة الوكيل، شغّل الضغط
// قبل الإرسال للنموذج اللغوي
const compacted = await compactMessages(
messages,
config
);
// التسجيل للتحليلات
await sessionManager.recordCompaction(
threadId,
messages.length,
compacted.length,
'token_limit'
);
}
// الحصول على سجل الضغط
const history = sessionManager.getCompactionHistory(threadId);
console.log(`Session compacted ${history.length} times`);
// Session compacted 3 times