Sessiyalar uchun Context management
Agentlar uchun doimiy xotira tizimi, sessiya amallarini siqib saqlash va keyingi sessiyalarga avtomatik kontekst sifatida qaytarish.
Claude-Mem.
1. Muammo
Claude Code (yoki har qanday coder agent) bilan uzoq ishlaganingizda, har bir yangi xabar butun oldingi suhbatni qayta yuboradi. Token sarfi linear emas, balki deyarli kvadratik oʻsadi:
Xabar №1 █ (kichik)
Xabar №20 ████████
Xabar №50 ████████████████████
Xabar №100 ████████████████████████████████████████
Xabar №200 ████████████████████████████████████████████████████████████████████████
Sabab oddiy, 200 ta xabarli sessiyada 201-xabar yuborish uchun 1–200-xabarlarning hammasini yuborish kerak boʻladi, chunki har safar butun sessiya qayta yuboriladi, LLM o'zi hech narsani eslab qolmaydi, balki LangGraph kabi librarylar yordamida Context management orqali LLMdan coder agent sifatida foydalaniladi.
Ikkinchi muammo — sessiyalararo xotira yoʻqligi. Har safar yangi Claude Code sessiyasini boshlaganingizda, loyihangiz, qarorlaringiz va topilgan xatolar haqida hammasini qaytadan tushuntirishga toʻgʻri keladi.
Claude-mem aynan shu ikki muammoni hal qilish uchun yaratilgan.
2. Claude-Mem nima?
Claude-Mem — bu Claude Code, Codex, Gemini CLI, Cursor va boshqa agentlar uchun ishlab chiqilgan doimiy xotira tizimi. U sessiya davomida agent qilgan har bir amalni (fayl oʻqish, yozish, bash buyruqlari va shu kabilarni) kuzatib boradi, ularni AI yordamida compress qiladi (siqadi) va semantik xulosalar shaklida saqlaydi. Keyingi sessiya boshlanganda esa shu xulosalar avtomatik ravishda kontekstga qaytarib joylanadi.
Muhim jihati — bu Claude Code ishlashiga oʻzgartirmaydi. Aksincha, "hook"lar orqali tashqaridan kuzatib turadi — yaʼni non-invaziv arxitektura.
3. Claude-Mem pod kapotom qanday ishlaydi?
Foydalanuvchi Claude Code, Codex yoki Gemini CLI kabi agent bilan ishlaydi; agent oʻz Lifecycle eventlarini (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) Hook skriptlariga yuboradi. Hook skriptlari bu hodisalarni juda tez (10 millisekunddan kamroq vaqtda) qabul qilib, ularni process queuega qoʻyadi va darhol agentga qaytadi — hech narsani bloklamaydi. Navbat esa asinxron tarzda (5–30 soniya ichida) Worker Service'ga topshiriladi.
Worker Service raw datani AI yordamida siqadi va ikki joyga yozadi: (1) SQLite + FTS5 bazasiga — observation'lar, sessiyalar va xulosalar toʻliq matnli qidiruv bilan saqlanadigan joy, va (2) Chroma vektor bazasiga — semantik (maʼno boʻyicha) qidiruv uchun indekslangan koʻrinishda. Bu ikkala baza ustida MCP Server ishlaydi — u atigi 4 ta yengil vositadan iborat (search, timeline, get_observations, important_workflow) va Claude bilan aynan shu vositalar orqali "gaplashadi", natijalarni foydalanuvchiga qaytaradi. Bundan tashqari, har bir yangi sessiya boshlanganda Hook alohida vazifani ham bajaradi: SQLite'dan olingan qisqa kontekstni jimgina, avtomatik ravishda foydalanuvchining boshlangʻich kontekstiga inject qiladi.
4. Siqish jarayoni.
Har bir tool natijasi (masalan, katta fayl oʻqilganda qaytadigan raw text, taxminan ~5 000 token) darhol saqlanmaydi — u avval Worker Service tomonidan AI orqali siqiladi va natijada taxminan 10 baravar kichikroq (~500 token) "observation" yozuvi hosil boʻladi. Bu yozuv quyidagi maydonlardan iborat:
- title — nima sodir boʻlgani, qisqa
- subtitle — qoʻshimcha kontekst
- narrative — batafsil tushuntirish
- facts[] — asosiy xulosalar, punktlar boʻyicha
- concepts[] — teglar/kategoriyalar
- type — bugfix / feature / decision va h.k.
- files[] — qaysi fayllar bilan ishlangan
Yaʼni maʼno (semantika) saqlanib qoladi, ortiqcha "shovqin" (log satrlari, qайta-qайta chiqadigan boilerplate) esa olib tashlanadi. Bu operatsiya avtomatik, foydalanuvchi aralashuvisiz sodir boʻladi.
5. Progressiv oshkoralik: 3 qatlamli qidiruv tizimi
Bu — claude-mem'ning token tejashdagi eng markaziy gʻoyasi. Kelajakdagi sessiyada Claude eski xotirani qidirganda, u hammasini birdan yuklab olmaydi — bosqichma-bosqich chuqurlashadi:
- 1-qatlam —
search(query): Claude soʻrov beradi va natijada faqat kompakt indeks qaytadi — ID, sarlavha, sana (~50–100 token/natija). Shu asosda Claude "qaysi ID'lar tegishli boʻlishi mumkin?" degan savolga javob topadi. - 2-qatlam —
timeline(anchor): Tanlangan observation atrofidagi xronologik kontekst soʻraladi — bu Claude'ga "toʻliq tafsilot kerakmi yoki yetarlimi?" degan savolga javob berishga yordam beradi. - 3-qatlam —
get_observations(ids): Faqat shu bosqichda toʻliq maʼlumot (narrative, facts, files — ~500–1000 token/ta) qaytariladi va Claude uni joriy vazifaga qoʻllaydi.
Qoida qatʼiy: filtrlashdan oʻtmasdan toʻliq tafsilot olib boʻlmaydi — bu tuzilma darajasida majburlangan, Claude "esidan chiqarib" hammasini birdan soʻrab yubormasin deb.
6. Raqamlarda: anʼanaviy RAG bilan taqqoslash
Koʻpchilik xotira tizimlari (klassik RAG yondashuvi) barcha topilgan natijalarni oldindan, toʻliq holda yuklab oladi. Claude-mem esa aksincha — avval qisqa roʻyxat, keyin faqat kerakli qismlarni.
Aniqroq aytganda: anʼanaviy RAG yondashuvida 20 ta observation darhol, toʻliq holda yuklanadi va bu 10 000–20 000 token talab qiladi — holbuki shundan atigi taxminan 10% (yaʼni ~2 ta observation) haqiqatan foydali boʻladi, qolgan ~18 000 token esa behuda ketadi. Claude-mem'ning 3 qatlamli usulida esa xuddi shu 20 ta observation koʻrib chiqiladi, lekin ulardan faqat 3 tasi tanlab olinadi — natijada umumiy sarf bor-yoʻgʻi 2 500–5 000 tokenni tashkil etadi.
"Filtrlash orqali ~10x token tejaladi" — chunki toʻliq data faqat oldindan indeks darajasida saralab olingan bir necha ID uchun soʻraladi, hammasi uchun emas.
Dastlabki versiyada MCP orqali 9 ta tool (search_observations, find_by_type, find_by_file va h.k.) mavjud edi, ularning tavsiflari sessiya boshida ~2 500 token yeb qoʻyardi. Hozirgi versiyada bu 4 ta toolgachan qisqartirilgan — bu ham oʻz-oʻzidan qoʻshimcha token tejashga xizmat qiladi.
7. Sessiya boshida kontekst inʼeksiyasi qanday ishlaydi
Yangi sessiya boshlanganda SessionStart hook quyidagilarni bajaradi:
- Bazadan loyihangizga oid soʻnggi observation'larni soʻraydi (standart: 50 ta,
CLAUDE_MEM_CONTEXT_OBSERVATIONSorqali sozlanadi) - Soʻnggi sessiya xulosalarini oladi
- Bularni xronologik jadval koʻrinishida, sessiya belgilari bilan tuzadi
- Toʻliq xulosa tafsilotlarini (Investigated / Learned / Completed / Next Steps) faqat shu xulosa oxirgi observation'dan keyin yaratilgan boʻlsa koʻrsatadi — aks holda eskirgan maʼlumot koʻrsatilmaydi
- Tayyor kontekstni Claude'ning boshlangʻich kontekstiga jimgina joylaydi (foydalanuvchiga alohida xabar chiqmaydi)
Bu — atigi ~50–200 token evaziga, "loyihamiz qayerda toʻxtagan edi" degan savolga javobni avtomatik olish demakdir.
8. Claude-Mem va /compact (Context Mode)
Shu joyida savol tug'iladi. Claude-Memni built in /compact kommadasidan qanaqa farqi bor degan. Claude-Mem va /compact aslida bir xil vazifani bajaradigan narsalar emas, balki bir-birini to‘ldiradigan ikki xil vositadir. Ularning farqini sodda qilib aytganda, Claude-Mem sessiyalar orasidagi xotirani saqlashga yordam beradi, /compact esa bitta uzun sessiya ichida kontekst juda kattalashib ketganda uni qisqartirishga yordam beradi.
Chop etilgan: 7-sentabr, 2026 · yangilangan: 7-sentabr, 2026
