Sessions and memory
Dreaming
Dreaming là hệ thống hợp nhất bộ nhớ chạy nền trong memory-core. Nó giúp OpenClaw chuyển các tín hiệu ngắn hạn mạnh vào bộ nhớ bền vững, đồng thời giữ cho quy trình có thể giải thích và xem xét được.
Dreaming ghi những gì
Dreaming giữ hai loại đầu ra:
- Trạng thái máy trong
memory/.dreams/(kho truy hồi, tín hiệu pha, điểm kiểm tra nhập dữ liệu, khóa). - Đầu ra cho người đọc trong
DREAMS.md(hoặcdreams.mdhiện có) và các tệp báo cáo pha tùy chọn dướimemory/dreaming/<phase>/YYYY-MM-DD.md.
Việc thăng cấp dài hạn vẫn chỉ ghi vào MEMORY.md.
Mô hình pha
Dreaming sử dụng ba pha phối hợp:
| Pha | Mục đích | Ghi bền vững |
|---|---|---|
| Light | Sắp xếp và chuẩn bị tài liệu ngắn hạn gần đây | Không |
| Deep | Chấm điểm và thăng cấp ứng viên bền vững | Có (MEMORY.md) |
| REM | Suy ngẫm về chủ đề và ý tưởng lặp lại | Không |
Các pha này là chi tiết triển khai nội bộ, không phải các "chế độ" riêng do người dùng cấu hình.
Light phase
Pha Light nhập các tín hiệu bộ nhớ hằng ngày gần đây và dấu vết truy hồi, khử trùng lặp chúng, rồi chuẩn bị các dòng ứng viên.
- Đọc từ trạng thái truy hồi ngắn hạn, các tệp bộ nhớ hằng ngày gần đây và bản ghi phiên đã được biên tập khi có.
- Ghi một khối
## Light Sleepđược quản lý khi lưu trữ bao gồm đầu ra nội tuyến. - Ghi lại tín hiệu củng cố để xếp hạng Deep sau này.
- Không bao giờ ghi vào
MEMORY.md.
Deep phase
Pha Deep quyết định nội dung nào trở thành bộ nhớ dài hạn.
- Xếp hạng ứng viên bằng điểm số có trọng số và các cổng ngưỡng.
- Yêu cầu
minScore,minRecallCountvàminUniqueQueriesphải đạt. - Tái tạo đoạn trích từ các tệp hằng ngày trực tiếp trước khi ghi, nên các đoạn trích cũ/đã xóa sẽ bị bỏ qua.
- Thêm các mục đã thăng cấp vào
MEMORY.md. - Ghi bản tóm tắt
## Deep SleepvàoDREAMS.mdvà tùy chọn ghimemory/dreaming/deep/YYYY-MM-DD.md.
REM phase
Pha REM trích xuất mẫu và tín hiệu suy ngẫm.
- Xây dựng tóm tắt chủ đề và suy ngẫm từ các dấu vết ngắn hạn gần đây.
- Ghi một khối
## REM Sleepđược quản lý khi lưu trữ bao gồm đầu ra nội tuyến. - Ghi lại tín hiệu củng cố REM được dùng bởi xếp hạng Deep.
- Không bao giờ ghi vào
MEMORY.md.
Nhập bản ghi phiên
Dreaming có thể nhập bản ghi phiên đã được biên tập vào tập dữ liệu Dreaming. Khi có bản ghi, chúng được đưa vào pha Light cùng với tín hiệu bộ nhớ hằng ngày và dấu vết truy hồi. Nội dung cá nhân và nhạy cảm được biên tập trước khi nhập.
Nhật ký Dream
Dreaming cũng giữ một Nhật ký Dream dạng tường thuật trong DREAMS.md. Sau khi mỗi pha có đủ tài liệu, memory-core chạy một lượt subagent nền theo kiểu nỗ lực tối đa và thêm một mục nhật ký ngắn. Nó dùng mô hình runtime mặc định trừ khi dreaming.model được cấu hình. Nếu mô hình đã cấu hình không khả dụng, Nhật ký Dream thử lại một lần bằng mô hình mặc định của phiên.
Cũng có một luồng điền bù lịch sử có căn cứ dành cho công việc xem xét và khôi phục:
Backfill commands
memory rem-harness --path ... --groundedxem trước đầu ra nhật ký có căn cứ từ các ghi chú lịch sửYYYY-MM-DD.md.memory rem-backfill --path ...ghi các mục nhật ký có căn cứ và có thể đảo ngược vàoDREAMS.md.memory rem-backfill --path ... --stage-short-termchuẩn bị các ứng viên bền vững có căn cứ vào cùng kho bằng chứng ngắn hạn mà pha Deep thông thường đã dùng.memory rem-backfill --rollbackvà--rollback-short-termxóa các hiện vật điền bù đã chuẩn bị đó mà không chạm vào mục nhật ký thông thường hoặc truy hồi ngắn hạn trực tiếp.
Giao diện Control UI hiển thị cùng luồng điền bù/đặt lại nhật ký để bạn có thể kiểm tra kết quả trong cảnh Dreams trước khi quyết định liệu các ứng viên có căn cứ có xứng đáng được thăng cấp hay không. Scene cũng hiển thị một luồng có căn cứ riêng để bạn có thể thấy mục ngắn hạn đã chuẩn bị nào đến từ phát lại lịch sử, mục đã thăng cấp nào được dẫn dắt bởi căn cứ, và chỉ xóa các mục đã chuẩn bị chỉ có căn cứ mà không chạm vào trạng thái ngắn hạn trực tiếp thông thường.
Tín hiệu xếp hạng Deep
Xếp hạng Deep dùng sáu tín hiệu cơ sở có trọng số cộng với củng cố pha:
| Tín hiệu | Trọng số | Mô tả |
|---|---|---|
| Tần suất | 0.24 | Số lượng tín hiệu ngắn hạn mà mục đã tích lũy |
| Mức liên quan | 0.30 | Chất lượng truy xuất trung bình của mục |
| Độ đa dạng truy vấn | 0.15 | Các ngữ cảnh truy vấn/ngày riêng biệt đã làm nó hiện |
| Độ mới | 0.15 | Điểm độ mới suy giảm theo thời gian |
| Hợp nhất | 0.10 | Sức mạnh lặp lại qua nhiều ngày |
| Độ phong phú khái niệm | 0.06 | Mật độ thẻ khái niệm từ đoạn trích/đường dẫn |
Các lượt khớp pha Light và REM thêm một mức tăng nhỏ suy giảm theo độ mới từ memory/.dreams/phase-signals.json.
Kết quả thử nghiệm bóng có thể được xếp chồng lên điểm cơ sở đó như một tín hiệu xem xét trước bất kỳ lần ghi bền vững nào. Một thử nghiệm hữu ích cho ứng viên mức tăng nhỏ có giới hạn, thử nghiệm trung lập giữ nó ở trạng thái hoãn, và thử nghiệm có hại đánh dấu nó là bị từ chối cho lượt chấm điểm đó. Tín hiệu này vẫn chỉ dành cho báo cáo: nó có thể thay đổi thứ tự ứng viên hoặc siêu dữ liệu xem xét, nhưng không ghi vào MEMORY.md hoặc tự thăng cấp ứng viên.
Phạm vi báo cáo thử nghiệm bóng QA
QA Lab bao gồm một kịch bản chỉ báo cáo để khám phá cách một thử nghiệm bóng Dreaming trong tương lai có thể xem xét bộ nhớ ứng viên trước khi thăng cấp. Kịch bản yêu cầu một agent so sánh câu trả lời cơ sở với câu trả lời có thể dùng bộ nhớ ứng viên, rồi ghi một báo cáo cục bộ với phán quyết, lý do và cờ rủi ro.
Phạm vi này được cố ý giới hạn trong QA. Nó xác minh rằng hiện vật báo cáo vẫn tách biệt với MEMORY.md và agent không tuyên bố ứng viên đã được thăng cấp. Nó không thêm hành vi thử nghiệm bóng production hoặc thay đổi công cụ thăng cấp pha Deep.
Trình chạy thử nghiệm bóng của memory-core giữ cùng hợp đồng chỉ báo cáo đó cho các đường mã cần hiện vật ổn định. Nó nhận ứng viên, prompt thử nghiệm, kết quả cơ sở, kết quả ứng viên, phán quyết, lý do, cờ rủi ro và tham chiếu bằng chứng, rồi ghi báo cáo với promotion action: report-only. Phán quyết hữu ích ánh xạ tới khuyến nghị promote, phán quyết trung lập ánh xạ tới defer, và phán quyết có hại ánh xạ tới reject; không khuyến nghị nào trong số đó ghi vào MEMORY.md hoặc áp dụng thăng cấp pha Deep.
Lập lịch
Khi được bật, memory-core tự quản lý một công việc cron cho một lượt quét Dreaming đầy đủ. Mỗi lượt quét chạy các pha theo thứ tự: Light → REM → Deep.
Lượt quét bao gồm workspace runtime chính và mọi workspace agent đã cấu hình, được khử trùng lặp theo đường dẫn, nên việc phân nhánh workspace subagent không loại trừ DREAMS.md và trạng thái bộ nhớ của agent chính.
Hành vi nhịp mặc định:
| Thiết lập | Mặc định |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
mô hình mặc định |
Bắt đầu nhanh
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 * * *" } } } } }}Lệnh slash
/dreaming status/dreaming on/dreaming off/dreaming help/dreaming on và /dreaming off thay đổi cấu hình trên toàn Gateway. Người gọi từ kênh phải là chủ sở hữu, và client Gateway phải có operator.admin. /dreaming status và /dreaming help vẫn chỉ đọc.
Quy trình CLI
Promotion preview / apply
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deepmemory promote thủ công dùng ngưỡng pha Deep theo mặc định trừ khi bị ghi đè bằng cờ CLI.
Explain promotion
Giải thích vì sao một ứng viên cụ thể sẽ hoặc sẽ không được thăng cấp:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonREM harness preview
Xem trước các suy ngẫm REM, sự thật ứng viên và đầu ra thăng cấp Deep mà không ghi bất kỳ thứ gì:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonMặc định chính
Tất cả thiết lập nằm dưới plugins.entries.memory-core.config.dreaming.
enabledbooleandefault: falseBật hoặc tắt lượt quét Dreaming.
frequencystringdefault: 0 3 * * *Nhịp Cron cho lượt quét Dreaming đầy đủ.
modelstringGhi đè mô hình subagent Nhật ký Dream tùy chọn. Dùng giá trị provider/model chuẩn khi cũng đặt danh sách cho phép allowedModels của subagent.
phases.deep.maxPromotedSnippetTokensnumberdefault: 160Số lượng token ước tính tối đa được giữ từ mỗi đoạn trích truy hồi ngắn hạn được thăng cấp vào MEMORY.md. Nguồn gốc xếp hạng vẫn hiển thị.
Giao diện Dreams
Khi được bật, tab Dreams của Gateway hiển thị:
- trạng thái bật Dreaming hiện tại
- trạng thái cấp pha và sự hiện diện của lượt quét được quản lý
- số lượng ngắn hạn, có căn cứ, tín hiệu và đã thăng cấp hôm nay
- thời điểm chạy theo lịch tiếp theo
- một luồng Scene có căn cứ riêng cho các mục phát lại lịch sử đã chuẩn bị
- trình đọc Nhật ký Dream có thể mở rộng, được hỗ trợ bởi
doctor.memory.dreamDiary
Dreaming không bao giờ chạy: trạng thái hiển thị bị chặn
Nếu openclaw memory status báo cáo Dreaming status: blocked, cron được quản lý tồn tại nhưng heartbeat agent mặc định không kích hoạt. Kiểm tra rằng heartbeat được bật cho agent mặc định và đích của nó không phải none, rồi chạy lại openclaw memory status --deep sau khoảng heartbeat tiếp theo.