<?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: Vatche Isahagian</title>
    <description>The latest articles on DEV Community by Vatche Isahagian (@vatchei).</description>
    <link>https://dev.to/vatchei</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129991%2F56123529-5100-4a84-8a07-f44c178f71f2.webp</url>
      <title>DEV Community: Vatche Isahagian</title>
      <link>https://dev.to/vatchei</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vatchei"/>
    <language>en</language>
    <item>
      <title>How Much Memory Does Your Agent Actually Need?</title>
      <dc:creator>Vatche Isahagian</dc:creator>
      <pubDate>Mon, 05 Oct 2026 18:21:37 +0000</pubDate>
      <link>https://dev.to/vatchei/how-much-memory-does-your-agent-actually-need-79c</link>
      <guid>https://dev.to/vatchei/how-much-memory-does-your-agent-actually-need-79c</guid>
      <description>&lt;p&gt;In our &lt;a href="https://dev.to/vatchei/thinking-of-ace-we-can-do-it-with-fewer-tokens-5hfi"&gt;previous post&lt;/a&gt;, we compared &lt;strong&gt;&lt;a href="https://agenttoolkit.github.io/altk-evolve/" rel="noopener noreferrer"&gt;ALTK-Evolve&lt;/a&gt;&lt;/strong&gt; with &lt;a href="https://arxiv.org/abs/2510.04618" rel="noopener noreferrer"&gt;ACE&lt;/a&gt; and showed that &lt;em&gt;how&lt;/em&gt; you deliver an agent's self-distilled guidelines — a few retrieved per task vs. the whole set injected — drives both accuracy and cost. This post steps back to the question that comes before it: &lt;em&gt;how much&lt;/em&gt; should you give it?&lt;/p&gt;

&lt;p&gt;Equipping an agent with agentic memory sounds simple: distill lessons from its past work, put them back in context, and more experience should mean better performance. It doesn't always work that way. When we scaled the evaluation to &lt;strong&gt;eight models&lt;/strong&gt; — from a 30B dense model to frontier proprietary systems — one finding stood out:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Agentic memory is not a feature you switch on. It's a dose you calibrate to the model.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ALTK-Evolve&lt;/strong&gt; lets an agent learn from its own past trajectories: distilling reusable guidelines and injecting them back at inference time, with no weight updates and no human annotation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The right dose differs by model tier:&lt;/strong&gt; strong models with headroom want the full guideline set, weaker models do best with a compact core plus per-task retrieval, and saturated models show no measurable gain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Curated retrieval can be both the most accurate and the cheapest option:&lt;/strong&gt; gpt-oss-120b gained +16.1pp task completion at only +5% tokens — and prompt caching keeps even the full guideline set affordable in production.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Key Insight: Dosage Depends on Capability
&lt;/h2&gt;

&lt;p&gt;Not every model benefits from the same amount of memory. Across eight models spanning the capability spectrum, we saw three recurring patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Strong models with headroom&lt;/strong&gt; want the full guideline set — every guideline, including rare edge-case lessons. They have the capacity to absorb and apply all of it. DeepSeek-V3.2 (671B MoE) climbed &lt;strong&gt;+9.5 percentage points&lt;/strong&gt; in task completion when given its full self-mined guideline set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smaller or weaker models get drowned by a large guideline set.&lt;/strong&gt; For these, a tight, high-confidence core plus a handful of task-relevant guidelines retrieved per task works best. gpt-oss-120b (117B MoE) gained &lt;strong&gt;+16.1pp&lt;/strong&gt; with this selective approach — while the full guideline set gained less &lt;em&gt;and&lt;/em&gt; cost ~50% more tokens.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Already-saturated models show no measurable gain.&lt;/strong&gt; We call this the saturated pattern — the label describes what we observed, not a proven cause. The model may already have been near its ceiling on these tasks, the guidelines may not have addressed its remaining failures, or it may not have applied the guidance effectively. GLM-5 (745B MoE) sat here in our runs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;What puts a model into one pattern rather than another isn't simply parameter count.&lt;/em&gt; Benchmark headroom, context-window size, architecture, guideline quality, and task distribution all appear to shape where a model lands, and separating those factors is ongoing work. The practical takeaway holds either way: &lt;strong&gt;the right dose of memory depends on the model, and we can calibrate it.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Learning happens around the model, not inside it
&lt;/h2&gt;

&lt;p&gt;"Memory" here doesn't mean replaying a past transcript. It means a &lt;strong&gt;guideline set&lt;/strong&gt; — strategies that worked, mistakes to avoid, and edge cases — distilled from the agent's own prior trajectories. The loop is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The agent attempts tasks and produces trajectories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ALTK-Evolve extracts behavioral guidelines from both its successful and unsuccessful runs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It consolidates those guidelines into a reusable set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At inference time, the agent receives either the full guideline set or a task-relevant selection of it.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No model weights are updated. The learning loop changes the &lt;em&gt;guidance available to the agent&lt;/em&gt;, not the underlying model — which is exactly why it's cheap to adopt and portable across the eight models we tested.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results Across the Spectrum
&lt;/h2&gt;

&lt;p&gt;We evaluated on &lt;strong&gt;AppWorld&lt;/strong&gt; — 585 multi-step tasks (168 &lt;code&gt;test_normal&lt;/code&gt; + 417 &lt;code&gt;test_challenge&lt;/code&gt;) across 9 simulated apps (calendars, messaging, payments, and so on). Tasks are scored two ways: whether the agent fully completes each task (&lt;strong&gt;TGC — Task Goal Completion&lt;/strong&gt;) and whether &lt;em&gt;every&lt;/em&gt; variant of a scenario passes (&lt;strong&gt;SGC — Scenario Goal Completion&lt;/strong&gt;, a stricter, all-or-nothing bar). Full definitions are in the appendix.&lt;/p&gt;

