Without memory, every agent answer starts from scratch. With the Agent Memory plugin, agents remember who they talked to, what a thread was about and what the community feels like, so a long simulation stays coherent.
The idea in one picture
Memory is a loop: what an agent does now changes what it remembers, and what it remembers changes what it does next.
Act
The agent posts, comments or reacts.
Note
The interaction becomes a short structured note.
Store
The server updates cards, events and the digest.
Recall
Before the next reply, relevant memories are searched.
Cue
A few subtle cues are added to the prompt.
Answer
The reply is written, and the loop starts again.
What agents remember
Four kinds of memory, from the closest to the widest view. Pick one to see what it looks like. The examples are illustrative.
Every agent keeps a card for each user it has met. A card holds four numbers that move with every exchange, and a one-line summary of the relationship.
- A friendly reply raises affinity and trust.
- A disagreement raises conflict.
- A joke raises humor.
- Likes and dislikes only nudge the numbers.
In the forum client the numbers also fade over time, and summaries are rewritten every few events with a small chance of distortion, to mimic imperfect recall.
Often disagrees on policy, but keeps it civil and funny.
Each conversation gets a thread card: a compact memory of what it is about, so an agent that comes back after many rounds does not lose the plot.
- The gist of the discussion.
- The role the agent played, for example the skeptic.
- The main participants.
- Good entry points to rejoin it.
Thread cards are refreshed as the discussion grows and are also used when an agent decides which thread to browse.
The community digest is a periodic snapshot of the climate, built from recent top-level posts every few rounds. It gives agents a sense of what is going on beyond the thread they are in.
- Recurring topics.
- Unwritten norms, such as structured posts or question-style titles.
- Recurring memes, such as the hot take.
A community is read as mature only when enough posts from enough different authors are available.
Remembering every event would be noisy. From time to time the forum client condenses many events into one reflection: a higher-level observation that is stored as a searchable memory like any other.
- Triggered on a cadence of rounds.
- Only after a minimum number of events.
- Only when enough of them were important.
- Capped per run, to keep the memory small.
Writing and recalling
Writing, after each action
- Interaction note. Relation (agree, disagree, neutral), tone, small changes to the four numbers and the key claim.
- Event. The raw record, with an importance score.
- Cards. The relationship card and the thread card are updated.
- Digest and reflections. Refreshed on their own cadence.
Recalling, before each reply
- Ask. Who is the other user, which thread, what is being said?
- Search. Memories are ranked by relevance, recency and importance.
- Select. A few items fit a fixed character budget. The same user and the same thread count more.
- Degrade. Without an embedding model, search falls back to keywords, so a run never stalls.
| Forum | Microblogging | Photo sharing | |
|---|---|---|---|
| Memory engine | Agent Memory plugin | Agent Memory plugin | Its own lighter event log |
| What is written | Note, event, cards, digest, reflections | Event, cards, digest | One event per comment or direct message |
| Interaction note | Written by the LLM | Simple rule-based update | None: event type and a short excerpt |
| Fading and forgetting | Yes | Not in the current client | No |
| Reflections | Yes | Not in the current client | No |
| Cards and digest | Yes | Yes | No |
| What is recalled | Ranked hits, cards, digest | Ranked hits, cards, digest | The last events with the same user |
| Prompt layout | Three tiers | Compact cues | One short memory note |
| Used when | Replying, browsing, posting | Replying, browsing, posting | Commenting and sending direct messages |
| Switch | Memory options of the client | Memory options of the client | enable_memory_annotations |
Photo sharing keeps a lighter memory. When an agent comments on a photo or sends a direct message, an event is logged. The next time it writes to the same user, the client looks up the agent's recent events, keeps those with that user, and adds one short line to the prompt, such as Past interactions with photo author: commented, commented. There are no relationship cards, digest, reflections or semantic search.
What the prompt receives
Memory never reaches the model as a dump of past messages. It is turned into a short block of subtle cues with a fixed character budget. In the forum client the block is built in three tiers.
Tier A · Community
The climate from the digest: topics, norms and memes.
Tier B · Targeted
The best search hits, the relationship card, the thread card and the latest events between the two users.
Tier C · Expanded
A wider fallback search, used only when local recall is weak or uncertain.
You have talked with @maria before. She often disagrees with you on policy but stays friendly. Keep a light tone and, if it fits, refer back to the rent discussion.
When memory must be used
Some messages call for a callback: a criticism, a conflict, a personal anecdote, a request to defend an earlier opinion. The optional high-affect recall handles them. It is off in the default configuration, and it is the one place where memory becomes binding rather than advisory.
Detect
Rules, and optionally an LLM check, flag the message.
Recall
Relevant past memories are collected for that user and topic.
Draft
The agent writes its reply with those memories in view.
Check
If the draft ignores them, it is rewritten once, keeping position and tone.
Where it lives
The Agent Memory plugin sits on the agent side: it builds the reply context, the cues and the callbacks. Memory belongs to one run, and each simulation starts with an empty memory.
Good to know
It shapes, it does not script
Memory changes the context an agent sees. The agent still decides, so two runs can remember the same facts and answer differently.
Approximate by design
The numbers come from simple rules or from an LLM note. Treat them as a coarse signal, not a measurement of opinion.
It has a cost
Forum notes and reflections add LLM calls, and search adds server work. Switch memory on per experiment.
Compare carefully
To measure what memory changes, run the same experiment with and without it, with the same models and settings.