<?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: ma wenxin</title>
    <description>The latest articles on DEV Community by ma wenxin (@ma_wenxin_53639d916becae3).</description>
    <link>https://dev.to/ma_wenxin_53639d916becae3</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%2F4068449%2F8a595bde-4722-4b6e-aa7e-c55947e08614.png</url>
      <title>DEV Community: ma wenxin</title>
      <link>https://dev.to/ma_wenxin_53639d916becae3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ma_wenxin_53639d916becae3"/>
    <language>en</language>
    <item>
      <title>More Memory Didn't Fix Coding-Agent Amnesia—SWE-ContextBench Shows Why</title>
      <dc:creator>ma wenxin</dc:creator>
      <pubDate>Tue, 11 Aug 2026 08:29:29 +0000</pubDate>
      <link>https://dev.to/memorax-ai/more-memory-didnt-fix-coding-agent-amnesia-swe-contextbench-shows-why-361l</link>
      <guid>https://dev.to/memorax-ai/more-memory-didnt-fix-coding-agent-amnesia-swe-contextbench-shows-why-361l</guid>
      <description>&lt;p&gt;Yesterday, a coding agent fixed a complex bug. It searched the repository, ruled out several wrong directions, found the root cause, and produced a working patch.&lt;/p&gt;

&lt;p&gt;Today, a related issue appears in the same codebase. The agent starts from scratch—repeating much of the same exploration, mistakes, and token expenditure.&lt;/p&gt;

&lt;p&gt;Giving the agent access to its history sounds like the obvious solution. Our results suggest otherwise: &lt;strong&gt;more history can cost more without improving task resolution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We have been building &lt;a href="https://memorax-engineering.hashnode.dev/beyond-context-windows-how-memorax-code-gives-coding-agents-continuity" rel="noopener noreferrer"&gt;MemoraX Code&lt;/a&gt;, a long-term memory layer for coding agents. That work led us to a harder question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can a coding agent reuse past engineering experience to solve related tasks more accurately and efficiently?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To study it, we built and open-sourced &lt;strong&gt;SWE-ContextBench&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Existing Coding Benchmarks Miss
&lt;/h2&gt;

&lt;p&gt;Most coding benchmarks evaluate whether an agent can understand an issue, locate relevant code, produce a patch, and pass the tests.&lt;/p&gt;

&lt;p&gt;But real software-engineering tasks are not independent.&lt;/p&gt;

&lt;p&gt;An issue may continue an earlier problem. A pull request may fix several related bugs. Even a failed implementation may reveal an architectural constraint that should not be violated again.&lt;/p&gt;

&lt;p&gt;Senior engineers accumulate this context. They remember which approaches failed, which modules had similar problems, and which tests are most likely to expose a regression. Most benchmarks do not measure whether an agent can do the same.&lt;/p&gt;

&lt;p&gt;SWE-ContextBench contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1,100 experience tasks&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;376 related evaluation tasks&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;51 real open-source repositories&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;9 programming languages&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Lite version includes 300 experience tasks and 99 evaluation tasks, making reproduction less expensive.&lt;/p&gt;

&lt;p&gt;The benchmark measures task resolution, runtime, and token cost—not only whether the final patch passes.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk8kcmcrb5z3ri4qt7agh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk8kcmcrb5z3ri4qt7agh.png" alt="Diagram showing how SWE-ContextBench follows GitHub issue and pull request references to build 1,476 related tasks from 1,100 base tasks, 319 first-hop tasks, and 57 recursive tasks." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More History Is Not Necessarily Better
&lt;/h2&gt;

&lt;p&gt;We tested five ways of providing historical experience to an agent:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context setting&lt;/th&gt;
&lt;th&gt;Task resolution&lt;/th&gt;
&lt;th&gt;Average cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No historical context&lt;/td&gt;
&lt;td&gt;26.26%&lt;/td&gt;
&lt;td&gt;$0.79&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free retrieval over full trajectories&lt;/td&gt;
&lt;td&gt;26.26%&lt;/td&gt;
&lt;td&gt;$0.98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oracle full trajectories&lt;/td&gt;
&lt;td&gt;27.27%&lt;/td&gt;
&lt;td&gt;$0.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free retrieval over distilled summaries&lt;/td&gt;
&lt;td&gt;22.22%&lt;/td&gt;
&lt;td&gt;$0.91&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oracle experience summaries&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;34.34%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$0.85&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here, &lt;strong&gt;Oracle&lt;/strong&gt; means that the correct historical experience is supplied using known task relationships. It represents a potential upper bound—not the capability of a production retrieval system.&lt;/p&gt;

&lt;p&gt;Three findings stand out.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Raw history often adds noise
&lt;/h3&gt;

&lt;p&gt;Full trajectories contain file searches, temporary hypotheses, debugging output, abandoned changes, and failed attempts. Free retrieval over those trajectories left task resolution unchanged at 26.26%, while average cost rose from $0.79 to $0.98—an increase of roughly 24%.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Short summaries can still be harmful
&lt;/h3&gt;

