Přeskočit na hlavní obsah

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ů → Přístup a zásady → Přístup k nástrojům 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.

Přepínač Přístup k nástrojům se uloží okamžitě. Klikněte na něj, nebo jej klávesou Tab zaměřte a klávesou Space přepněte. Změna přístupu ponechá okno Nastavení i jeho pozici posunu beze změny.

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; GET je 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.readOnlyHint označí 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.

Interaktivní OAuth (MCP)​

Server MCP může přihlásit i každého člověka samostatně. Zaregistrujte jej s režimem ověření Interactive OAuth a Libre WebUI přečte výzvu WWW-Authenticate, kterou server vrátí, dojde po ní k metadatům chráněného prostředku, poté k metadatům autorizačního serveru a dynamicky zaregistruje klienta (RFC 7591), pokud to autorizační server nabízí. Poskytovatelé, kteří klienty automaticky neregistrují, si vezmou id klienta zadané správcem, a volitelně i tajemství, ve formuláři registrace; tajemství se ukládá zašifrované spolu s objevenými endpointy.

Každý pak stiskne Connect na kartě serveru a je přesměrován k poskytovateli. Tok používá PKCE (S256) se stavem CSRF a PKCE verifierem drženým v HttpOnly cookie vázané na daný jeden server. Callback vymění kód na serveru, uloží tokeny zašifrované se stejnou vazbou uživatel-server jako statické tajemství a pošle prohlížeč zpět do aplikace s příznakem stavu — přístupový ani refresh token se do stránky nikdy nedostane. Přístupové tokeny se obnovují automaticky minutu před vypršením, jednou na osobu a server i při souběhu více volání nástrojů. Když obnova není možná, volání nástroje se vrátí se žádostí o nové připojení místo anonymního selhání. Disconnect odstraní tokeny dané osoby a registraci ponechá; smazání serveru zapomene i objevenou konfiguraci.

Server, který odmítne neověřený výpis nástrojů, se přesto zaregistruje: jeho inventář se připne při prvním úspěšném připojení (a při každém obnovení správcem), takže se modelu nikdy nenabídne nic neznámého.

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í​

  1. Nastavení → Nástroje → Registrovat server: název Weather, typ OpenAPI, základní URL https://api.example-weather.dev, URL specifikace https://api.example-weather.dev/openapi.json, režim ověření bearer.

  2. Specifikace se připne a operace se zobrazí jako nástroje, například getForecast (GET, pouze čtení) a createAlert (POST, vedlejší účinek).

  3. Každý uživatel si uloží vlastní klíč API na kartě serveru.

  4. 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__createAlert má 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.

Exa MCP — vyhledávání a načítání webu​

V Nastavení → Nástroje → Začněte ze šablony zvolte Exa a předvyplňte registraci MCP hodnotou:

https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa

Adresa URL vybírá web_search_exa a web_fetch_exa pomocí parametru výběru nástrojů Exa. Šablona nepoužívá žádné ověřování a ve výchozím stavu omezuje přístup na správce. Zkontrolujte formulář a volbou Uložit připojte server a připněte seznam nástrojů. Otevření ani zrušení šablony Exa nekontaktuje. Dotazy vyhledávání a požadované adresy URL se odešlou do Exa až při spuštění nástrojů.

Server MCP — například sledování problémů​

  1. Nastavení → Nástroje → Registrovat server: název Issues, typ MCP, základní URL https://mcp.example-tracker.dev/mcp, režim header s názvem X-Api-Key.

  2. Seznam nástrojů se připne. Nástroje označené jen pro čtení, například search_issues, běží volně; ostatní jako create_issue se nejprve zeptají.

  3. V chatu:

    Najdi otevřené issues obsahující „database lock“ a založ nové se shrnutím vzoru.

    issues__search_issues běží ihned; issues__create_issue zobrazí 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_MODEPřipnout funkci nástrojů k admins nebo all-users a uzamknout přepínač.
TOOLS_PRIVATE_NETWORK_ALLOWLISTPř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í.
  • @model zmínky v kanálech spouštějí stejnou smyčku proti katalogu zmiňujícího člena, s jedním rozdílem: není koho se ptát, takže nástroj s vedlejším účinkem bez stálého schválení se rovnou odmítne místo čekání. Nástroje jen pro čtení běží normálně.
  • 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.
  • Interaktivní OAuth je jen pro MCP: server OpenAPI stále používá statický údaj jednotlivého uživatele. Tok je authorization-code grant s PKCE; device-code a client-credentials toky se nenabízejí a autorizační server bez zveřejněných metadat (nebo bez registračního endpointu a bez id klienta zadaného správcem) nelze připojit.
  • Objevené endpointy OAuth musí být https; obyčejné http se přijímá jen pro loopback, u poskytovatele běžícího na stejném stroji během vývoje.
  • Redirect URI se odvozuje z BASE_URL (nebo prvního CORS_ORIGIN), takže tato hodnota musí být adresa, kterou prohlížeč skutečně zasáhne, a musí být zaregistrovaná u poskytovatelů, kteří redirect URI připínají.