&lt;h3&gt;
  
  
  The three configurations we compare
&lt;/h3&gt;

&lt;p&gt;Because the confusing part of any memory study is &lt;em&gt;what's actually in the context window&lt;/em&gt;, we define the configurations up front.&lt;/p&gt;

&lt;p&gt;Both memory configurations draw from &lt;strong&gt;the same guideline set&lt;/strong&gt;, mined once (via the loop above) from AppWorld's &lt;strong&gt;training split&lt;/strong&gt; only. What changes between them is only &lt;em&gt;how that one set is delivered&lt;/em&gt; — the &lt;strong&gt;full guideline set&lt;/strong&gt; injects all of it every step, while &lt;strong&gt;curated retrieval&lt;/strong&gt; delivers a selected subset — never how the guidelines were produced, and no test-split data ever goes into building it.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Configuration&lt;/th&gt;
&lt;th&gt;What's in the agent's context&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;No memory — the agent as shipped.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Full guideline set&lt;/td&gt;
&lt;td&gt;Every mined guideline, injected on every ReAct step.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Curated retrieval&lt;/td&gt;
&lt;td&gt;A fixed, high-confidence core of those same guidelines plus a few task-relevant ones retrieved for each task (a fixed portion + a variable portion).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The number of guidelines a model mines depends on its own capability, so we report configurations by &lt;strong&gt;strategy&lt;/strong&gt; — "full guideline set" vs. "curated retrieval" — rather than by raw counts, which aren't comparable across models.&lt;/p&gt;

&lt;h3&gt;
  
  
  The three patterns, in one view
&lt;/h3&gt;

&lt;p&gt;Representative models from the eight-model sweep, measured by task completion (TGC) on &lt;code&gt;test_normal&lt;/code&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp7biupe5unscl32ovv05.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%2Fp7biupe5unscl32ovv05.png" alt="image" width="799" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 1. Representative models in the three observed patterns. Bars show TGC on AppWorld &lt;code&gt;test_normal&lt;/code&gt; for baseline vs. the best-memory configuration; the x-axis begins at 40% to make differences visible. TGC alone understates the larger SGC gains — see the SGC columns in the table below.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The figure plots TGC to keep it readable; the table adds the stricter &lt;strong&gt;SGC&lt;/strong&gt; metric, where the gains are often larger:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Pattern&lt;/th&gt;
&lt;th&gt;Baseline TGC / SGC&lt;/th&gt;
&lt;th&gt;Best-memory TGC / SGC&lt;/th&gt;
&lt;th&gt;Best config&lt;/th&gt;
&lt;th&gt;Δ TGC&lt;/th&gt;
&lt;th&gt;Δ SGC&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;gpt-oss-120b (117B MoE)&lt;/td&gt;
&lt;td&gt;Weak / selective&lt;/td&gt;
&lt;td&gt;39.9 / 21.4&lt;/td&gt;
&lt;td&gt;56.0 / 37.5&lt;/td&gt;
&lt;td&gt;curated retrieval&lt;/td&gt;
&lt;td&gt;+16.1&lt;/td&gt;
&lt;td&gt;+16.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-V3.2 (671B MoE)&lt;/td&gt;
&lt;td&gt;Strong w/ headroom&lt;/td&gt;
&lt;td&gt;79.8 / 64.3&lt;/td&gt;
&lt;td&gt;89.3 / 80.4&lt;/td&gt;
&lt;td&gt;full guideline set&lt;/td&gt;
&lt;td&gt;+9.5&lt;/td&gt;
&lt;td&gt;+16.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 4.6&lt;/td&gt;
&lt;td&gt;Strong w/ headroom&lt;/td&gt;
&lt;td&gt;90.5 / 87.5&lt;/td&gt;
&lt;td&gt;94.6 / 94.6&lt;/td&gt;
&lt;td&gt;full guideline set&lt;/td&gt;
&lt;td&gt;+4.1&lt;/td&gt;
&lt;td&gt;+7.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;Strong (near-ceiling)&lt;/td&gt;
&lt;td&gt;92.3 / 82.1&lt;/td&gt;
&lt;td&gt;95.2 / 89.3&lt;/td&gt;
&lt;td&gt;full guideline set&lt;/td&gt;
&lt;td&gt;+2.9&lt;/td&gt;
&lt;td&gt;+7.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GLM-5 (745B MoE)&lt;/td&gt;
&lt;td&gt;Saturated&lt;/td&gt;
&lt;td&gt;87.5 / 80.4&lt;/td&gt;
&lt;td&gt;87.5 / 80.4&lt;/td&gt;
&lt;td&gt;full guideline set&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Reading the SGC column, the stricter metric usually moves more than TGC — DeepSeek's SGC jumps &lt;strong&gt;+16.1pp&lt;/strong&gt; against a &lt;strong&gt;+9.5pp&lt;/strong&gt; TGC gain — because good guidelines especially help an agent clear &lt;em&gt;every&lt;/em&gt; variant of a scenario, not just the average case. And the effect doesn't disappear at the top of the range: GPT-5.5 and Opus, both near the ceiling on TGC, still gain &lt;strong&gt;+7.2&lt;/strong&gt; and &lt;strong&gt;+7.1pp SGC&lt;/strong&gt; respectively. Memory keeps paying off as long as a model has a remaining failure mode to target.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Cheapest Memory Strategy Can Also Be the Best
&lt;/h2&gt;

