Autonomní Agenti v AI

Důležitým tématem v umělé inteligenci se stali v poslední době “agenti”, relativně autonomně působící systémy, které v určitých mantinelech vykonávají samostatně nějakou činnost. Jak je naprogramovat?

Co konkrétně se v tomto článku dozvíte?

  • Obsah {:toc}

Agent v AI je nástroj, který může mít svou vlastní “vůli”, nejsou pevně ošetřeny všechny jeho podmínky a mají zadané pouze téma, kterým se zabývají. Vůli v AI reprezentuje kvalitně natrénovaný velký jazykový model LLM, jenž umožňuje klouzavé zadání úkolu. Jak si takového AI agenta můžete představit?

Poznámka: o programování s AI pojednává samostatný článek.

Tak například můžete vytvořit agenta, který hlídá tweety na síti X a v případě, že dojde k názoru, že příspěvky věnované určitým firmám mohou mít vliv na kurz jejich akcií, upozorní vás nebo rovnou dá přes API pokyn k obchodní transakci. Jak definovat ono “vliv na kurz akcií”? Za starých časů byste definovali seznam slov, které se pozitivně či negativně podepíšou na kurzu akcií a definovali, kolik sledujících musí mít účet, který takový příspěvek vydá. A hlídali byste, kdy na sledovaném účtu vyjde “úspěch” nebo “fail” či jiná klíčová slova.

Jiným příkladem může být vytvoření agenta, který zjistí, kdy je nejvhodnější koupit letenky na vaši dovolenou tak, aby byla nejlepší cena za předstih - a následně je v tuto nejvhodnější chvili objedná.

Díky LLM může být agent výrazně úspěšnější, protože je schopno výrazně lépe rozpoznávat “sentiment” příspěvku, nemusíte tedy vytvářet slovníky pozitivních či negativních slov a také LLM snadno rozpozná, jaký úspěch takový příspěvek ve virálním šíření může mít. S pomocí LLM agenta je tedy výrazně jednodušší takový systém vytvořit.

Agenti v AI jsou zatím nový a začínající koncept. Ale také velmi slibný. Zatím vám neujíždí vlak - vytvořit agenta zejména pro české prostředí, jazyk a reálie není úplně přímočaré. Ale situace se bude postupně měnit, proto je rozumné být informován a připraven.

Úspěch agentů bude záviset na tom, jak se jednotlivé systémy budou moci pomocí nejrůznějších API propojovat a jak budou konkrétní LLM umět se na tato API napojit pomocí soukromých klíčů. Dnes například není možné se z obecného LLM jako je Claude připojit se na firemní Github, projít zdrojové kódy a hledat chyby v kódu, ačkoliv teoreticky to možné je. Je ale nutná manuální práce. Tu by agenti mohli nahradit.

Pojďme se tedy podívat na to, co dnes agenti obnášejí, jak je použít a být na ně připraven.

Co jsou to agenti?

„Agenta“ lze definovat několika způsoby. Někteří zákazníci definují agenty jako plně autonomní systémy, které pracují nezávisle po delší dobu a používají různé nástroje k plnění složitých úkolů. Jiní používají tento termín k popisu více preskriptivních implementací, které se řídí předem definovanými pracovními postupy. Osobně považuji za důležitou část agentů řízení pomocí LLM, díky čemuž jsou agenti adaptabilní i na nepředvídatelné možnosti. Tím se liší od systémů, které používají k rozhodování jen například strojové učení a neuronové sítě, tedy předvídatelné statistické modely.

Klíčové vlastnosti agentů zahrnují:

  • Flexibilitu a adaptivitu: Dynamicky si volí postupy a nástroje podle aktuální situace.
  • Samostatnost: Udržují kontrolu nad svým procesem a přizpůsobují se požadavkům úkolu.
  • Rozhodovací schopnosti řízené modelem: Využívají sílu LLM k plánování a realizaci komplexních úloh.

