MnemoCore AGI Memory Blueprint
Toward a True Cognitive Memory Substrate for Agentic Systems
This document defines the Phase 5 “AGI Memory” architecture for MnemoCore – transforming it from a high‑end hyperdimensional memory engine into a general cognitive substrate for autonomous AI agents.
0. Goals & Non‑Goals
0.1 Core Goals
- Provide a plug‑and‑play cognitive memory system that any agent framework can mount as its “mind”:
- Solves context window limits by offloading long‑term structure and recall.
- Solves memory management by autonomous consolidation, forgetting, and self‑repair.
- Provides new thoughts, associations and suggestions rather than only retrieval.
- Implement an explicit, formal model of:
- Working / Short‑Term Memory (WM/STM)
- Episodic Memory
- Semantic Memory
- Procedural / Skill Memory
- Meta‑Memory & Self‑Model
- Maintain:
pip install mnemocorezero‑infra dev mode (SQLite / in‑process vector store).- Full infra path (Redis, Qdrant, k8s, MCP, OpenClaw live memory integration).[cite:436][cite:437]
- Provide clean public APIs (Python + HTTP + MCP) that:
- Give agents a minimal but powerful surface:
observe / recall / reflect / propose_change. - Are stable enough to build higher‑level frameworks on (LangGraph, AutoGen, OpenAI Agents, OpenClaw, custom stacks).
- Give agents a minimal but powerful surface:
0.2 Non‑Goals
- MnemoCore is not:
- En LLM eller policy‑generator.
- En komplett agentram – det är minnet + kognitiva processer.
- MnemoCore ska inte hårdkoda specifika LLM‑providers.
- LLM används via abstraherad integration (
SubconsciousAI,LLMIntegration) så att byte av motor är trivialt.
- LLM används via abstraherad integration (
1. Cognitive Architecture Overview
1.1 High‑Level Mental Model
Systemet ska exponera en internt konsekvent kognitiv modell:
Working Memory (WM)
- Korttidsbuffert per agent / samtal / uppgift.
- Håller aktuella mål, senaste steg, delresultat.
- Living in RAM, med explicit API.
Episodic Memory (EM)
- Sekvens av episodes: “agent X gjorde Y i kontext Z och fick utfallet U”.
- Tidsstämplad, med länkar mellan episoder (kedjor).
- Riktad mot “vad hände när, i vilken ordning”.
Semantic Memory (SM)
- Abstraherade, konsoliderade representationer (concepts, prototypes).
- Sammanfattningar av hundratals episoder → en “semantic anchor”.
- Bra för svar på “vad vet jag generellt om X?”.
Procedural Memory (PM)
- Skills, planer, recept: “för att lösa typ‑X problem, gör följande steg …”.
- Kan hålla både mänsklig läsbar text och exekverbar kod (snippets, tools).
Meta‑Memory (MM)
- Självmodell för MnemoCore själv: prestanda, reliability, konfiguration, kända svagheter.
- Driver självförbättringsloopen.
Alla dessa lever ovanpå din befintliga HDV/VSA‑kärna, tier manager, synapse index, subconscious loop osv.[cite:436][cite:437]
1.2 New Core Services
Föreslagna nya Python‑moduler (under src/mnemocore/core):
memory_model.py- Typed dataklasser för WM/EM/SM/PM/MM entities.
working_memory.py- WM implementation per agent/task med snabb caching.
episodic_store.py- Episodisk tidsserie, sekvens‑API.
semantic_store.py- Wrapper ovanpå befintlig vektorstore (Qdrant/HDV/HNSW) + consolidation hooks.
procedural_store.py- Lagret för skills, scripts, tool definitions.
meta_memory.py- Självmodell, logik för self‑improvement proposals.
pulse.py- “Heartbeat”‑loop: driver subtle thoughts, consolidation ticks, gap detection, self‑reflection.
agent_profile.py- Persistent profil per agent: preferenser, styrkor/svagheter, quirks.
2. Data Model
2.1 Working Memory (WM)
# src/mnemocore/core/memory_model.py
@dataclass
class WorkingMemoryItem:
id: str
agent_id: str
created_at: datetime
ttl_seconds: int
content: str
kind: Literal["thought", "observation", "goal", "plan_step", "meta"]
importance: float #
tags: list[str]
hdv: BinaryHDV | None
@dataclass
class WorkingMemoryState:
agent_id: str
items: list[WorkingMemoryItem]
max_items: int
Invariantes:
- WM är liten (t.ex. 32–128 items per agent).
- WM ligger primärt i RAM; kan serialiseras till Redis/SQLite för persistens.
- Access är O(1)/O(log n); LRU + importance‑vägning vid evicering.
2.2 Episodic Memory (EM)
@dataclass
class EpisodeEvent:
timestamp: datetime
kind: Literal["observation", "action", "thought", "reward", "error"]
content: str
metadata: dict[str, Any]
hdv: BinaryHDV
@dataclass
class Episode:
id: str
agent_id: str
started_at: datetime
ended_at: datetime | None
goal: str | None
context: str | None # project / environment
events: list[EpisodeEvent]
outcome: Literal["success", "failure", "partial", "unknown"]
reward: float | None
links_prev: list[str] # previous episode IDs
links_next: list[str] # next episode IDs
ltp_strength: float
reliability: float
2.3 Semantic Memory (SM)
@dataclass
class SemanticConcept:
id: str
label: str # "fastapi-request-validation"
description: str
tags: list[str]
prototype_hdv: BinaryHDV
support_episode_ids: list[str] # episodes som gav upphov
reliability: float
last_updated_at: datetime
metadata: dict[str, Any]
Kopplas direkt mot consolidation/semantic_consolidation + codebook/immunology.[cite:436][cite:437]
2.4 Procedural Memory (PM)
@dataclass
class ProcedureStep:
order: int
instruction: str
code_snippet: str | None
tool_call: dict[str, Any] | None
@dataclass
class Procedure:
id: str
name: str
description: str
created_by_agent: str | None
created_at: datetime
updated_at: datetime
steps: list[ProcedureStep]
trigger_pattern: str # "if user asks about X and Y"
success_count: int
failure_count: int
reliability: float
tags: list[str]
Procedurer kan genereras av LLM (SubconsciousAI), testas i episodiskt minne, och sedan promotas/demotas med reliability‑loop.
2.5 Meta‑Memory (MM)
@dataclass
class SelfMetric:
name: str # "hot_tier_hit_rate", "avg_query_latency_ms"
value: float
window: str # "5m", "1h", "24h"
updated_at: datetime
@dataclass
class SelfImprovementProposal:
id: str
created_at: datetime
author: Literal["system", "agent", "human"]
title: str
description: str
rationale: str
expected_effect: str
status: Literal["pending", "accepted", "rejected", "implemented"]
metadata: dict[str, Any]
MM lagras delvis i vanlig storage (SM/PM) men har egen API‑yta.
3. Service Layer Design
3.1 Working Memory Service
Fil: src/mnemocore/core/working_memory.py
Ansvar:
- Hålla en per‑agent WM‑state.
- Explicita operationer:
push_item(agent_id, item: WorkingMemoryItem)get_state(agent_id) -> WorkingMemoryStateclear(agent_id)prune(agent_id)– enligt importance + LRU.
- Integrera med engine/query:
- Vid varje query: WM får en snapshot av top‑K resultat som “context items”.
- Vid svar: agent kan markera vilka items som var relevanta.
3.2 Episodic Store Service
Fil: src/mnemocore/core/episodic_store.py
Ansvar:
- Skapa och uppdatera Episodes:
start_episode(agent_id, goal, context) -> episode_idappend_event(episode_id, kind, content, metadata)end_episode(episode_id, outcome, reward)
- Query:
get_episode(id)get_recent(agent_id, limit, context)find_similar_episodes(hdv, top_k)
- Koppling till befintlig HDV + tier manager:
- Varje Episode får en “episode_hdv” (bundle över event‑HDVs).
- LTP + reliabilitet följer samma formel som övrig LTP.
3.3 Semantic Store Service
Fil: src/mnemocore/core/semantic_store.py
Ansvar:
- Hålla SemanticConcepts + codebook.
- API:
upsert_concept(concept: SemanticConcept)find_nearby_concepts(hdv, top_k)get_concept(id)
- Hookar mot:
semantic_consolidation.py→ abstraktioner / anchors.immunology.py→ attractor cleanup.recursive_synthesizer.py→ djup konceptsyntes.
3.4 Procedural Store Service
Fil: src/mnemocore/core/procedural_store.py
Ansvar:
- Lagra och hämta Procedures.
- API:
store_procedure(proc: Procedure)get_procedure(id)find_applicable_procedures(query, agent_id)record_procedure_outcome(id, success: bool)
- Integrera med:
- SubconsciousAI → generera nya procedurer från pattern i EM/SM.
- Reliability‑loopen → promota “verified” skills.
3.5 Meta Memory Service
Fil: src/mnemocore/core/meta_memory.py
Ansvar:
- Hålla SelfMetrics + SelfImprovementProposals.
- API:
record_metric(metric: SelfMetric)list_metrics(filter...)create_proposal(...)update_proposal_status(id, status)
- Integrera med:
- Pulse → skanna metrics och föreslå ändringar.
- LLM → generera förslagstexter (“self‑reflection reports”).
4. Pulse & Subtle Thoughts
4.1 Pulse Definition
Fil: src/mnemocore/core/pulse.py
“Pulsen” är en central loop (async task, cron, eller k8s CronJob) som:
- Kör med konfigurerbart intervall (t.ex. var 10:e sekund–var 5:e minut).
- Har ett definierat set “ticks”:
class PulseTick(Enum):
WM_MAINTENANCE = "wm_maintenance"
EPISODIC_CHAINING = "episodic_chaining"
SEMANTIC_REFRESH = "semantic_refresh"
GAP_DETECTION = "gap_detection"
INSIGHT_GENERATION = "insight_generation"
PROCEDURE_REFINEMENT = "procedure_refinement"
META_SELF_REFLECTION = "meta_self_reflection"
Pulse orchestrerar:
WM_MAINTENANCE
- Prune WM per agent.
- Lyfta nyligen viktiga items (“keep in focus”).
EPISODIC_CHAINING
- Skapa/länka episodiska sekvenser (prev/next).
- “Temporala narrativ”.
SEMANTIC_REFRESH
- Uppdatera semantic concepts baserat på nya episoder.
- Trigga immunology cleanup för drift.
GAP_DETECTION
- Kör
GapDetectoröver EM/SM sista N minuter/timmar. - Producera strukturerade knowledge gaps.
- Kör
INSIGHT_GENERATION
- Kör SubconsciousAI/LLM över utvalda kluster.
- Skapar nya SemanticConcepts, Procedures, eller MetaProposals.
PROCEDURE_REFINEMENT
- Uppdatera reliability över PM.
- Flagga outdated/farliga procedures.
META_SELF_REFLECTION
- Sammanfattar senaste metriker, gap, failures → SelfImprovementProposals.
4.2 Pulse Implementation Sketch
# src/mnemocore/core/pulse.py
class Pulse:
def __init__(self, container, config):
self.container = container
self.config = config
self._running = False
async def start(self):
self._running = True
while self._running:
start = datetime.utcnow()
await self.tick()
elapsed = (datetime.utcnow() - start).total_seconds()
await asyncio.sleep(max(0, self.config.pulse_interval_seconds - elapsed))
async def tick(self):
await self._wm_maintenance()
await self._episodic_chaining()
await self._semantic_refresh()
await self._gap_detection()
await self._insight_generation()
await self._procedure_refinement()
await self._meta_self_reflection()
Konfiguration i config.yaml:
haim:
pulse:
enabled: true
interval_seconds: 30
max_agents_per_tick: 50
max_episodes_per_tick: 200
5. Agent‑Facing APIs (Python & HTTP & MCP)
5.1 High‑Level Python API
Fil: src/mnemocore/agent_interface.py
Syfte: ge agent‑kod ett ENKELT API:
class CognitiveMemoryClient:
def __init__(self, engine: HAIMEngine, wm, episodic, semantic, procedural, meta):
...
# --- Observation & WM ---
def observe(self, agent_id: str, content: str, **meta) -> str: ...
def get_working_context(self, agent_id: str, limit: int = 16) -> list[WorkingMemoryItem]: ...
# --- Episodic ---
def start_episode(self, agent_id: str, goal: str, context: str | None = None) -> str: ...
def append_event(self, episode_id: str, kind: str, content: str, **meta) -> None: ...
def end_episode(self, episode_id: str, outcome: str, reward: float | None = None) -> None: ...
# --- Semantic / Retrieval ---
def recall(self, agent_id: str, query: str, context: str | None = None,
top_k: int = 8, modes: tuple[str, ...] = ("episodic","semantic")) -> list[dict]: ...
# --- Procedural ---
def suggest_procedures(self, agent_id: str, query: str, top_k: int = 5) -> list[Procedure]: ...
def record_procedure_outcome(self, proc_id: str, success: bool) -> None: ...
# --- Meta / Self-awareness ---
def get_knowledge_gaps(self, agent_id: str, lookback_hours: int = 24) -> list[dict]: ...
def get_self_improvement_proposals(self) -> list[SelfImprovementProposal]: ...
5.2 HTTP Layer Additions
Utöver befintliga /store, /query, /feedback, osv.[cite:437]
Nya endpoints:
POST /wm/observeGET /wm/{agent_id}POST /episodes/startPOST /episodes/{id}/eventPOST /episodes/{id}/endGET /episodes/{id}GET /agents/{agent_id}/episodesGET /agents/{agent_id}/contextGET /agents/{agent_id}/knowledge-gapsGET /procedures/searchPOST /procedures/{id}/feedbackGET /meta/proposalsPOST /meta/proposals
5.3 MCP Tools
Utöka mnemocore.mcp.server med nya verktyg:
store_observationrecall_contextstart_episode,end_episodequery_memoryget_knowledge_gapsget_self_improvement_proposals
Så att Claude/GPT‑agenter kan:
- “Titta in” i agentens egen historik.
- Få WM + relevanta episoder + semantic concepts innan svar.
- Få gaps och self‑reflection prompts.
6. Self‑Improvement Loop
6.1 Loop Definition
Målet: MnemoCore ska ständigt förbättra sig:
- Samlar metrics (performance + quality).
- Upptäcker systematiska brister (höga felrates, gap‑clusters).
- Genererar SelfImprovementProposals via LLM.
- Låter människa eller meta‑agent granska & appliera.
6.2 Pipeline
Metrics Collection
- Utnyttja befintlig
metrics.py+ Prometheus.[cite:436][cite:437] - Exempelmetriker:
query_hit_rate,retrieval_latency_msfeedback_success_rate,feedback_failure_ratehot_tier_size,tier_promotion_rategap_detection_count,gap_fill_count
- Utnyttja befintlig
Issue Detection (Rule‑Based)
- Batchjobb (Pulse) kör enkla regler:
- Om
feedback_failure_rate > Xför en viss tag (t.ex. “fastapi”) → skapa “knowledge area weak” flagg. - Om
hot_tier_hit_rate < threshold→ dålig context‑masking eller fel tuned thresholds.
- Om
- Batchjobb (Pulse) kör enkla regler:
Proposal Generation (LLM)
SubconsciousAIfår inputs:- Metrics, knowledge gaps, failure cases, config snapshot.
- Prompt genererar:
SelfImprovementProposal.title/description/rationale.
Review & Execution
- API / UI för att lista proposals.
- Människa/agent accepterar/rejectar.
- Vid accept:
- Kan trigga config ändringar (med patch PR).
- Kan skapa GitHub issues/PR mallar.
6.3 API
GET /meta/proposalsPOST /meta/proposals/{id}/status
7. Association & “Subtle Thoughts”
7.1 Association Engine
Målet: Systemet ska själv föreslå:
- Analogier (“det här liknar när vi gjorde X i annat projekt”).
- Relaterade koncept (“du pratar om Y, men Z har varit viktigt tidigare”).
- Långsiktiga teman och lärdomar.
Bygg vidare på:
synapse_index.py(hebbian connections).[cite:436]ripple_context.py(kaskader).[cite:436]recursive_synthesizer.py(konceptsyntes).[cite:436]
Nya pattern:
- Vid varje Pulse:
- Hämta senaste N episoder.
- Kör k‑NN i semantic concept space.
- Kör ripple over synapses.
- Generera en uppsättning CandidateAssociations:
@dataclass
class CandidateAssociation:
id: str
agent_id: str
created_at: datetime
source_episode_ids: list[str]
related_concept_ids: list[str]
suggestion_text: str
confidence: float
Lagra i SM/EM så att agent/LLM kan hämta “subtle thoughts” innan svar:
GET /agents/{agent_id}/subtle-thoughts
8. Storage Backends & Profiles
8.1 Profiles
Behåll pip‑enkelheten via profiler:
- Lite Profile (default, no extra deps):
- WM: in‑process dict
- EM: SQLite
- SM: in‑process HDV + mmap
- PM/MM: SQLite/JSON
- Standard Profile:
- WARM: Redis
- COLD: filesystem
- Scale Profile:
- WARM: Redis
- COLD: Qdrant (eller annan vector DB)
- Optionellt: S3 archive
Konfigurationsexempel:
haim:
profile: "lite" # "lite" | "standard" | "scale"
9. OpenClaw & External Agents
9.1 Designprincip för integration
För OpenClaw / liknande orchestrators:
- En agent definieras genom:
agent_idcapabilities(tools etc.)
- MnemoCore ska behandla
agent_idsom primär nyckel för:- WM
- Episoder
- Preferenser
- Procedurer som agenten själv skapat
9.2 “Live Memory” Pattern
- När OpenClaw kör:
- Varje observation →
observe(agent_id, content, meta) - Varje tool call / action → episod event.
- Före varje beslut:
- Hämta:
WMrecent episodesrelevant semantic conceptssubtle thoughts/ associationsknowledge gaps(om agenten vill använda dessa som frågor).
- Hämta:
- Varje observation →
10. Testing & Evaluation Plan
10.1 Unit & Integration Tests
Nya testfiler:
tests/test_working_memory.pytests/test_episodic_store.pytests/test_semantic_store.pytests/test_procedural_store.pytests/test_meta_memory.pytests/test_pulse.pytests/test_agent_interface.py
Fokus:
- Invariantes (max WM size, LTP thresholds, reliability‑update).
- Episodic chaining korrekt.
- Semantic consolidation integration med nya SM‑API:t.
- Pulse tick ordering & time budget.
10.2 Behavioural Benchmarks
Skapa benchmarks/AGI_MEMORY_SCENARIOS.md:
- Multi‑session tasks där agent måste:
- Minnas user preferences över dagar.
- Lära sig av failed attempts (feedback).
- Använda analogier över domäner.
Mät:
- Context reuse rate.
- Time‑to‑solve vs “no memory” baseline.
- Antal genererade self‑improvement proposals som faktiskt förbättrar outcomes.
11. Implementation Roadmap
Phase 5.0 – Core Structure
- Introduce
memory_model.py,working_memory.py,episodic_store.py,semantic_store.py,procedural_store.py,meta_memory.py,pulse.py. - Wire everything in
container.py(new providers). - Add
CognitiveMemoryClient+ minimal tests.
Phase 5.1 – WM/EM/SM in Engine
- Integrate WM into engine query/store paths.
- Integrate EM creation in API (store/query/feedback).
- Adapt semantic_consolidation/immunology to new SM service.
Phase 5.2 – Procedural & Association
- Implement procedural store + reliability integration.
- Build association engine + subtle thoughts endpoints.
Phase 5.3 – Self‑Improvement
- Wire metrics → meta_memory → proposals via SubconsciousAI.
- Add endpoints & optional small UI for proposals.
Phase 5.4 – Hardening & Agents
- Harden profiles (lite/standard/scale).
- Build reference integrations (OpenClaw, LangGraph, AutoGen).
12. Developer Notes
- Håll backwards compatibility på API där det går:
- Nya endpoints → prefix
v2om nödvändigt. - Python API kan vara “ny high‑level layer” ovanpå befintlig
HAIMEngine.
- Nya endpoints → prefix
- All ny funktionalitet feature‑flaggas i config:
haim.pulse.enabledhaim.episodic.enabledhaim.procedural.enabled- etc.
- Strikt logging / metrics för allt nytt:
haim_pulse_tick_duration_secondshaim_wm_sizehaim_episode_counthaim_procedure_success_ratehaim_self_proposals_pending
This blueprint is the contract between MnemoCore, its agents, and its contributors. The intention is to let autonomous AI agents, human developers, and MnemoCore itself co‑evolve toward a truly cognitive memory substrate – one that remembers, forgets, reflects, and grows.