Sessions and memory

نمای کلی حافظه

OpenClaw چیزها را با نوشتن فایل‌های Markdown ساده در workspace عامل شما به خاطر می‌سپارد. مدل فقط آنچه را که روی دیسک ذخیره می‌شود «به خاطر می‌سپارد»؛ هیچ وضعیت پنهانی وجود ندارد.

روش کار

عامل شما سه فایل مرتبط با حافظه دارد:

  • MEMORY.md — حافظهٔ بلندمدت. واقعیت‌ها، ترجیحات و تصمیم‌های پایدار. در شروع هر جلسهٔ DM بارگذاری می‌شود.
  • memory/YYYY-MM-DD.md — یادداشت‌های روزانه. زمینه و مشاهدات جاری. یادداشت‌های امروز و دیروز به‌طور خودکار بارگذاری می‌شوند.
  • DREAMS.md (اختیاری) — دفترچهٔ Dream Diary و خلاصه‌های sweep مربوط به Dreaming برای بازبینی انسانی، شامل ورودی‌های backfill تاریخی مبتنی بر شواهد.

این فایل‌ها در workspace عامل قرار دارند (پیش‌فرض ~/.openclaw/workspace).

تعهدهای استنباط‌شده

بعضی پیگیری‌های آینده واقعیت‌های پایدار نیستند. اگر به مصاحبه‌ای در فردا اشاره کنید، حافظهٔ مفید ممکن است «بعد از مصاحبه پیگیری کن» باشد، نه «این را برای همیشه در MEMORY.md ذخیره کن».

تعهدها حافظه‌های پیگیری کوتاه‌مدت و اختیاری برای همین مورد هستند. OpenClaw آن‌ها را در یک گذر پس‌زمینهٔ پنهان استنباط می‌کند، به همان عامل و کانال محدود می‌کند، و check-inهای سررسیدشده را از طریق heartbeat تحویل می‌دهد. یادآورها‌ی صریح همچنان از وظایف زمان‌بندی‌شده استفاده می‌کنند.

ابزارهای حافظه

عامل دو ابزار برای کار با حافظه دارد:

  • memory_search — یادداشت‌های مرتبط را با جست‌وجوی معنایی پیدا می‌کند، حتی وقتی عبارت‌بندی با متن اصلی متفاوت باشد.
  • memory_get — یک فایل حافظهٔ مشخص یا بازه‌ای از خطوط را می‌خواند.

هر دو ابزار توسط Plugin حافظهٔ فعال ارائه می‌شوند (پیش‌فرض: memory-core).

Plugin همراه ویکی حافظه

اگر می‌خواهید حافظهٔ پایدار بیشتر شبیه یک پایگاه دانش نگهداری‌شده رفتار کند تا فقط یادداشت‌های خام، از Plugin همراه memory-wiki استفاده کنید.

memory-wiki دانش پایدار را به یک مخزن ویکی با این ویژگی‌ها کامپایل می‌کند:

  • ساختار صفحهٔ قطعی
  • ادعاها و شواهد ساختاریافته
  • ردیابی تناقض و تازگی
  • داشبوردهای تولیدشده
  • digestهای کامپایل‌شده برای مصرف‌کنندگان عامل/runtime
  • ابزارهای بومی ویکی مانند wiki_search، wiki_get، wiki_apply و wiki_lint

این جایگزین Plugin حافظهٔ فعال نمی‌شود. Plugin حافظهٔ فعال همچنان مالک recall، promotion و Dreaming است. memory-wiki یک لایهٔ دانش سرشار از provenance در کنار آن اضافه می‌کند.

ویکی حافظه را ببینید.

جست‌وجوی حافظه

وقتی یک ارائه‌دهندهٔ embedding پیکربندی شده باشد، memory_search از جست‌وجوی ترکیبی استفاده می‌کند؛ یعنی ترکیب شباهت برداری (معنای معنایی) با تطبیق کلیدواژه (عبارت‌های دقیق مانند IDها و نمادهای کد). پس از داشتن API key برای هر ارائه‌دهندهٔ پشتیبانی‌شده، این قابلیت بدون پیکربندی اضافی کار می‌کند.

برای جزئیات دربارهٔ روش کار جست‌وجو، گزینه‌های تنظیم و راه‌اندازی ارائه‌دهنده، جست‌وجوی حافظه را ببینید.