Samostatné agentní systémy můžeme rozlišovat do dvou základních architektonických skupin:

  • Workflow jsou systémy, kde jsou LLM a nástroje orchestrovány prostřednictvím předem definovaných cest kódu.
  • Agenti jsou naproti tomu systémy, kde LLM dynamicky řídí své vlastní procesy a použití nástrojů a udržují si kontrolu nad tím, jak plní úkoly.

Z popisu vidíme, že Workflow jsou více rigidní systémy, které mají přesně a úzce vymezený mantinel. Agenti oproti tomu mají mnohem širší pole působnosti omezené spíše schopností či vlastnostmi použitého LLM.

Podíváme se postupně na oba systémy.

Klíčové schopnosti agentů AI

Agenti pro své fungování potřebujují sadu schopností, které jim umožní plnit zadání.

  • Rozumové uvažování: Dokážou plánovat, promýšlet problémy a upravovat svůj přístup, pokud původní řešení nefunguje, což je činí efektivními při řešení složitých úkolů.

  • Jednání: Kromě chápání mohou provádět akce pomocí nástrojů, jako je vyhledávání na webu nebo dotazy do databáze, což jim umožňuje přístup k informacím v reálném čase.

  • Paměť: Dokážou uchovávat informace z minulých interakcí, což umožňuje personalizované reakce a přizpůsobení na základě historie uživatele.

graph TD
User((Uživatel)) -- Komunikuje s --> Agent[Agent]
Agent -- Využívá --> Memory[Paměť]
Agent -- Využívá --> Planning[Plánování]
Agent -- Využívá --> Tools[Nástroje]

Kdy (a kdy) používat agenty

Při vytváření aplikací s LLM doporučujeme hledat co nejjednodušší řešení a složitost zvyšovat pouze v případě potřeby. To může znamenat, že agentové systémy nebudete budovat vůbec. Agentové systémy často vyměňují latenci a náklady za lepší výkonnost či širší obslužnost úloh a měli byste zvážit, kdy má tento kompromis smysl. Je to jako s každým programováním, musíte zvážit, zda nejdete s kanonem na vrabce. Například pád kurzu akcií není třeba analyzovat pomocí LLM, stačí běžná statistická matematická analýza, která je rychlejší a méně náročná na strojový čas. Na analýzu sentimentu z Twitteru z prvního příkladu ji ale už použít nejde.

Pokud je větší složitost opodstatněná, Workflowy nabízejí předvídatelnost a konzistenci pro dobře definované úlohy, zatímco agenti jsou lepší volbou, pokud je potřeba flexibilita a rozhodování založené na modelu v měřítku. Pro mnoho aplikací však obvykle stačí optimalizovat jednotlivá volání LLM s vyhledáváním a příklady v kontextu.

Existující frameworky

Existuje mnoho vývojových frameworků, které usnadňují implementaci agentových systémů. Řada z nich umožňuje low-code nebo no-code přístup, kdy k jejich použití je potřeba málo či žádné programování. Mají různé výkonnostní i cenové parametry a možnosti napojení, některé z nich jsou velmi omezené.

Srovnání nástrojů pro tvorbu AI agentů

