Sessions and memory

Dreaming

Dreaming سیستم یکپارچه‌سازی حافظه در پس‌زمینه در memory-core است. این سیستم به OpenClaw کمک می‌کند سیگنال‌های کوتاه‌مدت قوی را به حافظهٔ پایدار منتقل کند، در حالی که فرایند قابل توضیح و قابل بازبینی باقی می‌ماند.

Dreaming چه چیزهایی می‌نویسد

Dreaming دو نوع خروجی را نگه می‌دارد:

  • وضعیت ماشین در memory/.dreams/ (فروشگاه یادآوری، سیگنال‌های فاز، نقطه‌های بررسی دریافت، قفل‌ها).
  • خروجی خوانا برای انسان در DREAMS.md (یا dreams.md موجود) و فایل‌های گزارش اختیاری فاز زیر memory/dreaming/<phase>/YYYY-MM-DD.md.

ارتقای بلندمدت همچنان فقط در MEMORY.md می‌نویسد.

مدل فاز

Dreaming از سه فاز همکار استفاده می‌کند:

فاز هدف نوشتن پایدار
Light مرتب‌سازی و آماده‌سازی مواد کوتاه‌مدت اخیر خیر
Deep امتیازدهی و ارتقای نامزدهای پایدار بله (MEMORY.md)
REM تأمل دربارهٔ تم‌ها و ایده‌های تکرارشونده خیر

این فازها جزئیات پیاده‌سازی داخلی هستند، نه «حالت‌های» جداگانه‌ای که کاربر پیکربندی می‌کند.

Light phase

فاز Light سیگنال‌های حافظهٔ روزانهٔ اخیر و ردپاهای یادآوری را دریافت می‌کند، موارد تکراری را حذف می‌کند و خط‌های نامزد را آماده می‌کند.

  • از وضعیت یادآوری کوتاه‌مدت، فایل‌های حافظهٔ روزانهٔ اخیر و رونوشت‌های نشست سانسورشده، در صورت وجود، می‌خواند.
  • وقتی ذخیره‌سازی شامل خروجی درون‌خطی باشد، یک بلوک مدیریت‌شدهٔ ## Light Sleep می‌نویسد.
  • سیگنال‌های تقویتی را برای رتبه‌بندی Deep بعدی ثبت می‌کند.
  • هرگز در MEMORY.md نمی‌نویسد.
Deep phase

فاز Deep تصمیم می‌گیرد چه چیزی به حافظهٔ بلندمدت تبدیل شود.

  • نامزدها را با استفاده از امتیازدهی وزن‌دار و دروازه‌های آستانه رتبه‌بندی می‌کند.
  • برای عبور، به minScore، minRecallCount و minUniqueQueries نیاز دارد.
  • پیش از نوشتن، قطعه‌ها را از فایل‌های روزانهٔ زنده بازآب‌رسانی می‌کند، بنابراین قطعه‌های قدیمی/حذف‌شده نادیده گرفته می‌شوند.
  • مدخل‌های ارتقایافته را به MEMORY.md اضافه می‌کند.
  • یک خلاصهٔ ## Deep Sleep در DREAMS.md می‌نویسد و به‌صورت اختیاری memory/dreaming/deep/YYYY-MM-DD.md را می‌نویسد.
REM phase

فاز REM الگوها و سیگنال‌های تأملی را استخراج می‌کند.

  • خلاصه‌های تم و تأمل را از ردپاهای کوتاه‌مدت اخیر می‌سازد.
  • وقتی ذخیره‌سازی شامل خروجی درون‌خطی باشد، یک بلوک مدیریت‌شدهٔ ## REM Sleep می‌نویسد.
  • سیگنال‌های تقویتی REM را که در رتبه‌بندی Deep استفاده می‌شوند ثبت می‌کند.
  • هرگز در MEMORY.md نمی‌نویسد.

دریافت رونوشت نشست

Dreaming می‌تواند رونوشت‌های نشست سانسورشده را در پیکرهٔ Dreaming دریافت کند. وقتی رونوشت‌ها در دسترس باشند، در کنار سیگنال‌های حافظهٔ روزانه و ردپاهای یادآوری به فاز Light داده می‌شوند. محتوای شخصی و حساس پیش از دریافت سانسور می‌شود.

دفترچهٔ رویا

Dreaming همچنین یک دفترچهٔ رویا روایی را در DREAMS.md نگه می‌دارد. پس از آنکه هر فاز مواد کافی داشته باشد، memory-core یک نوبت subagent پس‌زمینهٔ بهترین‌تلاش اجرا می‌کند و یک مدخل کوتاه دفترچه اضافه می‌کند. این کار از مدل runtime پیش‌فرض استفاده می‌کند، مگر اینکه dreaming.model پیکربندی شده باشد. اگر مدل پیکربندی‌شده در دسترس نباشد، دفترچهٔ رویا یک بار دیگر با مدل پیش‌فرض نشست تلاش می‌کند.

همچنین یک مسیر پرکردن تاریخی مبتنی بر شواهد برای کارهای بازبینی و بازیابی وجود دارد:

Backfill commands
  • memory rem-harness --path ... --grounded خروجی دفترچهٔ مبتنی بر شواهد را از یادداشت‌های تاریخی YYYY-MM-DD.md پیش‌نمایش می‌کند.
  • memory rem-backfill --path ... مدخل‌های دفترچهٔ مبتنی بر شواهد و برگشت‌پذیر را در DREAMS.md می‌نویسد.
  • memory rem-backfill --path ... --stage-short-term نامزدهای پایدار مبتنی بر شواهد را در همان فروشگاه شواهد کوتاه‌مدتی آماده می‌کند که فاز Deep عادی از قبل استفاده می‌کند.
  • memory rem-backfill --rollback و --rollback-short-term آن مصنوعات آماده‌شدهٔ backfill را بدون دست زدن به مدخل‌های عادی دفترچه یا یادآوری کوتاه‌مدت زنده حذف می‌کنند.

