Infini-AI-Lab has launched Hermit, an open-source harness adapter framework for AI brokers. Hermit is a framework from Infini-AI-Lab that trains an exterior ‘harness adapter’ whereas the agent’s mannequin and harness keep frozen. The first release, v0.1.0, shipped on October 25, 2026. CMU postdoc Haizhong Zheng introduced it on X on October 27. For builders, the pitch is easy: adapt Codex or Claude Code brokers to new duties with out fine-tuning or forking the harness.
TL;DR
- Footprint: A Python framework. No parameters of its personal. Apache-2.0,
pip set up hermit-harness. - Runs on: The offline Fast Begin wants no GPU, mannequin account or dataset. Actual runs use any API backend or a neighborhood vLLM, SGLang or Ollama server.
- Efficiency: Reported positive factors over no-adapter baselines on OfficeQA, CL-Bench and ServeLearnBench, all with GLM 5.3 Flash.
- Finest: MWM adapter hits 0.795 accuracy on CL-Bench database exploration, vs 0.580 for the in-context baseline.
- Worst: The prompt-only adapter scores 0.470 on the identical venue, under that 0.580 baseline.
- Backside line: Finest: one coaching loop for five harness evolution strategies. Worst: most outcomes are single runs, self-reported.
What’s a harness adapter?
A harness adapter is a trainable exterior harness. It really works like a plugin with coaching help inbuilt. A mannequin adapter, similar to LoRA, adapts a mannequin. A harness adapter adapts an present agent as a substitute.
The adapter can maintain directions, expertise, reminiscence, instruments, executable code and agent coordination logic. It will possibly even be an entire repository. Its specification says which elements are learnable and the way updates get checked. The bottom mannequin and harness by no means change.
The workforce offers 3 causes for this design. Many harnesses are closed-source. Modifying open ones can break fastidiously tuned element interactions. And a discovered adapter can transfer between appropriate fashions and harnesses.
How does Hermit prepare an adapter?
Hermit makes use of an RL-style training loop. A Coach runs a batch of duties via the appearing agent with the present adapter. A decide scores the outputs. An Evolver reads the trajectories and suggestions, then proposes a brand new adapter. The Coach checks it in opposition to the template and commits it as the subsequent model.
Each adapter model lives in a git tree. You may examine, roll again or ship any model. Learner packages can run sandboxed, which requires Linux with bubblewrap.
5 evolution strategies ship at the moment: GEPA, SkillOpt, MetaWorld Mannequin (MWM), Harness² and Continual Harness. ACE and ReHarness are listed as coming quickly. It’s also possible to write your individual Evolver.
<meta identify="viewport" content material="width=device-width, initial-scale=1">
<type>
html,physique{margin:0!necessary;padding:0!necessary;background:clear!necessary}
#mtp-hermit-x{–bg:#1B1D22;–card:#23262d;–line:#33363f;–ink:#F1F0EA;–mut:#9a9ea8;–cu:#C6743C;–cu2:#E08E52;–bl:#8ab6e4;–grn:#76B900;
max-width:880px;margin:0 auto;background:var(–bg)!necessary;shade:var(–ink)!necessary;border:1px stable var(–line)!necessary;border-radius:16px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden;box-sizing:border-box}
#mtp-hermit-x *{box-sizing:border-box}
#mtp-hermit-x hr,#mtp-hermit-x p:empty,#mtp-hermit-x del,#mtp-hermit-x s{show:none!necessary}
#mtp-hermit-x .hd{padding:22px 26px 14px;border-bottom:1px stable var(–line)!necessary;background:linear-gradient(135deg,#1B1D22 0%,#2a2017 100%)!necessary}
#mtp-hermit-x .eb{font-size:11px;letter-spacing:.14em;text-transform:uppercase;shade:var(–cu2)!necessary;font-weight:700}
#mtp-hermit-x h3{margin:6px 0 4px!necessary;font-size:22px!necessary;line-height:1.25!necessary;shade:var(–ink)!necessary;font-weight:800!necessary}
#mtp-hermit-x .sub{margin:0!necessary;shade:var(–mut)!necessary;font-size:14px}
#mtp-hermit-x .tabs{show:flex;hole:6px;padding:12px 18px;border-bottom:1px stable var(–line)!necessary;flex-wrap:wrap}
#mtp-hermit-x .tab{background:clear!necessary;shade:var(–mut)!necessary;border:1px stable var(–line)!necessary;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}
#mtp-hermit-x .tab:hover{shade:var(–ink)!necessary;border-color:var(–cu)!necessary}
#mtp-hermit-x .tab.on{background:var(–cu)!necessary;shade:#1B1D22!necessary;border-color:var(–cu)!necessary}
#mtp-hermit-x .pn{show:none;padding:22px 26px;animation:mhx-in .35s ease}
#mtp-hermit-x .pn.on{show:block}
@keyframes mhx-in{from{opacity:0;remodel:translateY(6px)}to{opacity:1;remodel:none}}
#mtp-hermit-x .lead{shade:var(–ink)!necessary;font-size:15px;line-height:1.55;margin:0 0 16px!necessary}
#mtp-hermit-x .lead b{shade:var(–cu2)!necessary}
/* Adapter diagram */
#mtp-hermit-x .dg{show:grid;grid-template-columns:1fr 56px 1fr;align-items:heart;hole:0;margin:4px 0 14px}
#mtp-hermit-x .field{background:var(–card)!necessary;border:1px stable var(–line)!necessary;border-radius:12px;padding:14px}
#mtp-hermit-x .field h4{margin:0 0 8px!necessary;font-size:13px!necessary;letter-spacing:.06em;text-transform:uppercase;shade:var(–mut)!necessary}
#mtp-hermit-x .frz{place:relative}
#mtp-hermit-x .frz:after{content material:"FROZEN";place:absolute;prime:10px;proper:10px;font-size:10px;font-weight:800;letter-spacing:.1em;shade:var(–bl)!necessary;border:1px stable var(–bl)!necessary;border-radius:6px;padding:2px 6px}
#mtp-hermit-x .chip{show:inline-block;margin:3px 4px 3px 0;padding:5px 9px;border-radius:8px;font-size:12px;font-weight:600;background:#2c2f37!necessary;shade:var(–ink)!necessary;border:1px stable var(–line)!necessary;cursor:pointer;transition:all .2s}
#mtp-hermit-x .advert .chip{border-color:#6b4423!necessary}
#mtp-hermit-x .chip:hover,#mtp-hermit-x .chip.sel{background:var(–cu)!necessary;shade:#1B1D22!necessary;border-color:var(–cu)!necessary}
#mtp-hermit-x .advert{border-color:var(–cu)!necessary;box-shadow:0 0 0 0 rgba(198,116,60,.5);animation:mhx-glow 2.4s infinite}
@keyframes mhx-glow{0%{box-shadow:0 0 0 0 rgba(198,116,60,.45)}70%{box-shadow:0 0 0 12px rgba(198,116,60,0)}100%{box-shadow:0 0 0 0 rgba(198,116,60,0)}}
#mtp-hermit-x .plug{top:4px!necessary;background:linear-gradient(90deg,var(–bl),var(–cu))!necessary;border-radius:4px;place:relative;margin:0 6px}
#mtp-hermit-x .plug:earlier than{content material:"";place:absolute;prime:-4px;left:0;width:12px;top:12px;border-radius:50%;background:var(–cu2)!necessary;animation:mhx-dot 1.8s linear infinite}
@keyframes mhx-dot{from{left:0}to{left:calc(100% – 12px)}}
#mtp-hermit-x .information{min-height:44px;background:#16181c!necessary;border:1px dashed var(–line)!necessary;border-radius:10px;padding:10px 12px;font-size:13.5px;shade:var(–ink)!necessary;line-height:1.5}
/* Loop */
#mtp-hermit-x .loop{show:grid;grid-template-columns:repeat(5,1fr);hole:8px;margin-bottom:14px}
#mtp-hermit-x .st{background:var(–card)!necessary;border:1px stable var(–line)!necessary;border-radius:12px;padding:12px 10px;text-align:heart;transition:all .3s;opacity:.55}
#mtp-hermit-x .st .n{font-size:11px;font-weight:800;shade:var(–mut)!necessary}
#mtp-hermit-x .st .t{font-size:13.5px;font-weight:700;margin-top:4px;shade:var(–ink)!necessary}
#mtp-hermit-x .st.on{opacity:1;border-color:var(–cu)!necessary;remodel:translateY(-3px);box-shadow:0 6px 18px rgba(198,116,60,.25)}
#mtp-hermit-x .st.on .n{shade:var(–cu2)!necessary}
#mtp-hermit-x .ctl{show:flex;hole:8px;align-items:heart;margin-top:12px;flex-wrap:wrap}
#mtp-hermit-x .btn{background:var(–cu)!necessary;shade:#1B1D22!necessary;border:0!necessary;border-radius:8px;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
#mtp-hermit-x .btn.gh{background:clear!necessary;shade:var(–ink)!necessary;border:1px stable var(–line)!necessary}
#mtp-hermit-x .ver{margin-left:auto;font-size:13px;shade:var(–mut)!necessary}
#mtp-hermit-x .ver b{shade:var(–cu2)!necessary;font-size:16px}
/* Bars */
#mtp-hermit-x .seg{show:flex;hole:6px;margin-bottom:14px;flex-wrap:wrap}
#mtp-hermit-x .bars{show:flex;flex-direction:column;hole:9px}
#mtp-hermit-x .row{show:grid;grid-template-columns:170px 1fr 56px;align-items:heart;hole:10px;font-size:13px}
#mtp-hermit-x .row .lb{shade:var(–ink)!necessary}
#mtp-hermit-x .row .tr{top:16px!necessary;background:#2a2d34!necessary;border-radius:6px;overflow:hidden}
#mtp-hermit-x .row .fl{top:100%!necessary;width:0;border-radius:6px;background:#5c616d!necessary;transition:width 1s cubic-bezier(.2,.8,.2,1)}
#mtp-hermit-x .row.hl .fl{background:linear-gradient(90deg,var(–cu),var(–cu2))!necessary}
#mtp-hermit-x .row.hl .lb{font-weight:700;shade:var(–cu2)!necessary}
#mtp-hermit-x .row .v{font-weight:700;text-align:proper;font-variant-numeric:tabular-nums;shade:var(–ink)!necessary}
#mtp-hermit-x .notice{font-size:12px;shade:var(–mut)!necessary;margin-top:12px;line-height:1.5}
/* Deploy */
#mtp-hermit-x .time period{background:#0f1013!necessary;border:1px stable var(–line)!necessary;border-radius:10px;padding:14px;font-family:ui-monospace,SFMono-Common,Menlo,monospace!necessary;font-size:12.5px;shade:#d7d4c8!necessary;line-height:1.7;overflow-x:auto;white-space:pre}
#mtp-hermit-x .time period .p{shade:var(–cu2)!necessary}
#mtp-hermit-x .time period .c{shade:#6B6F7A!necessary}
#mtp-hermit-x .hosts{show:flex;hole:8px;flex-wrap:wrap;margin:12px 0}
#mtp-hermit-x .ft{padding:12px 26px;border-top:1px stable var(–line)!necessary;font-size:12px;shade:var(–mut)!necessary;show:flex;justify-content:space-between;flex-wrap:wrap;hole:6px}
#mtp-hermit-x .ft .mtp{shade:#76B900!necessary;font-weight:700}
#mtp-hermit-x a{shade:var(–cu2)!necessary}
@media (max-width:640px){
#mtp-hermit-x .hd,#mtp-hermit-x .pn{padding:18px 16px}
#mtp-hermit-x h3{font-size:19px!necessary}
#mtp-hermit-x .dg{grid-template-columns:1fr;hole:10px}
#mtp-hermit-x .plug{top:24px!necessary;width:4px!necessary;margin:0 auto;background:linear-gradient(180deg,var(–bl),var(–cu))!necessary}
#mtp-hermit-x .plug:earlier than{show:none}
#mtp-hermit-x .loop{grid-template-columns:1fr 1fr}
#mtp-hermit-x .row{grid-template-columns:110px 1fr 48px;font-size:12px}
#mtp-hermit-x .ft{padding:12px 16px}
}
</type>
</head><physique><div id="mtp-hermit-x">
<div class="hd">
<div class="eb">Infini-AI-Lab · Hermit v0.1.0 · Apache-2.0</div>
<h3>How Hermit trains a harness adapter</h3>
<p class="sub">The adapter learns from process suggestions. The mannequin and harness keep frozen.</p>
</div>
<div class="tabs" position="tablist">
<button class="tab on" data-p="0">1 · The adapter</button>
<button class="tab" data-p="1">2 · Coaching loop</button>
<button class="tab" data-p="2">3 · Outcomes</button>
<button class="tab" data-p="3">4 · Deploy</button>
</div>
<div class="pn on" data-i="0">
<p class="lead">A <b>harness adapter</b> is a trainable exterior harness, like a plugin with coaching inbuilt. Click on any half to see what it does.</p>
<div class="dg">
<div class="field frz"><h4>Your agent</h4>
<span class="chip" data-d="The bottom mannequin. Hermit by no means updates its weights.">Mannequin</span>
<span class="chip" data-d="The present harness (for instance Codex or Claude Code). Hermit by no means edits it, so closed-source harnesses work too.">Harness</span>
</div>
<div class="plug" aria-hidden="true"></div>
<div class="field advert"><h4>Harness adapter</h4>
<span class="chip" data-d="Instruction recordsdata similar to ADAPTER.md or AGENTS.md that the agent reads as context.">Directions</span>
<span class="chip" data-d="Reusable expertise, together with executable helper scripts.">Expertise</span>
<span class="chip" data-d="Notes and saved information the agent carries throughout duties.">Reminiscence</span>
<span class="chip" data-d="Further instruments, such because the wm device MWM exposes for its world mannequin.">Instruments</span>
<span class="chip" data-d="Executable code. An adapter may be a whole repository.">Code</span>
<span class="chip" data-d="Coordination logic for a number of brokers, as within the Lean adapter that hyperlinks 5 Codex brokers.">Coordination</span>
</div>
</div>
<div class="information" id="mhx-info">Each adapter model is saved in a git tree, so you possibly can examine, roll again or ship anybody.</div>
</div>
<div class="pn" data-i="1">
<p class="lead">Hermit runs an <b>RL-style loop</b>, however the factor being up to date is the adapter, not the weights.</p>
<div class="loop">
<div class="st"><div class="n">STEP 1</div><div class="t">Run duties</div></div>
<div class="st"><div class="n">STEP 2</div><div class="t">Choose scores</div></div>
<div class="st"><div class="n">STEP 3</div><div class="t">Evolver proposes</div></div>
<div class="st"><div class="n">STEP 4</div><div class="t">Test vs template</div></div>
<div class="st"><div class="n">STEP 5</div><div class="t">Commit model</div></div>
</div>
<div class="information" id="mhx-step">Press Play to step via one coaching iteration.</div>
<div class="ctl">
<button class="btn" id="mhx-play"> Play</button>
<button class="btn gh" id="mhx-next">Subsequent step</button>
<button class="btn gh" id="mhx-reset">Reset</button>
<span class="ver">Adapter model <b id="mhx-v">V0</b></span>
</div>
<p class="notice">Constructed-in Evolvers: GEPA, SkillOpt, MetaWorld Mannequin (MWM), Harness², Continuous Harness. ACE and ReHarness are listed as coming quickly.</p>
</div>
<div class="pn" data-i="2">
<p class="lead">Self-reported outcomes, all with <b>GLM 5.3 Flash</b> because the appearing mannequin. Choose a benchmark.</p>
<div class="seg">
<button class="tab on" data-b="0">OfficeQA</button>
<button class="tab" data-b="1">CL-Bench database</button>
<button class="tab" data-b="2">ServeLearnBench (H)</button>
</div>
<div class="bars" id="mhx-bars"></div>
<p class="notice" id="mhx-bnote"></p>
</div>
<div class="pn" data-i="3">
<p class="lead">Prepare as soon as, then <b>deploy</b> the adapter into an agent workspace or export it as a local plugin.</p>
<div class="time period"><span class="p">$</span> pip set up hermit-harness
<span class="p">$</span> hermit prepare –config run.yaml
<span class="p">$</span> hermit eval –config run.yaml –adapter closing
<span class="p">$</span> hermit deploy –adapter DIR –workspace WS –host codex
<span class="p">$</span> hermit convert –adapter DIR –output OUT –target claude-code
<span class="c"># different convert targets: codex, pi, hermes</span></div>
<div class="hosts">
<span class="chip" data-d="Deploy goal and plugin export goal.">Codex</span>
<span class="chip" data-d="Deploy goal and plugin export goal.">Claude Code</span>
<span class="chip" data-d="Deploy goal and plugin export goal.">Pi</span>
<span class="chip" data-d="Plugin export goal.">Hermes</span>
</div>
<div class="information" id="mhx-dinfo">Backends by reference: Fireworks, OpenAI, Anthropic, DeepSeek, vLLM, SGLang, Ollama. The offline Fast Begin wants no GPU, mannequin account or dataset.</div>
</div>
<div class="ft"><span>Supply: github.com/Infini-AI-Lab/hermit · self-reported</span><span class="mtp">© Marktechpost</span></div>
</div>
<script>
(perform(){
var R=doc.getElementById(‘mtp-hermit-x’);if(!R)return;
perform ping(){strive{var h=R.offsetHeight+40;dad or mum.postMessage({mtpEmbedHeight:h,top:h,frameHeight:h},’*’);}catch(e){}}
var tabs=R.querySelectorAll(‘.tabs .tab’),pns=R.querySelectorAll(‘.pn’);
tabs.forEach(perform
perform wire(sel,out){R.querySelectorAll(sel).forEach(perform(c){c.addEventListener(‘click on’,perform(){R.querySelectorAll(sel).forEach(perform(x){x.classList.take away(‘sel’)});c.classList.add(‘sel’);doc.getElementById(out).textContent=c.textContent+’: ‘+c.getAttribute(‘data-d’);ping();});});}
wire(‘.dg .chip’,’mhx-info’);wire(‘.hosts .chip’,’mhx-dinfo’);
var steps=R.querySelectorAll(‘.st’),si=-1,ver=0,timer=null;
var msg=[‘The Trainer runs a batch of tasks through the acting agent with the current adapter.’,’Your judge scores each output and writes feedback.’,’An Evolver reads trajectories and feedback, then proposes a new adapter.’,’The Trainer checks the proposal against the adapter template.’,’The checked update is committed as the next adapter version.’];
perform go(i){si=i;steps.forEach(perform(s,okay){s.classList.toggle(‘on’,okay===i)});doc.getElementById(‘mhx-step’).textContent=msg[i];if(i===4){ver++;doc.getElementById(‘mhx-v’).textContent=”V”+ver;}}
perform subsequent(){go((si+1)%5)}
doc.getElementById(‘mhx-next’).onclick=perform(){cease();subsequent()};
doc.getElementById(‘mhx-play’).onclick=perform(){if(timer){cease();return}this.textContent=”❚❚ Pause”;subsequent();timer=setInterval(subsequent,1400)};
perform cease(){clearInterval(timer);timer=null;doc.getElementById(‘mhx-play’).textContent=”
Play”}
doc.getElementById(‘mhx-reset’).onclick=perform(){cease();si=-1;ver=0;steps.forEach(perform(s){s.classList.take away(‘on’)});doc.getElementById(‘mhx-v’).textContent=”V0″;doc.getElementById(‘mhx-step’).textContent=”Press Play to step via one coaching iteration.”};
var B=[
{max:1,fmt:3,rows:[[‘No adapter’,.541],[‘Initial skill’,.576],[‘GEPA’,.580],[‘SkillOpt’,.600],[‘Continual Harness’,.634,1],[‘Harness²’,.651,1]],n:’Accuracy on 172 take a look at questions. GEPA and SkillOpt are technique of 4 trainings, examined frozen. Continuous Harness and Harness² study whereas streaming the take a look at set as soon as. Normal error about 3.7 factors.’},
{max:1,fmt:3,rows:[[‘Stateless baseline’,.400],[‘Prompt-only’,.470],[‘ICL baseline’,.580],[‘MWM’,.795,1]],n:’Accuracy on a 40-question stream over an undocumented, drifting SQLite database. Imply of 5 stream orders.’},
{max:100,fmt:1,rows:[[‘Blind’,4.5],[‘Prompt-only’,18.8],[‘SkillOpt (leaderboard)’,22.0],[‘CH (leaderboard)’,28.7],[‘MWM’,45.3,1],[‘Oracle (policy given)’,89.2]],n:’retail_l3: 624 serving requests, 537 held-out assessments. H = rating on assessments that want the hidden coverage. One run every.’}];
var cur=0;
perform drawBars(okay){cur=okay;var d=B[k],el=doc.getElementById(‘mhx-bars’);el.innerHTML=”;d.rows.forEach(perform(r){var row=doc.createElement(‘div’);row.className=”row”+(r[2]?’ hl’:”);row.innerHTML='<span class="lb">’+r[0]+'</span><span class="tr"><span class="fl" type="show:block"></span></span><span class="v">’+r[1].toFixed(d.fmt)+'</span>’;el.appendChild(row);var f=row.querySelector(‘.fl’);setTimeout(perform(){f.type.width=(r[1]/d.max*100)+’%’},40);});doc.getElementById(‘mhx-bnote’).textContent=d.n;setTimeout(ping,60);}
R.querySelectorAll(‘.seg .tab’).forEach(perform(b){b.addEventListener(‘click on’,perform(){R.querySelectorAll(‘.seg .tab’).forEach(perform(x){x.classList.take away(‘on’)});b.classList.add(‘on’);drawBars(+b.getAttribute(‘data-b’));});});
drawBars(0);
window.addEventListener(‘load’,ping);window.addEventListener(‘resize’,ping);setTimeout(ping,300);
})();
</script>
</physique></html>”>
(perform(){var f=doc.getElementById(“mtp-hermit-frame”);window.addEventListener(“message”,perform(e));})();
What are the benchmark outcomes?
All runs under use GLM 5.3 Flash because the appearing mannequin. The numbers come from the repo’s instance READMEs and are self-reported.
OfficeQA (recipe) asks 172 take a look at questions on U.S. Treasury Bulletins, scored by actual match:
| Methodology | Accuracy |
|---|---|
| No adapter | 0.541 |
| Preliminary ability | 0.576 |
| GEPA | 0.580 |
| SkillOpt | 0.600 |
| Continuous Harness | 0.634 |
| Harness² | 0.651 |
GEPA and SkillOpt prepare on 50 questions and are examined frozen. Continuous Harness and Harness² as a substitute study whereas streaming the take a look at set as soon as. The workforce studies a +7.6 level acquire for Harness² over its reference run, with a 95% interval of +1.7 to +13.4.
CL-Bench (database, poker) assessments stateful environments from the Continual Learning Bench paper. On database exploration, MWM reaches 0.795 accuracy. The benchmark’s in-context baseline scores 0.580. On exploitable poker, MWM wins 3.08 large blinds per hand, vs 2.51 for in-context studying.
ServeLearnBench (recipe) streams 624 retail help requests beneath a hidden, shifting coverage. MWM scores 45.3 on hidden-policy assessments. The very best studying methodology on the leaderboard, CH, scores 28.7. An oracle given the coverage scores 89.2.
How does Hermit examine with different agent optimizers?
| Function | Hermit | GEPA | ACE | Agent Lightning |
|---|---|---|---|---|
| What it trains | Exterior harness adapter | Any textual content parameter (prompts, code) | Context playbook | Prompts and mannequin weights |
| Adjustments mannequin weights | No | No | Not disclosed | Sure, by way of RL or SFT |
| Strategies | 5 inbuilt, customized Evolvers | Reflective evolution, Pareto choice | Generator, Reflector, Curator | RL, immediate optimization, SFT |
| Deploy targets | Codex, Claude Code, Pi; plugin export | DSPy (dspy.GEPA) |
Not disclosed | LangChain, OpenAI Brokers SDK, AutoGen, CrewAI and extra |
| License | Apache-2.0 | MIT | Apache-2.0 | MIT |
| Key outcome | 0.795 on CL-Bench database (self-reported) | AIME 2025: 46.6% to 56.6% (GPT-4.1 Mini) | +10.6% on AppWorld | Not disclosed |
How do you put in and deploy it?
Set up from PyPI with pip set up hermit-harness, or clone the repo for examples. The CLI covers test, prepare, eval, deploy and convert. Fashions are referenced as <backend>/<mannequin id>. Supported backends embrace Fireworks, OpenAI, Anthropic, DeepSeek, vLLM, SGLang and Ollama.
hermit deploy writes a workspace for Codex, Claude Code or Pi. hermit convert exports a educated adapter as a local plugin for Codex, Claude Code, Pi or Hermes. A completed Lean collaboration adapter coordinates 5 Codex brokers proving one theorem collectively.
Key Takeaways
- Hermit trains an exterior adapter; mannequin and harness keep frozen.
- 5 strategies ship: GEPA, SkillOpt, MWM, Harness², Continuous Harness.
- MWM reaches 0.795 on CL-Bench database vs 0.580 in-context.
- Adapters deploy to Codex, Claude Code and Pi, or export as plugins.
- Outcomes are self-reported, largely single runs, with GLM 5.3 Flash.
Take a look at the GitHub repo, project page and docs. Additionally, be at liberty to comply with us on Twitter and don’t overlook to affix our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Have to companion with us for selling your GitHub Repo OR Hugging Face Web page OR Product Launch OR Webinar and many others.? Connect with us
The publish Infini-AI-Lab Releases Hermit, an Open-Supply Harness Adapter Framework for AI Brokers appeared first on MarkTechPost.

