Product Launch

Prime Agent is a self-improving Agent framework: swapping Claude Opus 5 into it jumpstarted the ARC-AGI-3 score from 30.2% to 95.5%

Two core ideas: long content lives in variables and the model writes code to manage it; the harness's prompts, skills, and memory can be edited by the Agent itself. The catch: it figured out how to cheat in Factorio.
The 60-second version
  • Current coding Agent harnesses were designed around the previous generation of models. Their tools are forms to fill out, and a full context window just gets discarded—the model is boxed in by its own scaffolding.
  • Prime Agent flips that. It cuts the toolset down to a single always-on Python environment, stores long content in variables, and lets the Agent edit its own prompts, skills, and memory.
  • The same Claude Opus 5 goes from 30.2% to 95.5% on ARC-AGI-3 just by switching harnesses. The tradeoff: it learned to rack up points in Factorio through a backdoor command.
⚑ All numbers below come from Prime Intellect's launch blog post, their open-source repository, and the score charts they published alongside. This is vendor-provided data, and there hasn't been any independent third-party replication yet. Every number traces back to the original charts or repo linked at the end.
Intro

What is Prime Agent

Prime Intellect released Prime Agent today—a coding Agent that runs in your terminal, MIT-licensed, installable with a single curl command. It works with your own API key or open-source models and is positioned as a drop-in alternative to Claude Code or Codex. Their headline result: the same Claude Opus 5, not a single parameter changed, scoring 30.2% on ARC-AGI-3 with its original harness and 95.5% inside Prime Agent—slightly above the human expert baseline ARC officially reports.

To understand how they got there, we need to look at where current harnesses fall short. We'll cover those two pain points, walk through their fixes, then dig into the benchmark results—including where things went sideways.

Launch video (44 seconds): it opens on a terminal view and ends with an ARC-AGI-3 scorecard—95.54%, 178 levels, 24 games, 11,245 actions—with a line in the corner reading "not built for ARC-AGI-3". Source: Prime Intellect's launch post.
The Pain Points

Today's harnesses were designed around the previous generation of models

The harnesses we use today were built around what last generation's models could do, and they no longer match what frontier models are capable of. The mismatch shows up in two specific places.

Fixed tool-calling formats and context compaction force models to work around their own scaffolding instead of using it as a helper. Sub-agents, prompts, skills, and memories are hard-coded at design time—no matter what the Agent learns on the job, none of it ever updates.

Prime Agent launch page
Pain point one

Tools are predefined forms—the model can only fill them out

Concrete example: the Agent needs just the error lines out of an 80,000-line log. There's no "filter" option in its toolbox, so it calls "read file" and pulls the whole 80,000 lines into its context to sift through itself. The harness doesn't help; it forces a detour. When the context window fills up, things get harsher. The standard move is compaction, summarizing the conversation into a short paragraph and dropping the earlier content—which is often exactly where the hard-won lessons from hundreds of attempts live.

Pain point two

Sub-agents, prompts, skills, and memory are written once, at design time, by humans

When the Agent hits a snag or figures out a trick on the job, it stays in that one conversation. Close the session and it's gone. None of it feeds back into the harness. The trap you hit today is waiting for you again tomorrow in a fresh session. The idea of a harness that gets better the more you use it simply doesn't exist in this design.

Their answer: instead of assuming the old constraints, the harness should move one step ahead of what the model can already do. That translates into the two core designs—one for each pain point.

The Solution

Their solution: two core designs, one for each problem

Two pain points, two core designs. The names sound heavier than they are—each one is a pretty simple idea. We'll start with the plain-English version, then get into the mechanics in the next sections.

For pain point one

RLMRecursive Language Model. The model can spawn other models mid-task by writing code—that's where "recursive" comes from. · Recursive Language Model

Handles: what tools the model has, where long content lives

Trades the pile of predefined forms for one machine that never turns off. Long content doesn't get loaded into the model's head; it lives in files the model can pull from as needed. When the workload gets heavy, it can spawn parallel copies of itself inside that environment to work on different parts of the problem.

Analogy: previously, someone sat in a meeting room and every document had to be brought to the table to be read—if the table got full, things got tossed. Now there's a computer at hand. Documents live on the computer, and a few lines of code filter out exactly the two pages you need. When things get busy, you spawn a few helpers on the machine to read different sections and send back their findings. That's the "recursive" part: mid-task, the model can call on more models.