&lt;p&gt;A practical concern: injecting a full guideline set inflates every ReAct step's input, because the guidelines are re-sent each turn. Here's what we observed:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Config&lt;/th&gt;
&lt;th&gt;Tokens/task (baseline)&lt;/th&gt;
&lt;th&gt;Tokens/task (+ memory)&lt;/th&gt;
&lt;th&gt;Overhead&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-V3.2&lt;/td&gt;
&lt;td&gt;full guideline set&lt;/td&gt;
&lt;td&gt;148K&lt;/td&gt;
&lt;td&gt;263K&lt;/td&gt;
&lt;td&gt;+78%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-oss-120b&lt;/td&gt;
&lt;td&gt;full guideline set&lt;/td&gt;
&lt;td&gt;110K&lt;/td&gt;
&lt;td&gt;166K&lt;/td&gt;
&lt;td&gt;+51%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-oss-120b&lt;/td&gt;
&lt;td&gt;curated retrieval&lt;/td&gt;
&lt;td&gt;110K&lt;/td&gt;
&lt;td&gt;116K&lt;/td&gt;
&lt;td&gt;+5%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 1. Average token use per task, accumulated across agent steps, measured against the no-memory baseline.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two takeaways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Curated retrieval keeps cost near baseline.&lt;/strong&gt; For weaker models, where selection wins on accuracy, it also wins on cost — the best of both worlds (&lt;strong&gt;+16.1pp TGC at only +5% tokens&lt;/strong&gt; for gpt-oss-120b). Better performance here does &lt;strong&gt;not&lt;/strong&gt; require more inference cost.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory doesn't blow up the reasoning loop.&lt;/strong&gt; DeepSeek runs about the same number of ReAct steps with memory as without (≈18–19 on average), so the added cost is input-token inflation, not longer trajectories.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The real efficiency lever in production is &lt;strong&gt;prompt caching&lt;/strong&gt;: the static portion of the guideline set is identical across steps and can be cached, cutting effective cost substantially. Cache-aware prompt design — keeping the shared guideline-set prefix stable so it stays cacheable — is worth engineering for. We also hypothesize that &lt;strong&gt;context-window size&lt;/strong&gt; plays a role: models with larger windows may absorb the full guideline set more effectively, while smaller-context models benefit more from retrieval that keeps injected content compact. We have not yet run controlled experiments isolating this factor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Memory Should Be Calibrated, Not Merely Accumulated
&lt;/h2&gt;

&lt;p&gt;The lesson isn't to give an agent everything it has learned. It's to give it the amount of experience it can actually use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For &lt;strong&gt;weak models&lt;/strong&gt;, that means a compact core plus a few task-specific lessons — which, conveniently, is also the cheapest option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For &lt;strong&gt;strong models with headroom&lt;/strong&gt;, it means preserving the full guideline set, kept affordable in production via prompt caching.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For &lt;strong&gt;saturated models&lt;/strong&gt;, it means spending no extra context until their remaining failure modes are better understood.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The gains are real across the board — automatic, leakage-free, and requiring no human annotation — but only when the dose fits the model.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;This is a starting point, not the finish line:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A learned selector.&lt;/strong&gt; Our current retrieval ranks guidelines by cosine similarity, which we've shown doesn't perfectly predict which guidelines help a given task. A selector trained on outcome signal is the natural next step.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory for very weak models.&lt;/strong&gt; Below a minimum capability baseline, self-distillation lacks signal. Teacher-distilled memory for very weak models is a separate problem we're exploring.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Beyond AppWorld.&lt;/strong&gt; These results are validated on AppWorld — a rigorous multi-step benchmark, but a single one. Broader agent benchmarks and real-world deployments are in progress.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Isolating context window.&lt;/strong&gt; As above, we want controlled experiments that separate context-window size from raw capability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try the &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;ALTK-Evolve&lt;/a&gt; library&lt;/strong&gt; — which includes the extraction, consolidation, and retrieval pipeline used here — &lt;strong&gt;or read the &lt;a href="https://arxiv.org/abs/2603.10600" rel="noopener noreferrer"&gt;full technical report&lt;/a&gt;&lt;/strong&gt; for the complete method and ablations.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Appendix: Understanding the Metrics
&lt;/h2&gt;

&lt;p&gt;AppWorld tasks are graded by two metrics, both reported as percentages (higher is better):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TGC — Task Goal Completion.&lt;/strong&gt; The share of individual tasks the agent completes fully and correctly. This is the headline &lt;em&gt;"did it get the job done"&lt;/em&gt; number.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SGC — Scenario Goal Completion.&lt;/strong&gt; A stricter, all-or-nothing metric. Each &lt;em&gt;scenario&lt;/em&gt; bundles several variants of the same task (the same request with different data, phrasing, or edge conditions). SGC counts a scenario as passing only if the agent succeeds on &lt;strong&gt;every&lt;/strong&gt; variant. It measures &lt;strong&gt;reliability&lt;/strong&gt; — an agent that solves a task most of the time but fails on one variant scores on TGC but not on SGC.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Thinking of Stanford’s Agentic Context Engineering? We Can Do It with Fewer Tokens</title>
      <dc:creator>Vatche Isahagian</dc:creator>
      <pubDate>Thu, 24 Sep 2026 15:08:31 +0000</pubDate>
      <link>https://dev.to/vatchei/thinking-of-ace-we-can-do-it-with-fewer-tokens-5hfi</link>
      <guid>https://dev.to/vatchei/thinking-of-ace-we-can-do-it-with-fewer-tokens-5hfi</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ACE and ALTK-Evolve both turn agent trajectories into reusable lessons without updating model weights.&lt;/li&gt;
