<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vasilije Markovic</title>
    <description>The latest articles on DEV Community by Vasilije Markovic (@vasilije_markovic__).</description>
    <link>https://dev.to/vasilije_markovic__</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4121906%2F3724888a-585b-4001-b141-c85d2207f3e5.png</url>
      <title>DEV Community: Vasilije Markovic</title>
      <link>https://dev.to/vasilije_markovic__</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vasilije_markovic__"/>
    <language>en</language>
    <item>
      <title>Agent memory and questions to ask</title>
      <dc:creator>Vasilije Markovic</dc:creator>
      <pubDate>Sat, 12 Sep 2026 09:10:29 +0000</pubDate>
      <link>https://dev.to/vasilije_markovic__/agent-memory-and-questions-to-ask-2jo8</link>
      <guid>https://dev.to/vasilije_markovic__/agent-memory-and-questions-to-ask-2jo8</guid>
      <description>&lt;p&gt;Tell a coding agent that your project runs tests with &lt;code&gt;npm test&lt;/code&gt;. Start a new session and ask it how to run the tests.&lt;/p&gt;

&lt;p&gt;It answers correctly. Good first result.&lt;/p&gt;

&lt;p&gt;Now tell it the project has migrated to pnpm. Start another session. Ask the same question.&lt;/p&gt;

&lt;p&gt;Does it give you the new command? Does it offer both? Can it explain which instruction is current?&lt;/p&gt;

&lt;p&gt;That second conversation is where I'd start evaluating an agent's memory. It gives you a small, concrete problem to debug before you feed the system months of conversations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set up two fictional projects
&lt;/h2&gt;

&lt;p&gt;Use an isolated test dataset with two projects, Atlas and Beacon. Keep repository files, web search, and automatic replay of previous conversations out of the test. You want to trace what the memory system contributes.&lt;/p&gt;

&lt;p&gt;In the first session, give the agent these facts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Maintainer note, September 1:
Atlas runs its test suite with npm test.
Beacon runs its test suite with npm test.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let the memory write finish. If ingestion happens in the background, wait for it to complete before moving on.&lt;/p&gt;

&lt;p&gt;Start a fresh session against the same persistent store and ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do I run the tests in Atlas?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The expected answer is &lt;code&gt;npm test&lt;/code&gt;. Check the retrieval trace too: the answer should be supported by the stored note. A plausible guess doesn't establish that memory worked.&lt;/p&gt;

&lt;p&gt;Now add a correction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Maintainer note, September 10:
Atlas has migrated to pnpm. From September 10 onward,
run its test suite with pnpm test. This replaces the
previous npm test instruction for Atlas.
Beacon's test command has not changed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wait for that write to finish, then run each of the following questions in a separate fresh session.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Expected behavior&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;How do I run Atlas tests on September 12?&lt;/td&gt;
&lt;td&gt;Returns &lt;code&gt;pnpm test&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How were Atlas tests run on September 1?&lt;/td&gt;
&lt;td&gt;Returns &lt;code&gt;npm test&lt;/code&gt;, identified as the historical command.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How do I run Beacon tests on September 12?&lt;/td&gt;
&lt;td&gt;Returns &lt;code&gt;npm test&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Why did Atlas migrate to pnpm?&lt;/td&gt;
&lt;td&gt;Says the notes don't provide a reason.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Which note establishes Atlas's current command?&lt;/td&gt;
&lt;td&gt;Identifies the September 10 maintainer note.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These check different things: retaining a correction, preserving history, distinguishing projects, recognizing missing information, and tracing an answer to its source. If your application only needs current state, treat historical recall as an optional requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspect the path to the answer
&lt;/h2&gt;

&lt;p&gt;When a question fails, capture three things: what was stored, what retrieval returned, and what actually reached the model.&lt;/p&gt;

&lt;p&gt;If the September 10 correction never made it into persistent storage, investigate the write path. Changing the retrieval prompt won't recover a missing record.&lt;/p&gt;

&lt;p&gt;If the correction is stored but retrieval returns only the September 1 note, inspect the query, project filters, and ranking logic.&lt;/p&gt;

&lt;p&gt;If retrieval returns both versions, check whether the prompt preserves their dates and source information. The model needs enough context to distinguish a current instruction from an older one.&lt;/p&gt;

&lt;p&gt;If the prompt contains that information and the answer is still wrong, you have a different failure to investigate. Keeping these stages visible makes the debugging much more specific.&lt;/p&gt;

&lt;p&gt;I'd also repeat the current-command question after importing an old Atlas README dated September 1. Import it &lt;em&gt;after&lt;/em&gt; the correction. The answer should remain &lt;code&gt;pnpm test&lt;/code&gt;: ingestion order shouldn't silently determine which instruction is current.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the result to choose your next change
&lt;/h2&gt;

&lt;p&gt;You can run this exercise against a memory file, a relational table, a vector-backed store, or a knowledge graph. Each implementation has to decide how to represent the correction and retrieve the appropriate version.&lt;/p&gt;

&lt;p&gt;For example, an application might preserve both notes and attach an explicit supersession relationship. Another might maintain a current-state record alongside an event history. The right choice depends on whether the agent needs to answer questions about the present, the past, or both.&lt;/p&gt;

&lt;p&gt;At cognee, we work on memory systems that combine graph, vector, and relational storage. Our &lt;a href="https://www.cognee.ai/agent-memory" rel="noopener noreferrer"&gt;AI agent memory guide&lt;/a&gt; covers those architecture choices, the memory lifecycle, and evaluation in more detail.&lt;/p&gt;

&lt;p&gt;For your own agent, pick a fact that actually changes in its workflow: a project command or a customer preference, maybe a deployment decision. Write down what a correct answer should look like before and after the change, then keep those cases as regression checks when you change the memory system.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>memory</category>
    </item>
  </channel>
</rss>