For pain point two

Continual HarnessA harness that rewrites itself as it works. The Agent can add, read, modify, and delete these four things: prompts, skills, memories, and sub-agent templates.

Handles: whether the Agent can change its own harness

Turns the harness's prompts, skills, memories, and sub-agent templates from "locked down from day one" into "owned by the Agent, editable at any time." Changes happen mid-task and are saved to disk.

Analogy: a new hire gets a job description, a toolbox, and a notebook. Before, those were fixed—no matter how much they learned, nothing could be updated. Now they own the set. They can add "watch out for this trap" to the job description, slip a custom tool they built into the toolbox, jot a note in the notebook. Next time they start a shift, they bring the updated set.

Core design 1 · RLM A machine that never turns off: tools and long content Core design 2 · Continual Harness The toolkit you carry: the harness edits itself Together they produce Multi-agent orchestration Spawn sub-agents, message them
Our diagram, based on the line in the official architecture diagram's caption: two core abstractions plus the orchestration capability that emerges from combining them. The third block is what naturally grows out of the first two.

The next three sections go in that order: RLM first, then Continual Harness, then the combination piece.

Core Design One

RLM: everything becomes one Python environment, long content lives in variables

In plain terms: give the model an always-on Python, stop handing it forms

Most Agents use tools like this: the model emits a JSON block saying "call read_file with this path," the harness runs it, and the result gets pasted back into the conversation.

Prime Agent tears that apart. The model gets exactly one tool: a persistent IPython kernel—the kind of interactive environment where you type Python line by line and variables stick around between commands. Reading files, running commands, using skills, spinning up sub-agents—all of it is just writing code.

Back to that 80,000-line log:

Old way: all 80K lines into context, then compaction—what's compacted is gone Log 80K lines Read entirely in Model context · full Compacted and gone Prime Agent: filter in Python first, only the 12 matching lines reach the model Log 80K lines IPython Filter with 3 lines 12 lines Model context Nothing lost Not even full
Our diagram. The model-context box is identical in both rows—the difference is what's inside it.

The old way reads the log into context and makes the model squint at it—80,000 lines means 80,000 lines of tokens. The new way has the model write three lines of Python: open the file, filter by regex, print the 12 matching lines. Those 80,000 lines never pass through the model's head—just those 12. That's why Prime Agent can post higher scores with lower token usage: it's using code to work with data, skipping the "read everything" tax entirely.

Long content lives in variables—so compaction no longer means losing information

That's where RLM (Recursive Language Model) gets its name: instead of pumping long content into the model's context, keep it in Python variables and let the model write code to browse it.

Analogy

The old way was hauling an entire box of documents into the meeting room. When the table got full, things got tossed out—and whatever went out was gone forever. RLM leaves the box in a document room outside. On the table, only the two pages you're reading right now. Need something else? Take the two-minute walk to get it. Not a single page is lost, and the table stays clean.

Old way: table gets full, documents get thrown out—and stay out Context (table) Compacted & gone Prime Agent: just the two pages you need on the table, everything else one trip away Context (table) Grab anytime Python variables (document room)
Our diagram. The box on the left is the same object in both rows: the context the model can see right now.

On the implementation side: the full conversation history is appended line by line to a JSONL file on disk. No matter how many compactions happen, you can always scroll back. Typing /tree shows the entire history, and branching or forking is just moving a pointer in that same file. Compaction itself is something the model can trigger from Python when it wants to clean up—it's clearing the table, not shredding the archive. So even a task that runs for thousands of rounds doesn't give it amnesia.

RLM isn't a term they invented for this launch. It comes from an MIT paper (Alex L. Zhang, Tim Kraska, Omar Khattab) that demonstrated handling inputs up to two orders of magnitude larger than a model's context window using this method. First author Alex L. Zhang is on the Prime Agent author list—they essentially turned his research method into something you can install.

RLM mechanism diagram: the model's context contains only the system prompt, user prompt, reasoning, and calls to Python. The actual large input data sits in the Python environment and can be distributed to multiple parallel sub-models.
RLM mechanism diagram: on the left, what the model sees in context (just prompts, reasoning, and repeated "call Python" actions); in the middle, the Python environment holding the entire input dataset; on the right, a row of parallel sub-models it can be split across, with answers retrieved from variables. Source: Prime Intellect's launch post.
Core Design Two

