Sessions and memory
Dreaming
Dreaming سامانهٔ یکپارچهسازی حافظه در پسزمینه در memory-core است. این سامانه سیگنالهای قوی کوتاهمدت را به حافظهٔ پایدار منتقل میکند و درعینحال فرایند را توضیحپذیر و بازبینیپذیر نگه میدارد.
آنچه Dreaming مینویسد
- وضعیت ماشین در
memory/.dreams/(مخزن بازیابی، سیگنالهای فاز، نقاط بررسی ورود داده و قفلها). - خروجی خوانا برای انسان در
DREAMS.md(یا یکdreams.mdموجود) و فایلهای اختیاری گزارش فاز درmemory/dreaming/<phase>/YYYY-MM-DD.md.
ارتقای بلندمدت همچنان فقط در MEMORY.md مینویسد.
مدل فاز
Dreaming در هر پیمایش، سه فاز همکار را بهترتیب اجرا میکند: سبک -> REM -> عمیق. اینها فازهای پیادهسازی داخلی هستند، نه حالتهای جداگانهای که کاربر پیکربندی کند.
| فاز | هدف | نوشتن پایدار |
|---|---|---|
| سبک | مرتبسازی و آمادهسازی مطالب کوتاهمدت اخیر | خیر |
| REM | تأمل دربارهٔ مضمونها و ایدههای تکرارشونده | خیر |
| عمیق | امتیازدهی و ارتقای نامزدهای پایدار | بله (MEMORY.md) |
فاز سبک
- وضعیت اخیر بازیابی کوتاهمدت، فایلهای حافظهٔ روزانه و رونوشتهای ویرایششدهٔ نشست را، در صورت وجود، میخواند.
- سیگنالهای تکراری را حذف و خطوط نامزد را آماده میکند.
- وقتی ذخیرهسازی شامل خروجی درونخطی باشد، یک بلوک مدیریتشدهٔ
## Light Sleepمینویسد. - سیگنالهای تقویتی را برای رتبهبندی عمیق بعدی ثبت میکند.
- هرگز در
MEMORY.mdنمینویسد.
فاز REM
- از ردپاهای کوتاهمدت اخیر، خلاصههای مضمونی و تأملی میسازد.
- وقتی ذخیرهسازی شامل خروجی درونخطی باشد، یک بلوک مدیریتشدهٔ
## REM Sleepمینویسد. - سیگنالهای تقویتی REM را که رتبهبندی عمیق استفاده میکند، ثبت میکند.
- هرگز در
MEMORY.mdنمینویسد.
فاز عمیق
- نامزدها را با امتیازدهی وزنی و آستانهها رتبهبندی میکند (
minScore،minRecallCountوminUniqueQueriesهمگی باید پذیرفته شوند). - پیش از نوشتن، قطعهها را از فایلهای روزانهٔ زنده بازسازی میکند تا قطعههای قدیمی یا حذفشده نادیده گرفته شوند.
- ورودیهای ارتقایافته را به
MEMORY.mdمیافزاید. - یک خلاصهٔ
## Deep SleepدرDREAMS.mdو در صورت انتخاب درmemory/dreaming/deep/YYYY-MM-DD.mdمینویسد.
ورود رونوشت نشست
Dreaming میتواند رونوشتهای ویرایششدهٔ نشست را به مجموعهٔ Dreaming وارد کند. رونوشتها، در صورت وجود، در کنار سیگنالهای حافظهٔ روزانه و ردپاهای بازیابی به فاز سبک داده میشوند. محتوای شخصی و حساس پیش از ورود ویرایش میشود.
دفترچهٔ رؤیا
Dreaming یک دفترچهٔ رؤیای روایی را در DREAMS.md نگه میدارد. پس از آنکه هر فاز مطالب کافی داشته باشد، memory-core یک نوبت زیرعامل پسزمینه را بهصورت بهترین تلاش اجرا میکند و یک یادداشت کوتاه به دفترچه میافزاید؛ مگر آنکه dreaming.model پیکربندی شده باشد، از مدل پیشفرض زمان اجرا استفاده میشود. اگر مدل پیکربندیشده در دسترس نباشد، اجرای دفترچه یکبار با مدل پیشفرض نشست دوباره تلاش میشود؛ خطاهای اعتماد یا فهرست مجاز دوباره امتحان نمیشوند و بهجای بازگشت بیصدا به یک یادداشت عمومی، در گزارشها قابلمشاهده میمانند.
همچنین یک مسیر بازپُرکنی تاریخی مستند برای کارهای بازبینی و بازیابی وجود دارد:
فرمانهای بازپُرکنی
memory rem-harness --path ... --groundedخروجی مستند دفترچه را از یادداشتهای تاریخیYYYY-MM-DD.mdپیشنمایش میکند.memory rem-backfill --path ...یادداشتهای مستند و برگشتپذیر دفترچه را درDREAMS.mdمینویسد.memory rem-backfill --path ... --stage-short-termنامزدهای پایدار مستند را در همان مخزن شواهد کوتاهمدتی آماده میکند که فاز عمیق عادی استفاده میکند.memory rem-backfill --rollbackو--rollback-short-termآن مصنوعات بازپُرکنی آمادهشده را بدون دستزدن به یادداشتهای عادی دفترچه یا بازیابی کوتاهمدت زنده حذف میکنند.
رابط کاربری کنترل، همان فرایند بازپُرکنی/بازنشانی دفترچه را در زبانهٔ حافظهٔ عامل (صفحهٔ عاملها) ارائه میکند تا پیش از تصمیمگیری دربارهٔ شایستگی نامزدهای مستند برای ارتقا، نتایج را در صحنهٔ رؤیا بررسی کنید. یک مسیر متمایز صحنهٔ مستند نشان میدهد کدام ورودیهای کوتاهمدت آمادهشده از بازپخش تاریخی آمدهاند و کدام موارد ارتقایافته با هدایت دادههای مستند بودهاند؛ همچنین به شما امکان میدهد فقط ورودیهای آمادهشدهٔ صرفاً مستند را بدون دستزدن به وضعیت کوتاهمدت زنده پاک کنید.
سیگنالهای رتبهبندی عمیق
رتبهبندی عمیق از شش سیگنال پایهٔ وزنی بهعلاوهٔ تقویت فاز استفاده میکند:
| سیگنال | وزن | توضیح |
|---|---|---|
| ارتباط | 0.30 | میانگین کیفیت بازیابی ورودی |
| فراوانی | 0.24 | تعداد سیگنالهای کوتاهمدتی که ورودی انباشته کرده است |
| تنوع پرسوجو | 0.15 | زمینههای متمایز پرسوجو/روز که آن را آشکار کردهاند |
| تازگی | 0.15 | امتیاز تازگی با کاهش زمانی |
| یکپارچهسازی | 0.10 | قدرت تکرار چندروزه |
| غنای مفهومی | 0.06 | تراکم برچسب مفهوم در قطعه/مسیر |
برخوردهای فاز سبک و REM یک تقویت کوچک با کاهش تازگی از memory/.dreams/phase-signals.json اضافه میکنند.
نتایج آزمایش سایه میتوانند پیش از هر نوشتن پایدار، بهعنوان سیگنال بازبینی روی امتیاز پایه اعمال شوند: یک آزمایش مفید، تقویت کوچک و محدودی به نامزد میدهد؛ آزمایش خنثی آن را در حالت تعویق نگه میدارد؛ و آزمایش زیانبار آن را برای همان نوبت امتیازدهی ردشده علامتگذاری میکند. این سیگنال فقط برای گزارش است ــ میتواند ترتیب نامزدها یا فرادادهٔ بازبینی را تغییر دهد، اما هرگز در MEMORY.md نمینویسد و بهتنهایی نامزدی را ارتقا نمیدهد.
پوشش گزارش آزمایش سایهٔ QA
QA Lab شامل سناریویی صرفاً گزارشی برای بررسی این است که یک آزمایش سایهٔ احتمالی Dreaming در آینده چگونه میتواند حافظهٔ نامزد را پیش از ارتقا بازبینی کند: یک عامل، پاسخ مبنا را با پاسخی مقایسه میکند که میتواند از حافظهٔ نامزد استفاده کند، سپس گزارشی محلی با حکم، دلیل و پرچمهای خطر مینویسد. دامنهٔ این پوشش به QA محدود است ــ تأیید میکند مصنوع گزارش از MEMORY.md جدا میماند و عامل هرگز ادعا نمیکند که نامزد ارتقا یافته است. این پوشش رفتار آزمایش سایه را به محیط عملیاتی اضافه نمیکند و موتور ارتقای فاز عمیق را تغییر نمیدهد.
اجراکنندهٔ آزمایش سایهٔ memory-core برای مسیرهای کدی که به مصنوعی پایدار نیاز دارند، همان قرارداد صرفاً گزارشی را حفظ میکند. این اجراکننده نامزد، پیام آزمایش، نتیجهٔ مبنا، نتیجهٔ نامزد، حکم، دلیل، پرچمهای خطر و ارجاعات شواهد را میپذیرد و سپس با promotion action: report-only گزارشی مینویسد. حکمهای مفید به توصیهٔ promote، حکمهای خنثی به defer و حکمهای زیانبار به reject نگاشت میشوند ــ هیچیک از آنها در MEMORY.md نمینویسد یا ارتقای فاز عمیق را اعمال نمیکند.
زمانبندی
وقتی فعال باشد، memory-core یک کار Cron را برای پیمایش کامل Dreaming بهطور خودکار مدیریت میکند و موارد تکراری را در فضای کاری اصلی زمان اجرا و همهٔ فضاهای کاری پیکربندیشدهٔ عامل حذف میکند تا گسترش فضاهای کاری زیرعامل باعث کنار گذاشتهشدن DREAMS.md و وضعیت حافظهٔ عامل اصلی نشود.
| تنظیم | پیشفرض |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
مدل پیشفرض |
شروع سریع
فعالکردن Dreaming
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}تناوب سفارشی پیمایش
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true, "timezone": "America/Los_Angeles", "frequency": "0 */6 * * *" } } } } }}فرمان اسلش
/dreaming status/dreaming on/dreaming off/dreaming help/dreaming on و /dreaming off برای فراخوانندگان کانال به وضعیت مالک یا برای سرویسگیرندگان Gateway به operator.admin نیاز دارند. /dreaming status و /dreaming help فقطخواندنی هستند.
گردش کار CLI
پیشنمایش / اعمال ارتقا
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deepmemory promote دستی، مگر آنکه با پرچمهای CLI بازنویسی شود، بهطور پیشفرض از آستانههای فاز عمیق استفاده میکند.
توضیح ارتقا
توضیح دهید چرا نامزدی مشخص ارتقا مییابد یا نمییابد:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonپیشنمایش مهار REM
تأملات REM، حقایق نامزد و خروجی ارتقای عمیق را بدون نوشتن هیچچیز پیشنمایش کنید:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonپیشفرضهای کلیدی
همهٔ تنظیمات در plugins.entries.memory-core.config.dreaming قرار دارند.
enabledbooleandefault: falseپیمایش Dreaming را فعال یا غیرفعال کنید.
frequencystringdefault: 0 3 * * *تناوب Cron برای پیمایش کامل Dreaming.
modelstringبازنویسی اختیاری مدل زیرعامل دفترچهٔ رؤیا. هنگام تنظیم فهرست مجاز allowedModels زیرعامل نیز از یک مقدار متعارف provider/model استفاده کنید.
phases.deep.maxPromotedSnippetTokensnumberdefault: 160حداکثر تعداد تخمینی توکن که از هر قطعهٔ بازیابی کوتاهمدت ارتقایافته به MEMORY.md نگه داشته میشود. منشأ رتبهبندی قابلمشاهده باقی میماند.
رابط کاربری رؤیاها
وقتی فعال باشد، زبانهٔ رؤیاها در Gateway موارد زیر را نشان میدهد:
- وضعیت فعلی فعالبودن Dreaming
- وضعیت هر فاز و وجود پیمایش مدیریتشده
- تعداد موارد کوتاهمدت، مستند، سیگنالها و موارد ارتقایافتهٔ امروز
- زمان اجرای برنامهریزیشدهٔ بعدی
- یک مسیر متمایز صحنهٔ مستند برای ورودیهای آمادهشدهٔ بازپخش تاریخی
- یک خوانشگر گسترشپذیر دفترچهٔ رؤیا با پشتیبانی
doctor.memory.dreamDiary