A powerful memory management system powered by ReMe that provides persistent cross-session memory, automatic user preference application, and intelligent context compression for OpenClaw.
Memory management system powered by ReMe. Enables cross-session memory persistence, automatic user preference application, and intelligent context compressio...
Description
name: memory-reme description: Memory management system powered by ReMe. Enables cross-session memory persistence, automatic user preference application, and intelligent context compression. Use when user asks to remember information, retrieve past context, apply user preferences, or manage long-term memory. Essential for preventing repeated mistakes and maintaining continuity across sessions.
Memory-reme - ReMe Memory Management
A memory management system powered by ReMe that provides persistent cross-session memory, automatic user preference application, and intelligent context compression.
When to Use This Skill
Activate this skill when:
- User asks you to remember something ("记住这个", "别忘了", "下次注意")
- User provides feedback on your behavior ("你总是忘记", "为什么又这样")
- User refers to past information ("之前说过", "上次怎么做的")
- User asks about your preferences or settings
- User wants to prevent repeated mistakes
- Long conversations where context might overflow
Core Concepts
Three-Level Memory
1. Long-term Memory (MEMORY.md)
- User preferences and rules
- Persistent across all sessions
- Updated manually or through learning
2. Daily Memory (memory/YYYY-MM-DD.md)
- Session summaries
- Important events and decisions
- Auto-generated at session end
3. In-Memory Context
- Current conversation state
- Compressed when approaching limits
- Temporary, session-bound
Memory Types
| Type | Purpose | Example |
|---|---|---|
| Personal | User preferences, habits | "Prefer concise code", "Always send files" |
| Task | Execution experience, patterns | "Python scripts should include error handling" |
| Tool | Tool usage experience | "web_fetch needs timeout 30s for this site" |
Quick Start
Installation (One-time setup)
pip install reme-ai
Session Initialization
At the start of EVERY session:
- Initialize ReMe
- Retrieve user preferences
- Apply to current context
# Initialize
from reme.reme_light import ReMeLight
reme = ReMeLight(working_dir=".reme", language="zh")
await reme.start()
# Retrieve preferences
prefs = await reme.memory_search(
query="用户偏好 文件发送",
max_results=5
)
# Apply
if prefs and "必须发送" in prefs[0]['content']:
auto_send_files = True
Workflow
Phase 1: Session Start (0-5s)
┌─────────────────────────────────┐
│ 1. Initialize ReMe │
│ 2. Load MEMORY.md │
│ 3. Search for user prefs │
│ 4. Apply to current context │
└─────────────────────────────────┘
Action:
python3 C:\path\to\memory-reme\scripts\init_reme.py
Expected Output:
✓ ReMe initialized
📖 Retrieved 3 preferences
- User prefers concise code
- Files must be sent automatically
- Prefer markdown over plain text
✓ Preferences applied
Phase 2: During Session
Check before actions:
-
Before generating files:
- Search for file handling preferences
- Apply formatting preferences
-
Before using tools:
- Search for tool-specific preferences
- Apply timeout/retry settings
-
User feedback:
- Extract new rules
- Add to MEMORY.md
Example:
User: "你怎么总是忘记发送文件?记住,生成文件后必须直接发送!"
Action:
# Learn from feedback
await reme.add_memory(
memory_content="用户偏好:生成文件后必须使用message工具直接发送文件,不接受链接地址。原因:用户需要直观可见的内容。",
user_name="阿伟",
memory_type="personal"
)
Phase 3: Session End
┌─────────────────────────────────┐
│ 1. Extract key events │
│ 2. Generate summary │
│ 3. Write to memory/ │
│ 4. Update MEMORY.md │
│ 5. Cleanup tool results │
│ 6. Close ReMe │
└─────────────────────────────────┘
Action:
python3 C:\path\to\memory-reme\scripts\save_summary.py
Output:
💾 Summary saved to memory/2026-03-06.md
✓ MEMORY.md updated
✓ Tool results cleaned
✓ ReMe closed
Common Use Cases
Use Case 1: File Generation
Trigger: User requests a file to be created
Workflow:
- Check for file preferences
- Generate file with correct format
- Send automatically if required
- Learn if user corrects
Example:
📖 Retrieved: "Send files automatically"
User: 生成AI日报
✓ Generated: AI日报_2026-03-06.md
📤 Sending file...
✓ Sent successfully
Use Case 2: Code Style Preferences
Trigger: User asks to write code
Workflow:
- Search for style preferences
- Apply conventions
- Format accordingly
Example:
📖 Retrieved: "Prefer concise, well-commented code"
User: 写个Python函数
✓ Applied: Concise style with docstrings
Use Case 3: Preventing Repeated Mistakes
Trigger: User corrects your behavior
Workflow:
- Accept feedback
- Extract rule
- Add to memory
- Verify next time
Example:
User: Why do you keep forgetting to send files?
🧠 Learning...
✓ Rule recorded: "Always send files automatically"
✓ Will apply next time
Use Case 4: Context Overflow
Trigger: Conversation approaches 70% of token limit
Workflow:
- ReMe automatically triggers
- Compresses history to summary
- Keeps critical information
- Continues conversation
Automatic - no action needed.
Search Patterns
Common Search Queries
| Goal | Query |
|---|---|
| File preferences | "文件发送 偏好 自动发送" |
| Code style | "代码风格 简洁 注释" |
| Tool settings | "工具 超时 重试" |
| User habits | "用户习惯 偏好" |
| Past errors | "错误 避免 重复" |
Search Results Processing
Always:
- Review returned memories
- Filter by relevance and recency
- Apply to current context
- Document what was applied
Example:
results = await reme.memory_search(query="文件发送 偏好", max_results=3)
for i, result in enumerate(results, 1):
print(f"{i}. {result['content']}")
if "必须发送" in result['content']:
self.auto_send_files = True
print(f"✓ Applied: auto_send_files = {self.auto_send_files}")
Memory File Structure
MEMORY.md
# MEMORY.md - Long-term Memory
## User Profile
- **Name**: 阿伟
- **Role**: 90后程序员、AI博主
## Preferences
### File Handling
- **Rule**: 生成文件后必须使用message工具直接发送
- **Reason**: 用户需要直观可见的内容
- **Status**: Active
- **Learned**: 2026-03-06
### Code Style
- **Rule**: 代码要简洁,有注释
- **Reason**: 便于维护和理解
- **Status**: Active
- **Learned**: 2026-03-05
## Tool Usage
### web_fetch
- **Timeout**: 30s
- **Retry**: 3 times
- **Reason**: 某些网站响应慢
### browser
- **Timeout**: 60s
- **Wait time**: 3s for page load
- **Reason**: 确保页面完全加载
memory/YYYY-MM-DD.md
# 2026-03-06 Session Summary
## Session 1 - AI News Aggregation
### User Request
"给我今天的AI资讯"
### Processing
- Scraped 8 sources
- Filtered 20+ articles
- Selected 14 items
### Output
- File: AI日报_2026-03-06.md
- Size: 3611 bytes
- Sent: ✓
### User Feedback
"你怎么总是忘记发送文件?记住,生成文件后必须直接发送!"
### Learning
✓ New rule: Auto-send files
✓ Updated MEMORY.md
---
## Session 2 - ReMe Integration
### User Request
"接入ReMe后工作流程是怎样的"
### Processing
- Analyzed ReMe documentation
- Designed workflow
- Created integration plan
### Output
- File: ReMe工作流程设计.md
- File: ReMe存在形式与影响.md
- Sent: ✓
### No User Feedback
### Learning
No new rules
Best Practices
1. Always Start Sessions with Memory Retrieval
Bad:
# Start without memory
user_request = get_user_input()
process_request(user_request)
Good:
# Start with memory
reme = await init_reme()
prefs = await reme.memory_search(query="用户偏好")
apply_preferences(prefs)
user_request = get_user_input()
process_request(user_request)
2. Learn from Every Correction
When user says "You forgot X":
- Acknowledge immediately
- Extract the rule
- Add to memory
- Verify application
Example:
User: 你总是忘记发送文件!
Me: ✓ 已记住:生成文件后必须发送文件
正在添加到 MEMORY.md...
Next file generation:
✓ File created
📤 Auto-sending...
✓ Sent
3. Be Specific in Memory Records
Bad:
- User prefers good code
Good:
- User prefers concise, well-commented Python code
- Use docstrings for functions
- Maximum 3 levels of nesting
- Prefer list comprehensions over loops
4. Update Memory Regularly
Daily tasks:
- Review memory/ files
- Merge duplicate entries
- Remove outdated info
- Organize by category
Weekly tasks:
- Check for stale preferences
- Verify accuracy of tool settings
- Clean up old memory files
5. Use Semantic Search Effectively
Bad queries:
- "files"
- "code"
- "preferences"
Good queries:
- "文件发送 偏好 阿伟"
- "Python代码风格 简洁 注释"
- "工具设置 超时 重试"
Why: Specific queries return more relevant results.
Troubleshooting
Problem: Memory Not Retrieved
Symptoms:
- Preferences not applied
- Repeated mistakes
- Empty search results
Solutions:
- Check if ReMe is initialized
- Verify search query matches stored content
- Check MEMORY.md exists and is not empty
- Try broader search terms
# Debug search
results = await reme.memory_search(query="文件")
print(f"Found {len(results)} results")
for r in results:
print(f" - {r['content'][:50]}...")
Problem: Old Information Used
Symptoms:
- Outdated preferences applied
- Deprecated tool settings used
Solutions:
- Add timestamp to memory entries
- Sort results by time_created (reverse)
- Manually update outdated entries in MEMORY.md
- Consider expiration for time-sensitive rules
Problem: Memory File Too Large
Symptoms:
- MEMORY.md > 10KB
- Search slow
- Context bloat
Solutions:
- Archive old entries to memory/archive/
- Merge similar preferences
- Remove redundant info
- Use categories to organize
Integration with Existing Skills
Combining with docx skill
Workflow:
1. Search memory for docx preferences
2. Apply formatting rules
3. Generate document with docx skill
4. Check if auto-send required
5. Send if needed
Combining with coding-agent skill
Workflow:
1. Search memory for coding preferences
2. Apply style conventions
3. Generate code with coding-agent
4. Check for auto-review rules
5. Review if needed
Performance Considerations
Time Overhead
| Operation | Time | Impact |
|---|---|---|
| Session start | ~500ms | Negligible |
| Memory search | ~200ms | Negligible |
| File operations | ~100ms | Negligible |
| Summary generation | ~300ms | Negligible |
| Total per session | ~1s | Minimal |
Space Usage
.reme/
├── MEMORY.md ~10KB
├── memory/ ~150KB (30 days)
├── tool_result/ ~5MB (auto-cleanup)
└── .embeddings/ ~1MB
Total: ~6MB (1 month)
Advanced Features
Conditional Application
Only apply when relevant:
prefs = await reme.memory_search(query="文件发送")
if file_generated and prefs:
# Apply file preferences
if "必须发送" in prefs[0]['content']:
await send_file(file_path)
Context-Aware Retrieval
Consider current task:
if task_type == "coding":
query = "代码风格 Python"
elif task_type == "writing":
query = "写作风格 简洁"
elif task_type == "file_generation":
query = "文件发送 偏好"
Memory Cleanup
Automatic cleanup:
- Tool results expire after 7 days
- Embedding cache refreshed weekly
- Memory files archived monthly
Manual cleanup:
# Archive old sessions
mv memory/2026-01-*.md memory/archive/
# Compress large files
gzip MEMORY.md
See Also
- memory-structure.md - Detailed memory architecture
- best-practices.md - Advanced patterns
- common-prefs.md - Common preference examples
Summary
This skill enables persistent memory, automatic preference application, and intelligent context management. Use it to:
- ✓ Prevent repeated mistakes
- ✓ Remember user preferences
- ✓ Maintain context across sessions
- ✓ Learn from feedback
- ✓ Provide consistent behavior
Key principle: Memory is only useful when it's retrieved and applied. Always start sessions with memory retrieval, and verify application throughout the conversation.
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!