Agent xotirasi — bu tizimning kontekstni saqlash qobiliyati. Xotirasiz agent har safar «boshidan boshlaydi».
Xotira turlari
| Tur | Davomiylik | Misol |
|---|---|---|
| Kontekst | Bitta so‘rov | Joriy prompt |
| Suhbat tarixi | Bitta sessiya | Chat log |
| Ish xotirasi | Vazifa davomida | Reja, oraliq natijalar |
| Uzoq muddatli | Sessiyalar o‘rtasida | Fayllar, vektor DB |
Kontekst va suhbat tarixi
Eng oddiy xotira — konversatsiyani promptga qo‘shish:
messages = [
{"role": "system", "content": "Sen yordamchi agent."},
{"role": "user", "content": "Mening ismim Aziz."},
{"role": "assistant", "content": "Salom Aziz!"},
{"role": "user", "content": "Ismimni eslaysanmi?"},
]
Muammo: kontekst cheklangan (masalan, 128K token). Uzoq suhbatlar sig‘maydi.
Kontekstni boshqarish
Uzoq suhbatda kontekstni boshqarish kerak:
- Kesish — eski xabarlarni olib tashlash.
- Xulosa — eski suhbatni xulosalash va xulosani saqlash.
- RAG — kerakli ma’lumotni vektor bazadan olish.
def manage_context(messages, max_tokens=8000):
total = sum(len(m["content"]) for m in messages)
if total <= max_tokens:
return messages
# Eski xabarlarni xulosalash
summary = llm.summarize(messages[:-10])
return [
{"role": "system", "content": f"Avvalgi suhbat xulosasi: {summary}"},
*messages[-10:],
]
Uzoq muddatli xotira
Agent sessiyalar o‘rtasida ma’lumotni saqlashi kerak bo‘lsa:
# Vektor bazaga yozish
vector_db.add(
id="user_pref_aziz",
content="Aziz Python va agentlarga qiziqadi",
metadata={"user": "aziz"},
)
# Keyingi sessiyada olish
prefs = vector_db.search("Aziz qiziqishlari", limit=3)
Muhim
Xotira maxfiy ma'lumotlarni saqlashi mumkin. Foydalanuvchi ruxsatisiz shaxsiy ma'lumotni uzoq muddat saqlamang.
Xulosa
Agent xotirasi — kontekst, suhbat tarixi va uzoq muddatli saqlash kombinatsiyasi. Kontekst cheklangan, shuning uchun uni boshqarishni bilish muhim.