Memory System
Overview
Open Note has unique long-term memory and self-evolving capabilities, enabling Cici to better understand your preferences and work habits over time.
Memory Types
1. User Profile
Records your personal information and preferences.
Examples:
- Occupation: Software engineer
- Preferred language: Chinese
- Common tech stack: Java, Spring Boot, Vue
- Work habit: Likes writing notes in the morning
- Preferred name: xx
2. Fact
Records objective factual information.
Example:
- When generating notes about books or stories, the note title should use Chinese book title brackets because the user finds it more formal
3. Experience
Lessons summarized from interactions.
Examples:
- When the user expresses something incomplete or incorrect (such as "today is Thurs"), proactively infer the correct intent and verify it; the user likes this kind of tacit understanding
- When the user asks whether there are notes of a certain type (such as "Do I have notes related to study?"), prioritize the note_search tool for keyword search. If results are insufficient, then try vector search. Avoid calling note_search, note_vector_search, and note_list_recent together to prevent redundant calls and resource waste
Memory Extraction
Triggers
Immediate Trigger
Certain keywords trigger memory extraction immediately:
- "I like..."
- "I hate..."
- "Remember..."
- "I am..."
Batch Trigger
Memories are automatically extracted in batches every 5 conversation turns.
Extraction Process
Conversation content → Memory extractor → Candidate memories → Confidence evaluation → StorageMemory Management
Confidence
Each memory has a confidence score (0-1):
- 1.0: Explicit expression ("I am a software engineer")
- 0.8: Strong implication ("I write Java code every day")
- 0.5: Indirect inference (frequently discussing a topic)
Decay Strategy
Memories decay over time:
New confidence = Original confidence × Decay coefficient × Time factor- Decay coefficient: 0.95 (configurable)
- Time factor: Time since last mention
Cleanup Strategy
- Confidence < 0.3: Automatically delete
- Expired memories: Marked for cleanup
- Periodic cleanup: Automatically executed monthly
Memory Injection
On-Demand Injection
Cici automatically injects relevant memories based on the conversation:
User: "Help me write a note about Spring AI"
Injected system memories:
- Preference: Likes concise style
- Tech stack: Familiar with Java and Spring Boot
- Habit: Likes code examplesPersonalized Service
Provide personalized responses based on memory:
- Use your preferred language style
- Recommend related topics
- Avoid repeated suggestions
Self-Evolution
Evolution Loop
Memory extraction → Experience summarization → Self-reflection → Knowledge organization → Recall feedbackContinuous Improvement
- Learn: Learn from every interaction
- Summarize: Extract useful experience
- Reflect: Evaluate service quality
- Organize: Optimize knowledge structure
- Apply: Provide better service
View Memories
Memory Panel
In the Cici conversation interface, you can view:
- Number of extracted memories
Manage Memories
- Clear a specific type or all memories
Privacy Protection
Local Storage
All memories are stored in the local database and are not uploaded.
Full Control
- View memories anytime
- Delete memories anytime
- Disable the memory feature
Configuration
Enable/Disable
Settings → AI Services → Memory System
Troubleshooting
Q: Memories are inaccurate
If they affect usage, you can delete memories or emphasize the relevant type to the Agent repeatedly.
Q: I don't want to be remembered
Disable memory extraction in settings.
Q: Memories are lost
Check database file integrity.