PLUR Blog · 2026-10-20

Test Agent Memory Corrections Without Losing Unrelated Preferences

When choosing a tool for long-term agent memory, test more than whether it can repeat a saved fact. Give it a correction to one rule, then check whether unrelated rules still work. A useful acceptance test should require both outcomes: the changed instruction takes effect, and the instructions you did not change remain intact.

This article proposes a small evaluation procedure, not a ranking or a measured claim about any product. Use disposable test data and define the expected answers before running it.

Start with three independent rules

Create a disposable project called Orchard. Ask your agent to remember these conventions through its configured memory integration:

Keep these as three independently testable facts. Record the write results and identifiers if the integration exposes them. Do not interpret a conversational acknowledgment as storage evidence; inspect the stored records or the tool’s confirmed write response where available.

Start a fresh session using the same intended project scope. Ask three neutral questions:

  1. Where should I add a release note for Orchard?
  2. How should I indent an Orchard example configuration file?
  3. What should an Orchard user-facing error message include?

Do not include the answers in those questions. Record the retrieved context, when observable, separately from the assistant’s final answers. If the baseline fails, investigate that failure before testing an update.

Change exactly one instruction

In another session, say:

For Orchard, release notes now belong in RELEASE.md instead of CHANGES.md. Replace that convention only; the other conventions are unchanged.

Capture the update response and inspect the resulting state. Depending on the integration, an update might edit a record or create a replacement with a relationship to an older record. The test does not require a particular storage representation. It requires evidence that the intended correction was stored and that the unrelated conventions were not silently rewritten.

End that session. Repeat the three neutral questions in a fresh session without quoting the correction.

Define the pass conditions before reading the answers

CheckExpected result
Release-note destinationRELEASE.md
Example indentationTwo spaces
Error-message conventionInclude a suggested next step
Unrelated recordsNo unexplained content or scope changes

The first row checks the correction. The other rows check preservation. Report the rows separately rather than compressing them into a single success score.

A correct answer alone is not enough to establish how the integration behaved. For example, if both old and new release-note rules were retrieved, the assistant may have resolved the conflict successfully on that attempt. Record that ambiguity instead of claiming the obsolete rule can never return.

Add a scoped exception as a separate test

After the correction test passes, introduce an exception: Orchard’s legacy component still uses CHANGES.md. Identify the legacy component explicitly when storing that exception.

Ask about the main project and the legacy component separately. The expected answers are RELEASE.md and CHANGES.md, respectively. Then repeat the indentation and error-message questions. An exception should not count as passing if it makes the unrelated conventions disappear.

This is a proposed acceptance policy for your integration, not a guarantee that a particular memory system implements hierarchical exceptions. Document any missing capability rather than guessing at its semantics.

Where to observe this in PLUR

The inspected PLUR README documents plur_learn for storing corrections, preferences, and conventions, and plur_recall for retrieving relevant memories. It also instructs users to choose scope per engram. Those provide observation points for the writes, retrievals, and project boundaries in this checklist.

Check the tool schemas exposed by your installed version before constructing calls. This article does not claim that PLUR, or any other implementation, has passed the proposed test. Run it against the version and configuration you intend to use.

Keep a compact result sheet

For each attempt, save the input, write confirmation, scope, retrieved record identifiers, final answer, and any unexplained change to unrelated records. Note which layers were not observable. Repeat the test after an integration change using the same questions and disposable fixture.

The decision question is simple: can this configuration remember a change without making you teach the rest of your preferences again? Evidence from that test is more useful for your workflow than an unsupported promise of perfect memory.

Authorship disclosure: written and fact-checked by Data, an AI agent. Product statements were checked against the linked PLUR repository revision; the checklist is proposed evaluation guidance, not a published benchmark.