&lt;li&gt;The key difference is delivery: ACE supplies the full playbook, while ALTK-Evolve calibrates how many guidelines each model receives.&lt;/li&gt;
&lt;li&gt;In our controlled AppWorld runs, ALTK-Evolve matched or exceeded ACE while using about 40% of the tokens on DeepSeek-V3.2 and one-seventh on gpt-oss-120b.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Give an LLM agent a realistic multi-step task — split a bill, find a song, reconcile an order across nine simulated apps — and when it fails, it usually isn't for lack of knowledge. It mis-paginates an API, resolves the wrong person, or returns a value when none was asked for. The model knows the APIs; what it hasn't internalized is &lt;em&gt;how to use them reliably&lt;/em&gt;. That's learnable from the agent's own history.&lt;/p&gt;

&lt;p&gt;Two recent systems do exactly this, on the same kind of agent: &lt;a href="https://arxiv.org/abs/2510.04618" rel="noopener noreferrer"&gt;&lt;strong&gt;ACE&lt;/strong&gt;&lt;/a&gt; (Agentic Context Engineering) and our &lt;strong&gt;ALTK-Evolve&lt;/strong&gt; (&lt;a href="https://huggingface.co/blog/ibm-research/altk-evolve" rel="noopener noreferrer"&gt;introduced here&lt;/a&gt;). Both are a form of &lt;strong&gt;agentic memory&lt;/strong&gt; — turning an agent's past trajectories into reusable &lt;strong&gt;lessons&lt;/strong&gt; and feeding them back at inference time, no weight updates, no human labels. They even agree on the hard part. Where they part ways is &lt;em&gt;delivery&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A note on words, because the two systems name things differently: we'll call the raw thing an agent learns a &lt;strong&gt;lesson&lt;/strong&gt;. ACE organizes its lessons into one comprehensive, evolving &lt;strong&gt;playbook&lt;/strong&gt;; we consolidate ours into individually retrievable &lt;strong&gt;guidelines&lt;/strong&gt;. Same lessons, two containers.&lt;/p&gt;




&lt;h2&gt;
  
  
  What we agree on
&lt;/h2&gt;

&lt;p&gt;Both systems refuse to compress.&lt;/p&gt;

&lt;p&gt;ACE names the failure modes precisely: &lt;strong&gt;brevity bias&lt;/strong&gt; — optimization collapsing toward short, generic instructions — and &lt;strong&gt;context collapse&lt;/strong&gt; — a model asked to rewrite its whole context each step summarizing the detail away. Its answer is to keep a rich, itemized playbook, with a helpful/harmful counter on every bullet, and let the model distill relevance at read time.&lt;/p&gt;

&lt;p&gt;We reach the same conclusion from the other direction. Every distinct guideline keeps a &lt;strong&gt;support count&lt;/strong&gt; — how many independent episodes produced it — and we never summarize the store down to a handful of rules. A lesson five different tasks discovered is a different object from one that appeared once, and both are worth keeping.&lt;/p&gt;

&lt;p&gt;So on the core question — &lt;em&gt;should you compress an agent's hard-won lessons into a tidy summary?&lt;/em&gt; — ACE and ALTK-Evolve give the same answer: &lt;strong&gt;no. Count them, don't collapse them.&lt;/strong&gt; ACE's per-bullet counters and our support counts are two spellings of the same idea.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where we differ
&lt;/h2&gt;

