Skip to content

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 → Storage

Memory 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 examples

Personalized 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 feedback

Continuous Improvement ​

  1. Learn: Learn from every interaction
  2. Summarize: Extract useful experience
  3. Reflect: Evaluate service quality
  4. Organize: Optimize knowledge structure
  5. 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.