How lxfight-s-astrbot-plugins/astrbot_plugin_livingmemory works
LivingMemory is an AstrBot plugin for capturing, organizing, retrieving, and maintaining long-term conversational memories. Its main workflow begins with conversation events, processes them into memories, and later recalls relevant memories through hybrid document and graph search for context-aware use. Users can also manage memories, profiles, prompts, diagnostics, and graph views in the dashboard or invoke agentic memory tools. The README documents these capabilities; several subsystem links below are documented rather than confirmed from sampled implementation, and are marked accordingly.
Main entry points: memory_engine.py Memory engine · app.js Dashboard · event_handler.py Conversation events · command_handler.py Plugin commands
Components 23
Plugin runtime
- Conversation events
core/event_handler.py - Plugin commands
core/command_handler.py - Configuration
core/base/config_manager.py
Memory lifecycle
- Memory processing
core/processors/memory_processor.py - Memory engine
core/managers/memory_engine.py - Memory CRUD
core/managers/memory_engine_crud.py - Lifecycle management
core/managers/memory_engine_batch.py - Conversation history
core/managers/conversation_manager.py - Profiles
core/managers/profile_manager.py - Memory atom store
storage/atom_store.py - Memory graph
storage/graph_store.py
Recall and agents
- Hybrid retrieval
core/retrieval/hybrid_retriever.py - Vector retrieval
core/retrieval/vector_retriever.py - Recall engine
core/managers/memory_engine_recall.py - Agentic recall
core/managers/memory_engine_agentic.py - Memory tools
core/tools/memory_agentic_search_tool.py - Recall traces
core/retrieval/recall_trace.py
Management interface
- Dashboard API
core/page_api.py - Dashboard
pages/dashboard/app.js - External API
core/external_api.py - Prompt management
core/prompts/prompt_manager.py
Other components
- AstrBot
- Embedding provider
Connections 25
- AstrBot → Conversation events: delivers events
core/event_handler.py - AstrBot → Plugin commands: invokes commands
- Conversation events → Memory processing: dispatches processing
core/event_handler.py - Conversation events → Memory engine: uses memory engine
core/event_handler.py - Plugin commands → Memory engine: manages memories
core/command_handler.py - Plugin commands → Conversation history: uses history manager
core/command_handler.py - Configuration → Memory engine: configures memory
- Memory processing → Memory engine: creates memories
- Memory engine → Memory CRUD: delegates writes
core/managers/memory_engine.py - Memory engine → Recall engine: delegates recall
core/managers/memory_engine.py - Memory engine → Lifecycle management: delegates maintenance
core/managers/memory_engine.py - Memory engine → Memory atom store: uses atom storage
core/managers/memory_engine.py - Memory engine → Memory graph: uses graph storage
core/managers/memory_engine.py - Memory CRUD → Memory atom store: writes atoms
core/managers/memory_engine_crud.py - Memory CRUD → Memory graph: indexes graph
- Recall engine → Hybrid retrieval: searches memories
core/managers/memory_engine_recall.py - Hybrid retrieval → Vector retrieval: runs vector route
core/retrieval/hybrid_retriever.py - Embedding provider → Vector retrieval: provides embeddings
README.md - Recall engine → Recall traces: records recall
core/managers/memory_engine_recall.py - Memory tools → Agentic recall: requests recall
core/tools/memory_agentic_search_tool.py - Agentic recall → Hybrid retrieval: retrieves candidates
core/managers/memory_engine_agentic.py - Dashboard API → External API: delegates external requests
- Dashboard → Dashboard API: calls dashboard API
- Dashboard → Prompt management: manages prompts
- Dashboard → Profiles: manages profiles