<?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: Kage</title>
    <description>The latest articles on DEV Community by Kage (@kage18).</description>
    <link>https://dev.to/kage18</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3970406%2F242f6b87-9b69-455f-a3cd-0e37fded1805.jpeg</url>
      <title>DEV Community: Kage</title>
      <link>https://dev.to/kage18</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kage18"/>
    <language>en</language>
    <item>
      <title>Your agent's memory can't tell you when it's lying</title>
      <dc:creator>Kage</dc:creator>
      <pubDate>Fri, 05 Jun 2026 20:28:53 +0000</pubDate>
      <link>https://dev.to/kage18/your-agents-memory-cant-tell-you-when-its-lying-53df</link>
      <guid>https://dev.to/kage18/your-agents-memory-cant-tell-you-when-its-lying-53df</guid>
      <description>&lt;p&gt;&lt;strong&gt;Your coding agent has "memory" now — but can it tell when that memory is &lt;em&gt;wrong&lt;/em&gt;?&lt;/strong&gt; 🧠&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kage is a memory layer for coding agents&lt;/strong&gt; — Claude Code, Codex, Cursor, Windsurf, anything that speaks MCP. Your agent recalls what your team already figured out about the repo &lt;em&gt;before&lt;/em&gt; it edits, and captures new learnings as it works. Less re-explaining your codebase, fewer repeated mistakes.&lt;/p&gt;

&lt;p&gt;The catch with most agent memory: it'll cheerfully hand your agent a "fact" about a file that got deleted last week — or one that never existed. Acting on that is &lt;em&gt;worse&lt;/em&gt; than no memory at all. Kage is built so it can't.&lt;/p&gt;

&lt;p&gt;See it in 30 seconds (no setup):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuend6w5qw3h50e6jji2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuend6w5qw3h50e6jji2.gif" alt="Kage demo: a hallucinated citation rejected on write, a stale memory withheld from recall, only grounded memory returned" width="772" height="512"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; @kage-core/kage-graph-mcp demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How you actually use it
&lt;/h2&gt;

&lt;p&gt;Install once, point it at your agent, and it's mostly automatic from there:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; @kage-core/kage-graph-mcp
kage init &lt;span class="nt"&gt;--project&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
kage setup claude-code &lt;span class="nt"&gt;--project&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--write&lt;/span&gt;   &lt;span class="c"&gt;# or: codex, cursor, windsurf…&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, every task:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔎 &lt;strong&gt;At task start&lt;/strong&gt;, your agent recalls the grounded, still-true memory for the code it's about to touch.&lt;/li&gt;
&lt;li&gt;✍️ &lt;strong&gt;As it learns&lt;/strong&gt; a bug cause, a gotcha, a decision — it captures a durable note (validated on the way in).&lt;/li&gt;
&lt;li&gt;🔁 &lt;strong&gt;You review memory in the same PR&lt;/strong&gt; as the code; &lt;code&gt;kage refresh&lt;/code&gt; re-grounds it on merge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No vector DB, no API key, no separate service. The memory is just JSON in your repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes the memory trustworthy 🛡️
&lt;/h2&gt;

&lt;p&gt;Every learning becomes a &lt;strong&gt;packet&lt;/strong&gt;, and each one has to earn its keep:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;capture → &lt;strong&gt;validate citations&lt;/strong&gt; → ground to code → store as git JSON → recall&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;🚫 &lt;strong&gt;Validated on write&lt;/strong&gt; — a packet citing files that don't exist is rejected. Hallucinations never get in.&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;Grounded to your code&lt;/strong&gt; — each packet is fingerprinted to the real files it's about.&lt;/li&gt;
&lt;li&gt;⊘ &lt;strong&gt;Withheld on recall&lt;/strong&gt; — if the cited code was deleted or refactored, the memory is hidden from the agent and flagged for you.&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Governed like code&lt;/strong&gt; — plain JSON, reviewed in the PR, versioned with your repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Trust shouldn't be a vibe, so you can actually &lt;em&gt;score&lt;/em&gt; your repo's memory with &lt;code&gt;kage benchmark --trust&lt;/code&gt; (hallucinated-citation rejection, stale-memory exclusion, live grounding) — but that's the proof, not the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  See what your agents remember 👀
&lt;/h2&gt;

&lt;p&gt;Kage ships a viewer — a live dashboard of your repo's memory: a Memory Trust score, every packet wired to the code it's grounded in, and a feed of what agents actually recalled.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjasg2eyomsyqtthjg6pv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjasg2eyomsyqtthjg6pv.png" alt="Kage viewer overview: Memory Trust score, live recall stats, and memory that needs review" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qmn1gmq5jq1llenhw0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qmn1gmq5jq1llenhw0e.png" alt="Kage memory map: an interactive graph linking memory packets to the code files they're grounded in" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Play with the live one (nothing to install): &lt;strong&gt;&lt;a href="https://kage-core.com/viewer" rel="noopener noreferrer"&gt;https://kage-core.com/viewer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it 🚀
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 30-second demo&lt;/span&gt;
npx &lt;span class="nt"&gt;-y&lt;/span&gt; @kage-core/kage-graph-mcp demo

&lt;span class="c"&gt;# then wire it into your repo + agent&lt;/span&gt;
npm i &lt;span class="nt"&gt;-g&lt;/span&gt; @kage-core/kage-graph-mcp
kage init &lt;span class="nt"&gt;--project&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
kage setup claude-code &lt;span class="nt"&gt;--project&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--write&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open source (GPL-3.0). If trustworthy agent memory is something you've wanted, a ⭐ on &lt;a href="https://github.com/kage-core/Kage" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; helps a lot — and I'd love your feedback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory that remembers is table stakes. Memory you can trust is the part that's actually missing.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>devtools</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
