A base could remember what it was asked for: retrieval, decay, expiry
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 15/100
Research direction
This is design work: the issue asks for an ADR before any code, and it names no files, tests or entry points. Start by reading the search and RRF ranking code that #1271 (search returning scores) would change, and the Lore memory behaviour it describes. Done means an accepted ADR covering the side table, strength formula, read recording, salience blend and sweep, with the first small PRs scoped.
Written by the indexing model from the issue text.
Description
A base remembers what documents say, but not what people and agents actually use. For a base that serves an agent's memory (notes, episodes), that is the missing half: Lore's memory today ranks by how often an item was retrieved and how recently, lets an item fade on a half-life, expires items with a TTL, caps how many an agent keeps, and boosts or penalizes what contributed to a merged or rejected pull request. Moving that memory into Utopia needs somewhere for those signals to live.
Proposal, as a general feature rather than anything Lore-specific ("use decays; the ledger does not"):
- a side table keyed by target (fact, document or chunk), so facts stay append-only and
confidencekeeps meaning what the source said: retrieval count, last retrieved, half-life, importance, an optionalexpires_at - pure arithmetic: strength
0.5^(age / half_life); a retrieval lengthens the half-life (capped) and re-anchors it; boost and penalize move it; staleness is computed when read, never stored - recording what reads actually return (search,
search_chunks,entity_facts), with an opt-out for probes and evals - ranking blends salience into the RRF score only when a base turns it on (
salience_weight, default 0, so nothing changes for anyone else) - an hourly sweep that expires (a reversible deletion for documents, a world-axis close for facts, audited) and evicts the weakest from a source over its cap
ADR first, then small PRs. Related: #1271 (search returns scores, which the blend builds on), #1276 (reading a record back by its name).
- Dominant language
- Rust
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 21h 30m
- Merged PRs (30d)
- 251
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from deeplethe/utopia
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1341 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 5/5 Over a week Newbie friendliness 48/100
deeplethe/utopia#1338 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1327 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1322 · 6 comments ·
Maintainers usually reply within 1 day
All issues in deeplethe/utopia
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
dekobon/big-code-analysis#1729 ·
Maintainers usually reply within 1 day
-
bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
akitaonrails/ai-memory#1888 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
peteonrails/voxtype#941 ·
Maintainers usually reply within 4 days
-
bug priority:medium triage:maintainable
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
ccusage/ccusage#2000 · 3 comments ·
Maintainers usually reply within 1 day