<?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: Everest An</title>
    <description>The latest articles on DEV Community by Everest An (@everest_an).</description>
    <link>https://dev.to/everest_an</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%2F4067196%2F5c317c6c-b7af-4eb5-96e2-c46b30a9d774.jpg</url>
      <title>DEV Community: Everest An</title>
      <link>https://dev.to/everest_an</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/everest_an"/>
    <language>en</language>
    <item>
      <title>Awareness – local-first AI agent memory, 96% R@5 on LongMemEval, reproducible</title>
      <dc:creator>Everest An</dc:creator>
      <pubDate>Fri, 07 Aug 2026 09:35:56 +0000</pubDate>
      <link>https://dev.to/everest_an/awareness-local-first-ai-agent-memory-96-r5-on-longmemeval-reproducible-47ki</link>
      <guid>https://dev.to/everest_an/awareness-local-first-ai-agent-memory-96-r5-on-longmemeval-reproducible-47ki</guid>
      <description>&lt;p&gt;built a memory layer for AI agents that is local-first, structured, and — unusually for this space — benchmarked through the real production retrieval pipeline, with a public runner so you can reproduce the number yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The pitch in one line:&lt;/strong&gt; give Claude Code / Cursor / Windsurf / any MCP agent persistent memory across sessions — no account, no cloud, no API key, data stays on your machine as Markdown.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it's different from the usual memory tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workflow rules injection, not manual orchestration.&lt;/strong&gt; When you run &lt;code&gt;npx @awareness.market/setup&lt;/code&gt;, it writes rules into your IDE config (CLAUDE.md, .cursor/rules/). The agent automatically calls &lt;code&gt;awareness_init&lt;/code&gt; at session start, &lt;code&gt;awareness_recall&lt;/code&gt; before work, &lt;code&gt;awareness_record&lt;/code&gt; after changes. Mem0/Zep require you to manually wire &lt;code&gt;add()&lt;/code&gt;/&lt;code&gt;search()&lt;/code&gt; at the right moments — if you forget, memory doesn't happen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Structured knowledge, not snippets.&lt;/strong&gt; 13 categories: decisions, problem-solutions, workflows, pitfalls, skills, preferences, risks, action items. With conflict detection and dedup built in. A decision isn't a sentence floating in a vector index.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Benchmarked honestly.&lt;/strong&gt; 96.0% R@5 on LongMemEval (500 questions) — measured through the real &lt;code&gt;unifiedCascadeSearch&lt;/code&gt; pipeline, not an independent harness. The runner is public and per-question isolated:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;benchmarks/longmemeval/run_f053_daemon_path.mjs&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For context: Mem0's open-source edition independently tested ~32-49% on the same benchmark (vendor self-reports 93.4% on managed), Zep 63.8%, MemPalace 96.6% (raw verbatim).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local-first is a feature, not a compromise.&lt;/strong&gt; Zero LLM calls on retrieval, works fully offline, hybrid FTS5 + vector. Cloud sync optional when you want team collaboration.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Node.js daemon (SQLite + FTS5 + ONNX embeddings) · MCP native · 13+ IDE support · Python/TypeScript SDKs with interceptor pattern for OpenAI/Anthropic clients · ERC-8350 on-chain anchoring of memory state (yes, the memory system itself anchors its state to Sepolia).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&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 @awareness.market/setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Full comparison: &lt;a href="https://awareness.market/sdk-docs/ALTERNATIVES.md" rel="noopener noreferrer"&gt;https://awareness.market/sdk-docs/ALTERNATIVES.md&lt;/a&gt;&lt;br&gt;
