پرش به محتوای اصلی
پرش به محتوای مقاله

«جایگزینی گزارش‌های متنی با پایگاه‌داده»؛ روش جدید مدیریت حافظه در OpenClaw

·۱۶ تیر ۱۴۰۵۵ دقیقه مطالعه۱ بازدید
راهنما
ساخت حافظه پایدار برای عامل هوشمندم: کدی که بالاخره کار کرد
ساخت حافظه پایدار برای عامل هوشمندم: کدی که بالاخره کار کرد
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

انتقال مسئولیت ثبت حافظه از «قضاوت مدل» به «زمان اجرای سیستم». این اولین بار است که یک پیاده‌سازی ساده ۱۵۰ خطی، حافظه عامل را به یک مسیر حسابرسی (Audit Trail) قطعی تبدیل می‌کند.

تصور کنید دستیاری دارید که می‌داند شما قهوه دوست دارید، اما فراموش می‌کند که دیروز سه بار برای رزرو پرواز شما تلاش کرده و شکست خورده است؛ این همان شکافی است که عامل‌های هوشمند فعلاً با آن دست‌وپنجه نرم می‌کنند. جیمز میلر، توسعه‌دهنده مستقل، راهکاری برای پایان دادن به این «فراموشی دائمی» یافته است. او متوجه شد که اکثر عامل‌های خودمختار با یک مشکل همیشگی روبرو هستند: آن‌ها در هر جلسه با یک صفحهٔ سفید بیدار می‌شوند و حافظه بلندمدت واقعی ندارند.

به نقل از گزارش dev.to، میلر در ۷ ژوئیه ۲۰۲۶ پیاده‌سازی فنی جدیدی را به اشتراک گذاشت که به عامل‌های OpenClaw اجازه می‌دهد سوابقی ساختاریافته و دائمی از هر اقدام خود داشته باشند. در این روش، برخلاف متدهای رایج، دیگر لازم نیست عامل بر اساس قضاوت‌های ناقص خود تصمیم بگیرد چه چیزی «مهم» است و چه چیزی را باید به خاطر بسپارد؛ بلکه سیستمی ایجاد شده که هر اتفاق را بدون دخالت مدل ثبت می‌کند.

بسیاری از عامل‌ها در هر جلسه با یک صفحهٔ سفید بیدار می‌شوند. اگرچه OpenClaw امکان استفاده از فایل‌های حافظه استاتیک را می‌دهد، اما این عکس‌برداری‌های لحظه‌ای نمی‌توانند تاریخچه زنده یک جریان کاری را ثبت کنند. همان‌طور که در تحلیل‌های قبلی ما درباره‌ی حافظهٔ عامل (Agent Memory) اشاره کردیم، تکیه بر حافظه داخلی مدل‌ها اغلب به توهم منجر می‌شود. این یعنی مدل ممکن است تصور کند کاری را انجام داده در حالی که در واقعیت شکست خورده است. این چالش‌ها ما را به یاد راهکارهای Lorekeeper برای کاهش فراموشی می‌اندازد که از چرخه‌های بازاندیشی برای تثبیت حافظه استفاده می‌کند.

زمینه: شکست حافظه‌های دستی

میلر پیش از رسیدن به این راهکار، حدود شش ماه با OpenClaw کار کرد و دریافت روش‌های سنتی مانند ایجاد فایل‌های Markdown در مسیر memory/YYYY-MM-DD.md کاملاً ناکارآمد هستند. طبق مستندات OpenClaw، این روش پیشنهادی است، اما یک نقطه ضعف بزرگ دارد: این متد به تصمیم خودِ عامل وابسته است تا تعیین کند چه زمانی و چه مطلبی را بنویسد.

در عمل، مدیریت دستی حافظه خسته‌کننده و مستعد خطا است. میلر خاطرنشان کرد که عامل‌ها اغلب تصمیمات بدی می‌گیرند؛ به‌خصوص در ساعات انتهایی کار (مثلاً ساعت ۲ صبح که مدل اصطلاحاً «خسته» است)، منجر به ایجاد خلاصه‌های بی‌فایده می‌شوند یا کلاً زمینه‌های حیاتی را حذف می‌کنند. از آنجایی که «فایل روح» (Soul File) عامل و فایل‌های کاربر اسنپ‌شات‌های استاتیک هستند، نمی‌توانند به عنوان سوابق زنده برای یک جریان کاری پویا عمل کنند. این نقص در مدیریت سوابق، مشابه همان تلهٔ بازنویسی سوابقی است که در پژوهش‌های UIUC منجر به افت شدید دقت عامل‌ها شد.

