Přidání nástrojů

Předchozí stránka ukázala, jak zabalení LLM do agenta poskytuje trvalou identitu, pokyny a správu relací. Ale i když je to všechno, agent může generovat pouze obsah (text, obrázky atd.) – nemůže vyhledat dnešní cenu akcií, odeslat e-mail nebo dotazovat databázi. Odpovídá ze znalostí, které bylo při trénování upečeno, a z jakéhokoliv kontextu, který zadáte v zadání.

Nástroje tuto mezeru překlenou. Dávají agentovi možnost jednat – dosáhnout nad rámec svých trénovacích dat a komunikovat s reálným světem. Přidání nástrojů je jediný nejvýraznější krok, který můžete provést, aby byl agent skutečně užitečný.

Kdy to použít

Přidejte do svého agenta nástroje, když:

  • Agent potřebuje přístup k datům v reálném čase nebo externím datům – aktuální ceny, počasí, databázové záznamy, výsledky hledání – které nejsou v trénovacích datech modelu.
  • Agent musí provádět akce – odesílání e-mailů, vytváření lístků, volání rozhraní API, psaní souborů – místo pouhého vytváření obsahu.

Úvahy

Zvážení Podrobnosti
Latency Každé volání nástroje přidá zpoždění – model vygeneruje požadavek na nástroj, váš kód ho spustí a výsledek se vrátí, než může model pokračovat. Multifunkční nástroj toto zpracovává.
Režijní náklady na tokeny Definice nástrojů (názvy, popisy, schémata parametrů) jsou součástí každé výzvy. Více nástrojů znamená méně tokenů dostupných pro historii konverzací a odpověď modelu.
Složitost debugování Když se něco nepovede, příčinou může být výběr nástroje modelu, zvolené argumenty nebo spuštění nástroje. Ladíte důvod a kód společně.
Reliability Model může nesprávně volat nástroje, předat chybné argumenty nebo vyvolat nástroj, pokud by neměl. Dobré popisy a schvalování nástrojů to zmírňují, ale neodstraňují ho.

Proč agenti potřebují nástroje

Jak je popsáno v základech LLM, je LLM vytrénován tak, aby vygeneroval tokeny – včetně speciálního strukturovaného formátu, který představuje volání nástroje. Samotný model ale nic nespustí. Je to vaše aplikace (neboli Agent Framework), která parsuje výstup modelu, spouští skutečnou funkci a vrací výsledek zpět.

To znamená, že nástroje nemění to, co model je – mění, co může váš agent dělat. Bez nástrojů je agent pouze konverzátor. Pomocí nástrojů se stane operátorem.

Zvažte cestovního agenta. Bez nástrojů může diskutovat o letech a navrhovat itineráře na základě obecných znalostí. Pomocí nástrojů může:

  • Vyhledejte v API pro lety dostupnost a ceny v reálném čase
  • Rezervace letu jménem uživatele

Každá z těchto akcí vyžaduje nástroj – část kódu, který může agent vyvolat pro interakci s vnějším světem.

Jak funguje procedura volání nástrojů

Když dáte agentovi nástroje, agent Framework automaticky spravuje smyčku volání nástrojů:

┌──────────────────────────────────────────────────────┐
│  User: "What's the weather in Seattle?"              │
└──────────────┬───────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────┐
│  Agent sends messages + tool definitions to LLM      │
└──────────────┬───────────────────────────────────────┘
               ▼
       ┌───────────────┐
       │ LLM responds  │
       └───┬───────┬───┘
           │       │
     Tool call?    No ──────────────────────────┐
           │                                    │
           ▼                                    ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│  Agent Framework executes   │   │  Final response:            │
│  the tool (e.g.,            │   │  "It's cloudy in Seattle    │
│  get_weather("Seattle"))    │   │   with a high of 15°C."     │
└──────────────┬──────────────┘   └─────────────────────────────┘
               │
               ▼
┌─────────────────────────────┐
│  Agent sends tool result    │
│  back to the LLM            │
└──────────────┬──────────────┘
               │
               └──────► (back to "LLM responds")

Diagram znázorňující smyčku volání nástrojů: LLM komunikuje s externími nástroji a pamětí ve smyčce před vrácením konečné odpovědi.

klíčové body:

  1. Smyčku nemusíte psát. Agent Framework zpracovává zjišťování volání nástrojů v odpovědi modelu, spouštění nástrojů a předávání výsledků zpět. Definujete nástroje; architektura orchestruje zbytek.
  2. Více volání nástrojů na turnu Model může volat několik nástrojů (potenciálně paralelně) před vytvořením konečné odpovědi – nebo řetězení volání nástrojů, kde výstup jednoho udává směr pro další.
  3. Model určuje, kdy volat nástroje. Na základě požadavku uživatele a popisů nástrojů, které zadáte, model posuzuje, jestli je nástroj potřeba. Dobré popisy nástrojů vedou k lepšímu výběru nástrojů.

