Memory System
Qwen Code’s memory system allows the AI to remember important facts, preferences, and context across sessions, providing personalized and context-aware assistance.Overview
The memory system consists of:- Global Memory: User-level facts shared across all projects (
~/.qwen/QWEN.md) - Project Memory: Project-specific context (
.qwen/QWEN.mdorQWEN.mdin project root) - Hierarchical Loading: Automatic discovery from workspace root to current directory
- Import System: Include external files and organize memory content
Memory Files
File Locations
Frompackages/core/src/tools/memoryTool.ts:77:
File Format
Memory files are Markdown documents with optional structure:Memory Tool
Thesave_memory tool allows Qwen Code to store facts for future reference.
Tool Schema
FrommemoryTool.ts:31:
Usage Examples
Save to Global Memory
~/.qwen/QWEN.md:
Save to Project Memory
QWEN.md:
Interactive Scope Selection
Ifscope is omitted, user is prompted to choose:
Tool Behavior
FrommemoryTool.ts:165:
- Creates
## Qwen Added Memoriessection if it doesn’t exist - Appends new facts as bullet points
- Strips leading dashes from fact text
- Maintains proper spacing
Hierarchical Memory Loading
Qwen Code automatically discovers and loads memory files in a hierarchical manner.Discovery Process
Frompackages/core/src/utils/memoryDiscovery.ts:24:
Load Order
FrommemoryDiscovery.ts:68:
- Global memory (
~/.qwen/QWEN.md) - Project root (found via
.gitdirectory) - Intermediate directories (between project root and current directory)
- Current directory
- Extension context files (if any)
/home/user/projects/myapp/src/components/:
Content Concatenation
FrommemoryDiscovery.ts:282:
Import System
Memory files support importing other files.Import Syntax
Frompackages/core/src/utils/memoryImportProcessor.ts:
Import Formats
Tree Format (default):Recursive Imports
Imports can be nested:Configuration
Custom Filenames
FrommemoryTool.ts:90:
Folder Trust
Memory loading respects folder trust settings:folderTrust is false, only global memory and explicitly included directories are loaded.
Best Practices
When to Use Global vs Project Memory
Global Memory (~/.qwen/QWEN.md):
- Personal preferences and coding style
- Tool configurations
- Common patterns across all projects
- Credential locations (not the credentials themselves!)
QWEN.md):
- Project architecture and structure
- Technology stack and versions
- Build and deployment processes
- Team conventions
- API endpoints and schemas
Memory File Organization
Structure memory files for clarity:Import Organization
Use imports to keep files manageable:Avoid Sensitive Information
Never store sensitive data in memory files: ❌ Bad:Advanced Usage
Programmatic Memory Access
Memory in Resumable Sessions
Memory content is included in session checkpoints:Extension Context Files
Extensions can provide additional context:Troubleshooting
Memory Not Loading
Problem: Qwen Code doesn’t seem to remember context. Check:Import Loops
Problem: Circular imports cause issues. Solution: Imports track visited files to prevent loops:Large Memory Files
Problem: Memory files too large, wasting tokens. Solution:- Use imports to split content
- Keep only essential information
- Archive outdated context
Permission Issues
Problem: Cannot write to global memory file. Solution:Source Code References
- Memory tool:
packages/core/src/tools/memoryTool.ts - Memory discovery:
packages/core/src/utils/memoryDiscovery.ts - Import processor:
packages/core/src/utils/memoryImportProcessor.ts - Configuration:
packages/core/src/config/config.ts:52