&lt;p&gt;Two places: how the memory is &lt;strong&gt;built&lt;/strong&gt;, and how it's &lt;strong&gt;delivered&lt;/strong&gt; — and it's the delivery difference that shows up in the token bill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consolidation (how the store is built).&lt;/strong&gt; ACE grows one playbook through a &lt;strong&gt;Generator → Reflector → Curator&lt;/strong&gt; loop, applying incremental delta updates and de-duplicating by embedding. We cluster near-duplicate lessons and merge &lt;em&gt;within&lt;/em&gt; a cluster, &lt;strong&gt;support-conserving&lt;/strong&gt; — when several lessons merge, the survivor inherits their combined count, so the store shrinks without losing the record of how much experience backs each guideline. We also extract &lt;em&gt;typed&lt;/em&gt; guidelines — strategy, recovery, and optimization — with causal attribution and provenance back to the source trajectory, and at subtask granularity, so a lesson learned on one app can transfer to another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delivery (what reaches the model at inference).&lt;/strong&gt; This is the one that drives the numbers. ACE injects the &lt;strong&gt;comprehensive playbook&lt;/strong&gt; on every step, the same way regardless of model or task. We treat delivery as a dial, not a constant: a small fixed core of high-support guidelines, extended per task with a handful selected for the task at hand (cosine or LLM-guided, priority-weighted) — or, when a model has the headroom to use it, the full consolidated set. The same lessons are &lt;em&gt;available&lt;/em&gt; to both agents; the difference is that ACE always sends all of them, and we send however many a given model can actually use.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;On AppWorld, with the &lt;em&gt;same&lt;/em&gt; base ReAct agent, running both systems in-house:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;TGC / SGC&lt;/th&gt;
&lt;th&gt;Tokens/task&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DeepSeek-V3.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ACE&lt;/td&gt;
&lt;td&gt;80.4 / 73.2&lt;/td&gt;
&lt;td&gt;634K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ALTK-Evolve&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;89.3 / 80.4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;263K&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;gpt-oss-120b&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ACE&lt;/td&gt;
&lt;td&gt;54.8 / 35.7&lt;/td&gt;
&lt;td&gt;777K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ALTK-Evolve&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;56.0 / 37.5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;116K&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On the strong model we're better on both metrics at &lt;strong&gt;~40% of ACE's inference cost&lt;/strong&gt;. On the weak model we edge ACE 56.0 to 54.8 — close enough that we call it a &lt;strong&gt;tie on accuracy&lt;/strong&gt; (a repeat run of ours landed at 54.8, matching ACE almost exactly, which is within this benchmark's run-to-run noise) — at &lt;strong&gt;about one-seventh&lt;/strong&gt; the cost.&lt;/p&gt;

&lt;p&gt;A fair word on cost: ACE's own efficiency story is about &lt;em&gt;building&lt;/em&gt; its context cheaply. Ours is on a different axis — &lt;em&gt;serving&lt;/em&gt; it. Retrieving a few guidelines per task instead of injecting the whole playbook on every step is where the tokens go, and it's the direct consequence of the delivery difference above.&lt;/p&gt;

&lt;p&gt;Where does the accuracy come from? The by-difficulty breakdown tells two different stories:&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%2Fuzfd5t32uv1byjm1qu6h.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%2Fuzfd5t32uv1byjm1qu6h.png" alt="image" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 1. Post-memory Task Goal Completion by difficulty, ours vs. ACE. On DeepSeek-V3.2 (right) we win Easy, Hard, and Overall; ACE only edges Medium. On gpt-oss-120b (left) ACE leads easy and medium, but per-task selection wins the hard tasks — and the aggregate. Each system improves from its own no-memory baseline (see the by-difficulty reference tables under Method notes below).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The two models tell different stories. On gpt-oss-120b, ACE's full playbook has the edge on Easy and Medium — there's enough of the task solved by generic instruction-following that a comprehensive prompt helps more than it distracts. But on Hard tasks, where the model has to pick the &lt;em&gt;right&lt;/em&gt; lesson rather than wade through all of them, curated retrieval pulls ahead — and that's the tier that decides the aggregate. On DeepSeek-V3.2 the story flips: the stronger model absorbs ACE's full playbook well enough to edge us on Medium, but we lead Easy, Hard, and Overall — with more capacity to spare, more lessons (delivered our way) keep helping instead of crowding each other out.&lt;/p&gt;

&lt;p&gt;We give each model its &lt;strong&gt;best configuration&lt;/strong&gt; — the full consolidated set for the strong model, selective retrieval for the weaker one, because a large context overwhelms a weaker model rather than helping it. (Exactly &lt;em&gt;how much&lt;/em&gt; to inject, and how it scales across the capability spectrum, is the focus of our &lt;a href="https://huggingface.co/blog/ibm-research/altk-evolve-hmm/" rel="noopener noreferrer"&gt;&lt;strong&gt;follow-up post&lt;/strong&gt;&lt;/a&gt;.)&lt;/p&gt;




&lt;h2&gt;
  
  
  Same lessons, different delivery
&lt;/h2&gt;

&lt;p&gt;Both systems refuse to compress an agent's hard-won experience into a tidy summary — that part, we agree on. The difference is whether delivery is fixed or calibrated: ACE sends the whole playbook every step no matter what; we send however much of the guideline set a given model can actually use. That calibration is what bought the numbers above — same-or-better accuracy at a fraction of ACE's inference cost — and on the weaker model, it was the difference between guidance that helped and guidance that got in the way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try the &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;ALTK-Evolve&lt;/a&gt; library&lt;/strong&gt; — which includes the extraction, consolidation, and retrieval pipeline used here — &lt;strong&gt;or read the &lt;a href="https://arxiv.org/abs/2603.10600" rel="noopener noreferrer"&gt;full technical report&lt;/a&gt;&lt;/strong&gt; for the complete method and ablations.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Linked artifacts / references
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Earlier post:&lt;/strong&gt; ALTK-Evolve introduction — &lt;a href="https://huggingface.co/blog/ibm-research/altk-evolve" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ACE&lt;/strong&gt; (Agentic Context Engineering) — &lt;a href="https://arxiv.org/abs/2510.04618" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AppWorld&lt;/strong&gt; benchmark — &lt;a href="https://appworld.dev/appworld" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ALTK-Evolve&lt;/strong&gt; — &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full technical report&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/2603.10600" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Method notes
&lt;/h2&gt;

&lt;p&gt;AppWorld &lt;code&gt;test_normal&lt;/code&gt;, 168 tasks. A ReAct code agent (each step writes Python; the environment returns the output). &lt;strong&gt;TGC&lt;/strong&gt; = Task Goal Completion; &lt;strong&gt;SGC&lt;/strong&gt; = Scenario Goal Completion, which requires &lt;em&gt;every&lt;/em&gt; variant of a scenario to pass. Memory is mined from &lt;strong&gt;train/dev only&lt;/strong&gt;; results are single runs (pass@1), as is standard on this benchmark.&lt;/p&gt;

&lt;p&gt;The ACE numbers are our own runs of the ACE agent, evaluated in-house on the same AppWorld splits and the same base models as ALTK-Evolve (DeepSeek-V3.2 and gpt-oss-120b). The ACE paper reports on a different base model (DeepSeek-V3.1), so running it ourselves keeps the comparison controlled for model and harness. Both systems are the &lt;em&gt;same&lt;/em&gt; ReAct agent and differ only in the prompt template — which is why the two no-memory baselines differ (72.0 vs 79.8 TGC); we don't rest the comparison on that baseline gap, only on the claims a prompt tweak can't touch: same-or-better accuracy at a fraction of the tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reference tables
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;DeepSeek-V3.2 — &lt;code&gt;test_normal&lt;/code&gt; (168 tasks):&lt;/strong&gt;&lt;/p&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;Guidelines&lt;/th&gt;
&lt;th&gt;TGC&lt;/th&gt;
&lt;th&gt;SGC&lt;/th&gt;
&lt;th&gt;Tokens/task&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ReAct, no memory&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;79.8&lt;/td&gt;
&lt;td&gt;64.3&lt;/td&gt;
&lt;td&gt;148K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReAct + ACE&lt;/td&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;80.4&lt;/td&gt;
&lt;td&gt;73.2&lt;/td&gt;
&lt;td&gt;634K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReAct + ALTK-Evolve&lt;/td&gt;
&lt;td&gt;191&lt;/td&gt;
&lt;td&gt;89.3&lt;/td&gt;
&lt;td&gt;80.4&lt;/td&gt;
&lt;td&gt;263K&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;gpt-oss-120b — &lt;code&gt;test_normal&lt;/code&gt;:&lt;/strong&gt;&lt;/p&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;Guidelines&lt;/th&gt;
&lt;th&gt;TGC&lt;/th&gt;
&lt;th&gt;SGC&lt;/th&gt;
&lt;th&gt;Tokens/task&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ReAct, no memory&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;39.9&lt;/td&gt;
&lt;td&gt;21.4&lt;/td&gt;
&lt;td&gt;110K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReAct + ACE&lt;/td&gt;
&lt;td&gt;full&lt;/td&gt;
&lt;td&gt;54.8&lt;/td&gt;
&lt;td&gt;35.7&lt;/td&gt;
&lt;td&gt;777K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReAct + ALTK-Evolve (selected)&lt;/td&gt;
&lt;td&gt;~29&lt;/td&gt;
&lt;td&gt;56.0&lt;/td&gt;
&lt;td&gt;37.5&lt;/td&gt;
&lt;td&gt;116K&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;gpt-oss-120b — by difficulty (TGC):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;th&gt;Baseline&lt;/th&gt;
&lt;th&gt;ACE&lt;/th&gt;
&lt;th&gt;ALTK-Evolve&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;66.7&lt;/td&gt;
&lt;td&gt;84.2&lt;/td&gt;
&lt;td&gt;82.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;35.4&lt;/td&gt;
&lt;td&gt;60.4&lt;/td&gt;
&lt;td&gt;56.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;23.8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;31.8&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aggregate&lt;/td&gt;
&lt;td&gt;39.9&lt;/td&gt;
&lt;td&gt;54.8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;56.0&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;DeepSeek-V3.2 — by difficulty (baseline → +memory):&lt;/strong&gt; the two systems start from different no-memory baselines (79.8 vs 72.0 TGC overall) because of the prompt-template difference above.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;ALTK TGC&lt;/th&gt;
&lt;th&gt;ALTK SGC&lt;/th&gt;
&lt;th&gt;ACE TGC&lt;/th&gt;
&lt;th&gt;ACE SGC&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Overall&lt;/td&gt;
&lt;td&gt;79.8 → 89.3&lt;/td&gt;
&lt;td&gt;64.3 → 80.4&lt;/td&gt;
&lt;td&gt;72.0 → 80.4&lt;/td&gt;
&lt;td&gt;57.1 → 73.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;93.0 → 94.7&lt;/td&gt;
&lt;td&gt;84.2 → 84.2&lt;/td&gt;
&lt;td&gt;78.9 → 84.2&lt;/td&gt;
&lt;td&gt;63.2 → 78.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;81.2 → 97.9&lt;/td&gt;
&lt;td&gt;62.5 → 93.8&lt;/td&gt;
&lt;td&gt;85.4 → 100.0&lt;/td&gt;
&lt;td&gt;75.0 → 100.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;td&gt;66.7 → 77.8&lt;/td&gt;
&lt;td&gt;47.6 → 66.7&lt;/td&gt;
&lt;td&gt;55.6 → 61.9&lt;/td&gt;
&lt;td&gt;38.1 → 47.6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
    <item>
      <title>ALTK-Evolve: On-the-Job Learning for AI Agents</title>
      <dc:creator>Vatche Isahagian</dc:creator>
      <pubDate>Thu, 17 Sep 2026 14:01:41 +0000</pubDate>
      <link>https://dev.to/vatchei/altk-evolve-on-the-job-learning-for-ai-agents-42ic</link>
      <guid>https://dev.to/vatchei/altk-evolve-on-the-job-learning-for-ai-agents-42ic</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Most AI agents re‑read transcripts instead of learning principles, so they repeat mistakes and don’t transfer lessons to new situations.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ALTK‑Evolve&lt;/strong&gt; turns raw agent trajectories into reusable guidelines.
&lt;/li&gt;
&lt;li&gt;In benchmarks, the approach boosted reliability, especially on hard (Δ 14.2% on AppWorld), multi‑step tasks, without bloating context.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The “eternal intern” problem
&lt;/h2&gt;

&lt;p&gt;Imagine a brilliant line cook who has memorized every cookbook but forgets your kitchen every morning. They don’t remember your oven runs hot, or that regulars like extra salt; they’ll follow a recipe card yet freeze when you’re out of lemons. That’s most AI agents: excellent at following prompts, poor at &lt;strong&gt;accumulating wisdom&lt;/strong&gt; about your environment. Feeding yesterday’s logs back into the prompt just makes them &lt;strong&gt;re‑read&lt;/strong&gt; history; it doesn’t help them &lt;strong&gt;generalize&lt;/strong&gt; from it.&lt;/p&gt;

&lt;p&gt;A junior needs different recipes for “vinaigrette” and “duck à l’orange.” A chef learns “acid balances fat” and applies it everywhere. Likewise, reliable agents should distill principles from experience and apply them to new tasks, not just near duplicates of old ones. This &lt;strong&gt;long‑term memory subsystem&lt;/strong&gt; does exactly that: it converts interaction traces into candidate guidelines, filters for quality, and injects only relevant guidance at the moment of action. Agents need principles, not transcripts. &lt;/p&gt;

&lt;p&gt;A recent &lt;a href="https://www.forbes.com/sites/jasonsnyder/2025/08/26/mit-finds-95-of-genai-pilots-fail-because-companies-avoid-friction/" rel="noopener noreferrer"&gt;MIT study&lt;/a&gt; found that 95% of pilots fail because agents don't adapt and learn on the job. ALTK-Evolve addresses this learning gap using long term episodic memory to help agents reason better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution: long term memory with ALTK-Evolve
&lt;/h2&gt;

&lt;p&gt;Evolve is a memory system for AI agents, that can help agents improve over time, learning from and using guidelines generated from previous executions.&lt;/p&gt;

&lt;p&gt;Operationally, the system runs as a continuous loop:  &lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;Downward flow (observation &amp;amp; extraction):&lt;/strong&gt; Capture full agent trajectories (user utterances, thoughts, tool calls, results) in an Interaction Layer (e.g., Langfuse or another OpenTelemetry‑based observability tool). Pluggable extractors mine traces for structural patterns and persist them as candidate entities.&lt;br&gt;&lt;br&gt;
2) &lt;strong&gt;Upward flow (refinement &amp;amp; retrieval):&lt;/strong&gt; A background consolidate‑and‑score job merges duplicates, prunes weak rules, and boosts proven strategies, evolving a high‑quality library of entities such as guidelines, policies, and SOPs. Retrieval pulls only the relevant items via the Interaction Layer and injects them back into context at the Application Layer.&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%2Frowczv20hz5qhbrqg2zy.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%2Frowczv20hz5qhbrqg2zy.png" alt="architecture (1)" width="544" height="715"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This approach works for a few key reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Teaches judgment:&lt;/strong&gt; Converts one‑off events into portable strategies that transfer across tasks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controls noise:&lt;/strong&gt; Scoring keeps memory lean and useful, not a growing junk drawer.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progressive Disclosure:&lt;/strong&gt; Retrieval is just‑in‑time, not stuffing everything into the context.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Results: better reliability, especially on hard tasks
&lt;/h2&gt;

