باز کردن حافظه و محاسبه زمان خواب
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 14 · 07 (MemGPT)
Time: ~75 minutes
اهداف یادگیری
- نام سه سطح حافظه ای را که Letta استفاده می کند (برترین، یادآوری، آرشیو) و نقش هر یک را نام دهید.
- الگوی بلوک حافظه را توضیح دهید: بلوک انسانی، بلوک شخصی و بلوک های تعریف شده توسط کاربر به عنوان اشیاء تایپ شده درجه اول.
- شرح دهید که محاسبه زمان خواب چیست، چرا از مسیر حیاتی دور می ماند و چرا می تواند یک مدل قوی تر از عامل اصلی را اجرا کند.
- یک حلقه دو عامل را اجرا کنید که یک عامل اصلی پاسخ ها را ارائه می دهد و یک عامل زمان خواب بلوک ها را بین نوبت ها تحکیم می کند.
مشکل
MemGPT (درسی 07) جریان کنترل حافظه مجازی را حل کرد. سه مشکل تولید ظاهر شد:
- Latency.هر کار حافظه در مسیر مهم قرار دارد. اگر عامل باید در حالی که کاربر منتظر است، برش، خلاصه یا هماهنگی کند، تاخیر دم منفجر می شود.
- Memory rot.نوشته ها جمع می شوند، حقایق متناقض باقی می مانند، بازیافت در محتوای قدیمی غرق می شود.
- Structure loss.یک فروشگاه آرکائیو فلیٹ نمی تواند بیان کند "بلاک انسانی همیشه در پرامپت است؛ بلاک شخصی همیشه در پرامپت است؛ بلاک Task در هر جلسه تغییر می کند".
Letta (letta.com) نام پلتفرم است. پروژه MemGPT اصلی در سال 2024 تصویب شد. الگوی کاغذ نام MemGPT را حفظ می کند. و بازنویسی Letta V1 در سال 2026 یک مرحله جداگانه و بعدی است. بلوک های حافظه ساختار را صریح می کنند. محاسبه زمان خواب تثبیت را از مسیر حیاتی خارج می کند.
مفهوم
سه طبقه
| Tier | Scope | Where it lives | Written by |
|---|---|---|---|
| Core | Always visible | Inside the main prompt | Agent tool call + sleep-time rewrites |
| Recall | Conversation history | Retrievable | Automatic turn logging |
| Archival | Arbitrary facts | Vector + KV + graph | Agent tool call + sleep-time ingest |
هسته هسته MemGPT است. یادآوری بازخورد مکالمه با دم اخراج شده است. آرشیو فروشگاه خارجی است. تقسیم پاک می کند MemGPT دو سطح اضافه.
بلوک های حافظه
یک بلوک یک بخش تایپ شده، پایدار و قابل ویرایش در سطح اصلی است.
- Human block حقایق مربوط به کاربر (نام، نقش، ترجیحات، اهداف).
- Persona block خود مفهوم عامل (شخصیت، صدا، محدودیت ها).
Letta به بلوک های تعسفی تعریف شده توسط کاربر عمومی می کند: a Taskبرای هدف فعلی، یکProjectبلاک برای حقایق پایه کد، یکSafetyبرای محدودیت های سخت، هر بلوک دارای یکid،label،value،limit(قفل شخصیت)description(تا مدل بدونه که چه وقت باید آن را ویرایش کنه).
بلوک ها از طریق سطح ابزار قابل ویرایش هستند:
block_append(label, text)block_replace(label, old, new)block_read(label)block_summarize(label)یک بلوک را که نزدیک به حدش است، فشرده کنید.
محاسبه زمان خواب
اضافه Letta 2025: یک عامل دوم را در پس زمینه اجرا کنید، خارج از مسیر حیاتی.learned_contextبه بلوک های مشترک و تثبیت یا باطل کردن سوابق آرکائیو.
خواص که از بین می روند:
- No latency cost.پاسخ های اولیه منتظر عملیات حافظه نیستند.
- Stronger model allowed.عامل زمان خواب می تواند مدل گران تر و کند تر باشد زیرا به تاخیر محدود نیست.
- Natural consolidation window.در صورت انتظار کاربر، حقایق متناقض را حذف، خلاصه، باطل کنید.
شکل مطابق با نحوه کار انسان است: شما کار را انجام می دهید، روی آن می خوابید، حافظه بلند مدت در طول شب می ماند.
استدلال بومی
Letta V1 (letta_v1_agent، 2026) از نظر متناقض استsend_message/ قلب و خطThought:توکن ها در حق استدلال بومی. API پاسخ ها (OpenAI) و API پیام ها با تفکر گسترده (انتروپک) استدلال را در یک کانال جداگانه ارسال می کنند، از طریق نوبت (تشفیر شده در میان ارائه دهندگان در تولید) عبور می کنند. حلقه کنترل هنوز ReAct است. ردیابی افکار ساختاری است، نه به شکل پرامپ.
جایی که این الگوی اشتباه می شود
- Block bloat.بی نهایت
block_appendبه سرعت به حد می رسد. قبل از نوشتن یک خلاصه کننده بلاک را به سیم بزنید که از بالای کلاه فشار می دهد. - Silent drift.مامور زمان خواب یک بلوک را دوباره می نویسد و مامور اصلی هرگز متوجه نمی شود.
- Poisoned consolidation.عامل زمان خواب محتواى را که حمله كننده به آن ها دست مى دهد به هسته پردازد. درس 27 به سطح زمان خواب هم اطلاق دارد.
آن را بسازید
code/main.pyابزار:
Blockشناسه، برچسب، ارزش، حد، توصیف.BlockStoreCRUD +near_limit(label)کمک کننده- دو تا از اسکرينت ها
PrimaryAgentبه نوبت می رسدSleepTimeAgentدر میان دورها همگام می شود. - يه رد که نشان دهنده يک مکالمه سه نوبت با بلوک نوشته شده و علاوه بر يک گذرگاه خواب که خلاصه ي بلوک و باطل کردن يک حقيقت قدیمی است
اجرا کن
python3 code/main.pyنقل قول نشان می دهد که تقسیم: نوبت های اولیه سریع هستند و نوشته های خام تولید می کنند. گذرگاه خواب کمپیکت و تمیز می شود.
ازش استفاده کن
- Letta(letta.com) برای اجرای مرجع. خود میزبان یا ابر مدیریت شده.
- Claude Agent SDK skillsبه عنوان علم به شکل بلوک یک مهارت یک بلوک نامگذاری شده، نسخه ای، بازیافتی از دستورالعمل است که توسط عامل در صورت تقاضا بارگذاری می شود.
- Custom buildsبراي تیم هایی که کنترل پشت سرانه ذخیره سازی رو میخوان استفاده کن از قرارداد Letta API تا بعدا میتونی مهاجرت کنی
-باده
outputs/skill-memory-blocks.mdیک سیستم بلوکی به شکل Letta با هک های زمان خواب برای هر زمان اجرا، از جمله قوانین ایمنی و سیم های اشاره تولید می کند.
تمرینات
- اضافه کنید
block_summarizeابزار که ارزش بلاک را با خلاصه ای که از طریق مدل تولید می شود جایگزین می کندnear_limitچه حد محرکي هر دو تماس خلاصه و بلوک رو به حداقل رساند؟ - پیاده سازی زمان خواب در آرکائیو: دو رکورد که متن آن دارای بیش از ۹۰٪ تعادل رمزنگاری شده است به یک رکود می افتد.
- بلوک های نسخه. در هر ثبت نوشتن ارزش قدیمی و یک تفاوت. نشان دادن
block_history(label)پس اپراتورها ميتونن "چرا مامور "X" رو فراموش کنن" رو بگي کنن - با ماموران زمان خواب مثل نویسندگان ناآمان رفتار کن وقتی که به بلوک شخصیت یا ایمنی دست می زنند قبل از انجام کار باید از مامور دوم بررسی کنند
- نمونه را برای استفاده از Letta API (
letta_v1_agentچه تغییرات در طرح بلوک وجود دارد و استدلال بومی چگونه شکل ردیف را تغییر می دهد؟
اصطلاحات کلیدی
| Term | What people say | What it actually means |
|---|---|---|
| Memory block | "Editable prompt section" | Typed, persistent, LLM-editable segment of core memory |
| Human block | "User memory" | Facts about the user, pinned in core |
| Persona block | "Agent identity" | Self-concept, tone, constraints, pinned in core |
| Sleep-time compute | "Async memory work" | Second agent doing consolidation off the critical path |
| Core / Recall / Archival | "Tiers" | Three-layer memory split: always-visible / conversation / external |
| Block limit | "Cap" | Character limit per block; forces summarization |
| Native reasoning | "Thinking channel" | Provider-level reasoning output, not prompt-level Thought: |
| Learned context | "Sleep output" | Facts the sleep-time agent writes into shared blocks |
خواندن بیشتر
- Letta, Memory Blocks blog الگوی بلوک
- Letta, Sleep-time Compute blog تثبیت هم وقت
- Letta, Rearchitecting the Agent Loop بازنویسی استدلال بومی
- Packer et al., MemGPT (arXiv:2310.08560) اصل
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.