Nástroj AI agentůOpen SourceCenový modelKlíčové silné stránkyMožnosti integraceJedinečné funkce
Relevance AINeFreemium/PlacenéTvorba agentů bez kódováníPodpora OpenAI, Anthropic, CohereAnalýza dat v reálném čase
Zapier CentralNePředplatnéPropojení 6 000+ aplikacíŠiroká integrace aplikacíPřístup k živým datům napříč platformami
Microsoft Copilot StudioNeSoučást Microsoft 365Bezproblémová integrace ekosystému MicrosoftMicrosoft 365, SAP, Workday, ServiceNowSchopnosti generativní AI
Salesforce AgentforceNeSoučást ekosystému SalesforceTvorba agentů specifických pro CRMSalesforce CRMBezpečnostní záruky, proaktivní automatizace
AgentGPTNeFreemiumRychlé vytváření agentů v prohlížečiIntegrace GPT-3.5Předpřipravené šablony
BeamNePředplatnéAutomatizace procesůIntegrace CRM, ERP, CMSPřizpůsobitelné chování agentů
Vertex AI (Google Cloud)NePlaceno dle využitíPodpora no-code a code-first přístupůZdroje podnikových dat, JIRA, ServiceNowMonitorování v reálném čase
SpellNeFreemium/PlacenéParalelní úlohyRozsáhlá knihovna zásuvných modulůNapájeno GPT-4
AutoGPTAnoZdarmaPokročilé samostatné zadáváníSchopnost vyhledávání na internetuSchopnost spouštění kódu
MetaGPTAnoZdarmaSpolupráce více agentůPokročilé generování kóduAdaptivní učení
AutoGen (Microsoft)AnoZdarmaSystém více agentůPodpora open-source LLMDynamické konverzace
FlowiseAnoZdarmaRozhraní drag-and-dropPřes 100 integracíVlastní nástroje a šablony
ChatDevAnoZdarmaVirtuální vývoj softwaruIntegrace GitHubTvorba softwaru přirozeným jazykem
LangflowAnoZdarmaGrafické uživatelské rozhraníIntegrace LangChain a LlamaIndexModulární design
CrewAIAnoZdarmaAutomatizace workflow více agentůPodpora Webhook a gRPCPřizpůsobitelné nástroje
SuperAGIAnoZdarmaSpráva souběžných agentůRozšiřitelné schopnostiNasazení agentů připravených do produkce
LangGraph (LangChain)AnoZdarmaTvorba komplexních grafů pro LLMNativní integrace s LangChainStavové grafy pro LLM agenty
Amazon Bedrock AI AgentNePlaceno dle využitíŠkálovatelné AI agentiIntegrace s AWS ekosystémemBezpečnostní a soukromé AI modely
RivetAnoZdarmaGrafické rozhraní pro pracovní postupy LLMPodpora více modelůVizuální tvorba a ladění pracovních toků
VellumNePředplatnéTestování a ladění AI pracovních tokůPodpora více jazykových modelůRobustní rozhraní pro vývoj AI

Klíčová zjištění

  • 10 platforem je open source
  • Většina komerčních řešení nabízí freemium nebo předplatitelské modely
  • Platformy se zaměřují na no-code nebo low-code řešení pro tvorbu agentů

Doporučená kritéria výběru

  1. Technické dovednosti: Open-source pro vývojáře, no-code pro netechnické uživatele
  2. Rozpočet: Open-source možnosti vs. podniková řešení
  3. Potřeby integrace: Zkontrolujte kompatibilitu specifických aplikací a nástrojů
  4. Specifický případ použití: Některé jsou lepší pro konkrétní domény (např. Salesforce pro CRM)

Tyto frameworky usnadňují začátky tím, že zjednodušují standardní nízkoúrovňové úlohy, jako je volání LLM, definování a rozbor nástrojů a obsluhu volání externích zdrojů. Často však vytvářejí další vrstvy abstrakce, které mohou zakrýt základní problémy a také odpovědi systémů, což ztěžuje ladění. Mohou také svádět k přidávání složitosti, když by stačilo jednodušší nastavení. Pamatujte na to, že ve vývoji neustále platí Keep it simple, stupid! Poenchávejte vše tak jednoduché, jak to jen jde (já vím, že to není doslovný překlad)…

Vývojářům doporučujeme, aby začali používat rozhraní LLM API přímo: mnoho vzorů lze implementovat v několika řádcích kódu. Pokud použijete framework, ujistěte se, že rozumíte základnímu kódu. Nesprávné předpoklady o tom, co je pod kapotou, jsou častým zdrojem chyb zákazníků.

Stavební bloky, workflow a agenti

V této části se budeme zabývat běžnými druhy agentových systémů. Začneme základním stavebním blokem - rozšířeným LLM - a postupně budeme zvyšovat složitost, od jednoduchých workflow až po autonomní agenty. 👉 pokračuj ve čtení zde