Phase 14: Agent Engineering

باز کردن حافظه و محاسبه زمان خواب

حافظه عملکردی متمایز را که مدل می تواند مستقیماً ویرایش کند، و یک عامل زمان خواب که حافظه را به صورت غیرمسلسل تحکیم می کند در حالی که عامل اصلی بیکار است. این دو ایده نحوه مقیاس سازی حافظه فراتر از یک مکالمه است.

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 07 (MemGPT)

Time: ~75 minutes

اهداف یادگیری

  • نام سه سطح حافظه ای را که Letta استفاده می کند (برترین، یادآوری، آرشیو) و نقش هر یک را نام دهید.
  • الگوی بلوک حافظه را توضیح دهید: بلوک انسانی، بلوک شخصی و بلوک های تعریف شده توسط کاربر به عنوان اشیاء تایپ شده درجه اول.
  • شرح دهید که محاسبه زمان خواب چیست، چرا از مسیر حیاتی دور می ماند و چرا می تواند یک مدل قوی تر از عامل اصلی را اجرا کند.
  • یک حلقه دو عامل را اجرا کنید که یک عامل اصلی پاسخ ها را ارائه می دهد و یک عامل زمان خواب بلوک ها را بین نوبت ها تحکیم می کند.

مشکل

MemGPT (درسی 07) جریان کنترل حافظه مجازی را حل کرد. سه مشکل تولید ظاهر شد:

  1. Latency.هر کار حافظه در مسیر مهم قرار دارد. اگر عامل باید در حالی که کاربر منتظر است، برش، خلاصه یا هماهنگی کند، تاخیر دم منفجر می شود.
  2. Memory rot.نوشته ها جمع می شوند، حقایق متناقض باقی می مانند، بازیافت در محتوای قدیمی غرق می شود.
  3. Structure loss.یک فروشگاه آرکائیو فلیٹ نمی تواند بیان کند "بلاک انسانی همیشه در پرامپت است؛ بلاک شخصی همیشه در پرامپت است؛ بلاک Task در هر جلسه تغییر می کند".

Letta (letta.com) نام پلتفرم است. پروژه MemGPT اصلی در سال 2024 تصویب شد. الگوی کاغذ نام MemGPT را حفظ می کند. و بازنویسی Letta V1 در سال 2026 یک مرحله جداگانه و بعدی است. بلوک های حافظه ساختار را صریح می کنند. محاسبه زمان خواب تثبیت را از مسیر حیاتی خارج می کند.

مفهوم

سه طبقه

TierScopeWhere it livesWritten by
CoreAlways visibleInside the main promptAgent tool call + sleep-time rewrites
RecallConversation historyRetrievableAutomatic turn logging
ArchivalArbitrary factsVector + KV + graphAgent 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 شناسه، برچسب، ارزش، حد، توصیف.
  • BlockStore CRUD + 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 با هک های زمان خواب برای هر زمان اجرا، از جمله قوانین ایمنی و سیم های اشاره تولید می کند.

تمرینات

  1. اضافه کنیدblock_summarizeابزار که ارزش بلاک را با خلاصه ای که از طریق مدل تولید می شود جایگزین می کندnear_limitچه حد محرکي هر دو تماس خلاصه و بلوک رو به حداقل رساند؟
  2. پیاده سازی زمان خواب در آرکائیو: دو رکورد که متن آن دارای بیش از ۹۰٪ تعادل رمزنگاری شده است به یک رکود می افتد.
  3. بلوک های نسخه. در هر ثبت نوشتن ارزش قدیمی و یک تفاوت. نشان دادن block_history(label)پس اپراتورها ميتونن "چرا مامور "X" رو فراموش کنن" رو بگي کنن
  4. با ماموران زمان خواب مثل نویسندگان ناآمان رفتار کن وقتی که به بلوک شخصیت یا ایمنی دست می زنند قبل از انجام کار باید از مامور دوم بررسی کنند
  5. نمونه را برای استفاده از Letta API (letta_v1_agentچه تغییرات در طرح بلوک وجود دارد و استدلال بومی چگونه شکل ردیف را تغییر می دهد؟

اصطلاحات کلیدی

TermWhat people sayWhat 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

خواندن بیشتر

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.