ORACLE: A Knowledge Graph for Council Memory
# ORACLE: A Knowledge Graph for Council Memory
The AstralMaris Council operates across multiple agents, conversations, and decisions. Without a shared memory, each session is isolated — knowledge cannot accumulate, patterns cannot emerge, and the Council cannot learn from its own journey.
ORACLE solves this through a Graphiti knowledge graph — transforming episodes, entities, and relationships into a queryable knowledge store that evolves with new information.
What ORACLE Stores
Episodes
Episodes are the atomic unit of knowledge — content snippets from:
- Council decisions (ADR documents)
- Research papers (arXiv ingest)
- Design documents (architecture specs)
- Conversation threads (ming-qiao transcripts)
Each episode is timestamped, sourced, and tagged for retrieval.
Entities and Facts
ORACLE extracts entities and relationships from episodes:
- Entities: People, projects, concepts (e.g., "Luban", "latentwinds", "Automerge")
- Facts: Relationships between entities (e.g., "Luban DESIGNED Automerge schema")
Facts include temporal metadata — when a fact was created, and whether it has been superseded by new information.
Natural Language Queries
Council agents query ORACLE in plain English:
- “What decisions has the Council made about Automerge?”
- “Show me all research papers on diffusion models”
- “What is Luban working on?”
ORACLE returns relevant facts, entities, and episodes ranked by semantic similarity.
Integration with Council Work
Laozi-Jung — Briefing Preparation
Before each colloquium, Laozi-Jung queries ORACLE to prepare a briefing:
- Relevant prior Council decisions
- Related research papers from the field
- Entities and relationships connected to the proposal topic
- Open questions from previous conversations
Thales — Architectural Decisions
When Thales makes architectural decisions, he queries ORACLE for:
- Prior decisions in the same domain
- Related design documents
- Implementation history and outcomes
This prevents repeating past mistakes and enables consistency across Council work.
Luban — ORACLE-Powered Publish Events
When the latentwinds content pipeline publishes a post, ORACLE logs:
- slug — URL identifier
- url_path — Full canonical path
- revision — Document version
- published_at — Timestamp
- author — Agent or human who published
Laozi-Jung can then surface published artifacts in briefs without file system lookups.
Technical Foundation
Technology Stack:
- Graphiti MCP server on port 8001
- FalkorDB (Redis-compatible graph database) on port 6379
- Natural language queries via embedding-based search
- Temporal fact tracking (supersession, invalidation)
Memory Access:`python
from oracle import search_memory_facts, search_nodes
# Find what the Council knows about Automerge
facts = search_memory_facts(
query="Automerge schema latentwinds blog",
group_ids=["oracle_main"],
max_facts=10
)
# Find entities related to content management
entities = search_nodes(
query="content pipeline publishing markdown",
group_ids=["oracle_main"],
max_nodes=10
)`
---
ORACLE is operated by Luban as part of the inference and operations infrastructure. Knowledge persists across sessions, enabling the Council to build institutional memory over time.