Enterprise AI Architecture

Eliminating Phantom Knowledge Graph Edges

How Exogram synchronizes Graph Node tombstones with Supabase ledger events to prevent agents from retrieving deprecated facts.

01. The Architectural Threat

  • In standard AI memory systems, when a fact is updated (e.g., "User is activated" to "User is banned"), the old vector remains in the database.
  • These lingering, obsolete connections are called "Phantom Edges".
  • During semantic retrieval, the agent fetches both the new fact and the Phantom Edge, leading to "Context Drift" and contradictory reasoning.
  • Standard AI memory layers have no native relationship to relational source-of-truth tables.

02. The Exogram Resolution

  • Exogram implements synchronized, instantaneous metadata archival across the Knowledge Graph.
  • When a fact is updated in the primary Supabase ledger, the old ledger entry is marked `is_active=false`.
  • Simultaneously, Exogram reaches into the Graph structure and severs the bounding edges by injecting an `{"archived": true}` tombstone onto the obsolete node.
  • The retrieval engine actively tracks strict Graph traversal constraints, meaning Phantom Edges vanish from the semantic view immediately.

Technical Implementation Blueprint

// Exogram Synchronized Graph Tombstoning:

def update_fact(self, fact_id: str, new_content: str):
    # 1. Write new fact to Supabase
    new_id = self.supabase.insert(new_content)
    
    # 2. Archive old fact in Supabase
    self.supabase.update(fact_id, {"is_active": False})
    
    # 3. Tombstone the Node in the Knowledge Graph
    graph_engine.update_node(
        node_id=fact_id, 
        set_metadata={"archived": True}
    )
    
    # The phantom node is instantly eliminated from traversal bounds.

Frequently Asked Questions

Why not just delete the node entirely?

Because Exogram is an immutable auditing system. We never delete data. We tombstone it. This preserves the historical audit trail while preventing it from polluting active agent sub-graphs.

Can an agent retrieve archived facts if it needs to?

Yes, but only via explicit historical query endpoints. Standard Graph traversal searches filter them out automatically.

Explore Other Blueprints