PydanticAI 2.22 sprísňuje nástroje, presmerovania aj trvácne agentické behy
PydanticAI 2.22 prináša kontrolu dostupnosti nástrojov, bezpečnejšie presmerovania s povereniami a opravy zablokovaných workflowov. Pre produkčné tímy ide najmä o menšie, ale prevádzkovo významné spevnenie agentov.
Za text zodpovedá Redakcia AI Feed. Zodpovedný editor: Marek Považský. Ako používame AI.
- Typ zdroja
- Oficiálny zdroj
- Zdroj / autorita
- Pydantic
Ako vznikol tento text
Redakcia spracovala verejné podklady do slovenského kontextu. Za výber, pravidlá kvality a prípadné opravy zodpovedá Marek Považský.
Text je zaradený v sekcii AI produkty a opiera sa o 5 zdrojov. Konkrétne odkazy sú uvedené pod článkom; podrobnosti o AI postupe vysvetľuje metodika redakcie.
Viac než súbor drobných opráv
Pydantic vydal PydanticAI 2.22.0 ako balík zmien zameraných na riadenie nástrojov, integrácie modelov a spoľahlivosť dlhšie bežiacich agentov. Oficiálne poznámky uvádzajú päť funkčných noviniek a viac než dve desiatky opráv, pričom balík bol podľa registra PyPI zverejnený 1. augusta 2026 a nebol stiahnutý z distribúcie. Nejde o vydanie s jednou marketingovo dominantnou funkciou. Jeho význam spočíva skôr v spevnení hraníc, na ktorých sa produkčné agentické systémy zvyknú pokaziť: pri dynamickom výbere nástrojov, presmerovaní sieťových požiadaviek, rušení asynchrónnych úloh alebo prepájaní synchrónneho kódu s trvácnymi workflowmi.
Oproti pôvodnému stručnému súhrnu je dôležité spresniť rozsah aktualizácie. Verzia nepridáva iba metódu RunContext.is_tool_available, úpravy MCP a jednu bezpečnostnú opravu. Mení aj spôsob odosielania systémových správ modelom Anthropic, pre podporované modely Gemini predvolene zapína režim nástrojov VALIDATED a opravuje viacero stavov v integráciách Temporal a Prefect. Súčasne umožňuje požiadať o schválenie alebo odložiť volanie už z validátora argumentov nástroja. Spoločným menovateľom je presnejšie zosúladenie toho, čo agent deklaruje, čo model vidí a čo runtime napokon dovolí vykonať.
Nástroj musí byť dostupný aj v skutočnom kontexte
Nová verejná metóda RunContext.is_tool_available rieši problém, ktorý vzniká pri odložených nástrojoch a dynamicky skladaných toolsetoch. Dostupnosť nástroja sa môže meniť podľa načítanej schopnosti, výsledku predchádzajúceho vyhľadávania alebo aktuálneho kroku behu. Doterajšie interné pravidlo bolo rozptýlené na viacerých miestach a externá integračná vrstva si ho musela odvodiť sama. Pull request číslo 7011 tieto rozhodnutia zjednotil do jedného predikátu. Metóda prijíma názov alebo definíciu nástroja; pri neznámom názve vracia False, namiesto toho, aby aplikácia pracovala s neovereným predpokladom.
Praktický prínos presahuje pohodlnejšie API. Ak model dostane opis schopnosti, ktorá v aktuálnom kontexte nie je vykonateľná, môže naplánovať slepú vetvu a spotrebovať ďalšie volania na opravu. Opačná chyba je vážnejšia: aplikačná vrstva môže považovať skrytý nástroj za dostupný a nesprávne ho zahrnúť do agregovaného rozhrania. Zjednotená kontrola pomáha udržať rovnaký pohľad medzi runtimeom a požiadavkou poslanou poskytovateľovi modelu. Nie je to však náhrada autorizácie. Dostupnosť nástroja je stav frameworku; oprávnenie vykonať platbu, meniť záznam alebo pristúpiť k osobným údajom musí stále overovať aplikačná či servisná vrstva.
S tým súvisí aj možnosť vyvolať požiadavku na schválenie alebo odložiť volanie už počas validácie argumentov. Schvaľovací bod tak môže zohľadniť konkrétne hodnoty, nie iba názov nástroja. Agent môže napríklad automaticky povoliť čítanie verejného dokumentu, ale pri požiadavke na export väčšieho množstva interných údajov vyžiadať zásah človeka. Vývojári by napriek tomu mali testovať aj obídenie klientského rozhrania a opakované vykonanie tej istej požiadavky. Human-in-the-loop mechanizmus znižuje riziko iba vtedy, keď je rozhodnutie naviazané na nemenný obsah operácie a server ho pred vedľajším účinkom znovu overí.
Presmerovanie nesmie odniesť poverenia
Najkonkrétnejšia bezpečnostná oprava sa týka safe_download, ktoré pri každom kroku presmerovania opätovne kontroluje cieľ voči pravidlám na obmedzenie serverových požiadaviek. Staršie správanie pri rozhodovaní o zachovaní citlivých hlavičiek porovnávalo predovšetkým hostiteľa. Oprava v pull requeste číslo 6811 porovnáva celý pôvod adresy, teda schému, hostiteľa a port, a sleduje predchádzajúci krok presmerovania. Pri zmene portu, prechode z HTTPS na HTTP alebo presmerovaní na iného hostiteľa odstráni hlavičky Authorization, Cookie a Proxy-Authorization. Zachováva ich pri rovnakom pôvode a pri štandardnom prechode z HTTP na HTTPS na tom istom hostiteľovi.
Rozdiel medzi hostiteľom a pôvodom je podstatný. Služba na https://example.com nemusí mať rovnakú dôveryhodnosť ako proces na inom porte toho istého mena a prechod na nezašifrované HTTP mení transportnú bezpečnosť. Podľa dokumentácie zmeny pribudli aj testy reťazených presmerovaní, normalizácie názvov a hraničných kombinácií portov; autor uviedol 206 úspešných testov SSRF vrátane 18 prípadov s povereniami. Ide však o údaje projektu, nie o nezávislý bezpečnostný audit. Verejné podklady neuvádzajú pridelené CVE ani dôkaz, že chyba bola zneužitá v reálnom nasadení.
Odporúčania OWASP nezávisle potvrdzujú širší kontext: aplikácia, ktorá načítava URL ovládanú používateľom alebo modelom, môže byť zneužitá na server-side request forgery. OWASP odporúča viacvrstvovú ochranu, preferovanie zoznamov povolených cieľov a v niektorých scenároch úplné vypnutie automatického nasledovania presmerovaní. Aktualizácia PydanticAI teda opravuje dôležitú časť práce s citlivými hlavičkami, ale nerieši celý problém sama. Prevádzkovateľ musí obmedziť protokoly a cieľové siete, kontrolovať DNS a IP adresy, nastaviť odchádzajúce sieťové pravidlá a neposkytovať webovému nástroju univerzálne poverenia použiteľné na ľubovoľnom cieľovom URL.
Temporal, MCP a dôsledky pre európske tímy
Viacero opráv cieli na trvácne behy v Temporale. Jedna odstraňuje deterministické zablokovanie, ktoré mohlo vzniknúť, keď zrušenie rozsahu AnyIO zasiahlo čakanie na rozbehnutú aktivitu. Podľa detailného pull requestu sa slučka mohla pretáčať približne 17-tisíckrát za sekundu, až kým Temporal neohlásil potenciálny deadlock; opakovaná aktivácia potom zlyhávala rovnakým spôsobom. Nový exekútor chráni čakanie, deleguje jedno zrušenie mechanizmu Temporalu, počká na výsledok v chránenom rozsahu a následne znovu vyvolá pôvodné CancelledError. Reportér nezávisle v diskusii potvrdil opravu jedného reprodukovateľného scenára, pri druhom však v čase zlúčenia zostala neistota.
Ďalšia oprava mení nekonečné čakanie pri použití run_sync() v event loope, ktorý nevie vykonať run_until_complete(), na zrozumiteľnú chybu. Je to dôležité najmä preto, že zlyhanie workflow úlohy a zlyhanie samotného workflowu nie sú v Temporale totožné udalosti. Nesprávny typ výnimky môže viesť k opakovaniu bez viditeľného výsledku. Vydanie ďalej pridáva heartbeat do viacerých Temporal aktivít, odmieta neznáme konfiguračné kľúče, opravuje serializačné zlyhania a zabraňuje nekonečným opakovaniam pri niektorých chybách hookov. Tímy používajúce trvácne agentické behy by preto nemali aktualizáciu hodnotiť iba podľa verejného API.
Pre slovenské a európske organizácie je téma relevantná aj bez osobitnej väzby na konkrétny predpis. Agenti napojení na interné systémy spracúvajú osobné údaje, obchodné tajomstvá a prístupové tokeny; technické zlyhanie presmerovania alebo schvaľovacieho bodu môže narušiť zásady minimalizácie prístupu a bezpečnosti spracovania. Samotná verzia 2.22.0 však neposkytuje súlad s GDPR, NIS2 ani pripravovanými povinnosťami pre vysokorizikové AI systémy. Poskytuje iba stavebné prvky, ktoré možno zahrnúť do riadenia rizík, auditných záznamov, testov zneužitia a procesu schvaľovania zmien.
Pred nasadením je rozumné vytvoriť regresné testy presmerovaní so všetkými používanými typmi poverení, otestovať rušenie dlhej modelovej aj nástrojovej aktivity a porovnať zoznam nástrojov odoslaný modelu s oprávneniami používateľa. Pri MCP treba preveriť nové správanie prefer_tasks; pri Gemini zmenu predvoleného režimu VALIDATED; pri Anthropic spôsob prenosu systémových správ a odložených nástrojov. PyPI potvrdzuje existenciu distribúcie pre Python 3.10 a novší, no verejné zdroje neposkytujú univerzálny benchmark výkonu ani dôkaz kompatibility s každou kombináciou poskytovateľa a orchestrace. PydanticAI 2.22 preto predstavuje presvedčivé spevnenie, nie dôvod vynechať postupné nasadenie, observabilitu a vlastné bezpečnostné overenie.
Zdroje