Nous Analysis has shipped Bot Mode for Hermes Agent, its MIT-licensed open supply agent. Bot Mode replaces the single-agent session listing with a roster of named bots. Every bot is an actual Hermes profile, with its personal chat, reminiscence, abilities, and pinned mannequin. Bots message one another by means of a persistent Agent Inbox and hand work off by @point out. The characteristic launched as a one-day public beta plugin from co-founder Teknium. It now ships bundled and default-on inside Hermes Desktop, in Hermes Agent v0.20.3.
Is it deployable?
Sure — at the moment, on a desktop, at no license price. Bot Mode shipped first as a one-day public beta plugin. It’s now bundled and default-on inside Hermes Desktop, underneath Settings → Plugins. Each Hermes Agent and the plugin are MIT licensed.
Which corporations: Solo builders, startups, and small-to-mid engineering groups can undertake it instantly. Enterprises ought to deal with it as a workstation device, not managed infrastructure. There isn’t any admin console, no SSO, no central audit log, and no coverage layer. Regulated patrons will want their very own controls round it.
Industries: Software program engineering, AI analysis labs, technical media and content material operations, developer relations, quantitative analysis, and IT operations.
Functions: A analysis bot pinned to a reasoning mannequin beside a writing bot on a less expensive one. Scheduled inbox digests and nightly reviews. Per-project brokers that by no means leak context into one another. Handoff chains the place a scout, a reviewer, and a writer move work by @point out.
The way it works underneath the hood
The fascinating level right here is {that a} bot is a Hermes profile. Each lives underneath ~/.hermes/profiles/ with remoted config, reminiscence, abilities, credentials, and chat historical past. The plugin is a consumer interface over a primitive Hermes already shipped.
That alternative retains the floor space small. Creation and modifying journey the profiles.* gateway RPCs: listing, create, describe, configure. Avatar technology makes use of the picture.generate RPC over native and distant gateways. Routines are strange Hermes cron jobs, namespaced [bot:. They nonetheless seem in hermes cron listing.
Bot-to-bot messaging is identical story. Each bot has a persistent Agent Inbox dialog. Messages between bots are actual CLI handoffs: hermes -p . They arrive with attribution, and every bot’s SOUL.md teaches the reply protocol. Typing @researcher take a look at this makes the lively bot hand off and report again.
Configuration you truly get per bot
The New Agent dialog asks for title, title, and outline. An Superior disclosure opens the total profile config. You’ll be able to clone an present profile, pin a supplier and mannequin, write a customized SOUL.md, or skip abilities. Proper-clicking a bot exposes Edit Profile, which edits the reside profile. That covers per-skill and per-toolset enablement, the mannequin pin, and the SOUL.md. Duplicate clones config, abilities, SOUL.md, reminiscence, and look.
Avatars are geometric faces in seven shapes and ten colours. You too can add a picture, generate a portrait, or connect a pixel pet. The eyes scan whereas the bot works.
From one-day beta to bundled default
The rollout was quick. Teknium ran a one-day public beta by means of the standalone plugin and requested for bug reviews. He dedicated to folding it into the primary desktop app. That has now occurred. Per hermes-agent PR #87886, Bot Mode is bundled and default-on, and the standalone repository is archived. Growth continues in-tree at apps/desktop/src/plugins/hermes-bots/. The bundled plugin and its core teammate protocol landed in Hermes Agent v0.20.3.
The in-tree model added functionality the beta didn’t have. Teams organise the roster into labeled sections that sync throughout machines. Group chats open a shared room for 2 to 6 bots. Your message triggers as much as three serial rounds of member turns. Talked about bots reply, everybody responds when no one is talked about, and every bot replies briefly or passes. A multi-source roster pulls bots from each connection underneath Settings → Connections.
Interactive explainer
/* tabs */
var tabs=root.querySelectorAll(‘.hbm-tab’),panels=root.querySelectorAll(‘.hbm-panel’);
tabs.forEach(operate(b){b.addEventListener(‘click on’,operate(){
tabs.forEach(operate(x){x.classList.take away(‘on’);});
panels.forEach(operate(x){x.classList.take away(‘on’);});
b.classList.add(‘on’); panels[+b.dataset.p].classList.add(‘on’); publish();
});});
/* P0 */
var sess=[‘Draft the launch post’,’Debug the cron job’,’Compare two GPUs’,’Summarise this paper’];
$(‘hbmSessList’).innerHTML=sess.map(operate(s){
return ‘
H‘+s+’
‘;
}).be a part of(”);
$(‘hbmBotList’).innerHTML=BOTS.slice(0,4).map(operate(b,i){
return ‘
‘+b.n.charAt(0).toUpperCase()+’‘+b.n+’
‘+b.t+’
‘;
}).be a part of(”);
/* P1 */
operate anat(i){
root.querySelectorAll(‘#hbmAnatList .hbm-row’).forEach(operate(r,j){r.classList.toggle(‘on’,i===j);});
var b=BOTS[i];
$(‘hbmPath’).textContent=”~/.hermes/profiles/”+b.n+’/’;
$(‘hbmA1’).textContent=b.m; $(‘hbmA2’).textContent=b.s;
$(‘hbmA3’).textContent=b.okay; $(‘hbmA4’).textContent=b.r;
var bar=$(‘hbmA5’); bar.fashion.width=”0″; setTimeout(operate(){bar.fashion.width=”100%”;},40);
}
$(‘hbmAnatList’).innerHTML=BOTS.slice(0,5).map(operate(b,i){
return ‘
‘+face(i)+’‘+b.n+’ · ‘+b.t+’
‘;
}).be a part of(”);
root.querySelectorAll(‘#hbmAnatList .hbm-row’).forEach(operate(r){
r.addEventListener(‘click on’,operate(){anat(+r.dataset.i);publish();});
});
anat(0);
/* P2 */
var goal=0;
operate chips(){
$(‘hbmChips’).innerHTML=BOTS.slice(0,4).map(operate(b,i){
return ‘@’+b.n+’‘;
}).be a part of(”);
root.querySelectorAll(‘#hbmChips .hbm-chip’).forEach(operate(c){
c.addEventListener(‘click on’,operate(){goal=+c.dataset.i;chips();cmd();publish();});
});
}
operate cmd(){
$(‘hbmCmd’).textContent=”hermes -p “+BOTS[target].n+’ chat -c “Agent Inbox” -q “take a look at this”‘;
}
operate runHandoff(){
var st=$(‘hbmHandoff’); st.innerHTML=”;
var p=$(‘hbmPulse’); p.classList.take away(‘go’); void p.offsetWidth; p.classList.add(‘go’);
var strains=[
[‘you’,’@’+BOTS[target].n+’ take a look at this’],
[‘active bot’,’hands the message off and blocks on the reply’],
[BOTS[target].n,’reads [Message from agent u2018senderu2019] in its Agent Inbox’],
[BOTS[target].n,’solutions utilizing its personal reminiscence, abilities and pinned mannequin’],
[‘active bot’,’reports the reply back to you in this chat’]
];
strains.forEach(operate(l,i){
setTimeout(operate(){
var d=doc.createElement(‘div’); d.className=”hbm-msg”;
d.innerHTML=’‘+l[0]+’ → ‘+l[1];
st.appendChild(d); publish();
}, 260*i+180);
});
}
chips(); cmd();
$(‘hbmRun’).addEventListener(‘click on’,runHandoff);
$(‘hbmReset’).addEventListener(‘click on’,operate(){$(‘hbmHandoff’).innerHTML=”;publish();});
runHandoff();
/* P3 */
operate gstats(){
var n=+$(‘hbmSize’).worth, males=$(‘hbmMention’).checked;
var act=males?Math.min(2,n):n;
$(‘hbmSizeV’).textContent=n;
$(‘hbmG1′).textContent=act+’ of ‘+n;
$(‘hbmG2’).textContent=(act*3);
}
operate room(){
var n=+$(‘hbmSize’).worth, males=$(‘hbmMention’).checked;
var act=males?2:n, st=$(‘hbmRoom’); st.innerHTML=”;
var out=[[‘you’, men?(‘@’+BOTS[0].n+’ @’+BOTS[1].n+’ ship the discharge notice’):’ship the discharge notice’]];
for(var r=1;r<=3;r++){
for(var i=0;i
st.appendChild(d); st.scrollTop=st.scrollHeight; publish();
},110*i+120);
});
}
$(‘hbmSize’).addEventListener(‘enter’,operate(){gstats();publish();});
$(‘hbmMention’).addEventListener(‘change’,operate(){gstats();publish();});
$(‘hbmPlay’).addEventListener(‘click on’,room);
$(‘hbmClear’).addEventListener(‘click on’,operate(){$(‘hbmRoom’).innerHTML=”;publish();});
gstats(); room();
/* auto-resize */
operate publish(){
strive{
if(window.guardian&&window.guardian!==window){
window.guardian.postMessage({hbmHeight:(root.offsetHeight+40)},’*’);
}
}catch(e){}
}
setTimeout(publish,120); setTimeout(publish,700); setTimeout(publish,1800);
window.addEventListener(‘resize’,publish);
})();
Must associate with us for selling your GitHub Repo OR Hugging Face Web page OR Product Launch OR Webinar and so on.? Join with us









