One memory for all your agents
Evidence, facts, and their history in one store that every agent reads and writes through the kernel. Each agent recalls only what its scope allows.
from cambrian_agent_sdk import CognitiveAgent
class SupportAgent(CognitiveAgent):
role = "Answers product questions from the team's shared memory."
seed_recall = True # recall from shared memory before every run
def run(self, task):
# Results arrive already filtered by this agent's scope.
for hit in self.memory.recall(task.text, top_k=5):
print(f"{hit['score']:.2f} {hit['text'][:80]}")
result = self.think(task)
self.memory.remember(task.text, source="support_agent", importance=0.6)
return result
agent = SupportAgent(agent_id="support_agent", version="1.0.0",
description="Answers product questions.")
if __name__ == "__main__":
agent.serve()An agent is only as good as what it remembers
Most agents start every task from zero. In Cambrian, what one agent learns is there for the next one, within the rules you set.
Write once, recall from any agent
An agent stores what it found with its source, session, and importance. Any agent whose scope covers it can recall it later, without passing files around.
Ranked by more than similarity
Recall blends semantic similarity with keyword match, coherence, and confidence. On LoCoMo that blend found more of the right memories than plain vector search.
Facts keep their history
When a fact changes or two sources disagree, both versions stay. Agents can ask what was true at a point in time, and what contradicts what.
How memory performed in our runs
Each result compares Cambrian with its own earlier version or an alternative we tried, never with another product.
LoCoMo ranking
Blended ranking finds more of the right memories than plain vector search.
Kept on infrastructure you run
Memory lives in your own PostgreSQL database, next to the kernel. The only text that leaves your servers is what you send to the model providers you configure.
- Evidence and facts in PostgreSQL with pgvector
- Separate lanes for what agents know, what they did, and what followed similar situations before
- Knowledge-graph extraction without an LLM call
- Local embeddings through Ollama by default
You decide what is remembered and who sees it
Scope filtering
Every recall is filtered by the asking agent’s scope inside the kernel, before anything is returned.
Source and importance
Each write records where it came from and how much it matters. Tags you pass can only narrow its classification.
Your embedding model
Pick the provider, model, and dimensions in one config file. The defaults run locally.
Questions about time
Ask about history, contradictions, or a point in time, and get a labelled answer or a named refusal.
Secure by design, not by checklist
Self-hosted
The runtime and your data stay on your infrastructure.
Explained denials
Every denial carries a named reason, like missing_required_tag.
Open source
Read the code that enforces the rules.