Nástroje chatu
Chat může modelu umožnit volat nástroje. Tah se zapnutými nástroji spustí nativní vícekolovou smyčku: model vyžádá nástroj, Libre WebUI jej spustí pod identitou a oprávněními volajícího, výsledek vrátí modelu a smyčka pokračuje do odpovědi. Povoleno je nejvýše osm kol na tah a osm volání na kolo. Zastavení zruší volání modelu, běžící nástroje i čekající schválení.
Volání nástrojů se zaznamenávají jako normalizované události (chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1), které stejně proudí soukromou cestou WebSocket a trvalým proudem událostí. Obnovení nebo opětovné připojení proto přehraje stejný stav. Dokončený tah uloží volání s omezenými náhledy výsledků do zprávy asistenta.
Zapnutí nástrojů
Nástroje jsou ve výchozím stavu vypnuté. Správce je otevře v Nastavení → Správa uživatelů pouze správcům nebo všem. Každý tah je následně vybere přes ikonu klíče v editoru, která otevře hlavní přepínač a zaškrtávací pole pro jednotlivé nástroje a servery. Výběr může vazby profilu zúžit, nikdy rozšířit. Soukromé anonymní chaty nástroje nenabízejí, protože jde o vnější akci, která může zanechat schválení a auditní záznamy.
Profil asistenta (persona) může nástroje omezit: navázané servery, podmnožina vestavěných nástrojů, dovednosti a znalostní kolekce omezují, co model v relaci vidí.
Vestavěné nástroje
Chat obsahuje třináct nástrojů první strany. Všechny jsou jen pro čtení kromě změn poznámek a kalendáře, které procházejí schvalováním vedlejších účinků:
web_search— vyhledávač nakonfigurovaný správcem, který respektuje režim přístupu k webu.search_documents— hybridní hledání v nahraných dokumentech a znalostních kolekcích včetně sdílených; každá pasáž je citována s úsekem a místem zdroje.list_documents— vypíše dokumenty v rozsahu chatu s ID, typem a velikostí, aby model zvolil, co číst.read_document— přečte omezené okno dokumentu podle ID a posunu, označené zdrojem, pro soubory, kde samotné načítání nestačí.load_skill— načte úplné instrukce dovednosti podle slug; popis obsahuje manifest zapnutých dovedností, takže se načítají až při potřebě. Přibalené soubory se uvedou na konci.read_skill_file— přečte jeden soubor dovednosti podle slug a relativní cesty, takže velký dokument nespotřebuje kontext do otevření.list_notes— vypíše vlastní a sdílené poznámky s ID.read_note— přečte celý obsah poznámky podle ID.create_note— vytvoří poznámku a vyžaduje schválení vedlejšího účinku.update_note— nahradí obsah a zachová předchozí stav jako obnovitelnou verzi; vyžaduje schválení.list_calendar_events— vypíše vlastní a sdílené události v rozsahu epochových milisekund.create_calendar_event— vytvoří událost a vyžaduje schválení.delete_calendar_event— smaže událost podle ID a vyžaduje schválení.
Servery nástrojů
Správci registrují externí servery v Nastavení → Nástroje. Úvodní šablony předvyplní formulář včetně bezpečného veřejného ukázkového API:
- OpenAPI: specifikace JSON OpenAPI 3.x se jednou stáhne a připne digestem SHA-256. Každá operace se stane nástrojem;
GETje jen pro čtení a ostatní mají vedlejší účinek, dokud správce klasifikaci nezmění. Spuštění sestaví volání z připnuté operace—argumenty modelu nikdy nevolí cíl. - MCP (streamovatelné HTTP): seznam nástrojů serveru se stáhne přes JSON-RPC a připne stejně.
annotations.readOnlyHintoznačí pouze čtení. Servery stdio MCP nejsou záměrně podporované; externí procesy nikdy neběží ve webovém procesu.
Změněný přehled platí až po obnovení serveru správcem, které posune připnutou verzi a zachová přepsání jednotlivých nástrojů. Dostupnost serveru může být jen pro správce, všechny uživatele nebo založená na oprávnění společného modelu prostředků.
Credentials
Servery vyžadující ověření používají údaje jednotlivých uživatelů, bearer token nebo pojmenovaný header. Každý tajný údaj se šifruje s dodatečnými ověřenými daty, která jej vážou na přesného uživatele a server, zadává se v Nastavení → Nástroje a nikdy se nesdílí mezi účty.
Egress policy
Každý požadavek sám přeloží cíl, odmítne soukromé, loopback a metadata adresy a připne spojení k přeložené adrese, aby DNS rebind nemohl přesměrovat volání. Přesměrování se odmítá. Odpovědi mají omezenou velikost a volání pevný timeout. Přesné vnitřní hostitele lze povolit přes TOOLS_PRIVATE_NETWORK_ALLOWLIST; zůstávají připnuté a omezené. Výstup se vrací modelu jako nedůvěryhodný text.
Schválení
Nástroje jen pro čtení běží bez dotazu. Nástroj s vedlejším účinkem pozastaví tah a nabídne povolit jednou, pro chat, vždy na serveru nebo odmítnout. Rozhodnutí jsou trvalá; „vždy“ přežije restart a lze jej odvolat v Nastavení → Nástroje. Čekající požadavek vyprší po dvou minutách a model jej vidí jako odmítnutí. Odmítnutí a timeouty volání nikdy nespustí. Každé rozhodnutí a volání zanechá maskovanou auditní událost.
Příklady
Nejprve zapněte ikonu klíče v editoru; každý příklad níže je běžnou zprávou chatu.
web_search — vyhledání informací
Co se změnilo v nejnovějším vydání SQLite? Před odpovědí vyhledej informace na webu.
Model zavolá web_search s dotazem jako {"query": "SQLite latest release changelog"}, karta zobrazí získané úryvky a odpověď cituje nálezy. Vyhledávání na webu musí být nakonfigurované a povolené pro účet.
search_documents — dotazy na vlastní soubory
Nahrajte PDF nebo přidejte dokumenty do znalostní kolekce a napište:
Najdi v mých dokumentech ustanovení o ukončení a přesně je cituj.
Model zavolá search_documents s {"query": "termination clause"} a získá odpovídající pasáže označené zdrojovým dokumentem, takže je odpověď může citovat a připsat zdroji.
load_skill — použití uložené dovednosti
Vytvořte dovednost v Nastavení → Dovednosti (např. $release-notes, způsob psaní poznámek k vydání) a napište:
Vytvoř koncept poznámek k vydání pro tento diff pomocí $release-notes.
Model vidí dovednost v manifestu, zavolá load_skill {"slug": "release-notes"} pro úplné instrukce a řídí se jimi. Znak $ v editoru automaticky doplňuje slug dovedností.
Server OpenAPI — například API počasí
-
Nastavení → Nástroje → Registrovat server: název
Weather, typOpenAPI, základní URLhttps://api.example-weather.dev, URL specifikacehttps://api.example-weather.dev/openapi.json, režim ověřeníbearer. -
Specifikace se připne a operace se zobrazí jako nástroje, například
getForecast(GET, pouze čtení) acreateAlert(POST, vedlejší účinek). -
Každý uživatel si uloží vlastní klíč API na kartě serveru.
-
V chatu:
Jaké bude o víkendu počasí v Montrealu?
Model zavolá
weather__getForecast {"city": "Montreal"}a nástroj se spustí ihned; nástroje jen pro čtení se neptají.Upozorni mě, pokud dnes v noci teplota klesne pod -20.
weather__createAlertmá vedlejší účinek, takže se tah pozastaví s volbami Povolit jednou, Povolit pro tento chat, Vždy povolit nebo Odmítnout. Do výběru se nic neodešle.
Server MCP — například sledování problémů
-
Nastavení → Nástroje → Registrovat server: název
Issues, typMCP, základní URLhttps://mcp.example-tracker.dev/mcp, režimheaders názvemX-Api-Key. -
Seznam nástrojů se připne. Nástroje označené jen pro čtení, například
search_issues, běží volně; ostatní jakocreate_issuese nejprve zeptají. -
V chatu:
Najdi otevřené issues obsahující „database lock“ a založ nové se shrnutím vzoru.
issues__search_issuesběží ihned;issues__create_issuezobrazí přesné argumenty na schvalovací kartě, abyste si obsah mohli před povolením přečíst.
Proměnné prostředí
| Proměnná | Účinek |
|---|---|
TOOLS_ACCESS_MODE | Připnout funkci nástrojů k admins nebo all-users a uzamknout přepínač. |
TOOLS_PRIVATE_NETWORK_ALLOWLIST | Přesné názvy hostitelů, které lze překládat na soukromé adresy, oddělené čárkou. |
Hranice
- Volání nástrojů běží cestou WebSocket (přenos soukromé relace je záměrně vynechán) a trvalou generační cestou uložených chatů. Starší streamovací endpoint REST smyčku nástrojů nespouští.
- Agenti Work volají stejné servery přes stejnou bránu: jen běhy se sítí, servery bez uložených údajů se odfiltrují už při nabídce a nástroje s vedlejším účinkem hlídají schválení Work.
- Modely Gemini a agent CLI nástroje nedostávají; poskytovatelé Ollama, kompatibilní s OpenAI, Responses-API a Anthropic ano.
- Servery MCP se ověřují statickými údaji jednotlivých uživatelů; server podporující pouze interaktivní OAuth zatím nelze registrovat.