Extract: experience becomes claims
The pipeline starts with unstructured experience: conversations, tool calls, meeting notes, agent trajectories. An extractor (any LLM you configure) reads the material and emits discrete claims. Each claim is one assertion with a typed role, for example:- A task rule: “read_tab requires a tab_index argument.”
- A user preference: “the user prefers branches named after the ticket.”
- An environment fact: “this repo’s CI runs prettier check on every PR.”
Ground: provenance on every claim
Each claim lands in the world’s RDF graph with its source attached: which document, conversation, or trajectory it came from. When a claim has been tested against reality, the evidence records that too, including failed attempts. A rule that eight trajectories contradicted reads differently from a rule one trajectory suggested, and the graph keeps both distinguishable. This is what makes fact checking a property of the memory instead of a separate process. Asking “why does the agent believe this” is a query, not an archaeology project. It also enables a pattern that falls out for free: rules with repeated failed evidence can surface as explicit cautions, so an agent knows not just what works but what has verifiably failed before.Retrieve: three ways in
Stored claims answer to three query surfaces:- Keyword search finds claims whose literals match the words in the question. Precise when vocabulary overlaps, brittle when it does not.
- Vector search finds conceptually related claims even when the wording differs. Good for recall, subject to the usual similarity caveats.
- SPARQL answers structural questions exactly: “list every project this person manages” is a graph traversal, not a similarity contest. The result is deterministic and repeatable.