Prime Mind has open-sourced Prime Agent, a self-improving coding harness designed round two abstractions, the Recursive Language Mannequin (RLM) and Continuous Harness. Mounted instrument schemas and context compaction drive a mannequin to work round its personal scaffolding. Prime Agent replaces each with a persistent Python REPL and a rewritable harness. With Opus 5, it studies 95.5% on ARC-AGI-3, above the reported human professional baseline of 95.4%. It’s MIT-licensed.
Is it deployable
Sure, in the present day. Prime Agent installs on Linux or macOS with one command. It runs on subscription logins (Codex, Claude Professional/Max, GitHub Copilot), API keys (Anthropic, OpenAI, Google, Groq, Fireworks, Prime Inference, and others), Azure OpenAI, Amazon Bedrock, and self-hosted vLLM, Ollama, or LM Studio endpoints. Self-hosting an open-weights mannequin akin to GLM-5.2 retains code inside your personal community.
- Firm stage: Greatest match is mid-size to massive engineering orgs and AI labs that already run remoted CI containers. Prime Mind states plainly that employee and kernel processes are not a safety sandbox. Deployment due to this fact wants disposable clones or restricted environments. Solo builders can set up it, however the payoff seems on multi-hour duties.
- Industries: Developer tooling, semiconductor and HPC groups writing GPU kernels, simulation and gaming, quantitative analysis, and AI analysis labs.
- Purposes: In a single day refactors behind a check gate, spec-driven builds from scratch, kernel optimization, long-horizon agent analysis, and autoresearch.
What Prime Mind shipped
Prime Agent is constructed on two abstractions. The Recursive Language Mannequin (RLM) treats context as a variable and sub-agent delegation as perform calls inside a REPL. The Continuous Harness treats prompts, sub-agents, expertise, and reminiscence as state the agent can create, learn, replace, and delete from its personal trajectory. Each papers have Prime Agent authors on them. The TUI is constructed on pi.
/* ———- pane 2: harness ———- */
var counts = {p:0,g:0,okay:0,m:0}, historical past = [];
var WRITES = {
p: [‘create_prompt_note(“check the workspace diff before every gate rerun”)’],
g: [‘create_subagent(“auth-reviewer”, spec=”read-only review of auth/ changes”)’],
okay: [‘create_skill(“retry helper”, reference={“type”:”python”,”import”:”retry_helper”})’],
m: [‘create_memory(“flaky test pattern”, “retry three times before failing”)’]
};
var NAMES = {p:’u03C1 immediate’, g:’G sub-agents’, okay:’Okay expertise’, m:’M reminiscence’};
var hlog = doc.getElementById(‘hlog’);
perform logLine(html){
var d = doc.createElement(‘div’); d.innerHTML = html;
hlog.appendChild(d);
whereas(hlog.youngsters.size > 6) hlog.removeChild(hlog.firstChild);
ping();
}
perform bump(form, textual content, viaRefine){
counts[kind]++;
doc.querySelector(‘[data-c=”‘+kind+'”]’).textContent = counts[kind] + (counts[kind]===1?’ entry’:’ entries’);
var card = doc.querySelector(‘.hcard[data-h=”‘+kind+'”]’);
card.classList.take away(‘hit’); void card.offsetWidth; card.classList.add(‘hit’);
historical past.push(form);
logLine(‘‘+(viaRefine?’/refine’:’rlm.harness’)+’ ‘+textual content+’ ✓ written to ‘+NAMES[kind]+’‘);
}
doc.querySelectorAll(‘.hcard’).forEach(perform(c){
c.addEventListener(‘click on’, perform(){ var okay = c.getAttribute(‘data-h’); bump(okay, WRITES[k][0], false); });
});
var REFINES = [
{k:’m’, t:’trigger: same test failed twice → smallest edit: add memory’},
{k:’k’, t:’trigger: retry pattern reused 3× → promote to skill’},
{k:’p’, t:’trigger: gate rerun on unchanged workspace → add prompt note’},
{k:’g’, t:’trigger: repeated review sub-task → save sub-agent spec’}
];
var ri = 0;
doc.getElementById(‘refineBtn’).addEventListener(‘click on’, perform(){
var r = REFINES[ri % REFINES.length]; ri++;
logLine(‘/refine planning in background … dialog not blocked’);
later(perform(){ bump(r.okay, r.t, true); }, cut back ? 80 : 850);
});
doc.getElementById(‘rollbackBtn’).addEventListener(‘click on’, perform(){
var okay = historical past.pop();
if(!okay){ logLine(‘rollback nothing to revert’); return; }
counts[k]–;
doc.querySelector(‘[data-c=”‘+k+'”]’).textContent = counts[k] + (counts[k]===1?’ entry’:’ entries’);
logLine(‘rollback reverted final edit to ‘+NAMES[k]+’ by id — base system immediate untouched’);
});
/* ———- pane 3: evals ———- */
var drawn = false;
perform drawBars(){
if(drawn) return; drawn = true;
doc.querySelectorAll(‘#bars .fill’).forEach(perform(f, i){
later(perform(){ f.model.width = f.getAttribute(‘data-w’) + ‘%’; }, cut back ? 0 : 120 * i);
});
}
var DATA = {
glm: {rival:’Pi-mono (w/ sub-agents)’, rows:[
[‘OOLONG (yahoo, 128k)’, 0.700, 0.420],
[‘OOLONG-Pairs’, 0.874, 0.556],
[‘OBLIQ-Bench (math)’, 0.669, 0.635],
[‘LongBenchPro (English)’, 0.777, 0.768],
[‘LongBenchv2’, 0.680, 0.696],
[‘ManyIH Coding’, 0.424, 0.386],
[‘ManyIH IF’, 0.209, 0.164],
[‘LongCot-Mini’, 0.638, 0.613],
[‘EmulatorBench’, 0.208, 0.000]
]},
opus: {rival:’Claude Code’, rows:[
[‘OOLONG (yahoo, 128k)’, 0.900, 0.920],
[‘OOLONG-Pairs’, 0.929, 0.922],
[‘OBLIQ-Bench (math)’, 0.802, 0.795],
[‘LongBenchPro (English)’, 0.804, 0.790],
[‘LongBenchv2’, 0.744, 0.746],
[‘ManyIH Coding’, 0.536, 0.522],
[‘ManyIH IF’, 0.225, 0.175],
[‘LongCot-Mini’, 0.722, 0.558],
[‘EmulatorBench*’, 0.047, 0.062]
]},
gpt: {rival:’Codex’, rows:[
[‘OOLONG (yahoo, 128k)’, 0.940, 0.500],
[‘OOLONG-Pairs’, 0.911, 0.895],
[‘OBLIQ-Bench (math)’, 0.612, 0.646],
[‘LongBenchPro (English)’, 0.794, 0.790],
[‘LongBenchv2’, 0.714, 0.704],
[‘ManyIH Coding’, 0.499, 0.454],
[‘ManyIH IF’, 0.216, 0.232],
[‘LongCot-Mini’, 0.671, 0.681],
[‘EmulatorBench’, 0.275, 0.228]
]}
};
perform fmt(v){ return v.toFixed(3); }
perform renderTable(key){
var d = DATA[key], tb = doc.getElementById(‘tbody’);
doc.getElementById(‘rivalHead’).textContent = d.rival;
tb.innerHTML = d.rows.map(perform(r){
var aWin = r[1] > r[2], bWin = r[2] > r[1];
return ‘
‘+
‘
‘+
‘
‘;
}).be part of(”);
ping();
}
doc.querySelectorAll(‘.seg button’).forEach(perform(b){
b.addEventListener(‘click on’, perform(){
doc.querySelectorAll(‘.seg button’).forEach(perform(x){ x.setAttribute(‘aria-pressed’,’false’); });
b.setAttribute(‘aria-pressed’,’true’);
renderTable(b.getAttribute(‘data-m’));
});
});
renderTable(‘glm’);
/* ———- pane 4: autonomous ———- */
var steps = [].slice.name(doc.querySelectorAll(‘.step’));
var turns = 0;
perform clearSteps(){ steps.forEach(perform(s){ s.className=”step”; }); }
perform setBudget(t){
turns = t;
doc.getElementById(‘bvTurns’).textContent = t + ‘ / 20’;
doc.getElementById(‘bpTurns’).model.width = (t/20*100) + ‘%’;
doc.getElementById(‘bpTok’).model.width = Math.min(t*9, 100) + ‘%’;
doc.getElementById(‘bpTime’).model.width = Math.min(t*7, 100) + ‘%’;
}
perform runLoop(){
clearTimers(); clearSteps(); setBudget(0);
var seq = [
[0,’on’,0], [1,’on’,1], [2,’on’,2], [3,’fail’,3],
[1,’on’,4], [2,’on’,5], [4,’pass’,6]
];
seq.forEach(perform(s, i){
later(perform(){
clearSteps();
steps[s[0]].className=”step ” + s[1];
if(s[0] === 1) setBudget(turns + 1);
if(s[1] === ‘fail’) doc.getElementById(‘bvTok’).textContent=”gate output returned”;
if(s[1] === ‘cross’){ doc.getElementById(‘bvTok’).textContent=”inside price range”; }
}, cut back ? i*60 : i*900);
});
}
doc.getElementById(‘runLoop’).addEventListener(‘click on’, runLoop);
doc.getElementById(‘stopLoop’).addEventListener(‘click on’, perform(){ clearTimers(); clearSteps(); setBudget(0); doc.getElementById(‘bvTok’).textContent=”bounded”; });
ping();
})();
