<?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>Your Agent Aced the Task. Will It Do It Again?</title>
      <dc:creator>Vatche Isahagian</dc:creator>
      <pubDate>Wed, 21 Oct 2026 16:34:48 +0000</pubDate>
      <link>https://dev.to/vatchei/your-agent-aced-the-task-will-it-do-it-again-4bg0</link>
      <guid>https://dev.to/vatchei/your-agent-aced-the-task-will-it-do-it-again-4bg0</guid>
      <description>&lt;p&gt;Your agent works in rehearsal, but during the live demo, it takes a different path and fails the same task.&lt;/p&gt;

&lt;p&gt;That is embarrassing onstage. In production, it is a reliability problem: a workflow that succeeded once may fail the next time a user makes the same request. For mission-critical work, such as reconciling a financial transaction or checking a contract for an obligation, that can be a showstopper.&lt;/p&gt;

&lt;p&gt;Most benchmarks hide this variability behind an average. On AppWorld, a ReAct agent using GPT-4.1 succeeded on &lt;strong&gt;77.4% of runs&lt;/strong&gt; across five repetitions. But it succeeded in all five runs for only &lt;strong&gt;53.0% of tasks&lt;/strong&gt; — a &lt;strong&gt;24.4-point consistency gap&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most benchmarks report the first number. We built a way to measure the second — and improve it.&lt;/p&gt;

&lt;p&gt;In an earlier post, we introduced &lt;a href="https://huggingface.co/blog/ibm-research/altk-evolve" rel="noopener noreferrer"&gt;ALTK-Evolve&lt;/a&gt; — a system that turns an agent's own past trajectories into reusable guidelines, distilled automatically and injected back at inference time. It measurably improves task success, but those results only asked the average-case question too.  This post introduces &lt;strong&gt;consistency guidelines&lt;/strong&gt;, a new guideline type in &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;&lt;code&gt;altk-evolve&lt;/code&gt;&lt;/a&gt; built on top of a diagnostic tool we call the &lt;strong&gt;Consistency Analyzer&lt;/strong&gt;, that targets this gap directly. &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accuracy hides an unreliability problem.&lt;/strong&gt; A ReAct agent (GPT-4.1 on AppWorld &lt;code&gt;test_normal&lt;/code&gt;) that succeeds 77.4% of the time on average succeeds on &lt;em&gt;all 5&lt;/em&gt; repeated runs for only 53.0% of tasks — a &lt;strong&gt;24.4-point consistency gap&lt;/strong&gt;. On hard tasks it reaches 30 points.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;We built a diagnostic for exactly this.&lt;/strong&gt; The Consistency Analyzer resamples an agent's own recorded trajectory to find &lt;em&gt;flip-prone&lt;/em&gt; decision points — steps where the model was one token-sample away from doing something different. It needs one trace and no ground truth — it resamples each decision point in that trace with a single call requesting k completions (k=5 by default), rather than re-running the task end-to-end.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turning that diagnosis into guidelines halves the gap&lt;/strong&gt; — from &lt;strong&gt;24.4pp to 12.0pp&lt;/strong&gt; (same-task Pass⁵ +16.0pp, similar-task +13.0pp), without costing anything in average accuracy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full methodology and evaluations&lt;/strong&gt; are in the &lt;a href="https://arxiv.org/abs/2609.08832" rel="noopener noreferrer"&gt;technical report on arXiv&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Metric Almost Nobody Reports
&lt;/h2&gt;

&lt;p&gt;Standard agent evaluation reports &lt;strong&gt;Mean@k&lt;/strong&gt;: run a benchmark &lt;em&gt;k&lt;/em&gt; times, average the pass rate. Often &lt;em&gt;k&lt;/em&gt;=3, sometimes just 1. It's the number on every leaderboard, and it's what "77% accurate" means in practice.&lt;/p&gt;