Control UI همان جریان backfill/بازنشانی دفترچه را ارائه می‌کند تا بتوانید پیش از تصمیم‌گیری دربارهٔ اینکه آیا نامزدهای مبتنی بر شواهد شایستهٔ ارتقا هستند، نتایج را در صحنهٔ رویاها بررسی کنید. صحنه همچنین یک مسیر مبتنی بر شواهد متمایز نشان می‌دهد تا بتوانید ببینید کدام مدخل‌های کوتاه‌مدت آماده‌شده از بازپخش تاریخی آمده‌اند، کدام آیتم‌های ارتقایافته با هدایت شواهد بوده‌اند، و فقط مدخل‌های آماده‌شدهٔ صرفاً مبتنی بر شواهد را بدون دست زدن به وضعیت کوتاه‌مدت زندهٔ عادی پاک کنید.

سیگنال‌های رتبه‌بندی Deep

رتبه‌بندی Deep از شش سیگنال پایهٔ وزن‌دار به‌علاوهٔ تقویت فاز استفاده می‌کند:

سیگنال وزن توضیح
بسامد 0.24 تعداد سیگنال‌های کوتاه‌مدتی که مدخل انباشته کرده است
ارتباط 0.30 میانگین کیفیت بازیابی برای مدخل
تنوع پرس‌وجو 0.15 زمینه‌های پرس‌وجو/روز متمایزی که آن را آشکار کرده‌اند
تازگی 0.15 امتیاز تازگی با کاهش زمانی
یکپارچه‌سازی 0.10 قدرت تکرار در چند روز
غنای مفهومی 0.06 چگالی برچسب مفهومی از قطعه/مسیر

برخوردهای فاز Light و REM یک تقویت کوچک با کاهش تازگی از memory/.dreams/phase-signals.json اضافه می‌کنند.

زمان‌بندی

وقتی فعال باشد، memory-core یک job کرون را برای یک پیمایش کامل Dreaming به‌صورت خودکار مدیریت می‌کند. هر پیمایش فازها را به‌ترتیب اجرا می‌کند: Light → REM → Deep.

پیمایش شامل workspace اصلی runtime و هر workspace پیکربندی‌شدهٔ agent است، با حذف موارد تکراری بر اساس مسیر، بنابراین fan-out کردن workspaceهای subagent باعث کنار گذاشته شدن DREAMS.md و وضعیت حافظهٔ agent اصلی نمی‌شود.

رفتار cadence پیش‌فرض:

تنظیم پیش‌فرض
dreaming.frequency 0 3 * * *
dreaming.model مدل پیش‌فرض

شروع سریع

Enable dreaming

{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true
          }
        }
      }
    }
  }
}

Custom sweep cadence

{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true,
            "timezone": "America/Los_Angeles",
            "frequency": "0 */6 * * *"
          }
        }
      }
    }
  }
}

دستور اسلش

/dreaming status
/dreaming on
/dreaming off
/dreaming help

گردش کار CLI

Promotion preview / apply

openclaw memory promote
openclaw memory promote --apply
openclaw memory promote --limit 5
openclaw memory status --deep

memory promote دستی به‌صورت پیش‌فرض از آستانه‌های فاز Deep استفاده می‌کند، مگر اینکه با flagهای CLI بازنویسی شود.

Explain promotion

توضیح دهید چرا یک نامزد مشخص ارتقا می‌یابد یا نمی‌یابد:

openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json

REM harness preview

تأملات REM، حقیقت‌های نامزد و خروجی ارتقای Deep را بدون نوشتن چیزی پیش‌نمایش کنید:

openclaw memory rem-harness
openclaw memory rem-harness --json

پیش‌فرض‌های کلیدی

همهٔ تنظیمات زیر plugins.entries.memory-core.config.dreaming قرار دارند.

enabledboolean

پیمایش Dreaming را فعال یا غیرفعال کنید.

frequencystring

cadence کرون برای پیمایش کامل Dreaming.

modelstring

بازنویسی اختیاری مدل subagent دفترچهٔ رویا. هنگام تنظیم allowlist برای allowedModels یک subagent، از مقدار canonical provider/model استفاده کنید.

UI رویاها

وقتی فعال باشد، زبانهٔ Dreams در Gateway نشان می‌دهد:

  • وضعیت فعلی فعال بودن Dreaming
  • وضعیت در سطح فاز و وجود پیمایش مدیریت‌شده
  • شمارش‌های کوتاه‌مدت، مبتنی بر شواهد، سیگنال و ارتقایافته‌های امروز
  • زمان اجرای برنامه‌ریزی‌شدهٔ بعدی
  • یک مسیر Scene مبتنی بر شواهد متمایز برای مدخل‌های بازپخش تاریخی آماده‌شده
  • خوانندهٔ قابل گسترش دفترچهٔ رویا که توسط doctor.memory.dreamDiary پشتیبانی می‌شود

Dreaming هرگز اجرا نمی‌شود: وضعیت blocked نشان می‌دهد

اگر openclaw memory status گزارش دهد Dreaming status: blocked، کرون مدیریت‌شده وجود دارد اما Heartbeat پیش‌فرض agent اجرا نمی‌شود. بررسی کنید که Heartbeat برای agent پیش‌فرض فعال باشد و target آن none نباشد، سپس پس از بازهٔ Heartbeat بعدی دوباره openclaw memory status --deep را اجرا کنید.

مرتبط