&lt;p&gt;We evaluated the framework on &lt;a href="https://appworld.dev" rel="noopener noreferrer"&gt;AppWorld&lt;/a&gt;, where agents complete realistic multi‑step tasks via APIs, averaging 9.5 APIs across 1.8 apps, with hard cases requiring more complex control flow. A ReAct agent received the task instruction plus the top 5 retrieved guidelines generated on a prior run (train/dev) and tested on an unseen partition (test-normal). We report Scenario Goal Completion (SGC), a strict consistency metric requiring success across variants.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;th&gt;Baseline SGC&lt;/th&gt;
&lt;th&gt;+ Memory&lt;/th&gt;
&lt;th&gt;Δ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;79.0%&lt;/td&gt;
&lt;td&gt;84.2%&lt;/td&gt;
&lt;td&gt;+5.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;56.2%&lt;/td&gt;
&lt;td&gt;62.5%&lt;/td&gt;
&lt;td&gt;+6.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;19.1%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;33.3%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+14.2&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Aggregate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;50.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;58.9%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+8.9&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here are some key conclusions from the evaluations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generalization:&lt;/strong&gt; The agent improves on the unseen Test‑Normal tasks, evidence that it’s learning principles, not memorizing recipes.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complexity scaling:&lt;/strong&gt; The harder the task, the more the agent benefits from concise learned guidelines, with the largest lift on the more difficult tasks. The Hard tasks saw a 74% relative increase in success, where guidelines are useful to navigate the intricate control flows.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency:&lt;/strong&gt; SGC gains exceeded raw pass‑rate improvements, reducing “flaky” behavior across scenario variants. The guidelines don’t just help the agent solve tasks, they help them solve them reliably across variants.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Find more details about the experiments in the paper at &lt;a href="https://arxiv.org/abs/2603.10600" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2603.10600&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting started (choose your path)
&lt;/h2&gt;

