تصور کنید یک تیم برنامهنویسی دارید که هر بار برای شروع کار، تمام تصمیمات دیروز را فراموش میکند و باید همه چیز را از اول توضیح دهید. این «فراموشی میانجلسهای» (Cross-session amnesia) بزرگترین نقطه ضعف سامانههای چندعاملی در محیط عملیاتی است؛ وضعیتی که در آن سیستم به محض ریاستارت شدن یک پردازش، تمام تصمیمات معماری خود را فراموش میکند. MemorySync قصد دارد این نقص فنی را برطرف کند.
طبق یک راهنمای فنی که در ۱۴ سپتامبر ۲۰۲۶ منتشر شد، ادغام MemorySync با LangGraph امکان ایجاد یک لایهی حافظه مشترک و پایدار را فراهم میکند. این یعنی عاملها دیگر با هر بار ریاستارت شدن، به وضعیت «صفحهی سفید» برنمیگردند و حافظه آنها در سطح زیرساختی حفظ میشود.
همانطور که در تحلیل قبلی ما دربارهی نحوه مدیریت عاملها توسط ناظران (Supervisors) در LangChain اشاره کردیم، صنعت اکنون از انتقال ساده پیامها به سمت مدیریت وضعیت پایدار (Durable State Management) حرکت میکند. در یک ساختار معمولی، عاملهایی مثل «ناظر»، «پژوهشگر» و «کدنویس» پیامها را در یک زنجیره خطی رد و بدل میکنند. در این مدل، ناظر وظیفه هماهنگی نیازمندیها و برنامهریزی معماری را بر عهده دارد، پژوهشگر به دنبال مشخصات API و استنادات میگردد و کدنویس پیادهسازی نهایی را انجام میدهد. اما این مدل منجر به انحراف زمینه (Context Drift) میشود؛ یعنی وقتی پژوهشگر یک گزارش حجیم (مثلاً یک خروجی ۲۰ صفحهای از وب) را به کدنویس میدهد، حجم عظیم دادهها باعث اشباع پنجره زمینه (Context Window) — شبیه میز کاری که جا برای چند ورق دارد، نه برای کل کتابخانه — شده و دقت استدلال را پایین آورده و هزینهها را افزایش میدهد. این چالشها در واقع ریشه در ساختارهای هماهنگکنندهای دارند که اغلب باعث شکست سامانههای چندعاملی در محیط عملیاتی میشوند.
بنبستهای حافظه در محیط عملیاتی
به گزارش منابع فنی، اکثر چارچوبهای چندعاملی بر حافظههای کوتاهمدت یا اشیای وضعیت در حافظه (In-memory state objects)، مانند StateGraph در LangGraph یا چکپوینتهای رشتهای (Thread checkpointers) تکیه میکنند. اگرچه این ابزارها برای یک اجرای واحد مؤثر هستند، اما در محیط عملیاتی دو بنبست اصلی ایجاد میکنند:
- انحراف زمینه: ارسال خروجیهای خام و حجیم مستقیماً به عاملهای بعدی، توکنها را هدر میدهد و احتمال توهم (Hallucination) — وقتی مدل با اطمینان چیزی میگوید که وجود ندارد، مثل دوستی که خاطرهای را اشتباه تعریف میکند — را بالا میبرد.
- فراموشی میانجلسهای: وقتی یک گردشکار تمام میشود و توسعهدهنده فردا برمیگردد، عاملها با یک لوح سفید شروع میکنند و تمام تصمیمات معماری دیروز را فراموش کردهاند.
برای حل این مشکل، MemorySync معماری حافظه محدود (Scoped Memory) را معرفی کرده است. در این مدل، بهجای تکیه بر اشیای وضعیت موقت در حافظه، عاملها دادهها را در یک ذخیرهساز خارجی با استفاده از شناسههای مشخص میخوانند و مینویسند: tenant_id (شناسه مستاجر)، project_id (شناسه پروژه) و user_id (شناسه کاربر). این ساختار تضمین میکند که محدودیتهای پروژه یک توسعهدهنده از سایر کاربران ایزوله بماند، در حالی که در جلسات مختلف برای همان کاربر در دسترس باشد. این رویکرد شباهت زیادی به معماری ۱۷ منطقهای MeshCtx دارد که با هدف جلوگیری از فراموشی دادهها طراحی شده است.
حافظه مشترک در برابر تورم وضعیت
مقایسه حافظه پیشفرض StateGraph در LangGraph با لایهی مشترک MemorySync مزایای ساختاری زیر را نشان میدهد:
- پایداری: وضعیت پیشفرض موقتی است و با ریاستارت شدن پردازش پاک میشود؛ اما MemorySync در طول جلسات مختلف پایدار و بادوام است.
- هزینه پنجره زمینه: در حالت پیشفرض، حجم وضعیت بهصورت خطی با هر خروجی از عاملها رشد میکند. در مقابل، MemorySync ثابت میماند زیرا پرسوجوها فقط top-k (تعداد محدودی از) مرتبطترین حقایق را بازیابی میکنند.
- جداسازی عاملها: بهجای یک وضعیت یکپارچه (Monolithic State) که برای تمام گرهها قابل مشاهده است، MemorySync از بازیابی محدود بر اساس شناسههای مستاجر و پروژه استفاده میکند.
- حذف دادههای تکراری: MemorySync بهطور خودکار حذف تکرار معنایی (Semantic Deduplication) و فشردهسازی را انجام میدهد، در حالی که وضعیت پیشفرض اجازه میدهد حقایق تکراری باعث تورم زمینه شوند.
- تأخیر: در حالی که وضعیت پیشفرض از سریالسازی در حافظه استفاده میکند، MemorySync از بازیابی برداری ترکیبی با تأخیر زیر ۵۰ میلیثانیه بهره میبرد.
پیادهسازی فنی و ابزارها
این سامانه از طریق دو ابزار اصلی که در جعبهابزار (Toolkit) عاملها ادغام شدهاند، عمل میکند:
- store_shared_memory: به عاملها اجازه میدهد محدودیتها یا تصمیمات خاص (مثلاً «تمام برچسبهای زمانی باید ISO-8601 UTC باشند») را در یک ذخیرهساز پایدار ذخیره کنند. این ابزار متادادههایی مانند دستهبندی و نام عامل خاصی که حقیقت را ثبت کرده است، ضبط میکند.
- recall_shared_memory: امکان جستوجوی معنایی (Semantic Search) — مثل کارت معرفی عددی برای هر واژه که همسایگان معناییاش را میشناسد — را فراهم میکند تا مرتبطترین حقایق (top-k) بازیابی شوند. این ابزار نتایج را همراه با یک امتیاز (Score) مشخص برای هر حافظه برمیگرداند.
بر اساس گزارش dev.to، این بازیابی برداری ترکیبی در کمتر از ۵۰ میلیثانیه رخ میدهد. با پرسوجو از مرتبطترین حقایق، سیستم هزینه پنجره زمینه را فارغ از اینکه تاریخچه کل پروژه چقدر بزرگ شود، ثابت نگه میدارد.
یکپارچگی در گردشکار
در یک پیادهسازی عملی LangGraph با استفاده از مدل gpt-4o-mini، ابتدا عامل ناظر حافظه گذشته پروژه را فراخوانی میکند تا محدودیتها را استخراج کند. این محدودیتها سپس بهعنوان حافظه مشترک ذخیره میشوند. وقتی نوبت به عامل کدنویس میرسد، او بهجای دریافت یک لاگ چت حجیم، ابزار recall را فراخوانی میکند تا فقط قوانین خاصی که برای نوشتن کد نیاز دارد را بیرون بکشد. در این راستا، انتخاب بین کنترل دستی در LangGraph و پویاسازی مسیر در Deep Agents تعیین میکند که حافظه چگونه در جریان اجرای گراف توزیع شود.
در یک تست اعتبارسنجی، ناظر در «جلسه ۱» قانونی را تعریف کرد: «تمام برچسبهای زمانی باید ISO-8601 UTC باشند و توکنها پس از ۱۵ دقیقه منقضی شوند». پس از یک ریاستارت کامل سیستم در «جلسه ۲»، از عامل کدنویس خواسته شد تا یک نقطه اتصال (Endpoint) برای GET /user/profile بنویسد. بدون اینکه توسعهدهنده دوباره نیازمندی را تایپ کند، کدنویس بهطور خودکار قانون ISO-8601 را بازیابی کرد و کدی شامل datetime.now(timezone.utc).isoformat() تولید کرد. این ثابت میکند که عاملها دیگر از نقطه صفر شروع نمیکنند.
این تغییر، فرض بنیادی طراحی عاملمحور را عوض میکند. ما از عصر «پرامپتهای یکپارچه و حجیم» به سمت عصر «عاملهای متصل به پایگاهداده» میرویم. برای توسعهدهنده، این یعنی حذف تورم پرامپت و قابلیت حسابرسی (Auditability) کامل، زیرا هر حقیقت بازیابیشده دارای یک شناسه حافظه (Memory ID) و امتیاز مشخص است.
با جداسازی حافظه از گراف اجرا، تیمها میتوانند دستههایی از عاملها (Swarms) بسازند که در طول پروژه یاد میگیرند و تکامل مییابند. این رویکرد نرخ توهم ناشی از اشباع پنجره زمینه را کاهش داده و جداسازی واقعی کاربران در اپلیکیشنهای سازمانی را از طریق tenant_id ممکن میکند.
شما میتوانید پیادهسازی کامل را از طریق سرور MCP (پروتکل زمینه مدل) در MemorySync، راهنمای شروع سریع (Quickstart Guide) یا مستندات تعاملی آنها برای ساخت دستههای عامل پایدار بررسی کنید.
گام بعدی شما
- بررسی سرور MCP (پروتکل زمینه مدل) در MemorySync برای اتصال حافظه به مدلهای مختلف.
- جایگزینی تاریخچههای خطی (Linear History) با بازیابی معنایی در پروژههای چندعاملی برای کاهش هزینه توکن.
- پیادهسازی
tenant_idبرای مدیریت ایزولهشدهی حافظه در محیطهای چندکاربره.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو