Wiki · Funkce do hloubky

Nástroje a toolsety

Agent umí jen to, na co má nástroj. Tady je, co dostane po instalaci, jak se sady zapínají a vypínají a na co si dát pozor.

🧰
Nástroj je to, čím agent skutečně něco udělá. Mluvit umí každý model — ale zapsat soubor, spustit příkaz, otevřít web nebo se zeptat databáze dokáže jen tehdy, když má na to nástroj. Sada nástrojů (toolset) je pak balík, který se zapíná a vypíná celý najednou.

Nástroje versus sada nástrojů

Rozdíl je jako mezi nářadím a kufrem: nástroj je jedna věc, sada je kufr, který se bere na stavbu. Vy rozhodujete, jaké kufry agent dostane — a tím i to, co může dělat.

PojemCo to jePříklad
NástrojJedna konkrétní schopnost s pevným zadáním a výstupemweb_search, read_file, terminal, delegate_task
Sada nástrojůSkupina nástrojů, která se zapíná nebo vypíná jako celekweb, file, terminal, coding
Připojení (MCP)Cizí program, který si přinese vlastní nástrojedatabáze, firemní systém, nástroj třetí strany

Co agent umí bez nastavování

Po instalaci má agent k dispozici širokou sadu nástrojů. Rozdělení podle oblastí:

OblastPříklady nástrojůK čemu
Webweb_search, web_extractHledání a čtení stránek
Terminál a souboryterminal, read_file, patch, processPráce na serveru a v souborech
Prohlížečbrowser_navigate, browser_snapshot, browser_execSkutečný prohlížeč, kde je potřeba klikat
Médiavision_analyze, image_generate, text_to_speechPodívat se na obrázek, vyrobit obrázek nebo hlas
Plánování a rozdělení prácetodo, clarify, execute_code, delegate_taskRozdělit úkol, zeptat se, spustit skript, poslat práci podagentovi
Paměť a historiememory, session_searchTrvalé poznámky a hledání ve starých rozhovorech
Plánované úlohycronjob_manageÚkoly, které běží samy podle času

Přesný seznam si vypíšete kdykoli: hermes tools.

Zapnutí a vypnutí sady nástrojů

Když chcete, aby agent uměl jen to, co potřebujete, sady omezíte. Méně nástrojů = méně prostoru pro omyl a rychlejší odpovědi.

❯ hermes chat --toolsets "web,terminal" # jen tyto dvě sady ❯ hermes chat --toolsets all # všechno, co je k dispozici ❯ hermes tools # přehled a zaškrtávání

Trvale se to nastavuje v souboru config.yaml profilu — buď výčtem povolených sad, nebo naopak seznamem zakázaných:

# ~/.hermes/config.yaml enabled_toolsets: [web, file, terminal] disabled_toolsets: [browser] # prohlížeč nebude vůbec potřeba

Pozor: web_search schválně není součástí sady browser, takže vypnutím prohlížeče nepřijdete o hledání na webu.

Když je nástrojů moc

Se dvěma stovkami zapnutých nástrojů se model ztrácí — popisy všech nástrojů zabírají místo, které by mohlo patřit vašemu zadání. Hermes to řeší hledáním v nástrojích: venku nechá jen pár nejpoužívanějších a ostatní si vyžádá až ve chvíli, kdy je potřebuje.

Kdy to nastaneCo se stane
Nástrojů je hodně (typicky přes 30)Některé nástroje se schovají za hledání; agent si o ně řekne sám
Je to potřebaOdpovědi jsou rychlejší a levnější, model se nerozptyluje
Není to vhodnéKdyž má agent dělat jednu úzkou věc pořád dokola — pak je lepší zapnout málo sad a hledání vypnout

Prakticky: když agent na váš dotaz sáhne po nástroji, který jste nečekali, podívejte se, jestli nemá zapnutých sad víc, než potřebujete. Nastavení se dělá příkazem hermes tools — bez ručního editování souborů.

Kde nástroje běží (terminálové zázemí)

Dokud agent spouští příkazy na vašem serveru, mluvíme o „místním“ zázemí. Jde to ale i jinam — to se hodí, když mu nechcete dávat přístup do svého systému, nebo naopak když potřebujete jiné prostředí, než máte na serveru.

ZázemíKdy se hodíNastavení
local (výchozí)Vlastní server nebo VPS — nejjednodušší a nejrychlejšínení co nastavovat
vzdálený počítač přes SSHPráce na jiném stroji, který už mátepřihlašovací údaje v nastavení zázemí
kontejner (Docker)Chcete oddělit, co agent smí — vidí jen kontejnerterminal.backend v config.yaml
cloudové pískoviště (např. Modal, Vercel Sandbox)Nemáte vlastní server a chcete, aby běžel jen na dobu úlohyterminal.backend + přístupové údaje
❯ hermes config set terminal.backend modal ❯ hermes config set terminal.backend singularity

Kontejner není bezpečnostní záruka sám o sobě: chrání jen to, co do něj agent nemá jak pustit. O oprávněních a schvalování příkazů je samostatná stránka Bezpečnost.

Dlouhé úlohy a správcovská práva

SituaceJak to funguje
Úloha běží dlouho (záloha, kopírování, sledování logu)Agent ji pustí na pozadí a může dělat jinou práci; stav si kdykoli vyžádá
Příkaz potřebuje sudoV interaktivním rozhovoru se objeví maskované pole pro heslo (v rámci sezení si ho pamatuje). Do kontejneru nebo na chat se heslo neposílá
Příkaz bez hesla, ale s právyFunguje bez dotazu — není co vyplňovat
Úloha v podagentoviHeslo vyplnit nelze — takový příkaz se musí spustit v hlavním rozhovoru

Tři pasti z našeho provozu

Co se staloJak se to pozná a co s tím
Nástroj hlásil úspěch, ale nic se nestalo. Volání prošlo, výstup vypadal dobře, změna nikdeNeptejte se nástroje, jestli to udělal — ověřte výsledek jinde: v souboru, dotazem do databáze, HTTP kódem stránky. Do zadání pište, jak má být práce ověřená
Připojený nástroj vracel data z jiného projektu. Server odpovídal správně, ale cizí databází (měli jsme dva projekty a jeden nástroj mezi nimi)U cizích nástrojů si ověřte, na co jsou připojené, a ptejte se na konkrétní řádek, který znáte. Když nesedí, řešte připojení, ne agenta
Tajné údaje se ve výstupu objevily jako ***Hermes tajemství ve výstupu maskuje. Nikdy je neověřujte tím, že si je necháte vypsat — výpis vyjde prázdný nebo falešně, i když je údaj správně. Používejte je přímo v příkazu

Naše tipy

TipProč
Zapínejte jen sady, které opravdu používáteMéně nástrojů znamená rychlejší a přesnější odpovědi
Do zadání pište, čím se má práce ověřit„Ať stránka vrací 200“ nebo „ukaž mi řádek z databáze“ — pak se nedá nic jen tvrdit
Když agent umí všechno, ale nic pořádně, zužte rozsahÚzké sady + jasné zadání dělají lepší výsledky než hromada nástrojů
Nové připojení testujte na tom, co znáteJednoduchý dotaz s očekávanou odpovědí odhalí špatné připojení dřív, než na něm postavíte práci

Kam dál

← Zpět na wiki