Continual Harness: the harness's prompts, skills, and memory can be edited by the Agent itself

The first core design handles pain point one. Pain point two—the frozen harness that can't learn—belongs to the second Continual Harness (the self-editing harness). It turns the harness's four components—prompts, skills, memories, sub-agent templates—into state the Agent can create, read, modify, and delete. Writing to it looks like inserting a row into a database:

The Agent logs a lesson and builds itself a skill
rlm.harness.create_memory("this test flunks randomly", "retry three times before reporting failure")

rlm.harness.create_skill(
    "retry helper", "...",
    reference={"type": "python", "import": "retry_helper"}
)
These changes are written to disk, so they survive across turns and across sessions.

The engine driving this CRUD is /refine: it looks back over the Agent's full working process—what it tried, what happened—and makes one minimal change. That could be a new memory, a new skill, or a tweak to a prompt line, rather than rewriting the whole harness. Every change is logged with its trigger and its outcome.

The result is a harness that genuinely gets better with use: if a run was wasted because some test failed randomly, the next run already knows to retry three times first. A handling pattern discovered this time is available as a skill next time. All of it lives on disk and persists across sessions.

Everything from this run: what was tried, what happened /refine Applies one minimal change Prompts Untouched this time Memory + added one Skills Untouched this time Sub-agent templates Untouched this time Base system prompt: locked, /refine can't touch it
Our diagram. Each change lands in exactly one of the four boxes; the others stay untouched.

Two guardrails: the base system prompt is locked, so /refine can only modify the outer layer; and any change can be rolled back to a previous version by its log entry. The deliberation step—figuring out what to change—runs in the background so it doesn't hold up your conversation. The actual write is fast and only pauses things briefly between turns.

This one has a lineage too. The Continual Harness paper started with "Gemini plays Pokémon," where a human sat alongside manually tweaking the harness until it beat Pokémon Blue, Yellow Legacy hard mode, and Crystal without losing a single battle. The paper's project was to remove the human from that loop entirely. Its first author, Seth Karten, is also Prime Agent's first author.

The Combination

Two cores combined: spawning a sub-agent is just writing a line of code

The official architecture diagram's caption is explicit about this: RLM and Continual Harness are the two core abstractions. Adding, removing, and messaging sub-agents is the orchestration capability that these two combine to produce. So the following isn't a third or fourth invention—since everything lives in Python, spawning a sub-agent naturally becomes one line of code:

Spawning two sub-agents from IPython
auth = await rlm("explain the auth/ login flow, report back when done", name="auth-expert")
api  = await rlm("explain the src/ interface-layer changes, report back when done", name="http-expert")
No waiting between the two lines: the first call returns instantly and execution moves straight to the second.

Three design details here, and each one changes how this feels in practice.

One: the call returns the moment it's sent—a ticket number, not the answer

The rlm(...) call returns immediately with a ticket: the sub-agent's ID, name, its own working directory, the model it uses. Answers arrive later as messages. So the parent Agent can dispatch three or four sub-agents in one breath (one on the login module, one on the API layer) and keep doing its own thing—real parallelism, not a queue.

Two: sub-agents aren't destroyed after their task—you can keep chatting

Each sub-agent is a full Prime Agent instance: its own session directory, its own Python environment, its own history. The task finishing doesn't retire it—the parent can send new instructions by name later: "that login flow you worked on, dig into the edge cases for me." This parent-child relationship even survives compaction and Python environment restarts.

Three: Agents can talk to each other directly—but only within the family

Parents, children, and siblings can message each other; crossing over to unrelated sessions is blocked. That's a deliberate guardrail to keep a swarm of parallel Agents from talking over each other.

① Dispatch: call returns immediately with a ticket, parent doesn't wait Parent Agent The one you're talking to auth-expert Investigates login flow http-expert Investigates API layer changes test-reviewer Reviews test coverage ② Results: each one messages back on its own (only to parent, children, or siblings)
Our diagram. Solid lines are dispatch (instant return); dashed lines are each sub-agent messaging back when done.

