Agents That Write Their Own Playbook
Most AI agents have no memory between runs. You fix a bug in your agent's behavior, and the next session it makes the same mistake. It re-reads past transcripts, but reading is not learning.
IBM Research built ALTK-Evolve to solve this. They tested it on AppWorld, a benchmark where agents complete multi-step workflows (purchases, scheduling, file management) averaging 9.5 API calls across apps. One wrong call and the scenario fails.
Without memory: 19.1% of hard scenarios completed. With memory: 33.3%.
Here's what makes it different from just saving chat history.
After each run, ALTK-Evolve extracts three types of reusable guidelines from the traces.
Strategy tips from clean runs: "When performing checkout, verify cart contents, shipping address, and payment method before initiating the sequence."
Recovery tips from failures the agent recovered from. These encode both the failure and the fix: "When checkout fails with 'payment method required,' verify payment config and add a method before retrying." Most memory approaches only learn from success. Here, a resolved failure becomes a guideline.
Optimization tips from runs that wasted steps: "Use empty_cart() instead of calling remove_from_cart() in a loop."
Each guideline carries a trigger condition, implementation steps, and a trace back to the run it came from. Before each task, ALTK-Evolve retrieves the 5 most relevant and injects them into context.
Two findings that apply beyond this tool.
Granularity beats volume. Subtask-level tips ("call get_cart_items() before checkout") outperformed task-level tips ("handle a checkout task"). One precise rule per behavior beats a paragraph of context. Same applies to CLAUDE.md files and system prompts.
Over-filtering backfires. Restricting to top 3 tips via embedding similarity scored worse than zero memory (-2.9pp). LLM-based retrieval, where the model reasons that "checkout" implies "payment," added +7.2pp. Retrieval strategy matters as much as memory content.
The principle: agent memory should extract what the agent learned, not store what it saw. At the most specific level possible. With semantic retrieval. Less memory, better understood, wins.
Open-source (Apache 2.0). Ships as a Claude Code plugin (evolve-lite), MCP server, and Python import.