&lt;p&gt;You have a choice in how to integrate &lt;strong&gt;ALTK‑Evolve&lt;/strong&gt; into your agent.&lt;/p&gt;
&lt;h3&gt;
  
  
  No‑code with Claude Code, Codex, and IBM Bob  (Lite mode)
&lt;/h3&gt;

&lt;p&gt;Install the plugin into Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin marketplace add AgentToolkit/altk-evolve
claude plugin &lt;span class="nb"&gt;install &lt;/span&gt;evolve-lite@evolve-marketplace

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it! The plugin extracts entities from trajectories and stores them as files on your filesystem. It uses Claude Code’s hooks for automatic retrieval.&lt;/p&gt;

&lt;p&gt;Prefer to watch instead of read? See the short &lt;strong&gt;Evolve-Lite Claude Code walkthrough&lt;/strong&gt; (video): &lt;a href="https://youtu.be/XIlYA79pYp4" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the walkthroughs &lt;a href="https://github.com/AgentToolkit/altk-evolve/blob/main/docs/integrations/claude/evolve-lite.md" rel="noopener noreferrer"&gt;here&lt;/a&gt; for examples of how to learn with Claude Code in Lite mode.&lt;/p&gt;

&lt;p&gt;Lite mode is easy to test‑drive but has limitations. For example, it doesn’t glean insights from across agent sessions or perform consolidation and garbage collection of entities. The low‑code and pro‑code versions below address these limitations.&lt;/p&gt;