Návod

Praktické návody k přidání prvního nástroje a zobrazení této smyčky v akci najdete v kroku 2: Přidání nástrojů v kurzu Začínáme.

Typy nástrojů

Agent Framework podporuje několik kategorií nástrojů. Výběr správného agenta závisí na tom, co potřebujete, aby agent udělal a kde se funkce nachází.

Nástroje funkcí

Nástroje funkcí jsou vlastní funkce, které zapisujete a zaregistrujete u agenta. Běží ve vašem procesu a poskytuje úplnou kontrolu nad logikou, hranicemi zabezpečení a zpracováním chyb.

Nástroje funkcí používejte v případech:

  • Máte vlastní obchodní logiku, kterou agent potřebuje vyvolat (dotazování databáze, volání interního rozhraní API, provedení výpočtu)
  • Abyste mohli nástroj spustit ve svém prostředí a mít přístup ke svým prostředkům, potřebujete nástroj.
  • Chcete typovou bezpečnost během kompilace a testovatelnost.

Nástroje funkcí jsou nejběžnějším a flexibilním typem nástrojů. Většina agentů začíná tady.

Nástroje MCP (Model Context Protocol)

MCP je otevřený standard, který definuje, jak aplikace poskytují nástroje pro LLM. Místo psaní logiky nástrojů sami se připojíte k serveru MCP , který zveřejňuje sadu nástrojů přes standardní protokol – podobně jako rozhraní REST API zveřejňuje koncové body.

Agent Framework podporuje dvě varianty:

Příchuť Co to je Kdy ji použít
Hostované nástroje MCP Servery MCP hostované a spravované Microsoft Foundry nebo jinými poskytovateli Chcete získat přístup na klíč k běžným možnostem (například vyhledávání souborů, spouštění kódu) bez správy infrastruktury.
Místní nástroje MCP Servery MCP, které spouštíte sami nebo se připojujete k libovolnému poskytovateli Máte vlastní nebo externí server MCP nebo potřebujete nástroje, které běží ve vašem vlastním prostředí.

Nástroje MCP používejte v případech:

  • Předem připravený server MCP již poskytuje potřebné možnosti.
  • Chcete opakovaně používat nástroje napříč několika agenty nebo aplikacemi prostřednictvím sdíleného serveru.
  • Integrujete se se službou třetí strany, která zveřejňuje koncový bod MCP.

Nástroje hostované poskytovatelem

Někteří poskytovatelé nabízejí integrované nástroje, které běží v infrastruktuře poskytovatele – nevyžaduje se žádný místní kód. Tady jsou některé z nich:

nástroj Jak funguje
interpretu kódu Spustí kód v prostředí v izolovaném prostoru (sandbox) v infrastruktuře poskytovatele.
hledání souborů Prohledá soubory, které nahrajete k poskytovateli.
Vyhledávání na webu Vyhledá na webu informace v reálném čase.

Nástroje hostované poskytovatelem použijte, když:

  • Potřebujete funkce, jako je spouštění kódu nebo vyhledávání na webu bez nutnosti vytvářet nebo hostovat nástroj sami.
  • Poskytovatel už nabízí spravovanou verzi, která splňuje vaše požadavky.

Poznámka:

Dostupnost nástrojů hostovaných poskytovatelem se liší podle poskytovatele. Podívejte se na přehled nástrojů pro celou matici podpory poskytovatele.

Poznámka:

Někteří poskytovatelé LLM můžou během odvozu spouštět hostované nástroje ve své infrastruktuře, jako je rozhraní API pro odpovědi od OpenAI. Tyto služby odvozování si můžete představit jako polo agentické služby, které kombinují odvozování s prováděním nástrojů. Nemění způsob fungování základního modelu, ale znamená to, že provádění nástrojů může proběhnout jako součást generování odpovědí služby. Tyto služby nemůžou spouštět místní nástroje, které se musí spouštět ve vaší vlastní infrastruktuře.

Výběr správného typu nástroje

Dotaz Recommendation
Mám vlastní obchodní logiku? Nástroje funkcí – psaní a registrace vlastních funkcí
Existuje server MCP, který už dělá to, co potřebuji? MCP tools – připojte se k nim místo sestavování od začátku, například k serveru GitHub MCP
Potřebuji spouštění kódu, vyhledávání souborů nebo vyhledávání na webu? Nástroje hostované poskytovatelem – zkontrolujte, jestli je váš poskytovatel podporuje.
Potřebuji nástroje z více kategorií? Kombinovat je – agenti můžou používat nástroje funkcí, nástroje MCP a nástroje hostované poskytovatelem současně.

Důležité popisy nástrojů

