{"slug": "thinking-of-ace-we-can-do-it-with-fewer-tokens", "title": "Thinking of ACE? We Can Do It with Fewer Tokens", "summary": "IBM Research's ALTK-Evolve and ACE both enable LLM agents to learn from their own trajectories, but ALTK-Evolve uses fewer tokens by delivering only a small core of high-support guidelines plus task-specific selections, whereas ACE injects a comprehensive playbook on every step. In-house tests on AppWorld with the same ReAct agent show ALTK-Evolve achieves comparable task success with significantly lower token usage.", "body_md": "# Thinking of ACE? We Can Do It with Fewer Tokens\n\n[Enterprise Article](/blog)\n\n*ALTK-Evolve and ACE both let an agent learn from its own trajectories. The difference is what they do with what they learn — and that decides the token bill.*\n\nGive 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 *how to use them reliably*. That's learnable from the agent's own history.\n\nTwo recent systems do exactly this, on the same kind of agent: **ACE** (Agentic Context Engineering) and our **ALTK-Evolve** ([introduced here](https://huggingface.co/blog/ibm-research/altk-evolve)). Both are a form of **agentic memory** — turning an agent's past trajectories into reusable **lessons** 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 *delivery*.\n\nA note on words, because the two systems name things differently: we'll call the raw thing an agent learns a **lesson**. ACE organizes its lessons into one comprehensive, evolving **playbook**; we consolidate ours into individually retrievable **guidelines**. Same lessons, two containers.\n\n## What we agree on\n\nBoth systems refuse to compress.\n\nACE names the failure modes precisely: **brevity bias** — optimization collapsing toward short, generic instructions — and **context collapse** — 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.\n\nWe reach the same conclusion from the other direction. Every distinct guideline keeps a **support count** — 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.\n\nSo on the core question — *should you compress an agent's hard-won lessons into a tidy summary?* — ACE and ALTK-Evolve give the same answer: **no. Count them, don't collapse them.** ACE's per-bullet counters and our support counts are two spellings of the same idea.\n\n## Where we differ\n\nTwo places: how the memory is **built**, and how it's **delivered** — and it's the delivery difference that shows up in the token bill.\n\n**Consolidation (how the store is built).** ACE grows one playbook through a **Generator → Reflector → Curator** loop, applying incremental delta updates and de-duplicating by embedding. We cluster near-duplicate lessons and merge *within* a cluster, **support-conserving** — 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 *typed* 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.\n\n**Delivery (what reaches the model at inference).** This is the one that drives the numbers. ACE injects the **comprehensive playbook** 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 *available* to both agents; the difference is that ACE always sends all of them, and we send however many a given model can actually use.\n\n## Why it matters\n\nOn AppWorld, with the *same* base ReAct agent, running both systems in-house:\n\n| Model | TGC / SGC | Tokens/task | |\n|---|---|---|---|\nDeepSeek-V3.2 |\nACE | 80.4 / 73.2 | 634K |\nALTK-Evolve |\n89.3 / 80.4 |\n263K |\n|\ngpt-oss-120b |\nACE | 54.8 / 35.7 | 777K |\nALTK-Evolve |\n56.0 / 37.5 |\n116K |\n\nOn the strong model we're better on both metrics at **~40% of ACE's inference cost**. On the weak model we edge ACE 56.0 to 54.8 — close enough that we call it a **tie on accuracy** (a repeat run of ours landed at 54.8, matching ACE almost exactly, which is within this benchmark's run-to-run noise) — at **about one-seventh** the cost.\n\nA fair word on cost: ACE's own efficiency story is about *building* its context cheaply. Ours is on a different axis — *serving* 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.\n\nWhere does the accuracy come from? The by-difficulty breakdown tells two different stories:\n\n*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).*\n\nThe 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 *right* 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.\n\nWe give each model its **best configuration** — 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 *how much* to inject, and how it scales across the capability spectrum, is the subject of a next post.)\n\n## Same lessons, different delivery\n\nBoth 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.\n\nTry the— which includes the extraction, consolidation, and retrieval pipeline used here —[ALTK-Evolve]libraryor read thefor the complete method and ablations.[full technical report]\n\n## Linked artifacts / references\n\n**Earlier post:** ALTK-Evolve introduction —[link](https://huggingface.co/blog/ibm-research/altk-evolve)**ACE**(Agentic Context Engineering) —[link](https://arxiv.org/abs/2510.04618)** AppWorld**benchmark —[link](https://appworld.dev/appworld)** ALTK-Evolve**—[link](https://github.com/AgentToolkit/altk-evolve)** Full technical report**—[link](https://arxiv.org/abs/2603.10600)\n\n## Method notes\n\nAppWorld `test_normal`\n\n, 168 tasks. A ReAct code agent (each step writes Python; the environment returns the output). **TGC** = Task Goal Completion; **SGC** = Scenario Goal Completion, which requires *every* variant of a scenario to pass. Memory is mined from **train/dev only**; results are single runs (pass@1), as is standard on this benchmark.\n\nThe 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 *same* 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.\n\n### Reference tables\n\n**DeepSeek-V3.2 — test_normal (168 tasks):**\n\n| System | Guidelines | TGC | SGC | Tokens/task |\n|---|---|---|---|---|\n| ReAct, no memory | 0 | 79.8 | 64.3 | 148K |\n| ReAct + ACE | 106 | 80.4 | 73.2 | 634K |\n| ReAct + ALTK-Evolve | 191 | 89.3 | 80.4 | 263K |\n\n**gpt-oss-120b — test_normal:**\n\n| System | Guidelines | TGC | SGC | Tokens/task |\n|---|---|---|---|---|\n| ReAct, no memory | 0 | 39.9 | 21.4 | 110K |\n| ReAct + ACE | full | 54.8 | 35.7 | 777K |\n| ReAct + ALTK-Evolve (selected) | ~29 | 56.0 | 37.5 | 116K |\n\n**gpt-oss-120b — by difficulty (TGC):**\n\n| Difficulty | Baseline | ACE | ALTK-Evolve |\n|---|---|---|---|\n| Easy | 66.7 | 84.2 | 82.5 |\n| Medium | 35.4 | 60.4 | 56.2 |\n| Hard | 19.1 | 23.8 | 31.8 |\n| Aggregate | 39.9 | 54.8 | 56.0 |\n\n**DeepSeek-V3.2 — by difficulty (baseline → +memory):** the two systems start from different no-memory baselines (79.8 vs 72.0 TGC overall) because of the prompt-template difference above.\n\n| Tier | ALTK TGC | ALTK SGC | ACE TGC | ACE SGC |\n|---|---|---|---|---|\n| Overall | 79.8 → 89.3 | 64.3 → 80.4 | 72.0 → 80.4 | 57.1 → 73.2 |\n| Easy | 93.0 → 94.7 | 84.2 → 84.2 | 78.9 → 84.2 | 63.2 → 78.9 |\n| Medium | 81.2 → 97.9 | 62.5 → 93.8 | 85.4 → 100.0 | 75.0 → 100.0 |\n| Hard | 66.7 → 77.8 | 47.6 → 66.7 | 55.6 → 61.9 | 38.1 → 47.6 |", "url": "https://wpnews.pro/news/thinking-of-ace-we-can-do-it-with-fewer-tokens", "canonical_source": "https://huggingface.co/blog/ibm-research/altk-evolve-sldd", "published_at": "2026-08-11 13:37:10+00:00", "updated_at": "2026-08-11 13:44:59.945027+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-agents", "ai-research"], "entities": ["IBM Research", "ALTK-Evolve", "ACE", "AppWorld", "ReAct"], "alternates": {"html": "https://wpnews.pro/news/thinking-of-ace-we-can-do-it-with-fewer-tokens", "markdown": "https://wpnews.pro/news/thinking-of-ace-we-can-do-it-with-fewer-tokens.md", "text": "https://wpnews.pro/news/thinking-of-ace-we-can-do-it-with-fewer-tokens.txt", "jsonld": "https://wpnews.pro/news/thinking-of-ace-we-can-do-it-with-fewer-tokens.jsonld"}}