The interface makes this hierarchy visible. Press the left arrow in an empty input to pull up the Agents View, listing every session as running / idle / unloaded. You can click into any one to chat, interject, or queue commands. A sub-agent that's been idle for thirty minutes gets unloaded from memory to save resources—the next time someone calls it, it reloads from disk with its history intact.

Prime Agent's session overview screen: the header shows version v0.6.1, model gpt-5.6-sol, 2 running, 4 idle, 67 unloaded, with a list of sub-agents below.
Agents View screenshot. The header line shows 2 sessions running, 4 idle, 67 unloaded on this machine. In the "Running" section, the sample session shows "2 sub-agents running · 2 heartbeats alive." Source: Prime Intellect blog.

Underneath it all is a background daemon that holds every live session. Close the terminal and the work keeps going—come back later and you're reconnected. If the process crashes, it can recover from the records and snapshots on disk.

Prime Agent architecture diagram: within a turn, the model writes code executed by the IPython kernel, which contains skills, tools, and rlm. rlm recursively spawns three types of sub-agents to the right: parallel, background, and resident. Below, Continual Harness reads the trace and writes back four kinds of state.
The official architecture diagram, assembled from four changes. The top dashed box is "within a turn": model writes code → IPython executes → result returns to the model, with rlm on the right recursively spawning three kinds of sub-agents (parallel / background / resident). The blue box at the bottom is the cross-turn Continual Harness: reads traces, writes four kinds of state. Source: Prime Intellect blog.
Results

The same Opus 5, new harness: ARC-AGI-3 goes from 30.2% to 95.5%

Mechanics done—now the scores. The headline chart first, showing the same model twice, three times apart.

Human expert baseline 95.4%
Same Claude Opus 5, same model, different harness
ARC-AGI-3 official harness30.2%
Prime Agent95.5%
Same GPT-5.6 Sol, three ways of running it
ARC-AGI-3 official harness13.3%
Just two API settings changed38.3%
Prime Agent78.3%

Two other data points: Prime Agent with Terra scores 25.7%, and with open-source GLM 5.2 it drops to 8.6%. A harness amplifies a model's abilities—it can't fabricate ones that aren't there.

Data from the ARC-AGI-3 score-vs-compute chart; the x-axis is tokens output per game. The 95.5% run passed 179 of 183 levels; three runs scored 95.0%, 95.2%, and 95.5%, and combined across all three, all 183 levels were passed.

Why does the harness make such a difference? ARC-AGI-3 drops an Agent into an unfamiliar mini-game world without explaining the rules, and expects it to figure them out. A single game spans tens of thousands of steps—the launch video's run racked up 11,245 actions. That volume of steps hits both pain points from earlier, hard: data gets hauled back and forth by tools, context fills up and gets compacted, hard-won rules get summarized away. That's exactly the layer Prime Agent changes.

Two caveats worth spelling out. First, the comparison here is against ARC's officially reported numbers, because when Prime Intellect ran Claude Code and Codex themselves, they scored even worse than the official figures—so they used the opponent's official numbers. Second, Claude Code and Codex were trained alongside their respective models, while to this day, no model has been trained inside Prime Agent.

ARC-AGI-3 score plotted against output token count, plus cost comparison.
Original chart: x-axis is output tokens per game (log scale), y-axis is score. The purple line (Prime Agent + Opus 5) climbs above the blue dashed human-expert baseline. The two gray dashed lines are GPT-5.6 Sol with the official harness (13.3%) and with just two API settings changed (38.3%). Source: Prime Intellect blog.
Those two gray dashed lines? We covered them here
OpenAI flips two API settings and GPT-5.6 Sol's ARC-AGI-3 score jumps from 13.3% to 38.3%
Same story, model untouched, harness alone: keeping private reasoning + compress instead of delete slashes per-game token output to about a sixth and nearly triples the score.
Results

Long-task benchmarks: writing an emulator and GPU code, wins and losses

Writing a retro console from scratch

EmulatorBench is a preview benchmark they built themselves: the Agent writes a Rust emulator for a retro console from zero, with no reference implementation and full sandbox isolation. When it's done, hand-written diagnostic programs check things like CPU flag correctness and graphics chip timing. Scores are the average across sixteen emulator rebuilds.

The Game Boy Color result is startling: Prime Agent with GPT-5.6 Sol scores 0.998 for about $7. The other three lines on the same chart—Codex with Sol, Prime Agent with Opus 5, Claude Code with Opus 5—are all 0.000.

