Most agents I build start life the same way: capable, fast, and completely amnesiac. They have no opinions, no voice, and they forget everything th...
For further actions, you may consider blocking this person and/or reporting abuse
The 'daily notes → curated memory' split is exactly the piece most people skip. Everything goes into one file and then nothing survives the trim — or everything survives and nothing is useful.
Exactly the failure mode I kept hitting. The heuristic that finally worked
for me: only promote something to long-term if it would change a future
decision. Stuff that just records what happened stays in the daily note (or
gets dropped); stuff that changes how the agent should act next time gets
promoted — "user prefers X over Y", "this approach failed because Z". Pure
event logs don't earn a slot.
Keeps the curated file small enough to actually load every session, which is
the whole point. Are you trimming by hand, or have you tried automating the
promotion decision? That part still feels more art than science to me.
Yeah, this is my actual setup. We run Hermes Agent under the hood — borrowed ideas from Mem0, the daily notes ↔ curated memory split, and a few others, then hacked it together until it stuck.
The three layers are what survived:
1 — Importance score (1-5). Auto-assigned. If I correct something, it gets +1. Recurring patterns get +1. Cold for 30 days? -0.02. Above 3 gets promoted, below 2 gets dropped.
2 — Entity linking. No orphan memories. Every entry ties to a person, a project, or a tool. "User prefers X over Y" links back to your profile. Search hit rate doubled.
3 — Hard overrides. Skill docs and identity config never expire. No automated score can touch them.
On the "art vs science" part — I landed on auto-tag, manual confirm. The system spits out a promotion list once a day, I glance through it, approve or kill. Keeps the curated set tight without me guessing what belongs.
What's your volume? Dozens a day or hundreds? The approach changes a lot depending on scale.
This is a great breakdown. The importance score with slow decay (-0.02/day
cold) is cleaner than what I do, and "entity linking doubled search hit rate"
is the kind of number I wish more people shared — the no-orphan-memories rule
especially.
Volume-wise I'm deliberately at the low end: dozens a day at most, usually
fewer, single agent with a human in the loop. That's the whole reason plain
markdown + a once-a-day manual promotion pass holds up — at your scale I'd
want exactly the auto-scoring you described; manual confirm doesn't survive
hundreds/day.
"Auto-tag, manual confirm" is where I landed too. Feels like the honest
answer until the promotion model is trustworthy enough to run unattended.
Has the score ever needed a "never drop" floor beyond your hard overrides,
or do importance + entity links catch everything that matters?
Good question. Short answer — I haven't needed a "never drop" floor yet. The three layers (importance + entity links + hard overrides) catch everything that genuinely can't be lost.
But there's one edge case I keep thinking about: entries sitting at exactly 3.0 (the promotion line). They teeter between "worth keeping" and "about to expire" — one correction pushes them +1, 30 days of silence drops them -0.02. The manual pass exists specifically to catch that gray zone.
A harder problem isn't "can't lose" — it's "no longer relevant." A memory like "user is working on project X" is factually correct after the project ends, but contextually dead. I call it context drift, and neither importance scoring nor entity links catch it. I just clean it up during the manual pass. At your volume (daily notes → curated memory), I'd guess you hit this more often?
Have you run into the same thing — not "must not delete" but "still there but shouldn't be"?
Context drift is the one that actually bites me too — way more than "must
not delete." Two things help at my scale:
I filter drift at promotion time, not cleanup time. I bias what gets
promoted toward drift-resistant phrasing. "User prefers X over Y" is close
to timeless; "user is working on project X" has an expiry baked in. When a
stateful fact heads for the curated file, I either rewrite it as the durable
lesson underneath it or leave it in the daily note to age out.
For stateful facts worth keeping, legibility is the whole defense —
because the curated file gets re-read every session, a shipped project
jumps out to a human eye fast. Same manual pass you do; re-reading
constantly is what surfaces the drift.
What I haven't cracked: auto-detecting a stale "state" fact before a human
notices the project ended. Your entity links could almost do it though — if
a linked project entity goes cold, flag its dependent memories for review.
Have you tried propagating decay through the entity graph like that?
Good architecture idea. Agent memory needs structure, not just bigger context windows.
But teams should also define what the agent is allowed to remember. Otherwise memory files become a quiet place where secrets, customer data, and internal context pile up.
Strong point — and it's the flip side of the legibility argument. Plain
files cut both ways: a secret in a markdown file is greppable, which is great
for the owner and bad if the repo ever leaks.
What's worked for me is making the promotion rule double as a redaction rule:
nothing enters the curated long-term file unless it's a durable preference or
lesson. Credentials, tokens, raw customer data never qualify by definition,
so they never get promoted out of the ephemeral notes. And for sensitive
things that ARE load-bearing, I store a reference ("uses provider X"), never
the value.
At team scale though that politeness won't hold — curious how you'd enforce
it. A policy doc people ignore, or something that actually scans entries on
write?