&lt;p&gt;Free retrieval over distilled summaries reduced task resolution to 22.22%.&lt;/p&gt;

&lt;p&gt;Shorter does not mean more relevant. A concise but unrelated memory may appear confident and authoritative, pushing the agent in the wrong direction.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Relevance and quality must work together
&lt;/h3&gt;

&lt;p&gt;The strongest result came from supplying a distilled summary of the correct prior task: task resolution increased to 34.34%.&lt;/p&gt;

&lt;p&gt;The implication is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Coding-agent memory is not primarily a storage problem. It is a problem of extracting, selecting, and validating experience.&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5pb1tsiwowfsg7v1k9ev.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5pb1tsiwowfsg7v1k9ev.png" alt="Scatter plot comparing retrieval match rate and task resolution on SWE-ContextBench Lite. MemoraX reaches 78.79% retrieval match and 45.45% task resolution, ahead of the other evaluated systems." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory Systems Make Different Tradeoffs
&lt;/h2&gt;

&lt;p&gt;We also evaluated several memory systems on SWE-ContextBench Lite:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Memory system&lt;/th&gt;
&lt;th&gt;Task resolution&lt;/th&gt;
&lt;th&gt;Average runtime&lt;/th&gt;
&lt;th&gt;Average cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mem0&lt;/td&gt;
&lt;td&gt;24.24%&lt;/td&gt;
&lt;td&gt;4.72 min&lt;/td&gt;
&lt;td&gt;$0.62&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenViking&lt;/td&gt;
&lt;td&gt;29.20%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4.20 min&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$0.53&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supermemory&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;30.30%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5.04 min&lt;/td&gt;
&lt;td&gt;$0.58&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No system led in accuracy, runtime, and cost simultaneously. Under this configuration, Supermemory achieved the higher task-resolution rate, while OpenViking performed better on runtime and cost.&lt;/p&gt;

&lt;p&gt;These numbers should not be treated as a permanent product ranking. Models, prompts, embeddings, framework versions, retrieval depth, and integration choices can all change the outcome.&lt;/p&gt;

&lt;p&gt;The broader result matters more: &lt;strong&gt;retrieving relevant content does not guarantee that an agent will use it correctly.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Benchmark Cannot Prove Yet
&lt;/h2&gt;

&lt;p&gt;SWE-ContextBench is a starting point, not a final answer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The tasks come from public open-source repositories and cannot fully represent private enterprise codebases.&lt;/li&gt;
&lt;li&gt;GitHub references indicate relationships between tasks, but not every relationship guarantees transferable engineering experience.&lt;/li&gt;
&lt;li&gt;Oracle results depend on knowing the correct task relationship in advance; production retrieval systems do not have that advantage.&lt;/li&gt;
&lt;li&gt;Framework comparisons are sensitive to configuration, and the Lite evaluation contains only 99 related tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These limitations are also research questions. How should a memory system distinguish a useful dependency from a superficial reference? How should it handle stale, incomplete, or failed experience?&lt;/p&gt;

&lt;h2&gt;
  
  
  How This Shaped MemoraX Code
&lt;/h2&gt;

&lt;p&gt;The benchmark moved us away from the idea of preserving every interaction. MemoraX Code now follows two core principles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Retrieve distilled engineering experience within the correct repository scope.&lt;/strong&gt; This reduces irrelevant context and cross-project contamination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat memory as evidence, not authority.&lt;/strong&gt; Historical experience must still be checked against the current implementation, documentation, and tests.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In an additional post-paper evaluation on SWE-ContextBench Lite, MemoraX achieved a &lt;strong&gt;78.79% retrieval match rate&lt;/strong&gt; and a &lt;strong&gt;45.45% task-resolution rate&lt;/strong&gt; under the tested configuration.&lt;/p&gt;

&lt;p&gt;This result was not part of the paper's original experiments. We are reporting it separately as an additional evaluation, not as a paper result.&lt;/p&gt;

&lt;h2&gt;
  
  
  SWE-ContextBench Is Open Source
&lt;/h2&gt;

&lt;p&gt;The dataset, Lite version, and evaluation scripts are available on &lt;a href="https://github.com/jiayuanz3/SWEContextBench" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. For the benchmark methodology and full experimental details, read the paper: &lt;a href="https://arxiv.org/abs/2602.08316" rel="noopener noreferrer"&gt;SWE Context Bench: A Benchmark for Context Learning in Coding&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One question remains:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which failure is more dangerous—forgetting a useful lesson, or confidently applying an outdated memory from the wrong project?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We are currently more concerned about the second. But if retrieval becomes too conservative, an agent may miss genuinely useful experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where should a coding-memory system draw that boundary?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This article was originally published on &lt;a href="https://memorax-engineering.hashnode.dev/swe-contextbench-why-your-coding-agent-feels-like-a-new-hire-every-time" rel="noopener noreferrer"&gt;MemoraX Engineering&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
