Wiki · Funkce do hloubky

Pluginy

Plugin je cizí kód uvnitř agenta — proto se sám nespustí. Co umí, jak ho povolit a jak se liší od MCP serveru.

🧩
Plugin je cizí kód, který běží uvnitř agenta — proto se sám od sebe nespustí. Hermes pluginy najde a ukáže, ale nic, co přidává nástroje nebo se věší na události, se nenačte, dokud ho výslovně nepovolíte. To je celý bezpečnostní model a stojí za to ho znát dřív, než něco nainstalujete.

Co plugin je

Obyčejná složka v ~/.hermes/plugins/ s manifestem a kusem Pythonu:

~/.hermes/plugins/muj-plugin/ ├── plugin.yaml # název, verze, popis ├── __init__.py # register(ctx) — co plugin přidá ├── schemas.py # co vidí model (schémata nástrojů) └── tools.py # co se opravdu spustí

Po startu se nástroje z pluginu objeví vedle vestavěných a model je může hned volat. Nejmenší funkční plugin má dva soubory — plugin.yaml a __init__.py s funkcí register(ctx).

Co všechno plugin umí

SchopnostPříklad použití
Přidat nástrojeVlastní API vaší firmy jako nástroj, který model volá
Věšet se na události (hooky)Logovat každé volání nástroje, upozornit před spuštěním příkazu
Přidat lomítkové příkazy/muj-prikaz v chatu i v bráně
Přidat příkazy do termináluhermes muj-plugin neco
Přibalené skillyPlugin si nese vlastní skilly jako plugin:skill
Platforma pro zprávyNová chatovací síť vedle Telegramu a Discordu
Backend pro obrázky, video, terminál, paměťJiný model obrázků nebo úložiště paměti
Způsob schvalováníPotvrzení nebezpečných kroků jinam než do chatu (např. do jiné aplikace)

Povolení: nic se nespustí samo

Plugin se po vložení do složky objeví v přehledu, ale jeho nástroje a hooky se nenačtou, dokud jeho název nepřidáte do plugins.enabled v config.yaml:

plugins: enabled: - muj-plugin disabled: # volitelný seznam zakázaných — při konfliktu vždy vyhraje - hlučný-plugin
hermes plugins # přehled a přepínání (mezerou zaškrtnete) hermes plugins enable muj-plugin hermes plugins disable muj-plugin

Pozor na výjimku: hooky brány ve ~/.hermes/hooks/<název>/ nejsou pluginy a allow-list je neřídí — spouští se pouhým položením souborů na to místo. Kdo tam něco dá, tomu to poběží při každém startu.

Katalog: instalace jménem

Pro ručně prohlédnuté pluginy existuje katalog. Instalace jménem stáhne přesně ten commit, který někdo zkontroloval (pinovaný SHA), ne špičku větve:

hermes plugins install <název-z-katalogu> hermes plugins enable <název> # instalace sama plugin nezapne
Údaj v kataloguCo znamená
tierofficial (spravuje NousResearch) nebo community
shaPřesný 40znakový commit, který prošel revizí
capabilitiesJaké nástroje, hooky a proměnné prostředí plugin deklaruje
requires_hermesMinimální verze Hermese, kterou plugin potřebuje

Vestavěné pluginy, které Hermes vozí s sebou (například disk-cleanup, security-guidance, google_meet, hermes-achievements), jsou také opt-in — zapínají se stejně jako ostatní. Důvod je jednoduchý: aby po aktualizaci někdo nepřišel o nástroje, které nikdy nechtěl.

Časové limity, které se hodí vědět

NastaveníVýchozíK čemu
clone_timeout_seconds300 sKolik může trvat stažení pluginu z gitu
load_timeout_seconds10 sKolik může trvat načtení jednoho pluginu; pomalejší se přeskočí s důvodem
hook_callback_timeout30 sLimit pro Python hooky; hook před voláním nástroje při vypršení nástroj zablokuje

Plugin, nebo MCP server?

PluginMCP server
Kde běžíUvnitř procesu agentaSamostatný proces, agent se k němu připojuje
Umí zasahovat do agentaAno — hooky, schvalování, paměť, platformyNe — jen nabízí nástroje
Vhodné proZměnu chování agenta, napojení interních částíCizí služby a API, která mají vlastní život
RizikoVětší — kód běží ve stejném procesuMenší — izolovaný proces s vlastními právy

V našem provozu platí: na cizí služby MCP, na zásahy do agenta plugin. Externí nástroje (vyhledávání, prohlížeč, dokumentace) máme jako MCP servery, protože se dají restartovat a omezit zvlášť.

Na co si dát pozor

SituaceCo s tím
Plugin po hermes update mlčíZkontrolujte /plugins a log startu — plugin mohl narazit na load_timeout_seconds nebo na novou verzi
Projekt má vlastní ./.hermes/plugins/Projektové pluginy jsou vypnuté; zapínají se jen pro důvěryhodné repozitáře přes HERMES_ENABLE_PROJECT_PLUGINS=true
Plugin něco blokujeHook pre_tool_call může nástroj zakázat — hledejte ho v pluginu, ne v oprávněních
Chcete plugin vyzkoušet bez rizikaZaložte nový profil a zapněte ho tam; produkce zůstane nedotčená (viz stránka o profilech)

Kam dál

← Zpět na wiki