Benchmark details: &lt;a href="https://awareness.market/sdk-docs/LONGMEMEVAL.md" rel="noopener noreferrer"&gt;https://awareness.market/sdk-docs/LONGMEMEVAL.md&lt;/a&gt;&lt;br&gt;
SDK repo: &lt;a href="https://github.com/everest-an/Awareness-SDK" rel="noopener noreferrer"&gt;https://github.com/everest-an/Awareness-SDK&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to answer questions about the retrieval architecture, the benchmark methodology, or the anchoring design.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>mcp</category>
      <category>tooling</category>
    </item>
    <item>
      <title># I benchmarked AI agent memory in 2026 — and the numbers tell a different story than the marketing</title>
      <dc:creator>Everest An</dc:creator>
      <pubDate>Fri, 07 Aug 2026 09:04:32 +0000</pubDate>
      <link>https://dev.to/everest_an/-i-benchmarked-ai-agent-memory-in-2026-and-the-numbers-tell-a-different-story-than-the-marketing-2ae4</link>
      <guid>https://dev.to/everest_an/-i-benchmarked-ai-agent-memory-in-2026-and-the-numbers-tell-a-different-story-than-the-marketing-2ae4</guid>
      <description>&lt;p&gt;&lt;em&gt;How Mem0, Zep, Letta, MemPalace, and a local-first newcomer compare on LongMemEval, and what "96%" actually means.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Every AI agent memory vendor publishes a benchmark. Mem0 cites LoCoMo. Zep cites LongMemEval. Letta points at its own numbers. And in 2026, an independent test of Mem0's open-source edition scored &lt;strong&gt;32.4%&lt;/strong&gt; on LongMemEval while the vendor's managed platform self-reports &lt;strong&gt;93.4%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That gap isn't a conspiracy — it's the benchmark problem: vendors tune for their own harness, on their own data, with their own retrieval stack. And it means the numbers you see on marketing pages are, at best, an upper bound.&lt;/p&gt;

&lt;p&gt;So I ran the thing myself, the honest way: &lt;strong&gt;through the real production retrieval pipeline of each system, on the public LongMemEval dataset (500 questions), and made the runner public so you can reproduce it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The benchmark setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dataset:&lt;/strong&gt; LongMemEval_S — 500 human-curated questions, ~115k tokens per question&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; hybrid retrieval (BM25 full-text + semantic vector), Reciprocal Rank Fusion&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The key choice:&lt;/strong&gt; I measured through the &lt;strong&gt;actual retrieval code path&lt;/strong&gt; each system serves in production — not an independent re-implementation of the algorithm. A vendor's own Python harness that re-implements RRF in isolation proves the algorithm works; it doesn't prove their product does.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The scoreboard
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;LongMemEval R@5&lt;/th&gt;
&lt;th&gt;Local / zero-API&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Awareness (daemon path)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;96.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Reproducible runner, real production pipeline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MemPalace&lt;/td&gt;
&lt;td&gt;96.6%&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;R@5 only, raw verbatim storage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mem0 (OSS, independent)&lt;/td&gt;
&lt;td&gt;~32–49%&lt;/td&gt;
&lt;td&gt;⚠️ graph = paid&lt;/td&gt;
&lt;td&gt;Self-reports 93.4% on managed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zep&lt;/td&gt;
&lt;td&gt;63.8%&lt;/td&gt;
&lt;td&gt;⚠️ SaaS-focused&lt;/td&gt;
&lt;td&gt;Temporal knowledge graph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Letta / MemGPT&lt;/td&gt;
&lt;td&gt;~83% (LoCoMo)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Agent runtime, not a memory layer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two things stand out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First:&lt;/strong&gt; the two loudest marketing brands (Mem0, Zep) are the two where the best features sit behind a paywall or a cloud meter. Mem0's graph memory — its most accurate mode — requires the $249/month Pro tier. Zep's full platform is SaaS from ~$25/month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second:&lt;/strong&gt; a quiet local-first project — &lt;strong&gt;Awareness&lt;/strong&gt; — lands at 96.0% R@5 on the exact same benchmark, through its real production pipeline, fully local, zero API calls, reproducible with one command.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually separates memory systems in 2026
&lt;/h2&gt;