او برای حل این مشکل، مسئولیت ثبت وقایعات را از دوش عامل برداشت و به سطح زمان اجرا (Runtime) منتقل کرد. او یک پایگاه‌داده سبک SQLite (اس‌کی‌لایت) — مثل یک دفترچه یادداشت دیجیتالِ بسیار سریع که هر اتفاق را با برچسب زمان ثبت می‌کند — در مسیر ~/.openclaw/memory/agent_memory.db پیاده کرد. این رویکرد تضمین می‌کند که داده‌ها به‌طور خودکار کپچر شوند، به جای اینکه از هوش مصنوعی خواسته شود «یادش بیاید» پیشرفت خود را ثبت کند؛ تکلیفی که عامل‌ها معمولاً در حین انجام وظایف پیچیده در آن شکست می‌خورند.

جزئیات فنی و نقشه راه

ساختار فنی این سیستم بر پایه یک جدول واحد به نام events است که با کتابخانه‌های sqlite3 و json مدیریت می‌شود. این جدول به‌گونه‌ای طراحی شده که پرس‌وجوهای سریع را ممکن سازد و شامل فیلدهای زیر است: id (کلید اصلی)، timestamp (برچسب زمانی)، session_id (شناسه جلسه)، event_type (نوع رویداد)، summary (خلاصه)، details (جزئیات) و tags (تگ‌ها).

ویژگی‌های کلیدی این معماری عبارتند از:

  • محرک‌های خودکار: سیستم به‌جای سطح عامل، به زمان اجرا متصل است و موارد زیر را ثبت می‌کند:
    • فراخوانی ابزارها: ثبت نام ابزار، آرگومان‌های پاک‌سازی شده و وضعیت نتیجه (مثلاً با بررسی success: result.get("ok", False)).
    • مرزهای جلسه: ثبت دقیق زمان بیدار شدن یا به خواب رفتن عامل.
    • محرک‌های Cron: ثبت اینکه کدام شغل (Job) خاص اجرا شده and نتیجه آن چه بوده است.
    • خطاها: ثبت تمام استثناها (Exceptions)، شامل نوع دقیق خطا و متن پیام آن.
    • پیام‌های انسانی: ثبت متن واقعی ارسالی توسط کاربر، همراه با یک پرچم (Flag) برای شناسایی محتوای حساس.
  • داده‌های ساختاریافته: جزئیات و تگ‌ها به‌صورت رشته‌های کدگذاری شده JSON ذخیره می‌شوند تا انعطاف‌پذیری متاداده‌ها بدون نیاز به تغییر در اسکیما (ساختار) جدول حفظ شود.
  • بهینه‌سازی جست‌وجو: با استفاده از ایندکس SQL روی session_id و timestamp (موسوم به idx_session)، عامل می‌تواند از طریق توابعی مانند get_recent_events()، یک خط زمانی دقیق یا فعالیت‌های ۲۴ ساعت گذشته را در چند میلی‌ثانیه بازیابی کند.

میلر پیش از رسیدن به این نتیجه، سه معماری مختلف را آزمایش کرد. او دریافت فایل‌های متنی ساده برای پرس‌وجوهای موثر غیرممکن هستند؛ اگرچه grep برای رشته‌های دقیق کار می‌کند، اما نمی‌تواند پرس‌وجوهای پیچیده‌ای مثل «تمام فراخوانی‌های شکست‌خورده ابزارها در روز گذشته را نشان بده» را مدیریت کند. او همچنین JSON Lines را امتحان کرد که برای پرس‌وجوها بهتر بود اما چون فقط قابلیت Append (افزودن به انتها) داشت و فاقد ایندکس بود، با رشد فایل‌ها سرعت سیستم کاهش می‌یافت. در مقابل، نسخه SQLite حتی پس از شش ماه ثبت مداوم لاگ‌ها، حجمش زیر ۱ مگابایت باقی ماند.

