DX Heroes logo
#ai
#agents

Co je to function calling?

Délka: 

5 min

Publikováno: 

8. července 2026

Co je to function calling?

Co je to function calling?

Function calling, česky někdy „volání funkcí“ a v praxi taky tool calling, je schopnost, díky které jazykový model umí používat nástroje mimo sebe. Sám o sobě model umí jen produkovat text. Function calling mu dává ukázněný způsob, jak říct „spusť tenhle nástroj s těmito vstupy“, aby na to vaše aplikace mohla zareagovat.

Podstatné je tohle: model sám nikdy nic nespustí. Dáte mu seznam funkcí, které smí použít, a u každé jméno, srozumitelný popis a schéma jejích parametrů. Když model usoudí, že úkol jednu z nich potřebuje, přestane psát běžnou odpověď a místo ní vrátí strukturované volání, tedy jméno funkce a její argumenty jako JSON. Vaše aplikace tuto funkci provede proti vašemu kódu, API nebo databázi a výsledek předá zpátky. Model si výsledek přečte a buď odpoví, nebo zavolá další nástroj.

Stručně: model rozhoduje, co se má stát a s jakými vstupy. Váš kód rozhoduje, jestli to udělá, a taky to skutečně provede.

Lidsky řečeno

Představte si model jako bystrého kolegu na telefonu, který se ale nesmí dotknout žádného vašeho systému. Když potřebuje dnešní kurz nebo chce zarezervovat schůzku, neudělá to sám. Řekne vám přesně, co máte udělat, „zjisti kurz eura vůči dolaru“ nebo „založ událost v kalendáři na patnáctou“, vy to provedete a nahlásíte mu výsledek. On rozhoduje, co je potřeba udělat; vy jste ruce, které to udělají. Function calling je přesně tenhle telefonát, zapsaný ve formátu, který váš program zvládne bez hádání.

Jak function calling funguje

Jedno kolo function callingu má jasný tvar:

  • Popíšete nástroje. Každá funkce dostane jméno, krátký popis toho, co dělá a kdy ji použít, a schéma s parametry a jejich typy. Tento popis je jediné, co model o nástroji ví.
  • Model dostane požadavek i seznam nástrojů. Přečte si zprávu od uživatele a nástroje, které má k dispozici.
  • Model se rozhodne. Když stačí textová odpověď, prostě odpoví. Když je potřeba nástroj, vrátí místo toho strukturované volání, jméno funkce a doplněné argumenty jako JSON, třeba get_weather({ city: "Praha" }).
  • Vaše aplikace ho provede. Tenhle krok je čistě váš kód. Spustíte funkci, zavoláte reálné API nebo se zeptáte databáze a zároveň rozhodnete, jestli je volání vůbec povolené.
  • Výsledek jde zpátky do modelu. Model si přečte, co přišlo, a pokračuje, buď napíše finální odpověď, nebo zavolá další nástroj.

Právě ta poslední smyčka je celý trik. Jeden požadavek může spustit několik volání za sebou a každé vychází z toho předchozího. Model přitom pořád jen produkuje text. Function calling je jen striktní formát pro jeho část, aby na něj váš program mohl spolehlivě reagovat, místo aby luštil větu.

Proč na tom záleží

  • Z generátoru textu se stává něco, co umí jednat. Bez nástrojů model umí jen popsat, co by udělal. S function callingem umí opravdu něco zjistit, spočítat a spustit reálnou práci. Na tomhle stojí každý AI agent.
  • Propojí model s aktuálními a soukromými daty. Model zná jen to, co viděl při trénování. Function calling mu dovolí zavolat vaše systémy pro dnešní čísla, objednávku konkrétního zákazníka nebo interní dokument, místo aby tipoval ze zastaralých znalostí.
  • Předání je strukturované, ne odhad. Argumenty přijdou jako ověřený JSON, který odpovídá schématu, jež jste sami nadefinovali, ne jako věta, kterou musíte interpretovat. Díky tomu je celá integrace mnohem spolehlivější.
  • Je to mechanismus za používáním nástrojů, agenty i MCP. Agent je function calling puštěný ve smyčce, dokud není cíl splněn. Model Context Protocol standardizuje, jak se ty nástroje popisují a zpřístupňují, takže stejné nástroje fungují napříč různými modely i klienty.

Na co si dát pozor

  • Model může sáhnout po špatném nástroji nebo si vymyslet argumenty. Každé volání proto ověřte proti schématu ještě před spuštěním. Nespoléhejte, že jsou v pořádku jen proto, že přišly od modelu.
  • Následky nesete vy, ne model. To, že si model vyžádá delete_records, mazání nezabezpečí; spouští ho váš kód. Cokoli nevratného schovejte za explicitní kontroly nebo schválení člověkem.
  • Zpřístupnění nástrojů rozšiřuje plochu k útoku. Prompt injection může model přimět zavolat nástroj s argumenty, které zvolil útočník. Přístupová práva vynucujte ve svém kódu a vázaná na skutečného uživatele.
  • Mlhavé popisy vedou ke špatným voláním. Jméno funkce, popis a názvy parametrů jsou pro model jediným rozhraním k nástroji. Berte je jako dokumentaci API.
  • Víc nástrojů není lepší. Dlouhý seznam model zpomaluje, prodražuje a zhoršuje jeho volbu. Držte sadu nástrojů malou a relevantní k úkolu.

Související články

  • Co to je agent? - Agent je function calling puštěný ve smyčce: model zavolá nástroj, přečte si výsledek a volá další, dokud není úkol hotový.
  • Co je to agentní AI? - Širší přístup, kde modely samy plánují a jednají, a function calling je mechanismus, který jim jednání umožní.
  • Co je to LLM? - Jazykový model, který rozhoduje, kterou funkci zavolat a s jakými argumenty.
  • Co je to prompt injection? - Hlavní bezpečnostní riziko toho, že modelu dáte nástroje, a proč přístupová práva patří do vašeho kódu, ne do promptu.

Chcete být o krok napřed?

Nenechte si utéct naše nejlepší postřehy. Žádný spam, jen praktické analýzy, pozvánky na exkluzivní eventy a shrnutí podcastů přímo do vaší schránky.