&lt;p&gt;Mean@k answers "how good is this agent, on average?" It does not answer the question a real user cares about: &lt;strong&gt;will it still be good if I ask this exact question again?&lt;/strong&gt; For that you need &lt;strong&gt;Pass^k&lt;/strong&gt;: the fraction of tasks where the agent succeeds on &lt;em&gt;all&lt;/em&gt; k runs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Pass^k is not Pass@k.&lt;/strong&gt; The familiar &lt;strong&gt;Pass@k&lt;/strong&gt; is &lt;em&gt;optimistic&lt;/em&gt; — it asks whether &lt;strong&gt;at least one&lt;/strong&gt; of k attempts succeeded, the right question when you can verify and retry. &lt;strong&gt;Pass^k&lt;/strong&gt; is its pessimistic mirror image: &lt;strong&gt;every&lt;/strong&gt; attempt must succeed. Same letters, opposite question. Pass^k ≤ Mean@k ≤ Pass@k, always.&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%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FBdzmSgkon1dAtbOCWqmKF.png" class="article-body-image-wrapper"&gt;&lt;img alt="Mean@5 vs. Pass^5 by task difficulty, GPT-4.1 on AppWorld test_normal, with the consistency gap called out in red" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FBdzmSgkon1dAtbOCWqmKF.png" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A ReAct agent backed by GPT-4.1 posts a Mean@5 of &lt;strong&gt;77.4%&lt;/strong&gt; — genuinely strong. But Pass^5 is only &lt;strong&gt;53.0%&lt;/strong&gt;. Nearly a quarter of the benchmark consists of tasks the agent can &lt;em&gt;sometimes&lt;/em&gt; solve and sometimes can't, with nothing about the task changing between runs. We call this gap — Mean@k minus Pass^k — the &lt;strong&gt;consistency gap&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This isn't a capability problem you fix with a bigger model. It's an orthogonal axis: &lt;strong&gt;an agent can be capable and inconsistent at the same time.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Agents Flip: Sharp Decisions vs. Flat Ones
&lt;/h2&gt;

&lt;p&gt;Every time an LLM agent decides something — which API to call, what argument to pass, whether to retry — that decision comes out of a probability distribution over next tokens. What matters is the &lt;strong&gt;shape&lt;/strong&gt; of that distribution. A &lt;strong&gt;sharp&lt;/strong&gt; one puts most of its mass on a single token: the runners-up are far behind, and the same choice comes out run after run. A &lt;strong&gt;flat&lt;/strong&gt; one spreads comparable mass across several near-tied tokens, and which one wins is close to a coin flip.&lt;/p&gt;

&lt;p&gt;The shape decides how much noise it takes to change the outcome. Sharp distributions are resilient — GPU floating-point non-associativity, request batching, and other platform-side effects nudge the numbers slightly, but nowhere near enough to reorder a clear winner. Flat distributions are vulnerable to exactly that nudge: near-ties may reorder under small perturbations. And because a trajectory chains dozens of decisions, a small per-step chance of flipping compounds into a large chance that &lt;em&gt;some&lt;/em&gt; run goes differently. That's where a 24-point gap comes from.&lt;/p&gt;

&lt;p&gt;This is also why the problem survives your decoding settings. Greedy decoding and a fixed seed both govern &lt;em&gt;how a distribution gets turned into a token&lt;/em&gt; — they say nothing about the distribution itself. On a hosted endpoint the probabilities shift slightly from run to run, so the same prompt to the same model at temperature zero can still resolve a near-tie one way today and the other way tomorrow. &lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Our setup:&lt;/strong&gt; the ReAct agent runs at &lt;strong&gt;temperature 0.0&lt;/strong&gt;, so none of the variance above is ordinary sampling.
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Diagnose, Then Fix
&lt;/h2&gt;

&lt;p&gt;Which turns the problem into a search: which steps in a given trajectory were the flat ones — and what do you do about them once you know?&lt;/p&gt;

