Skip to content

How It Works

Engrammic has four components: the MCP interface that agents talk to, a context engine that plans and executes queries, the storage layer underneath, and SAGE running in the background to maintain the knowledge graph.

flowchart TB
    subgraph MCP["MCP Interface"]
        direction LR
        rem["remember"] ~~~ lrn["learn"] ~~~ blv["believe"]
        rec["recall"] ~~~ trc["trace"] ~~~ lnk["link"]
    end
    
    subgraph Engine["Context Engine"]
        direction LR
        qp["Plan"] --> ro["Retrieve"] --> ra["Assemble"]
    end
    
    subgraph Storage["Storage"]
        direction LR
        graphDb["Graph"] ~~~ vector["Vector"] ~~~ cache["Cache"]
    end
    
    subgraph SAGE["SAGE Background"]
        direction LR
        syn["Synthesis"] ~~~ cor["Corroboration"] ~~~ dec["Decay"]
    end
    
    MCP --> Engine
    Engine --> Storage
    Storage -.-> SAGE
    SAGE -.-> Storage
    
    style MCP fill:#1f2937,stroke:#58a6ff,color:#f0f6fc
    style Engine fill:#1f2937,stroke:#a371f7,color:#f0f6fc
    style Storage fill:#1f2937,stroke:#3fb950,color:#f0f6fc
    style SAGE fill:#1f2937,stroke:#f78166,color:#f0f6fc

SAGE is a background process that maintains the knowledge graph. You never call it directly.

Synthesis watches for patterns across Memory and Knowledge nodes. When multiple claims point to the same conclusion, it proposes a belief for review.

Corroboration promotes claims to facts. When the same claim appears from three independent sources, the system marks it as corroborated and upgrades it from claim to fact.

Decay handles time-based cleanup. Memory nodes decay on schedule based on their decay class, so the graph doesn’t fill up with stale observations.

When you call recall, the engine parses your query and figures out what you’re looking for. It runs a vector search to find semantically similar content, then traverses the graph to pull in related context like provenance and supersession chains. Results get scored by relevance, recency, and confidence before being assembled into the response.

The combination of vector search and graph traversal is what makes contextual retrieval work. Vector search finds what’s similar. Graph traversal finds what’s connected. You need both.

Engrammic supports multiple isolated silos. Each silo has its own knowledge graph, vector index, and configuration. Silos don’t share data, which means you can use them for per-user, per-project, or per-team memory isolation depending on what you’re building.