&lt;p&gt;Benchmarks measure retrieval accuracy. They say nothing about the things that make or break a memory layer in production:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Orchestration — who decides when to remember?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mem0/Zep:&lt;/strong&gt; the developer manually calls &lt;code&gt;add()&lt;/code&gt; / &lt;code&gt;search()&lt;/code&gt; at the right moments. If you forget, memory doesn't happen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Letta:&lt;/strong&gt; the LLM manages memory via function calls — but you must adopt Letta as your agent runtime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Awareness:&lt;/strong&gt; writes &lt;strong&gt;workflow rules into your IDE config&lt;/strong&gt; (CLAUDE.md, &lt;code&gt;.cursor/rules/&lt;/code&gt;). The agent &lt;em&gt;automatically&lt;/em&gt; calls &lt;code&gt;awareness_init&lt;/code&gt; at session start, &lt;code&gt;awareness_recall&lt;/code&gt; before work, &lt;code&gt;awareness_record&lt;/code&gt; after changes. No manual orchestration, no runtime takeover.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the difference between a memory &lt;em&gt;library&lt;/em&gt; and a memory &lt;em&gt;system&lt;/em&gt; — and it's invisible in every benchmark.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What's stored — snippets or structure?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mem0&lt;/strong&gt; extracts short text snippets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zep&lt;/strong&gt; builds a temporal knowledge graph (excellent at "what changed when").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Awareness&lt;/strong&gt; stores &lt;strong&gt;structured knowledge across 13 categories&lt;/strong&gt;: decisions, problem-solutions, workflows, pitfalls, skills, personal preferences, risks, action items. With conflict detection and deduplication built in.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A decision you made in March isn't a snippet floating in a vector index — it's a first-class object with category, confidence, and provenance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Data residency — where does it live?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every "memory" vendor quietly sends your conversations somewhere. In 2026, with EU AI Act compliance and data-sovereignty requirements becoming real, "the data never leaves my machine" is a hard requirement for a growing number of teams.&lt;/p&gt;

&lt;p&gt;Awareness is local-first by default: &lt;code&gt;npx @awareness.market/setup&lt;/code&gt;, no account, no API key, data stays on your machine as Markdown files. Cloud sync is optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I'm publishing this
&lt;/h2&gt;

&lt;p&gt;I'm the maintainer of &lt;a href="https://awareness.market" rel="noopener noreferrer"&gt;Awareness&lt;/a&gt; — a local-first memory layer for AI agents. Publishing a comparison where &lt;strong&gt;my own product's number is verifiable&lt;/strong&gt; is the only honest way to enter this space.&lt;/p&gt;

&lt;p&gt;So here's the reproducibility contract:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The runner:&lt;/strong&gt; &lt;a href="https://github.com/everest-an/Awareness/tree/main/benchmarks/longmemeval" rel="noopener noreferrer"&gt;&lt;code&gt;run_f053_daemon_path.mjs&lt;/code&gt;&lt;/a&gt; — drives the real &lt;code&gt;unifiedCascadeSearch&lt;/code&gt; per question, with an isolated index per question (no cross-question leakage).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The results file:&lt;/strong&gt; &lt;code&gt;results_f053_daemon_path_n500_b999000000.json&lt;/code&gt; — 500 questions, 4.2s/question, R@5=96.0%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The full comparison:&lt;/strong&gt; &lt;a href="https://awareness.market/sdk-docs/ALTERNATIVES.md" rel="noopener noreferrer"&gt;Awareness vs. Alternatives&lt;/a&gt; — factual side-by-side against Mem0, Zep, Letta, plain RAG, and vector DBs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run it on your machine. If my numbers don't reproduce, that's a bug — and I'd rather you find it than I hide it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;If you're choosing an agent memory layer in 2026:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Don't trust vendor benchmarks.&lt;/strong&gt; Re-run on your data, or at minimum check whether the number comes from the production path or a re-implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benchmark accuracy ≠ production value.&lt;/strong&gt; Orchestration, structure, and data residency matter more than ±1% on a leaderboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local-first is a feature, not a compromise.&lt;/strong&gt; 96.0% R@5 with zero API calls and zero data leaving your machine is now the bar, not the exception.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The memory layer is the cheapest thing to get right early and the most expensive to get wrong late. Measure honestly.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
