
To do that we introduce decaying resolution, turning our memory into DRM. Instead of just having a short term or long term memory, Orin’s memory computes sliding window summaries over the ground truth memories. At any given point in time, Orin’s memory looks like something this:
Direct interaction summaries for today’s interactions. This allows Orin to have a very high resolution memory for everything that happened today.
Daily summaries for what happened in the past two weeks. These summaries are built from the direct interaction summaries each day.
Weekly summaries for the past ten weeks (excluding the past two weeks). These are built from daily summaries.
Monthly summaries for everything more than ten weeks old.
When computing this memory, everything is timestamped and timezones are normalized for the user’s timezone.
As you can see, this can work really well to keep a history of what happened. Orin won’t remember the exact lesson timings from last year, but that’s fine. Instead, he’ll remember that a student was struggling with algebra in July and that they were prepping for a big test - that’s the information we care about.
The best part is that DRM scales tokens sublinearly with the number of interactions.
They call this “decaying-resolution memory.” I would recommend pairing this with an MCP tool to get specific chats on a specific date to hydrate a vague old memory.
I think this also demonstrates why “sleep” is necessary for agents/entities to “learn.” By turning them off and back on again, we give a chance for memory to be compacted and context to be freed up.
Josh BeckmanReference
Widgets
Updated: |
v2.15.0-r761-gb33757fc
|