Core concepts
Recall
Multi-strategy retrieval, fused and scored.
POST /memories/recall answers a
query with the most relevant memories in the namespace.
How recall retrieves
Four retrieval arms run in parallel and their candidates are fused:
- Semantic — embedding similarity against the query.
- Lexical — full-text search for exact terms the embedding may miss.
- Graph — link expansion from strong hits to connected facts.
- Temporal — time-anchored retrieval when the query implies a period.
Candidates are reranked, then scored by relevance, recency, and corroboration. Standing decisions never decay below neutral recency, so policy stays findable long after it was made.
Budget
budget trades latency for depth:
| Budget | Behavior |
|---|---|
low | Fewer candidates, single-pass. Fastest. |
mid | The default balance. |
high | Widest retrieval and reranking effort. |
max_tokens caps the size of the result set, so the response drops straight
into a prompt.
Filtering and extras
types— restrict fact types. The REST endpoint defaults to all four; pass["world", "experience", "decision"]to exclude synthesized observations.tags+tags_match— filter by retain-time tags (any,all, or the_strictvariants that exclude untagged memories).tag_groupscomposes boolean tag expressions.query_timestamp— anchor "recent" to a different point in time.includeoptions — entity observations, raw source chunks, and the source facts behind observations can be inlined in the response, each with its own token cap.trace— return scoring detail for debugging retrieval.