&lt;p&gt;There are also one-step integrations with &lt;a href="https://agenttoolkit.github.io/altk-evolve/examples/hello_world/codex/" rel="noopener noreferrer"&gt;Codex&lt;/a&gt; and  &lt;a href="https://agenttoolkit.github.io/altk-evolve/examples/hello_world/bob/" rel="noopener noreferrer"&gt;IBM Bob&lt;/a&gt;. Try them out!&lt;/p&gt;

&lt;h3&gt;
  
  
  Low‑code with a ReAct agent
&lt;/h3&gt;

&lt;p&gt;Add a single &lt;code&gt;altk_evolve.auto&lt;/code&gt; import and flip a flag to emit traces to an Arize Phoenix UI. Then sync traces to generate improvement guidelines without changing your current stack. It works with popular LLM clients and agent frameworks (e.g., OpenAI, LiteLLM, and Hugging Face agents), so you keep your current stack and simply gain visibility.&lt;/p&gt;

&lt;p&gt;To see just how easily this fits into existing projects, explore our &lt;a href="https://github.com/AgentToolkit/altk-evolve/tree/main/examples/low_code" rel="noopener noreferrer"&gt;hands‑on examples&lt;/a&gt; showcasing different framework integrations. For full details on configuration and capabilities, read our &lt;a href="https://github.com/AgentToolkit/altk-evolve/blob/main/docs/guides/low-code-tracing.md" rel="noopener noreferrer"&gt;low‑code tracing documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pro‑code with CUGA
&lt;/h3&gt;

&lt;p&gt;We integrated ALTK‑Evolve directly into &lt;a href="https://github.com/cuga-project/cuga-agent" rel="noopener noreferrer"&gt;CUGA&lt;/a&gt; via MCP to create a tight, low‑overhead learning loop. Before each run, the &lt;a href="https://github.com/cuga-project/cuga-agent/blob/kaizen-lite-mode/src/cuga/backend/cuga_graph/nodes/cuga_lite/cuga_lite_graph.py#L738-L755" rel="noopener noreferrer"&gt;&lt;code&gt;get_guidelines&lt;/code&gt;&lt;/a&gt; MCP tool is called to surface task‑specific steering and reduce trial‑and‑error. After the run, CUGA sends back structured execution traces via &lt;a href="https://github.com/cuga-project/cuga-agent/blob/9773d66aba33895d42e335af780dbd3ff202fec9/src/cuga/backend/cuga_graph/nodes/cuga_lite/cuga_lite_node.py#L393-L408" rel="noopener noreferrer"&gt;&lt;code&gt;save_trajectory&lt;/code&gt;&lt;/a&gt;, so Evolve can learn from what actually happened and improve future guidance. The result is an integration that gets better over time while staying transparent, composable, and easy to adopt.&lt;/p&gt;

&lt;p&gt;Prefer a visual tour? Watch the &lt;strong&gt;CUGA integration walkthrough&lt;/strong&gt;: &lt;a href="https://youtu.be/CMG7ysVt2_8" rel="noopener noreferrer"&gt;video&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it &amp;amp; tell us what your agent learned
&lt;/h2&gt;

&lt;p&gt;Your agent shouldn’t wake up as an intern every morning. This approach helps it learn on the job. &lt;br&gt;
If you're using Claude Code, Codex, and IBM Bob, try it out in minutes and see how it improves your agent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Star the repo, it helps others discover the project and directly guides what we build next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code:&lt;/strong&gt; &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;https://github.com/AgentToolkit/altk-evolve&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://agenttoolkit.github.io/altk-evolve" rel="noopener noreferrer"&gt;https://agenttoolkit.github.io/altk-evolve&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick start tutorials:&lt;/strong&gt; &lt;a href="https://agenttoolkit.github.io/altk-evolve/tutorials/" rel="noopener noreferrer"&gt;https://agenttoolkit.github.io/altk-evolve/tutorials/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback &amp;amp; ideas:&lt;/strong&gt; Open a GitHub &lt;a href="https://github.com/AgentToolkit/altk-evolve/issues" rel="noopener noreferrer"&gt;issue&lt;/a&gt; or join the &lt;a href="https://github.com/AgentToolkit/altk-evolve/discussions" rel="noopener noreferrer"&gt;discussions&lt;/a&gt; — concrete use cases, benchmarks, and integration requests are especially helpful. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Watch the demos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code walkthrough (video):&lt;/strong&gt; &lt;a href="https://youtu.be/XIlYA79pYp4" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI Codex walkthrough (video):&lt;/strong&gt; &lt;a href="https://youtu.be/IBc59bLjdi8" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IBM Bob demo walkthrough (video):&lt;/strong&gt; &lt;a href="https://youtu.be/YlTJoSJ4eDg" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CUGA integration walkthrough&lt;/strong&gt;: &lt;a href="https://youtu.be/CMG7ysVt2_8" rel="noopener noreferrer"&gt;video&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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