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.