backendهای حافظه

لایهٔ ویکی دانش

flush خودکار حافظه

پیش از آنکه Compaction گفت‌وگوی شما را خلاصه کند، OpenClaw یک نوبت بی‌صدا اجرا می‌کند که به عامل یادآوری می‌کند زمینهٔ مهم را در فایل‌های حافظه ذخیره کند. این به‌طور پیش‌فرض فعال است؛ لازم نیست چیزی را پیکربندی کنید.

برای نگه داشتن آن نوبت نگهداری روی یک مدل محلی، یک override دقیق برای مدل memory-flush تنظیم کنید:

{
  "agents": {
    "defaults": {
      "compaction": {
        "memoryFlush": {
          "model": "ollama/qwen3:8b"
        }
      }
    }
  }
}

این override فقط روی نوبت memory-flush اعمال می‌شود و زنجیرهٔ fallback جلسهٔ فعال را به ارث نمی‌برد.

Dreaming

Dreaming یک گذر اختیاری تثبیت پس‌زمینه برای حافظه است. سیگنال‌های کوتاه‌مدت را جمع‌آوری می‌کند، candidateها را امتیازدهی می‌کند و فقط آیتم‌های واجد شرایط را به حافظهٔ بلندمدت (MEMORY.md) ارتقا می‌دهد.

طراحی شده است تا حافظهٔ بلندمدت پرسیگنال بماند:

  • اختیاری: به‌طور پیش‌فرض غیرفعال است.
  • زمان‌بندی‌شده: وقتی فعال باشد، memory-core به‌طور خودکار یک cron job تکرارشونده را برای یک sweep کامل Dreaming مدیریت می‌کند.
  • آستانه‌دار: ارتقاها باید از gateهای امتیاز، فراوانی recall و تنوع query عبور کنند.
  • قابل بازبینی: خلاصه‌های فاز و ورودی‌های دفترچه در DREAMS.md برای بازبینی انسانی نوشته می‌شوند.

برای رفتار فازها، سیگنال‌های امتیازدهی و جزئیات Dream Diary، Dreaming را ببینید.

backfill مبتنی بر شواهد و promotion زنده

سیستم Dreaming اکنون دو lane بازبینی نزدیک به هم دارد:

  • Dreaming زنده از store کوتاه‌مدت Dreaming زیر memory/.dreams/ کار می‌کند و همان چیزی است که فاز عمیق عادی هنگام تصمیم‌گیری دربارهٔ آنچه می‌تواند به MEMORY.md ارتقا یابد استفاده می‌کند.
  • backfill مبتنی بر شواهد یادداشت‌های تاریخی memory/YYYY-MM-DD.md را به‌عنوان فایل‌های روز مستقل می‌خواند و خروجی بازبینی ساختاریافته را در DREAMS.md می‌نویسد.

backfill مبتنی بر شواهد زمانی مفید است که می‌خواهید یادداشت‌های قدیمی‌تر را دوباره پخش کنید و بدون ویرایش دستی MEMORY.md بررسی کنید سیستم چه چیزی را پایدار می‌داند.

وقتی استفاده می‌کنید از:

openclaw memory rem-backfill --path ./memory --stage-short-term

candidateهای پایدار مبتنی بر شواهد مستقیماً ارتقا داده نمی‌شوند. آن‌ها در همان store کوتاه‌مدت Dreaming قرار می‌گیرند که فاز عمیق عادی از قبل استفاده می‌کند. یعنی:

  • DREAMS.md سطح بازبینی انسانی باقی می‌ماند.
  • store کوتاه‌مدت سطح رتبه‌بندی رو به ماشین باقی می‌ماند.
  • MEMORY.md همچنان فقط توسط promotion عمیق نوشته می‌شود.

اگر تصمیم گرفتید replay مفید نبوده است، می‌توانید artifactهای stage‌شده را بدون دست زدن به ورودی‌های عادی دفترچه یا وضعیت recall عادی حذف کنید:

openclaw memory rem-backfill --rollback
openclaw memory rem-backfill --rollback-short-term

CLI

openclaw memory status          # Check index status and provider
openclaw memory search "query"  # Search from the command line
openclaw memory index --force   # Rebuild the index

مطالعهٔ بیشتر

مرتبط