&lt;p&gt;Consistency guidelines come out of a two-stage pipeline that plugs into ALTK-Evolve's existing machinery — with a new source signal driving what gets written.&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%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FgdUd7l6Q8DzXCgzmchxi3.png" class="article-body-image-wrapper"&gt;&lt;img alt="consistency-guideline-pipeline" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FgdUd7l6Q8DzXCgzmchxi3.png" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Detect — the Consistency Analyzer.&lt;/strong&gt; &lt;br&gt;
Given one recorded trajectory, the analyzer replays each decision step through controlled resampling, measuring how much the model's output actually varies at that point. Concretely, that's one additional model call per decision step, done once offline — issued with the sampling parameter set to draw k completions at once (k=5 by default) — replayed against the already-recorded context, not new tool calls, not new environment interactions, and not a second end-to-end rollout of the task. This yields a consistency score per decision step that is written into a scorecard to pinpoint exactly which decisions are at risk of flipping on the next run. Detection is fully black-box — no logits, no model internals, no instrumentation beyond the trace you already have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Generate — targeted guidelines.&lt;/strong&gt;  Every flagged step becomes a candidate consistency guideline in the standard ALTK-Evolve format, so it slots into the existing storage and retrieval pipeline. Here's a real example, generated by GPT-4.1 from a trajectory of the AppWorld task "How many activities are done in my bucket list as per my SimpleNote note?":&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[Guideline 1] When counting checkbox-style markers in note content, use a line-anchored regex match rather than a plain substring count — note titles often repeat the marker symbol in a legend line.&lt;/p&gt;

&lt;p&gt;[Guideline 2] Always verify search results for note queries by checking for multiple matches and confirming the correct note before proceeding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nothing here is task-specific trivia. String-counting bugs and unverified search results are decision points that show up with high uncertainty across many AppWorld tasks. That's the point: the analyzer targets instability, not failure — so it catches steps the agent happened to get right this time but could easily get wrong next time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=qlp7EzXe8Pg" rel="noopener noreferrer"&gt;Watch the 2-minute demo&lt;/a&gt; — five parallel runs of the agent split 3-2 on this task because of agent uncertainty about the counting strategy, then run again after these guidelines in context: all five agree.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results: Reducing the Gap Without Losing Accuracy
&lt;/h2&gt;

&lt;p&gt;We evaluated on AppWorld &lt;code&gt;test_normal&lt;/code&gt; (168 tasks) with a ReAct agent on GPT-4.1, generating consistency guidelines from a single baseline trajectory per task and testing them on 5 fresh runs.&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%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FE_7HyAt5BSzZy9Pj0k3Wc.png" class="article-body-image-wrapper"&gt;&lt;img alt="Pass⁵ lift from baseline to consistency guidelines, by task difficulty, GPT-4.1 on AppWorld test_normal" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FE_7HyAt5BSzZy9Pj0k3Wc.png" width="800" height="345"&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%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FjzxSU5MJ8Ajf21aEjANyB.png" class="article-body-image-wrapper"&gt;&lt;img alt="Mean@5 aggregate, baseline vs. consistency guidelines, same scale as the Pass⁵ chart above" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F6435a1131860001f144239ea%2FjzxSU5MJ8Ajf21aEjANyB.png" width="799" height="101"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mean@5 (%), aggregate — same scale as Pass^5 above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The consistency gap is cut roughly in half.&lt;/strong&gt; Aggregate Pass^5 rises 53.0% → 69.0% while Mean@5 rises 77.4% → 81.0%, narrowing the gap between "looks capable" and "can be counted on" from &lt;strong&gt;24.4pp to 12.0pp&lt;/strong&gt;. Nearly a third of previously-inconsistent tasks become tasks the agent passes on &lt;em&gt;every single run&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The middle and hard tiers gain most.&lt;/strong&gt; Medium +22.9pp (+44% relative), Hard +14.3pp (+45% relative) — effectively tied in relative terms, with Medium ahead absolutely. Easy gains +12.2pp, having had the least room. This is consistency guidelines doing what they're designed to do: finding and stabilizing the specific decision points where an agent's own uncertainty was leaking into the outcome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mean@5 never drops.&lt;/strong&gt; Preserving average accuracy was a hard requirement, not a nice-to-have: a system that boosts Pass^5 by trading away Mean@5 would just be shifting unreliability around, not fixing it. Mean accuracy holds or improves at every difficulty level.&lt;/p&gt;

