Zpět na domů

Memory OS: paradox reasoning a SGR v agent memory

Článek rozebírá architekturu Memory OS: paradox reasoning v extraction, přechod od flat RAG k ontologii ConceptHypothesis, data contract na SQLite/Neo4j. Rozsah — 106.7 milionů tokenů, 2.4 milionu hran. Klíčová řešení pro agent memory.

Paradox o4-mini: jak reasoning láme extraction v Memory OS
Advertisement 728x90

Architektura Memory OS: Od paradoxů uvažování k hierarchickému paměťovému grafu

Mocné modely jako o4-mini s vysokým reasoning_effort narušují přísnost schémat ve fázi extrakce strukturovaných objektů. Místo přesného dodržování Pydantic schémat model začne 'vylepšovat' strukturu: slučuje objekty, mění pole JSON, vyhlazuje typy konceptů. Testování 300+ promptů ukázalo inverzní závislost: růst reasoningu vede ke ztrátě determinismu.

SGR (Schema-Guided Reasoning) s response_format a přísným StrictBase (extra='forbid', bez Optional/default) řeší problém částečně, ale model bojuje s omezeními. Zavedení Semantic Mapper snížilo reasoning_effort, přenesením disciplíny na data contract, validaci a postprocessing.

Výsledky:

Google AdInline article slot
  • Snížení nákladů na tokeny o 48%;
  • Kvalita extrakce vzrostla z 5.2 na 7.11;
  • Úplná sledovatelnost podle message_id.

Validátor rekurzivně kontroluje JSON-schéma: additionalProperties: false, všechna pole v required. Toto je základní signál pro agent memory: při extrakci je inteligence LLM nástrojem pro provedení schématu, nikoli tvůrčím procesem.

Selhání flat RAG na velkých korpusech a přechod k řízené paměti

Flat RAG funguje na demo, ale selhává na korpusech jako Jocker (3253 konverzací, 24 639 zpráv): chybí lineage, temporální sémantika, pravidla aktualizace. Retrieval vrací podobné fragmenty bez vazby na zdroje, což vede k Graph Sludge — tisícům uzlů bez granularity (26 000+ v Jocker před refaktoringem).

Rozdělení vrstev je nezbytné:

Google AdInline article slot
  • Retrieval: top-k podobných fragmentů;
  • Memory: znalostní objekty, vztahy, časové změny, revize, degradace.

Bez toho se systém degraduje na chunk-index s halucinacemi na složitých dotazech.

Základní ontologie: ConceptHypothesis jako first-class objekt

Start — základní ontologie s typizovanými objekty a vztahy. Odmítnutí loose entities/summaries ve prospěch ConceptHypothesis:

from pydantic import BaseModel, ConfigDict, Field
from typing import List, Literal, Optional
from datetime import datetime

class StrictBase(BaseModel):
    model_config = ConfigDict(extra="forbid")

class EvidenceSpan(StrictBase):
    source_id: str
    message_id: str
    text: str
    confidence: float

class ConceptRelation(StrictBase):
    target_id: str
    relation: Literal["causes", "conflicts_with", "supports", "instance_of", "enables"]
    confidence: float

class ConceptHypothesis(StrictBase):
    concept_id: str
    title: str
    type: Literal["behavioral_pattern", "project", "event", "tension", "goal", "belief", "entity"]
    description: str
    state: Literal["active", "weak", "merged", "split", "archived"]
    confidence: float
    aliases: List[str]
    evidence_spans: List[EvidenceSpan]
    relations: List[ConceptRelation]
    revision_count: int
    first_seen: Optional[datetime]
    last_seen: Optional[datetime]

Objekt nese evidence spans, relations, confidence, revision_count. Temporální reasoning (events, contradictions) — first-class, ne vedlejší vlastnosti chunků.

Google AdInline article slot

Data contract a staging: SQLite jako source of truth

Data contract fixuje strukturu na hranicích pipeline. SQLite — source of truth pro messages (UUID, text, role, parent_id, timestamp, conversation_id). Graf Neo4j: uzly Conversation/Message/Segment/Concept/Topic, hrany HAS_MESSAGE/NEXT/CONTAINS_MESSAGE/EVIDENCE_FOR/BELONGS_TO.

Klíč — EVIDENCE_FOR: koncept je připojen k message-level evidence. Chronologický skelet NEXT/PREVIOUS urychluje inference bez řazení databáze.

Staging database (samostatný SQLite) uchovává průběžné stavy pipeline, zajišťujíc prokazatelnost.

Concept Memory Loop a topická clusterizace

Concept Memory Loop: create/attach/refine/reject — cyklus řízení hypotéz. Topická clusterizace přes UMAP + HDBSCAN + Optuna pro weighted links zabraňuje over-compression/concept explosion.

LongMemEval a stateful multi-agent inference

LongMemEval (100+ milionů tokenů): 4 fáze ladění, Exploration vs Execution. Stateful multi-agent: Planner/Scout/Synthesizer pro hierarchický retrieval.

Agentic Gardener, invalidation a MCP

Agentic Gardener — samostatný pipeline údržby grafu. Invalidation/repair pro bi-temporal facts. MCP — suverénní rozhraní paměti.

Měřítko: 106.7 milionů tokenů, 632 868 sémantických jednotek, 2.4 milionu hran.

Co je důležité:

  • Vysoký reasoning lámá SGR; používejte Semantic Mapper a nízký effort;
  • Flat RAG → Graph Sludge; vyžadujte evidence spans a temporální ontologii;
  • ConceptHypothesis s Pydantic StrictBase — základ řízené komprese;
  • SQLite source of truth + Neo4j pro lineage a chronologii;
  • Multi-agent + Gardener pro měřítko 100+ milionů tokenů.

— Editorial Team

Advertisement 728x90

Číst dál