این تغییر، گذاری از «حافظه مبهم» به «سنجش دقیق» (Exact Instrumentation) است. با تبدیل حافظه به یک پایگاه‌داده از رویدادهای سیستمی به جای دفترچه خاطراتی از خلاصه‌ها، ریسک توهم (Hallucination) — یعنی وقتی مدل با اطمینان چیزی می‌گوید که وجود ندارد — حذف شده است. اکنون عامل دیگر «حدس نمی‌زند» هفته پیش چه اتفاق افتاده، بلکه یک مسیر حسابرسی (Audit Trail) واقعی و مستند را جست‌وجو می‌کند. این رویکرد در واقع تأکیدی بر این است که مدیریت حافظه بیش از آنکه یک قابلیت فنی ساده باشد، یک مسئله‌ی حکمرانی داده است تا از هرگونه تخریب یا تداخل اطلاعاتی جلوگیری شود.

برای یک توسعه‌دهنده عملیاتی، این یعنی قابلیت اطمینان عامل دیگر به کیفیت پرامپت وابسته نیست؛ بلکه ابزارهای سنجش جایگزین مهندسی پرامپت می‌شوند. اگر زمان اجرا شکست یک ابزار را ثبت کند، عامل پس از بازراه‌اندازی این حقیقت را به‌صورت عینی می‌بیند و می‌تواند بلافاصله استراتژی خود را تغییر دهد.

میلر اکنون در حال تبدیل این سیستم به یک مدل دو لایه است. او یک مرحله «فشرده‌سازی حافظه» را اضافه می‌کند: یک شغل شبانه (Cron Job) که وقایع ۲۴ ساعت گذشته SQLite را می‌خواند و آن‌ها را در یک پاراگراف خلاصه می‌کند تا در یک فایل متنی روزانه ذخیره شود. این کار تضمین می‌کند که اگر روزی پایگاه‌داده از دسترس خارج شود، فایل‌های متنی همچنان یک خلاصه ساختاریافته از تاریخچه را ارائه دهند.

اگر با عدم اطمینان عامل‌ها در محیط عملیاتی دست‌وپنجه نرم می‌کنید، به جای اصلاح مداوم پرامپت‌های سیستمی، یک مسیر حسابرسی در سطح سیستم بسازید. کل این پیاده‌سازی حدود ۱۵۰ خط کد پایتون است و می‌توان آن را با مجوز MIT به هر چارچوب عاملی که از قلاب‌های (Hooks) فراخوانی ابزار پشتیبانی می‌کند، اضافه کرد.

گام بعدی شما

  • بررسی ساختار جدول events میلر برای پیاده‌سازی در پروژه‌های شخصی.
  • جایگزینی لاگ‌های متنی ساده با SQLite برای کاهش تأخیر در بازیابی حافظه.
  • پیاده‌سازی یک Cron Job برای خلاصه‌سازی شبانه وقایع دیتابیس.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این متدولوژی با حذف توهمات مربوط به تاریخچه، پایداری عامل‌های هوشمند را در محیط‌های عملیاتی افزایش می‌دهد. تخصص میلر در استفاده از SQLite ثابت می‌کند که برای حافظه بلندمدت، ابزارهای سنتی پایگاه‌داده کارآمدتر از متدهای مدرن متنی هستند.

تأثیر برای ایران

این راهکار به دلیل استفاده از کتابخانه‌های بازمنبع پایتون و SQLite، برای توسعه‌دهندگان ایرانی کاملاً در دسترس است و نیازی به APIهای خارجی یا هزینه اشتراکی ندارد.

·نگاه ما
تحریریه دات‌هوش

جایگزینی حافظهٔ مبتنی بر متن با ساختار SQL، پارادایم مدیریت وضعیت (State) در عامل‌ها را تغییر می‌دهد. این رویکرد نشان می‌دهد که برای رسیدن به قابلیت اطمینان صنعتی، باید کنترل حافظه را از لایه مدل (Probabilistic) به لایه سیستم (Deterministic) منتقل کنیم. در واقع، «سندزدانی» اتفاقات جایگزین «یادآوری» آن‌ها می‌شود.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.