Memory
Grounded retrieval over your own material, with receipts.
What it does
Documents, transcripts and uploads are chunked, embedded and indexed, then retrieved by a hybrid of vector similarity, keyword match and graph centrality at answer time. Retrieved passages carry receipts, so an answer can point at the source that produced it, and access rules filter the corpus before retrieval rather than after.
Why it matters
An agent that cannot cite is an agent you cannot check. Retrieval with receipts turns "the AI said so" into "this document says so, here it is", which is the difference between a demo and something you would let talk to a customer.
How it works
Access filtering happens before retrieval
The corpus an agent can search is already narrowed by policy, so a permission mistake cannot surface as a leaked citation.
Hybrid scoring, not vector-only
Vector similarity is combined with keyword match and graph centrality, which is what keeps exact identifiers and rare terms findable.
Answers carry grounding receipts
The passage that produced a claim is attached to the claim, rather than reconstructed afterwards.
Questions
- Does the agent remember our conversations?
- Not in the way "memory" usually implies. This is retrieval over material you supply. Conversation history is kept per session; it is not distilled into a persistent profile.
- How does retrieval work?
- Documents are chunked, embedded and indexed. At answer time a hybrid of vector similarity, keyword match and graph centrality selects the best passages, and each one carries a receipt back to its source.
The rest of the bag
AccessControl
Per-document permissions that filter answers, not just pages.
Policy resolution is cached per session for speed; a permission change propagates on cache invalidation rather than instantly on every in-flight request.
Docs
A folder tree the agent reads, and a config file it obeys.
Extraction covers PDFs, spreadsheets and transcripts. Exotic binary formats are not parsed.
Events
A durable ledger of what agents did, and why.
The in-process event bus is a single-node emitter, not a distributed broker. The durable cross-agent record is a separate Postgres task ledger.
That was step 5 of 6: the agent consults its bag. Next, tasks, delegation edges, decisions and artifacts persist as rows you can replay, and the spend is already accounted for.