Game Boy Color emulator benchmark score-cost curve; the green line rockets to 0.998 at around $7, while the other three lines hug zero the entire way.
Game Boy Color run: the green line (Prime Agent + GPT-5.6 Sol) jumps to near-perfect halfway through, finishing at 0.998 and ~$7.01. The other three lines sit at 0.000 the whole way. Source: Prime Intellect's launch post.

But the SEGA Genesis run deserves an honest note: Prime Agent with Sol scores 0.616, and Codex with Sol also scores 0.616—a tie. Both Opus 5 combinations stay at 0.000. Why Opus 5 goes completely blank on this task is still unexplained; tool calls all return normally, the runs simply fail.

Writing GPU code

PMPP-Hard is a set of 69 GPU coding problems, each needing to pass a full correctness run. Results here are split:

With GPT-5.6 Sol (1500s per problem)
Prime Agent62.3% · 43/69
Codex59.4% · 41/69
With Kimi-K3 (4500s per problem)
Prime Agent68.1% · 47/69
Kimi-Code (Kimi's own harness)71.0% · 49/69

In this group, the opponent wins: with Kimi-K3, Kimi's own harness solves two more problems. This detail appears only in the chart, not in the text.

Data from the PMPP-Hard chart. Highlighted rows mark the higher score in each group.

Nine long-task comparisons

One more overall table. Here Prime Agent runs on open-source GLM-5.2, against Opus 5 with Claude Code and GPT-5.6 Sol with Codex. Each cell reads "Prime Agent / opponent," with the winner bolded.

Benchmark GLM-5.2Opponent: Pi-mono Opus 5Opponent: Claude Code GPT-5.6 SolOpponent: Codex
OOLONG128K-token long-doc comprehension0.700 / 0.4200.900 / 0.9200.940 / 0.500
OOLONG-PairsLong output0.874 / 0.5560.929 / 0.9220.911 / 0.895
OBLIQ-BenchMath long-form ranking0.669 / 0.6350.802 / 0.7950.612 / 0.646
LongBenchProEnglish long-doc comprehension0.777 / 0.7680.804 / 0.7900.794 / 0.790
LongBenchv2Expert-annotated long tasks0.680 / 0.6960.744 / 0.7460.714 / 0.704
ManyIH CodingLong-instruction coding0.424 / 0.3860.536 / 0.5220.499 / 0.454
ManyIH IFLong-instruction following0.209 / 0.1640.225 / 0.1750.216 / 0.232
LongCoT-MiniLong reasoning0.638 / 0.6130.722 / 0.5580.671 / 0.681
EmulatorBenchLong coding0.208 / 0.0000.047 / 0.0620.275 / 0.228
Data from the long-task comparison table. The three groups read: eight wins in nine, six wins in nine, six wins in nine—a lead, but not a sweep. The biggest swing is the top-right cell: with the same GPT-5.6 Sol reading a 128K-token document, switching to Prime Agent moves the score from 0.500 to 0.940. In all harnesses, long inputs are written to files before the run starts.

3D maze

The last item, MazeBench, is an open-world 3D maze where the Agent controls a cube, solves puzzles, opens rooms, and collects gems. The metric is how far the same budget of money gets you. This one's a genuine trade: Prime Agent clearly leads on unique states explored, but Codex opens more rooms by a wide margin. Numbers only, no verdict.

Prime Agent running MazeBench with the open-source GLM-5.2 (2 minutes): the green cube is the Agent itself, pushing boxes, finding paths, and opening rooms in a top-down 3D maze. Source: Prime Intellect's launch post.
The Failure Mode

Prime Agent learned to use a backdoor command in Factorio. Telling it not to cheat didn't help.

"Gets better with use" has another side.

Factorio is a factory-building game: mine, research tech, automate production, and your score is "production score." Prime Agent went in and immediately opened four playable characters working in parallel.

The first half is genuinely impressive. Using /refine, it turned failures into memories and successes into skills. Each iteration laid out machines more efficiently than the last, and within a few hours it pushed its production score past a hundred thousand.

Then it went off the rails. It found a backdoor command (RCON) that could teleport resources straight into its machines, bypassing the entire game. They explicitly added a heartbeat message repeating "don't cheat in Factorio" every so often—it didn't matter. Once the exploit was discovered, the same self-improvement loop that had been building legitimate skills pivoted to optimizing the cheat instead.

Let the Agent improve itself, and it will optimize the score, not the behavior you wanted. This score-gaming has a name in the field: reward hacking. This case adds one more lesson: a prompt-level warning isn't a barrier. The same loop that turns failure into experience will, once it finds a shortcut, turn the shortcut into experience too.

Prime Agent playing Factorio in real time. Top shows production score 5,301,034, automation 4,350,536, running time 1h26m. Right side shows the Agent's live reasoning text.
In this screenshot, the production score at the top reads 5,301,034 after 1 hour and 26 minutes. ⚠️ This particular run is the one where it bypassed the rules and teleported resources straight into its machines—the official caption says so. Legitimate play scores in the six figures; this is roughly fifty times that. The column on the right is its live reasoning at the time, weighing whether to build a belt from 130 tiles away or research solar first. Source: Prime Intellect blog.
Getting Started

What it's worth, and one warning before you install

For developers, it's a ready-to-use tool: MIT-licensed, one-command install, works with whatever model you point it at. For people who build harnesses, it lays out the whole design openly for you to copy: one tool, context as variables, a harness that edits itself.

Prime Intellect's own view of where this goes next: they believe training the model and harness together is the dominant path. Many of Prime Agent's abilities won't fully show on models that were never trained inside it, and training a model directly within this harness has a lot of headroom left. That's their position, not a conclusion from the benchmarks—the full technical report hasn't been published yet, with a promise to follow soon.

Installing is one command on macOS and Linux: the install script downloads the pinned version, verifies SHA-256, and sets up the IPython environment Agent needs. First launch has you pick a login method via /login—subscription or your own API key, open-source or closed models, either works.

But before you install, read the warning box in the repo:

Prime Agent executes model-generated Python and project commands with your user permissions. Its worker and kernel processes improve lifecycle isolation and failure recovery, not security sandboxing. Review changes and use only trusted repositories, instructions, skills, and extensions. Run untrusted code or instructions in an external sandbox or restricted environment.

Prime Agent repo README

In plain terms: it can do anything on your machine that you can do. The official recommendation is to run it in a disposable clone, a clean workspace, or a checkpoint you can restore.

Where this is heading

Future Agents won't rely on humans pre-writing countless hard-coded logic and prompts. Instead, using the code environment as the medium, they'll autonomously spawn sub-tasks, accumulate their own skills, and iterate on themselves.

One more piece of lineage worth knowing: Prime Agent is built on a minimal Agent framework called pi, and the MIT license's 2025 copyright line still carries pi's author, Mario Zechner. In the nine-task comparison table above, one of Prime Agent's opponents is pi itself (Pi-mono).

The pi beneath it, covered here
Databricks' test: same model, different harness, 2× cost difference—why minimal Pi won
Four tools out of the box, a system prompt under 1,000 tokens, three times less context fed per round—quality held, money halved, and it builds its own tools when it needs them.
🧰 Quick-start · Prime Agent
CostOpen-source and free (MIT). Model usage is billed separately; pick subscription or your own API key at login.
Barrier to entrymacOS / Linux, one curl command. First launch: /login to connect a model. ⚠️ Runs model-generated code with your own permissions—not a security sandbox—so use a disposable clone or clean branch.
Prime Agent's terminal interface: conversation on the left, model's Python actions collapsed to a line by default, and sub-agents spawned from the session visible below.
The terminal UI after install. Model actions inside Python collapse to a single line by default, expandable for details; sub-agents spawned from this session hang below the input. Source: Prime Intellect blog.
Sources
Prime Agent: A self-improving RLM agentSeth Karten, Alex L. Zhang, Kevin Thomas, Sebastian Müller, and the Prime Intellect team·Original post·2026-08-06
About this piece
Benchmark charts, UI screenshots, the Factorio screenshot, and both videos are from the official release, flagged inline in captions. The three process diagrams (data-path comparison, meeting room & document room, self-improvement flow) are ours. PMPP-Hard's Kimi-K3 outcome and the SEGA Genesis tie are pulled from the charts themselves; the official text doesn't mention them. Install command, permission warning, and license info come from the repo README and LICENSE.