&lt;h3&gt;
  
  
  The guidelines generalize — they aren't patching one trajectory
&lt;/h3&gt;

&lt;p&gt;Applied to a &lt;strong&gt;different but related task in the same AppWorld scenario&lt;/strong&gt; — another variant of the scenario the guidelines were mined from — consistency guidelines still lift Pass^5 by &lt;strong&gt;+13.0pp&lt;/strong&gt;, only 3 points below the same-task number. A guideline derived from one run isn't just patching that run; it's capturing something that transfers.&lt;/p&gt;

&lt;p&gt;The sharper evidence comes from a weaker model, &lt;strong&gt;gpt-oss-120b&lt;/strong&gt;. Same-task Pass^5 rose +6.0pp from a much lower baseline (10.1% → 16.1%) — and, interestingly, the similar-task generalization number (+8.7 pp) actually &lt;em&gt;exceeded&lt;/em&gt; the same-task gain, suggesting the guidelines were capturing genuinely reusable failure patterns rather than memorizing one trajectory's specifics.&lt;/p&gt;




&lt;h2&gt;
  
  
  If You're Shipping an Agent
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Report Pass^k next to Mean@k.&lt;/strong&gt; Averages can't distinguish a reliable agent from a lucky one; even k=3 will surface a gap you didn't know you had.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expect the gap to widen with difficulty.&lt;/strong&gt; Your hardest tier is where a single averaged number is most misleading.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't reach for a bigger model first.&lt;/strong&gt; Consistency is orthogonal to capability. A stronger model raises Mean@k; it doesn't necessarily reduce the consistency gap.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diagnosis needs no grader and no live replay&lt;/strong&gt;. One extra LLM call per decision step (sampling k=5 completions by default) is enough — no ground truth, no re-running the task against the environment. That's what makes it usable on production traffic, where you often can't replay a task end-to-end even once.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&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;&lt;/strong&gt; — the open-source repo now includes the Consistency Analyzer and consistency-guideline generation used in these experiments — &lt;strong&gt;or read the &lt;a href="https://arxiv.org/abs/2609.08832" rel="noopener noreferrer"&gt;technical report on arXiv&lt;/a&gt;&lt;/strong&gt; for the complete methodology.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If accuracy numbers you can't reproduce on your own tasks sound familiar, we'd like to hear about it — concrete examples of flip-prone behavior in your own agents are exactly the kind of feedback that shapes what we build next. &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;Open an issue or a discussion&lt;/a&gt;.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mean@k.&lt;/strong&gt; Run a task &lt;em&gt;k&lt;/em&gt; times, report the average pass rate — what most benchmarks call "accuracy."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pass^k.&lt;/strong&gt; The fraction of tasks where the agent succeeds on &lt;strong&gt;all&lt;/strong&gt; &lt;em&gt;k&lt;/em&gt; independent runs. Always ≤ &lt;a href="mailto:Mean@k"&gt;Mean@k&lt;/a&gt;. What a user experiences if they run the same query twice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pass@k&lt;/strong&gt; At least &lt;strong&gt;one&lt;/strong&gt; of &lt;em&gt;k&lt;/em&gt; runs succeeds — the optimistic counterpart, common in code-generation papers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency gap.&lt;/strong&gt; Mean@k − Pass^k, in percentage points.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ALTK-Evolve open source repo&lt;/strong&gt; — &lt;a href="https://github.com/AgentToolkit/altk-evolve" rel="noopener noreferrer"&gt;github.com/AgentToolkit/altk-evolve&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical report&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/2609.08832" rel="noopener noreferrer"&gt;arXiv&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency guideline demo&lt;/strong&gt; —&lt;a href="https://www.youtube.com/watch?v=qlp7EzXe8Pg" rel="noopener noreferrer"&gt;2 min video&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>llm</category>
    </item>
    <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>