Model vybere nástroje na základě jejich názvů a popisů. Nejasný popis vede ke špatnému výběru nástrojů – model může volat nesprávný nástroj, přeskočit nástroj, který by měl použít, nebo předat nesprávné argumenty.

Napište popisy nástrojů stejným způsobem, jakým byste napsali dokument rozhraní API: řekněte, co nástroj dělá, co každý parametr znamená a co vrací. Jasnější popis, tím lepší je úsudek modelu.

Návod

Definice nástrojů (názvy, popisy, schémata parametrů) jsou součástí výzvy a spotřebovávají tokeny v kontextovém okně. Pokud zaregistrujete mnoho nástrojů, výkonová zátěž může být významná. Zaregistrujte jenom nástroje, které agent skutečně potřebuje.

Schválení nástroje: human-in-the-loop

Některé akce jsou citlivé – převod peněz, odstranění záznamů, odesílání e-mailů. Možná nebudete chtít, aby agent tyto nástroje spouštěl samostatně. Schválení nástroje vám umožní před spuštěním nástroje vyžadovat potvrzení člověka.

Když je nástroj označený jako vyžadování schválení, agent se před provedením pozastaví a vrátí odpověď, která indikuje, že schválení je potřeba. Vaše aplikace zodpovídá za prezentaci uživateli a předání rozhodnutí zpět.

Tento model se často nazývá human-in-the-loop a je nezbytné pro vytváření důvěryhodných agentů, kteří zpracovávají následné akce.

Běžné nástrahy

Skryté nebezpečí Pokyny
Příliš mnoho nástrojů Každá definice nástroje využívá tokeny. Zaregistrujte pouze nástroje, které jsou relevantní pro účel agenta.
Vágní popisy "Dělání věcí s daty modelu nepomůže." Buďte specifická: Dotazuje databázi inventáře na dostupnost produktů podle skladové položky.
Žádné zpracování chyb Nástroje můžou selhat (chyby sítě, neplatný vstup). Vraťte jasné chybové zprávy, aby model mohl zdůvodnět, co se nepovedlo, a zkuste to znovu nebo informovat uživatele.
Příliš permisivní nástroje Nástroj, který může spustit jakýkoli dotaz SQL, je bezpečnostní riziko. Omezte nástroje na konkrétní, dobře definované operace.
Chybějící schválení citlivých akcí Pokud nástroj může provést nevratné změny, přidejte schválení nástroje, aby měl člověk o věci přehled.

Zvláštní zmínka: Nástroj interpreta kódu

Jak je popsáno v základech LLM, LLM mohou provádět chyby v přesných výpočtech a formální logikě. Důvodem je, že LLM generují odpovědi token po tokenu na základě porovnávání vzorů – ve skutečnosti nepočítají. LLM není při požádání o vynásobení dvou velkých čísel aritmetiku; predikuje, jak by odpověď měla vypadat na základě trénovacích dat. To funguje překvapivě často, ale na hraničních případech selhává nepředvídatelně.

Interpret kódu to vyřeší tím, že agentovi umožní zapisovat a spouštět kód v prostředí v izolovaném prostoru (sandbox). Model místo odhadu odpovědi napíše Python skript, který ho vypočítá přesně, spustí ho a použije ověřený výsledek v odpovědi.

Poznámka:

Model může při každém zobrazení výzvy k vyřešení stejného problému napsat trochu jiný skript, ale výsledky by měly být většinou konzistentní.

Výstraha

Interpretr kódu není náhradou za pečlivé uvažování člověka. Vždy zkontrolujte práci agenta a v případě potřeby ověřte výsledky nezávisle.

Dejte agentovi interpret kódu, kdy ho potřebuje.

  • Provádění přesných výpočtů – finanční modelování, statistická analýza, převody jednotek – kde není přijatelný přibližný "nejlepší odhad".
  • Transformace nebo analýza dat – parsování CSV souborů, agregace řádků, generování grafů nebo změna tvaru strukturovaných dat.
  • Zpracování souborů – čtení nahraných dokumentů, extrakce obsahu, převod formátů nebo generování nových souborů
  • Ověřte vlastní odůvodnění – napište testovací kód, který před předložením uživateli ověří logické tvrzení.

Návod

Interpret kódu může být nástroj hostovaný poskytovatelem – kód běží v infrastruktuře poskytovatele v sandboxu, ne ve vašem prostředí. Díky tomu můžete bezpečně používat, aniž byste se museli starat o libovolný kód spuštěný na vašich serverech. Podrobnosti o nastavení najdete v referenčních informacích ke interpretu kódu .

Další kroky

Jakmile má váš agent nástroje, v dalším kroku se dozvíte o dovednostech – přenosných balíčcích instrukcí, referenčních materiálů a skriptů, které poskytují agentům odborné znalosti v doméně, které můžou načíst na vyžádání.

Jděte hlouběji: