| Crates.io | omega-memory |
| lib.rs | omega-memory |
| version | 1.1.0 |
| created_at | 2025-12-05 18:03:04.723853+00 |
| updated_at | 2025-12-12 07:11:03.423884+00 |
| description | 12-tier cosmic memory system with automatic consolidation (Instant → Omega) |
| homepage | https://github.com/prancer-io/ExoGenesis-Omega |
| repository | https://github.com/prancer-io/ExoGenesis-Omega |
| max_upload_size | |
| id | 1968866 |
| size | 85,719 |
12-tier cosmic memory system with automatic consolidation spanning from instant (milliseconds) to omega (universal) timescales.
Part of the ExoGenesis-Omega cognitive architecture.
omega-memory implements a revolutionary hierarchical memory architecture that spans 12 temporal tiers—from immediate sensory memory lasting milliseconds to cosmic memory operating at the scale of the universe's lifetime. The system automatically consolidates memories between tiers based on importance, recency, and access patterns, mimicking biological memory consolidation.
This architecture enables AI systems to operate coherently across vastly different timescales, from real-time interactions to multi-generational learning, while efficiently managing memory resources.
Add this to your Cargo.toml:
[dependencies]
omega-memory = "0.1.0"
use omega_memory::{CosmicMemory, Memory, MemoryTier, MemoryContent};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize the cosmic memory system
let memory = CosmicMemory::new().await?;
// Store a semantic memory (knowledge)
let mem = Memory::new(
MemoryTier::Semantic,
MemoryContent::Text("Rust uses ownership for memory safety".to_string()),
vec![0.1; 768], // embedding vector
0.9, // high importance
);
let id = memory.store(mem).await?;
// Query memories
let query = QueryBuilder::new()
.with_embedding(vec![0.1; 768])
.with_min_importance(0.8)
.build();
let results = memory.recall(&query, &[MemoryTier::Semantic]).await?;
println!("Found {} relevant memories", results.len());
// Automatic consolidation
memory.auto_consolidate().await?;
Ok(())
}
The memory system is organized into three scales:
Individual Scale (Tiers 1-4):
Species Scale (Tiers 5-8):
Cosmic Scale (Tiers 9-12):
Memories automatically migrate between tiers based on:
pub enum MemoryContent {
Sensory(Vec<u8>), // Raw sensory data
Text(String), // Text-based memory
Structured(serde_json::Value), // JSON structures
Embedding(Vec<f32>), // Vector embeddings
MultiModal { // Combined modalities
text: Option<String>,
embedding: Vec<f32>,
metadata: serde_json::Value,
},
}
Memory relevance is computed as:
relevance = (importance × time_decay) + access_boost
where:
importance: Base importance score (0.0-1.0)time_decay: Tier-specific exponential decayaccess_boost: Logarithmic boost from access frequencyuse omega_memory::{CosmicMemory, Memory, MemoryTier, MemoryContent};
let memory = CosmicMemory::new().await?;
// Store immediate sensory data
let sensory = Memory::new(
MemoryTier::Instant,
MemoryContent::Sensory(vec![255, 128, 64]),
vec![],
0.3,
);
memory.store(sensory).await?;
// Store episodic event
let event = Memory::new(
MemoryTier::Episodic,
MemoryContent::Text("User requested feature X at 10:30 AM".to_string()),
get_embedding("user feature request"),
0.7,
);
memory.store(event).await?;
// Store semantic knowledge
let knowledge = Memory::new(
MemoryTier::Semantic,
MemoryContent::Structured(serde_json::json!({
"concept": "REST API",
"definition": "Representational State Transfer interface",
"examples": ["GET /users", "POST /items"]
})),
get_embedding("REST API concept"),
0.9,
);
memory.store(knowledge).await?;
use omega_memory::{CosmicMemory, Memory, MemoryTier};
let memory = CosmicMemory::new().await?;
// Store many facts
for fact in facts {
let mem = Memory::new(
MemoryTier::Semantic,
MemoryContent::Text(fact.clone()),
fact.embedding.clone(),
fact.importance,
);
memory.store(mem).await?;
}
// Low-importance, rarely accessed memories automatically decay
// High-importance, frequently accessed memories consolidate to higher tiers
memory.auto_consolidate().await?;
// Query returns only relevant, non-expired memories
let query = QueryBuilder::new()
.with_text("machine learning")
.with_min_importance(0.5)
.build();
let results = memory.recall(&query, &[MemoryTier::Semantic]).await?;
use omega_memory::{CosmicMemory, MemoryTier};
let memory = CosmicMemory::new().await?;
// Short-term learning (session tier)
for observation in recent_observations {
memory.store(observation.to_memory(MemoryTier::Session)).await?;
}
// Consolidate important patterns to semantic tier
memory.consolidate(
MemoryTier::Session,
MemoryTier::Semantic
).await?;
// Over time, foundational knowledge reaches evolutionary tier
memory.consolidate(
MemoryTier::Semantic,
MemoryTier::Evolutionary
).await?;
// Architectural patterns emerge at higher tiers
let architectural_memories = memory.recall(
&Query::all(),
&[MemoryTier::Architectural]
).await?;
use omega_memory::{CosmicMemory, Memory, MemoryTier, MemoryContent};
let collective_memory = CosmicMemory::new().await?;
// Individual agent stores to collective tier
async fn agent_contribute(memory: &CosmicMemory, knowledge: String) {
let mem = Memory::new(
MemoryTier::Collective,
MemoryContent::Text(knowledge),
get_embedding(&knowledge),
0.8,
);
memory.store(mem).await.unwrap();
}
// All agents can query collective knowledge
let query = QueryBuilder::new()
.with_text("best practices")
.build();
let shared_knowledge = collective_memory.recall(
&query,
&[MemoryTier::Collective]
).await?;
use omega_memory::{CosmicMemory, QueryBuilder, MemoryTier};
let memory = CosmicMemory::new().await?;
// Build query with embedding
let query = QueryBuilder::new()
.with_embedding(query_vector)
.with_min_importance(0.7)
.with_max_results(20)
.build();
// Search across multiple tiers simultaneously
let results = memory.recall(
&query,
&[
MemoryTier::Session,
MemoryTier::Episodic,
MemoryTier::Semantic,
MemoryTier::Collective,
]
).await?;
// Results are automatically sorted by relevance
for mem in results {
println!("Tier {:?}: {} (relevance: {:.3})",
mem.tier,
mem.content,
mem.relevance_score()
);
}
let memory = CosmicMemory::new().await?;
// Store various memories...
let stats = memory.stats().await;
println!("Memory Statistics:");
println!(" Individual tiers: {} memories", stats.individual.total);
println!(" Species tiers: {} memories", stats.species.total);
println!(" Cosmic tiers: {} memories", stats.cosmic.total);
println!(" Total: {} memories", stats.total_memories);
use omega_memory::{CosmicMemory, MemoryTier};
let memory = CosmicMemory::new().await?;
// Consolidate session → episodic for memories > 1 hour old
memory.consolidate(
MemoryTier::Session,
MemoryTier::Episodic
).await?;
// Consolidate episodic → semantic for important, old memories
memory.consolidate(
MemoryTier::Episodic,
MemoryTier::Semantic
).await?;
// Or use automatic consolidation with built-in heuristics
memory.auto_consolidate().await?;
The memory system is structured in three layers:
┌─────────────────────────────────────────┐
│ CosmicMemory (API) │
│ - Unified interface │
│ - Query routing │
│ - Consolidation orchestration │
└────────┬────────────┬────────────┬───────┘
│ │ │
▼ ▼ ▼
┌────────────┐┌────────────┐┌────────────┐
│ Individual ││ Species ││ Cosmic │
│ Memory ││ Memory ││ Memory │
│ (1-4) ││ (5-8) ││ (9-12) │
└────────┬───┘└─────┬──────┘└──────┬─────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────┐
│ Memory Consolidator │
│ - Importance-based migration │
│ - Time decay application │
│ - Access pattern analysis │
└─────────────────────────────────────────┘
Memory system performance characteristics:
Licensed under the MIT License. See LICENSE for details.