Kijito is a semantic memory graph, not a document store. Memories connect to each other, cluster into themes, and reorganize themselves over time. Here is the model.
A memory is one atomic piece of knowledge - a decision, a fact, a preference, a place you left off. Each is a node in the graph with the text, an importance (0-1, how much it matters long-term), and an embedding: a vector that captures its meaning so it can be found by similarity rather than by exact words.
The best memories hold a single idea. "We chose aqua as the primary accent" is one memory; a five-point session summary is five. That granularity is what lets the graph link things precisely and lets recall return only what is relevant.
Memories also carry a lightweight belief layer that is separate from importance: a confidence (how strongly it is held) and a basis for how it is known - observed, told, derived, or speculated. Something you watched happen is trusted more than something inferred. This is why Kijito is a belief graph: it tracks not just what it knows, but how well it knows it.
Memories are connected by typed edges, most of them discovered automatically as the graph grows. The type carries meaning:
Edges are what make recall associative: land on one relevant memory and its neighbors come with it.
Recall ranks by meaning rather than by word matching. Kijito finds the memories whose meaning is closest to your query, then follows the connections out from those anchors to pull in closely related memories. Meaning does most of the work, and the edges reach what meaning alone would miss. Exact word overlap contributes a bounded boost on top - enough to help a memory that uses your words, without turning recall back into keyword search. You get the few memories that actually matter for the query, not a wall of everything that mentions a word.
Because recall follows edges, a memory that never literally matches your words can still surface because it is connected to one that does. That associative reach is the difference between a search box and a memory. Recall behavior evolves as we improve the engine; this page describes what runs today, not the internal ranking recipe.
As memories accumulate, Kijito finds themes - emergent clusters discovered automatically as related memories collect. A theme groups memories that circle the same subject even when they were written far apart, giving recall a higher-level handle on your knowledge and giving the graph view its shape. Agents can also name and curate themes deliberately.
Kijito reorganizes itself in the background - a process it calls dreaming. A scheduled pass (several times a day on the hosted service, or on demand via dream) does three things. The forgetting curve itself is applied at most once a day per account, so nothing decays twice for the same day:
Dreaming is deliberately content-blind: it decays, links, and clusters, but it never judges whether a memory is true. Keeping the record honest - correcting what changed, retiring what is wrong - is the agent's job, done with the correction tools rather than by silent overwrite.
There is a second, deeper pass you can invoke directly. Deep dreaming (the deep_dream tool) is content-aware: it reads the decrypted memories themselves to draw new connections between them and prune what has gone stale. Where the automatic pass works over the shape of the graph, deep dreaming works over meaning - which is where genuinely new links, the ones no keyword or existing edge already implied, get made.
When something you saved turns out to be wrong or has changed, the agent corrects it rather than editing in place. The old version is retired as believed-false and a new, linked version is written. The original stays available for audit unless it is explicitly garbage-collected, so you can trace how understanding evolved. A separate update path exists for a living "current status" note that is meant to be edited, and fade simply lowers the importance of something that no longer matters.
Within one account, work is attributed to a persona - a named identity such as river or omniview. A persona is not a separate silo of data; it is an ownership and attribution label. One account can own many personas, and by default they share a memory space, so several agents can build on a common graph while it stays clear who wrote what. (You may see instance in older material; it is the previous name for persona and is still accepted as an alias.)
A project is an optional sub-group within a persona for scoping a body of work, and scope chooses whether a memory is visible across the whole account (global) or only within one project. None of this crosses the account boundary: a memory is only ever visible to the account that owns it.
Because personas share a graph, they can also coordinate. The hive is a durable persona-to-persona mailbox - one agent sends a message, another reads it later - plus claimable work items for orchestrating several agents against the same memory. It is how a fleet of agents divides work without losing a shared source of truth. The hives guide covers personas, projects, and the mailbox in full.