zisky:
- Definovanie agenta ako „model + nástroje + slučka“ a rozhodnutie, kedy je to potrebné
- Zápis definície nástroja s názvom, popisom a input_schema
- Monitorovanie toku a spracovania chýb v slučke tool_use a tool_result
Doteraz model vždy vykonával jednu úlohu: prijímal textový vstup, produkoval textové odpovede. Ale skutočná práca často vyžaduje viac ako len text; vykonanie výpočtu, dotaz do databázy, volanie API, zistenie aktuálneho kurzu. Modelka nemôže robiť tieto veci sama - ale môže sa rozhodnúť, kedy ich treba urobiť, a požiadať niekoho, aby ich urobil. To je to, čo použitie nástroja dáva modelu, a to je základ agentov AI. V tejto lekcii sa naučíme, čo je agent, ako je definovaný nástroj a ako funguje cyklus tool_use.
Čo je to agent? Model + Nástroje + Slučka
Agent AI sa skladá z troch častí: modelu (mozog, ktorý robí rozhodnutie), nástrojov (funkcií, ktoré môže model volať: počasie, databázový dotaz, odosielanie e-mailov) a slučky (slučka; model zavolá nástroj, získa výsledok, znova sa rozhodne, čo má robiť atď.).
Kritický rozdiel: Volanie jedného vzoru nie je agent. Agent je proces, v ktorom model postupuje krok za krokom, pričom v každom kroku volí ďalší krok na základe výsledku nástroja. "Mysli ako človek, používajte ruky, pozerajte sa na výsledok, premýšľajte znova."
Dôležitý fakt: Samotný model neovláda vozidlo. Model len hovorí „Chcem zavolať tento nástroj s týmito vstupmi“. Vaša aplikácia (nazývaná postroj) spustí nástroj a vráti výsledok do modelu. To je dôležité pre bezpečnosť: model sa priamo nedotýka vášho systému; Každá akcia je pod vašou kontrolou.
Tip: Nesnažte sa vyriešiť každý problém s agentom. agent; zvyšuje riziko omeškania, nákladov a chýb. Najprv sa opýtajte: „Vyrieši sa to jediným hovorom alebo pevným pracovným postupom?“ Ak je odpoveď áno, nie je potrebný agent. Agent je pre úlohy s otvoreným koncom, pri ktorých nie je možné vopred poznať kroky.
Definícia nástroja: názov, popis, schéma vstupu
Na zavedenie nástroja do modelu musíte zadať tri veci:
- názov: Totožnosť vozidla, napr. získať_počasie.
- popis: Čo nástroj robí a kedy ho zavolať. Toto je najdôležitejšia oblasť, ktorá umožňuje modelu vybrať si správny nástroj v správnom čase. Píšte nielen „čo robí“, ale aj „zavolajte kedy“.
- input_schema (vstupná schéma): schéma JSON, ktorá definuje, ktoré parametre nástroj očakáva, v akom type.
# Definícia vozidla (koncepčné — schéma JSON){ "name": "get_order_status", "description": "Získava aktuálny stav zásielky objednávky. Zavolajte, keď sa používateľ spýta, kde je číslo objednávky alebo kedy dorazí.", "input_schema": { "type": "object", "properties": { "type"oder_no", "string": "číslo objednávky", "string" napr. SP-1024"} }, "povinné": ["číslo_objednávky"] }}
Pravidlá pre dobrý popis nástroja: jasný a výstižný názov, popis s „kedy použiť“, popis každého parametra, uvedenie skutočne povinných parametrov. Zamerajte sa na počet vozidiel; Prekvapivé sú desiatky podobných modelov vozidiel.
oblasť
čo to robí?
dobrý príklad
zlý príklad
meno
ID vozidla
order_status_getir
priniesť
popis
Čo to robí + kedy volať
"Vráti stav nákladu; zavolajte, keď sa používateľ spýta, kde je objednávka"
"načítava údaje"
input_schema
Typ parametra a požiadavka
{číslo_objednávky: reťazec, s poznámkami}
bez diagramu / bez popisu
tool_use → tool_result Loop
Cyklus funguje takto, krok za krokom:
- Do modelu pošlete používateľskú otázku + popisy nástrojov.
- Model buď odpovie priamo, alebo vygeneruje blok tool_use: "call order_durumu_getir s order_no=SP-1024."
- Vaša aplikácia skutočne spúšťa nástroj (dotazuje sa na databázu).
- Výsledok pošlete späť do modelu ako tool_result.
- S týmto výsledkom model buď vytvorí konečnú odpoveď, alebo zavolá iný nástroj. Cyklus pokračuje, kým model nepovie „Skončil som“.
# Slučka agenta (konceptuálne) správy = [user_question] while True: response = model.uret(messages, tools=tool_definitions) if response.tur == "tool_use": result = harness.run(response.tool_name, response.entries) # APPLICATION beží správy += [response,response,response)]nástroj_výsledok(výsledok); konce slučky
Moderné súpravy SDK ponúkajú bežce nástrojov, ktoré túto slučku spustia za vás; stačí napísať funkcie nástroja. Ale presne to sa deje v zákulisí.
Správa chýb
Nástroje môžu zlyhať: objednávka sa nenašla, časový limit rozhrania API vypršal, vstup je neplatný. Ak nemôžete spustiť nástroj, vráťte chybu do modelu ako popisný tool_result („chyba: Objednávacie číslo SP-9999 sa nenašlo“) a príznak chyby. Model to vidí a jemne to používateľovi vysvetlí, alebo to môže skúsiť inak. Neprehĺtajte chybu a nevracajte prázdne výsledky; Modelka musí vedieť, čo sa pokazilo.
Popis slabého/silného vozidla
Slabé (neurčité podstatné meno, bez „kedy“):
meno: "data", popis: "fetches data"# Model nevie kedy a ako zavolať; Buď nevolá vôbec, alebo volá nesprávne.
Silný (sieťový názov + kedy + popis parametra):
name: "musteri_bakiyesi_getir"description: "Vráti aktuálny zostatok na účte zákazníka. Zavolajte, keď používateľ požiada o debet, kredit alebo zostatok. NEVYPLATÍ."input_schema: {custeri_id: string ("ID zákazníka")# Model volá v správnom čase, so správnymi parametrami, pričom pozná svoj limit.
Tri mini puzdrá
Prípad 1 – Nepotrebný agent. Jeden tím vybudoval biznis „summarize text“ s agentom s viacerými nástrojmi; Každá rekapitulácia trvá 4 modelové hovory a 9 sekúnd. Práca bola vlastne práca na jedno zavolanie. Keď sme odstránili agenta a zredukovali ho na jeden hovor, čas sa skrátil na 1,5 sekundy a náklady sa znížili na jednu štvrtinu. Poučenie: použite agenta, keď je to naozaj potrebné.
Prípad 2 – Slabé vysvetlenie, nesprávny hovor. V agentovi podpory bol modelom náhodne vyvolaný neznámy nástroj s názvom fetch v otázke zostatku aj v otázke prepravy. Keď sa vozidlá rozdelili na balance_getir a cargo_durumu_getir a pridali sa vysvetlenia „zavolať, keď“, nesprávny výber vozidla sa znížil z 18 na 1 z 50 príkladov.
Prípad 3 – Chyba prehltnutá. Agent vracal prázdne výsledky, keď sa príkaz nenašiel; Modelka si to vyložila ako „objednávka bola doručená“ a uvádzala zákazníka do omylu. Keď sa chybové hlásenie zapíše explicitne do tool_result ("objednávka sa nenašla"), model správne hovorí "Nemohol som nájsť toto číslo, môžete to skontrolovať?" začal hovoriť.
Časté chyby
- Obráťte všetko na agenta: Zatiaľ čo jeden hovor stačí, agent si zvyšuje náklady a meškanie.
- Nejasný popis vozidla: Modelka nevie, kedy má volať; vyberá zle.
- Myslieť si, že model riadi vozidlo: Postroj riadi vozidlo; modelka len chce.
- Prehltnutie chyby: Model musí vedieť, čo sa pokazilo; Zadajte chybu ako open tool_result.
- Príliš veľa podobných vozidiel: Model je zmätený; Udržujte súpravu nástrojov zameranú a minimálnu.
Pozor: Len preto, že model hovorí „zavolajte toto vozidlo“, neznamená to, že by sa malo konať. Na deštruktívnych nástrojoch (mazanie, pokladňa, e-mail) by vaša aplikácia nemala slepo vykonávať hovor – to je jadro bezpečnostnej témy v ďalšej časti.
V súhrne
- Agent = model (rozhodnutie) + nástroje (funkcie) + slučka (nástroj zavolať, získať výsledok, znova rozhodnúť).
- Volanie jedného vzoru nie je agent; agent je proces krok za krokom.
- Model nejazdí s vozidlom; Vaša aplikácia sa spustí (postroj) a vráti výsledok ako výsledok_nástroja.
- Nástroj je identifikovaný názvom, popisom (konkrétne "zavolať kedy") a input_schema.
- Cyklus pokračuje, ako nástroj_použitie → postroj beží → výsledok_nástroja → model pokračuje, kým model nepovie „hotovo“; chyby sú explicitne hlásené modelu.
Aplikačná úloha
Navrhnite 3 nástroje z vlastnej firmy, ktoré môžete dať agentovi. (1) Napíšte názov, popis s "call when" a input_schema pre každý; Nech je aspoň jeden nedeštruktívny nástroj na čítanie a jeden výpočet. (2) Vyberte si realistickú otázku používateľa a ručne napíšte krok za krokom (v slučke), ktoré z týchto nástrojov model zavolá s akými vstupmi a čo bude robiť po tom, čo príde nástroj_výsledok. (3) Nastavte scenár, v ktorom jeden z nástrojov zlyhá, a ukážte, ako sa chybové hlásenie vráti do modelu.
kontrolný zoznam
- [ ] Môžem definovať agenta ako „model + nástroje + slučka“ a rozhodnúť sa, kedy je to potrebné.
- [ ] Viem, že postroj poháňa vozidlo, model to len chce.
- Dokážem napísať solídny popis vozidla s názvom [ ], popisom ("zavolať kedy") a schémou vstupu.
- Môžem postupovať krok za krokom podľa cyklu [ ] tool_use → tool_result.
- [ ] Chyby nástroja nahlasujem do modelu ako open tool_result.