Knowledge Base
Build a structured knowledge base from agent interactions and external sources.
Architecture
flowchart LR S[Sources] -->|remember| M[Mnemosyne] M -->|index| SM[Semantic Memory] SM -->|recall| A[Agent] A -->|remember| M style SM fill:#f0fdf4,stroke:#16a34a
Storing Knowledge
Use remember() to store knowledge items. Organize via source, importance, and metadata:
from mnemosyne import Mnemosyne
mem = Mnemosyne(session_id="knowledge-base")
# Store documentation knowledge
mem.remember(
content="API authentication uses OAuth 2.0 with PKCE flow.",
source="documentation",
importance=0.9,
)
mem.remember(
content="Rate limit is 1000 requests per minute per API key.",
source="documentation",
importance=0.7,
)
# Store from conversations
mem.remember(
content="Customer reported timeout on bulk export endpoint.",
source="conversation",
importance=0.6,
metadata={"ticket_id": "T-4521"},
)
Querying Knowledge
Use recall() for natural language retrieval:
from mnemosyne import Mnemosyne
mem = Mnemosyne(session_id="knowledge-base")
# Natural language query
results = mem.recall("How do I authenticate with the API?")
# Adjust number of results
results = mem.recall("API rate limits", top_k=10)
Structured Knowledge with TripleStore
For structured subject-predicate-object relationships, use the TripleStore class:
from mnemosyne import TripleStore
ts = TripleStore()
# Add structured facts
ts.add(subject="API", predicate="auth_method", obj="OAuth 2.0 PKCE")
ts.add(subject="API", predicate="rate_limit", obj="1000 req/min")
ts.add(subject="database", predicate="type", obj="PostgreSQL")
# Query structured knowledge
facts = ts.query(subject="API")
for fact in facts:
print(f"{fact.subject} -> {fact.predicate} -> {fact.obj}")
Maintaining Knowledge
Replacing Outdated Information
from mnemosyne import Mnemosyne
mem = Mnemosyne(session_id="knowledge-base")
# Store updated information
mem.remember(
content="API v2 uses OAuth 2.0 with PKCE.",
source="documentation",
importance=0.9,
)
# Remove outdated memory
mem.forget(memory_id="mem_old_auth")
Checking Stats
from mnemosyne import Mnemosyne
mem = Mnemosyne(session_id="knowledge-base")
stats = mem.get_stats()
print(f"Total memories: {stats}")
Use Case: Customer Support
from mnemosyne import Mnemosyne
mem = Mnemosyne(session_id="support-kb")
# Pre-load product knowledge
mem.remember(
content="Product supports CSV and JSON export formats.",
source="product-docs",
importance=0.8,
)
# Agent handles support ticket
def handle_ticket(ticket):
# Recall relevant knowledge
docs = mem.recall(ticket.description, top_k=5)
# Generate response using recalled context
response = generate_response(docs, ticket)
# Store interaction for future reference
mem.remember(
content=f"Ticket {ticket.id}: {response.summary}",
source="support",
importance=0.5,
metadata={"ticket_id": ticket.id},
)
return response
Knowledge Freshness
Use forget() to remove outdated memories and remember() with high importance for critical facts. Periodically review get_stats() to monitor knowledge volume.
Related Pages
Use Cases
Explore real-world use cases for Mnemosyne: multi-agent orchestration, long-running tasks, knowledge...
Semantic Memory
Discover Mnemosyne's Semantic Memory: the long-term knowledge store for facts, concepts, and relatio...
Hybrid Search
Learn how Mnemosyne's hybrid search combines dense vector similarity with SQLite FTS5 full-text sear...
Mnemosyne