feat: Auto-Dreamer v2 paper-based memory consolidation (NeurIPS 2026)#132
Open
CMander02 wants to merge 2 commits into
Open
feat: Auto-Dreamer v2 paper-based memory consolidation (NeurIPS 2026)#132CMander02 wants to merge 2 commits into
CMander02 wants to merge 2 commits into
Conversation
…026)
Implements the full Auto-Dreamer two-timescale architecture:
New agents:
- AutoDreamAgent (v1 simple): remove redundancies, resolve conflicts
- AutoDreamV2Agent (v2 paper): survey working region, synthesize replacements, retire sources
New services:
- AutoDreamManager (v1): time-window fetch + agent step + episodic checkpoint
- AutoDreamV2Manager (v2): builds working region R = {newly written} ∪ {recently retrieved},
formats as read-only evidence, drives consolidation agent autonomously
- MemoryAccessLogManager: logs which entries were retrieved (for working region construction)
New schema/ORM:
- memory_access_log table tracks retrieval events for working region construction
- AutoDreamRequest / AutoDreamResponse schemas (v1)
- AutoDreamV2Request / AutoDreamV2Response / WorkingRegionStats schemas (v2)
Wiring:
- AgentType.auto_dream_agent + auto_dream_v2_agent registered everywhere
- POST /memory/auto_dream and POST /memory/auto_dream_v2 endpoints
- client.auto_dream() and client.auto_dream_v2() methods
- Memory agent truncation fix: execute only first tool call per turn to prevent duplicate mutations
- search_in_memory logs access via fire-and-forget asyncio.create_task
- check_memory tool for direct ID-based entry inspection (paper tool interface)
- AUTO_DREAM_V2_READ_TOOLS / AUTO_DREAM_V2_WRITE_TOOLS constants
- Separate system prompts for each agent variant (base + screen_monitor)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
zychen seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the full Auto-Dreamer two-timescale memory architecture from the NeurIPS 2026 paper.
What's included
v1 (simple AutoDream) — same as
feat/auto-dream-simplePR:AutoDreamAgent+AutoDreamManager+POST /memory/auto_dreamv2 (paper-faithful region rewriting):
AutoDreamV2Agent— consolidation agent driven by a 3-phase prompt (Survey → Synthesize → Retire)AutoDreamV2Manager— builds working region R = {newly written ∪ recently retrieved}, formats as read-only evidence, drives the agent autonomouslyMemoryAccessLogManager— logs which entries were retrieved by the task agent (for working region construction); uses fire-and-forgetasyncio.create_taskso retrieval tracking never blocks searchmemory_access_logORM table — tracks retrievals with 90-day retention pruningcheck_memorytool — batch ID-based entry inspection (mirrors paper's navigation tool)AUTO_DREAM_V2_READ_TOOLS/AUTO_DREAM_V2_WRITE_TOOLSconstantsagent.py: executes only the first tool call per turn to prevent duplicate state mutationsArchitecture (paper §4.2)
New files
mirix/agent/auto_dream_agent.pymirix/agent/auto_dream_v2_agent.pymirix/services/auto_dream_manager.pymirix/services/auto_dream_v2_manager.pymirix/services/memory_access_log_manager.pymirix/orm/memory_access_log.pymirix/schemas/auto_dream.pymirix/schemas/auto_dream_v2.pymirix/prompts/system/base/auto_dream_agent.txtmirix/prompts/system/base/auto_dream_v2_agent.txtmirix/prompts/system/screen_monitor/auto_dream_agent.txtModified files
mirix/schemas/agent.py·mirix/agent/agent_configs.py·mirix/agent/__init__.py·mirix/agent/meta_agent.py·mirix/agent/agent.py·mirix/server/server.py·mirix/server/rest_api.py·mirix/client/remote_client.py·mirix/constants.py·mirix/functions/function_sets/base.py·mirix/functions/function_sets/memory_tools.py·mirix/orm/__init__.pyTest plan
POST /memory/auto_dream_v2withdry_run: true— verify working region stats returnedmemory_access_logtable is populated after search calls🤖 Generated with Claude Code