Ako AI agenti skutočne implementujú zručnosti: Kompletné porovnanie naprieč platformami

AI Agents LLM Context Management Agent Frameworks

Úvod

Každý AI agentový framework čelí rovnakej základnej otázke: ako spraviť LLM dobrým v niečom konkrétnom? Samotný model má široké všeobecné znalosti, ale keď potrebujete, aby vykonal kontrolu kódu, nasadil infraštruktúru alebo navigoval v Minecrafte — potrebuje špecializované inštrukcie, prístup k nástrojom a doménový kontext.

Toto je problém injektovania zručností. A každý veľký framework ho rieši inak.

Niektoré platformy všetko nahrnú do systémového promptu vopred. Iné používajú lenivé načítavanie a odhaľujú schopnosti až vtedy, keď ich agent potrebuje. Niekoľko z nich používa vektorové databázy na vyhľadávanie relevantných zručností na základe sémantickej podobnosti. Tieto rozdiely nie sú akademické — priamo ovplyvňujú náklady na tokeny, spoľahlivosť agenta a počet zručností, s ktorými agent realisticky dokáže pracovať.

Analyzovali sme 11 hlavných AI agentových platforiem, aby sme presne pochopili, kde sa zručnosti dostávajú do promptu, kedy sa načítavajú, koľko stoja tokenov a ako prežijú, keď sa kontextové okno zaplní. Toto nie je povrchné porovnanie funkcií. Preskúmali sme zdrojový kód, dokumentáciu a diagramy architektúry, aby sme zmapovali presnú mechaniku injektovania každej platformy.

Hlavná porovnávacia tabuľka

Tu je kompletný prehľad pred tým, než sa ponoríme do detailov.

Mechanika injektovania: Kde, kedy a ako

PlatformaBod injektovaniaKedy sa načítavaMechanizmus
Claude CodeSystem-reminder (metadáta) + správa v konverzácii (telo)Metadáta pri štarte relácie; telo pri /command alebo automatickom rozpoznaníFramework injektuje metadáta; Skill tool načíta celé telo pri aktivácii
CrewAIPrompt úlohy (pripojený pred volaním LLM)Pri každom vykonaní úlohy cez _finalize_task_prompt()format_skill_context() pripojí všetky telá zručností k promptu
LangChain Deep AgentsSystémový prompt (metadáta) + história konverzácie (telo)Metadáta pri štarte; telo keď agent zavolá read_file()SkillsMiddleware injektuje index; agent načíta telo cez súborový nástroj
OpenAI Responses APIKontext používateľského promptu (spravovaný platformou)Pri skill_reference v API volaníPlatforma pripojí metadáta; model prečíta celý SKILL.md pri vyvolaní
OpenAI Agents SDKDefinície nástrojov (odložené cez ToolSearchTool)Názvy menných priestorov pri vytvorení; schémy pri volaní ToolSearchTooltool_namespace() + ToolSearchTool() pre progresívne objavovanie
AutoGen TeachabilityModifikovaná používateľská správa (injektované vyhľadané záznamy)Každý ťah — vyhľadávanie z vektorovej DB pred každým volaním LLMMiddleware zachytí správu, dopytuje ChromaDB, injektuje top-K zhody
Semantic KernelSchémy function-calling + obsah šablóny promptuVšetky schémy pri štarte; obsah šablóny pri vyvolaní funkciekernel.add_plugin() zaregistruje všetko; kernel.invoke() vyrenderuje šablóny
MetaGPTŠablóna promptu akcie (vyrenderovaná do volania LLM)Keď _act() Role spustí konkrétnu akciuAction.run() naformátuje PROMPT_TEMPLATE, odošle cez aask()
VoyagerPrompt na generovanie kódu (vyhľadaný kód zručnosti)Pred každým generovaním kódu; vyhľadávanie podľa podobnosti embeddingovSkillLibrary.retrieve_skills() injektuje top-5 ako few-shot príklady
DSPySkompilované few-shot ukážky v promptoch modulov PredictSkompilované offline optimalizátorom; fixné za behuBootstrapFewShot / MIPROv2 vyberie najlepšie ukážky; Predict ich vyrenderuje do promptu
SuperAGISchémy nástrojov v zozname nástrojov agentaVytvorenie agenta — všetky nástroje toolkitu zaregistrované vopredBaseToolkit.get_tools() zaregistruje všetko ako function-calling nástroje
CAMEL-AISchémy funkcií + systémová správa roleVytvorenie agenta — všetky nástroje zaregistrované vopredChatAgent(tools=[*toolkit.get_tools()]) načíta všetko pri inicializácii

Perzistencia, tokenové náklady a trvalá prítomnosť

PlatformaVždy prítomné?PerzistenciaTokenové náklady
Claude CodeMetadáta: ÁNO. Telo: iba po aktiváciiRozsah relácie. Pri kompakcii: znovu pripojené (5K/zručnosť, 25K limit)~250 znakov/metadáta zručnosti; 1 % rozpočtu kontextu
CrewAIÁNO — celé telo v každom prompte úlohyČerstvé injektovanie na úlohu; žiadna perzistencia medzi úlohamiCelé telo pri každom volaní. 50K znakov mäkký limit
LangChain Deep AgentsMetadáta: ÁNO. Telo: na vyžiadanieTelo zostáva v histórii konverzácie; zručnosti subagenta izolované~100 tokenov/metadáta zručnosti; telo zaplatené raz (~3 302 tokenov)
OpenAI Responses APINázov+popis: ÁNO. Celé telo: pri vyvolaníIba jedna API odpoveď; žiadna perzistencia medzi volaniamiSpravované platformou
OpenAI Agents SDKZoznam menných priestorov: ÁNO. Schémy: na vyžiadanieIba jeden beh; znovuobjavenie na reláciuMinimálne do aktivácie
AutoGen TeachabilityNIE — iba relevantné záznamy na ťahMedzi reláciami cez ChromaDB; pretrvávajú neobmedzene~3 – 5 záznamov na ťah (variabilné)
Semantic KernelVšetky schémy: ÁNO. Šablóny: pri vyvolaníV pamäti na inštanciu kernelu; žiadna medzireláciová perzistenciaVšetky schémy vždy prítomné
MetaGPTNIE — iba šablóna aktuálnej akcieIba jedno vykonanie akcieJedna šablóna na ťah
VoyagerNIE — top-5 vyhľadaných na úlohuCeloživotná perzistencia vo vektorovej DB~500 – 2 000 tokenov na príklad zručnosti
DSPyÁNO — skompilované ukážky zabudovanéSerializovateľné do JSON; pretrvávajú medzi reláciamiFixné po kompilácii (3 – 8 ukážok/modul)
SuperAGIÁNO — všetky schémy vždy prítomnéV rámci relácie agentaVšetky schémy vždy prítomné
CAMEL-AIÁNO — všetky schémy + prompt roleV rámci relácie konverzácieVšetky schémy vždy prítomné
Logo

Pripravení rozšíriť svoje podnikanie?

Začnite svoju 30-dňovú skúšobnú verziu ešte dnes a vidzte výsledky behom pár dní.

Čo vlastne znamená „injektovanie zručností"

Pred ponorením sa do porovnania si definujme problémový priestor. Kontextové okno AI agenta — celkový text, ktorý LLM vidí pri každom volaní — má fixnú veľkosť. Každý token inštrukcie, histórie konverzácie, definície nástroja a získaných dát súperí o miesto v tomto okne.

„Zručnosť" v kontexte agenta je akýkoľvek štruktúrovaný balík expertízy, ktorý mení správanie agenta. Môže to byť:

  • Inštrukcie hovoriace agentovi, ako pristupovať ku konkrétnej doméne (pokyny pre kontrolu kódu, kontrolné zoznamy nasadenia)
  • Definície nástrojov poskytujúce agentovi volateľné funkcie (API integrácie, súborové operácie)
  • Few-shot príklady ukazujúce agentovi, ako vyzerá dobrý výstup
  • Vyhľadané znalosti z vektorových databáz alebo externých dokumentov

Mechanizmus injektovania — kde a kedy tento obsah vstupuje do kontextu — určuje tri kľúčové vlastnosti:

  1. Tokenová efektívnosť: Koľko tokenov zručnosť spotrebuje a platí sa tento náklad aj vtedy, keď zručnosť nie je potrebná?
  2. Spoľahlivosť: Bude agent konzistentne používať zručnosť, keď je relevantná, alebo môže signál prehliadnuť?
  3. Škálovateľnosť: Koľko zručností môže agent využívať, kým nadmerný kontextový objem zhorší výkon?

Každý framework robí v týchto troch dimenziách iné kompromisy. Pozrime sa na každý z nich.

Spektrum injektovania: Od trvalej prítomnosti po načítanie na vyžiadanie

Naprieč všetkými 11 platformami sa prístupy k injektovaniu zručností nachádzajú na spektre od „všetko načítané vopred" po „nič sa nenačíta, kým to nie je explicitne potrebné."

Na jednom konci platformy ako CrewAI, SuperAGI a CAMEL-AI injektujú plný obsah každej aktivovanej zručnosti do každého volania LLM. Agent má vždy k dispozícii svoju kompletnú expertízu. Jednoduché, spoľahlivé, ale nákladné na tokeny.

Na druhom konci Claude Code, LangChain Deep Agents a OpenAI Responses API používajú progresívne odhaľovanie — agent vidí pri štarte iba názvy zručností a krátke popisy a plný obsah sa načítava na vyžiadanie. Efektívne, škálovateľné, ale vyžaduje, aby agent rozpoznal, kedy zručnosť potrebuje.

Uprostred AutoGen Teachability a Voyager používajú sémantické vyhľadávanie na injektovanie iba najrelevantnejších zručností na ťah, čím vytvárajú dynamický, kontextovo citlivý vzor injektovania.

A potom sú tu unikátne prístupy: DSPy kompiluje optimalizované few-shot príklady offline a natrvalo ich zabuduje do promptov modulov. MetaGPT kóduje zručnosti ako šablóny akcií, ktoré sa aktivujú len vtedy, keď konkrétna rola prejde na konkrétnu akciu.

Pozrime sa na každý podrobne.

Claude Code: Trojvrstvové progresívne odhaľovanie

Trojvrstvové progresívne odhaľovanie Claude Code: vždy prítomné metadáta, telo zručnosti pri aktivácii, zdroje na vyžiadanie

Claude Code implementuje jednu z najsofistikovanejších architektúr injektovania zručností, používajúcu trojvrstvový systém progresívneho odhaľovania, ktorý vyvažuje informovanosť s tokenovou efektívnosťou.

Vrstva 1: Vždy v kontexte

Pri štarte relácie sa názov a popis každej dostupnej zručnosti injektuje do správy system-reminder — metadátového bloku, ktorý model vždy vidí. Toto stojí približne 250 znakov na zručnosť a spotrebuje asi 1 % rozpočtu kontextového okna pre všetky popisy zručností dohromady (približne 8K znakov ako záložný rozpočet, prepísateľný cez premennú prostredia SLASH_COMMAND_TOOL_CHAR_BUDGET).

Podobne sa odložené nástroje — nástroje, ktorých úplné JSON schémy ešte neboli načítané — zobrazujú ako zoznam iba názvov v blokoch system-reminder. Od verzie Claude Code v2.1.69 sú dokonca vstavané systémové nástroje ako Bash, Read, Edit, Write, Glob a Grep odložené za ToolSearch, čím sa kontext systémových nástrojov znižuje z približne 14 – 16K tokenov na zhruba 968 tokenov.

Agent vidí dosť na to, aby vedel, čo je dostupné, bez toho, aby platil tokenové náklady za plné definície.

Vrstva 2: Pri aktivácii

Keď používateľ zadá lomítkový príkaz (napr. /commit) alebo model automaticky priradí zručnosť na základe jej popisu, celé telo SKILL.md sa načíta ako správa v konverzácii cez Skill tool. Toto telo obsahuje kompletné inštrukcie — niekedy tisíce tokenov podrobného návodu.

Kľúčový detail: Najprv prebehne shell preprocessing (akékoľvek direktívy !command v súbore zručnosti sa vykonajú a ich výstup nahradí direktívu) a po načítaní telo zručnosti zostáva v konverzácii po zvyšok relácie.

Vrstva 3: Na vyžiadanie

Ďalšie zdroje — referenčné dokumenty, skripty, súbory zdrojov — sa čítajú len vtedy, keď sa model explicitne rozhodne použiť nástroj Read na prístup k nim. Tieto sa nikdy nenačítavajú automaticky.

Správanie pri kompakcii kontextu

Keď sa konverzácia priblíži k limitu kontextu a spustí sa kompakcia, Claude Code znovu pripojí naposledy vyvolané zručnosti s rozpočtom 5K tokenov na zručnosť a maximálnym kombinovaným limitom 25K. Naposledy vyvolané zručnosti majú prioritu. Staršie zručnosti môžu byť úplne vynechané.

Táto trojvrstvová architektúra znamená, že agent s 20+ dostupnými zručnosťami platí minimálne počiatočné náklady, no môže pristúpiť k plnej expertíze na ktorúkoľvek z nich v rámci jedného ťahu.

CrewAI: Plné injektovanie do každého promptu úlohy

Injektovanie zručností v CrewAI: celé telo pripojené ku každému promptu úlohy cez format_skill_context()

CrewAI zaujíma opačný prístup oproti progresívnemu odhaľovaniu. Keď je zručnosť aktivovaná pre agenta, jej celý obsah sa injektuje do každého promptu úlohy, ktorú agent vykonáva.

Ako to funguje

Zručnosti v CrewAI sú samostatné adresáre, každý so súborom SKILL.md obsahujúcim YAML frontmatter (názov, popis, licencia, kompatibilita, povolené nástroje) a markdown telo. Systém zručností rozlišuje medzi zručnosťami a nástrojmi: zručnosti injektujú inštrukcie a kontext, ktoré formujú spôsob myslenia agenta, zatiaľ čo nástroje poskytujú volateľné funkcie pre akcie.

Počas inicializácie agenta Agent.set_skills() zavolá discover_skills() na skenovanie adresárov zručností na úrovni metadát a potom activate_skill() na prečítanie celých tiel zručností. V čase vykonávania úlohy _finalize_task_prompt() zavolá format_skill_context() pre každú aktivovanú zručnosť a pripojí všetok naformátovaný obsah zručností k promptu úlohy.

LLM dostane: [systémová správa] + [prompt úlohy + VŠETKY telá zručností]

Tokenové dôsledky

CrewAI ukladá mäkké varovanie pri 50 000 znakoch na zručnosť, ale žiadny tvrdý limit. Dokumentácia odporúča udržiavať zručnosti zamerané a stručné, pretože veľké promptové injekcie rozptyľujú pozornosť modelu — reálna obava vzhľadom na výskum o degradácii kontextu.

Kompromis je priamočiary: agent má vždy k dispozícii plnú expertízu (vysoká spoľahlivosť), no tokenové náklady rastú lineárne s počtom zručností na úlohu (nízka efektívnosť). Pre agentov s 1 – 2 zameranými zručnosťami to funguje dobre. Pre agentov potrebujúcich široké sady schopností to rýchlo zdražuje.

Žiadna perzistencia medzi úlohami

Každá úloha dostane čerstvé injektovanie. Nedochádza k akumulácii obsahu zručností naprieč úlohami — čo je v skutočnosti výhoda, nie chyba. Znamená to, že každá úloha začína s čistým kontextom, čím sa predchádza problémom so zastaranosťou, ktoré môže vytvoriť perzistencia na úrovni relácie.

LangChain Deep Agents: Načítanie riadené agentom cez SkillsMiddleware

Trojúrovňové načítavanie zručností LangChain Deep Agents: index cez SkillsMiddleware, plný obsah cez read_file, hĺbkový ponor na vyžiadanie

LangChain Deep Agents implementuje sofistikovaný systém zručností založený na middleware, kde agent sám rozhoduje, kedy načítať plný obsah zručnosti — skutočný model progresívneho odhaľovania, kde aktiváciu riadi agent.

Tri úrovne

Úroveň 1 (Index): SkillsMiddleware pri štarte spracuje všetky frontmatter súborov SKILL.md a injektuje ľahký index do systémového promptu. Tento index obsahuje iba názvy a popisy a stojí približne 278 tokenov na zručnosť oproti 3 302 tokenom za plný obsah.

Úroveň 2 (Plný obsah): Keď agent určí, že zručnosť je relevantná, zavolá read_file() na cestu k súboru SKILL.md zručnosti. Ide o bežné volanie nástroja — framework neinjektuje telo; agent sa vedome rozhodne ho načítať. Plný obsah vstupuje do histórie konverzácie ako výsledok nástroja.

Úroveň 3 (Hĺbkový ponor): Podporné materiály, referenčné dokumenty a skripty sú prístupné len vtedy, keď ich agent explicitne prečíta.

Tokenová efektívnosť v praxi

S 12 zručnosťami progresívne odhaľovanie znižuje kontext z približne 30 000 tokenov (všetko načítané) na zhruba 600 tokenov (iba index), pričom sa rozšíri na 2 000 – 5 000, keď sa načítajú relevantné zručnosti pre konkrétnu úlohu. To je potenciálna 83 – 98 % redukcia spotreby tokenov súvisiacich so zručnosťami.

Viaceré zdroje zručností je možné vrstviť a pri kolízii názvov vyhráva posledný zdroj. Súbory nad 10 MB sa automaticky preskočia.

Kľúčový rozdiel oproti Claude Code

Zatiaľ čo Claude Code používa na spustenie načítania dedikovaný Skill tool, Deep Agents využíva existujúci nástroj agenta read_file. To znamená, že mechanizmus načítavania je transparentný — agent číta súbory zručností rovnako ako akýkoľvek iný súbor. Nevýhodou je, že neexistuje špeciálne správanie pri kompakcii: obsah zručností, ktorý vstúpi do histórie konverzácie, podlieha štandardnému orezávaniu správ LangChain bez prioritného zaobchádzania.

OpenAI Responses API a Agents SDK: Odložené načítavanie spravované platformou

Odložené načítavanie nástrojov OpenAI: tri stratégie odkladu s platformou spravovaným tool_search

OpenAI implementuje injektovanie zručností prostredníctvom dvoch odlišných, ale filozoficky zladených mechanizmov: typu nástroja tool_search v Responses API a ToolSearchTool v Agents SDK.

Typ nástroja tool_search (dostupný na GPT-5.4+) umožňuje vývojárom odložiť veľké nástrojové povrchy až do behu. K dispozícii sú tri stratégie odkladu:

  • Individuálny odklad funkcie: @function_tool(defer_loading=True) — model vidí názov funkcie a popis, ale schéma parametrov je odložená. Šetrí tokeny na úrovni parametrov.
  • Odklad menného priestoru: tool_namespace(name=..., description=..., tools=[...]) — zoskupuje funkcie pod jeden menný priestor. Model vidí iba názov a popis menného priestoru, čím výrazne šetrí tokeny.
  • Odklad MCP servera: HostedMCPTool(tool_config={..., "defer_loading": True}) — odkladá celé nástrojové povrchy MCP serverov.

Keď model určí, že potrebuje konkrétny nástroj, vydá volanie tool_search. API vráti 3 – 5 relevantných definícií nástrojov, injektovaných na koniec kontextového okna, aby sa zachovalo cachovanie promptov.

Agents SDK: ToolSearchTool

Agents SDK poskytuje programatický ekvivalent. Menné priestory nástrojov sa zaregistrujú, ale nenačítajú:

crm_tools = tool_namespace(
    name="crm",
    description="CRM management tools",
    tools=[...]
)
agent = Agent(tools=[*crm_tools, ToolSearchTool()])

Za behu agent vidí iba názvy menných priestorov. Zavolá ToolSearchTool("crm") na objavenie a načítanie úplných schém a potom môže volať jednotlivé nástroje v rámci daného menného priestoru.

Žiadna perzistencia medzi požiadavkami

Každá API požiadavka je nezávislá. Objavené nástroje nepretrvávajú medzi volaniami. Toto je najbezstavovejší prístup v našom porovnaní — čistý, predvídateľný, ale vyžadujúci znovuobjavenie pri každej požiadavke, ak sa nástroje zmenia.

AutoGen Teachability: Sémantické vyhľadávanie na každý ťah

Cyklus vyhľadávania AutoGen Teachability na každý ťah: zachytenie správy, dopyt na ChromaDB, injektovanie záznamov, učiaci sa cyklus

Schopnosť Teachability v AutoGen zaujíma zásadne odlišný prístup od každého iného frameworku v tomto porovnaní. Namiesto injektovania statického obsahu zručností dynamicky vyhľadáva relevantné „záznamy" z vektorovej databázy ChromaDB pri každom jednotlivom ťahu.

Cyklus vyhľadávania na každý ťah

Teachability zaregistruje hook na process_last_received_message, ktorý zachytí každú prichádzajúcu používateľskú správu predtým, než ju agent spracuje:

  1. TextAnalyzerAgent extrahuje kľúčové koncepty z prichádzajúcej správy
  2. Tieto koncepty sa použijú na dopytovanie ChromaDB (v predvolenom nastavení sa používajú Sentence Transformer embeddingy)
  3. Vyhľadá sa top-K najrelevantnejších záznamov (konfigurovateľné cez max_num_retrievals, predvolene 10)
  4. Vyhľadané záznamy sa pripoja k textu správy predtým, než ju agent uvidí

Kriticky dôležité je, že modifikovaná správa sa neprenáša do uloženej histórie konverzácie — ukladá sa iba pôvodná správa. Tým sa predchádza kumulácii obsahu záznamov naprieč ťahmi.

Učiaci sa cyklus

Po odpovedi LLM druhý hook analyzuje odpoveď na nové poznatky:

  1. TextAnalyzerAgent identifikuje nové znalosti v odpovedi
  2. Nové záznamy sa extrahujú ako páry kľúč-hodnota (vstupný text → výstupný text)
  3. Tieto záznamy sa uložia do ChromaDB, dostupné pre budúce ťahy a relácie

Tým sa vytvára skutočný učiaci sa cyklus, v ktorom agent postupne akumuluje expertízu.

Medzireláciová perzistencia

AutoGen Teachability je jednou z iba troch platforiem v našom porovnaní (spolu s Voyager a DSPy), ktoré uchovávajú zručnosti medzi reláciami. Databáza ChromaDB sa nachádza na disku, čo znamená, že agent sa môže učiť z interakcií v pondelok a aplikovať tieto znalosti v piatok.

Parameter recall_threshold (predvolene 1.5) riadi, aká podobná musí byť správa uloženému záznamu na vyhľadanie, a reset_db môže vymazať celú pamäť podľa potreby.

Tokenová efektívnosť

Keďže sa na každý ťah injektujú iba relevantné záznamy (typicky 3 – 5), tokenové náklady sú prirodzene ohraničené bez ohľadu na to, aká veľká je databáza záznamov. Agent s 10 000 uloženými záznamami stále platí iba za hŕstku najrelevantnejších k aktuálnemu ťahu.

Semantic Kernel: Schémy pluginov ako vždy prítomné definície nástrojov

Dve cesty injektovania Semantic Kernel: function calling so všetkými schémami vždy prítomnými a renderovanie šablón promptov

Semantic Kernel od Microsoftu zaujíma priamočiary prístup: pluginy sú kolekcie objektov KernelFunction zaregistrovaných v Kerneli a ich schémy sú vystavené LLM ako definície function-calling nástrojov.

Dve cesty injektovania

Function Calling: Keď je nastavené ToolCallBehavior.AutoInvokeKernelFunctions, všetky zaregistrované funkcie sa posielajú LLM ako dostupné nástroje v každej API požiadavke. LLM rozhodne, ktoré zavolať; Semantic Kernel rieši vyvolanie a smerovanie výsledkov.

Šablóny promptov: Syntax šablón Semantic Kernel ({{plugin.function}}, Handlebars alebo Liquid) umožňuje volanie funkcií inline počas renderovania promptu. Výsledky sa vkladajú priamo do textu promptu pred jeho odoslaním LLM — forma eager evaluation namiesto lenivého volania nástrojov.

Žiadne progresívne odhaľovanie

Schéma každého zaregistrovaného pluginu je zahrnutá v každom API volaní. Neexistuje vstavaný odložený loading, zoskupovanie do menných priestorov ani aktivácia na vyžiadanie. Dokumentácia explicitne odporúča importovať iba pluginy potrebné pre konkrétny scenár, aby sa znížila spotreba tokenov a nesprávne volania.

To robí Semantic Kernel jednou z najpredvídateľnejších platforiem — vždy presne viete, k čomu má agent prístup — ale obmedzuje škálovateľnosť. Agent s 50 zaregistrovanými funkciami platí plné náklady na schémy pri každom jednotlivom volaní.

Perzistencia

Registrácia pluginov je per-inštancia Kernelu a v pamäti. Neexistuje vstavaný mechanizmus na medzireláciové uchovávanie zručností.

MetaGPT: Šablóny akcií v rámci SOP založených na rolách

SOP založené na rolách v MetaGPT: Rola s persónou, výber režimu react, aktívna šablóna akcie, volanie aask() LLM

MetaGPT kóduje zručnosti nie ako samostatné balíky, ale ako šablóny akcií zabudované v štandardných operačných postupoch (SOP), ktoré riadia správanie role.

Architektúra Role a Action

Každá Role v MetaGPT má prefix persóny injektovaný do promptov a sadu tried Action. Každá Action obsahuje LLM proxy vyvolanú cez aask(), ktorá používa šablóny promptov v prirodzenom jazyku na štruktúrovanie volania LLM.

Keď sa spustí Role._act(), podporuje tri režimy reakcie:

  • "react": LLM dynamicky vyberá akcie v cykloch think-act
  • "by_order": Akcie sa vykonávajú sekvenčne vo vopred určenom poradí
  • "plan_and_act": Agent najprv plánuje, potom vykonáva akcie podľa plánu

Úzke injekčné okno

V každom okamihu je aktívna iba šablóna promptu aktuálnej akcie. Agent nevidí šablóny pre iné akcie — vidí iba prefix svojej role plus kontext konkrétnej akcie. Toto je najužšie injekčné okno zo všetkých frameworkov, ktoré sme skúmali.

Funkcie na parsovanie kontextu v rámci tried Action extrahujú relevantné informácie zo vstupov, takže každá akcia dostáva kurátorskú podmnožinu dostupného kontextu namiesto celej histórie konverzácie.

Jednoťahová perzistencia

Šablóna sa renderuje nanovo pri každom vykonaní akcie. Nedochádza k akumulácii ani medzireláciová perzistencia neexistuje. Tým sa každá akcia udržuje zameraná, ale agent nemôže stavať na predtým načítanom obsahu zručností v rámci jedného workflow.

Voyager: Vyhľadávanie zručností na základe embeddingov pre celoživotné učenie

Knižnica zručností Voyager: kurikulum navrhne úlohu, vyhľadávanie embeddingov nájde top-5 zručností, generovanie kódu s cyklom celoživotného učenia

Voyager, agent na prieskum Minecraftu od NVIDIA a Caltech, implementuje jednu z najelegantnejších architektúr injektovania zručností: rastúcu knižnicu overených programov vyhľadávaných podľa podobnosti embeddingov.

Knižnica zručností

Keď Voyager napíše kód, ktorý prejde sebaoverením (vygenerovaný JavaScript pre Mineflayer skutočne funguje v hre), kód a jeho dokumentačný reťazec sa uložia do vektorovej databázy. Embedding dokumentačného reťazca sa stáva kľúčom na vyhľadávanie.

Vyhľadávanie na úlohu

Pri každej novej úlohe navrhnutej automatickým kurikulom:

  1. Popis úlohy a spätná väzba z prostredia sa embeddujú
  2. Vyhľadávanie kosínovej podobnosti proti všetkým uloženým embeddingom zručností
  3. Vyhľadá sa top-5 najrelevantnejších zručností
  4. Vyhľadaný kód zručností sa zahrnie do promptu akčného agenta ako few-shot príklady

Prompt vyzerá takto:

You are a Minecraft bot. Here are some relevant skills you've learned:

// Skill: mineWoodLog
async function mineWoodLog(bot) { ... }

// Skill: craftPlanks
async function craftPlanks(bot) { ... }

Now write code to: build a wooden pickaxe

Vygenerovaný kód môže volať vyhľadané zručnosti podľa mena, čo umožňuje kompozičné budovanie zručností — komplexné správanie zostavené z jednoduchších, overených primitív.

Celoživotná perzistencia

Knižnica zručností je jadrovým mechanizmom „celoživotného učenia". Rastie počas celej životnosti agenta a nové zručnosti stavajú na starých. Na rozdiel od väčšiny frameworkov, kde zručnosti píšu ľudia, Voyagerove zručnosti sú generované, overované a ukladané samotným agentom.

Tokenové náklady sú prirodzene ohraničené: bez ohľadu na to, či knižnica obsahuje 50 alebo 5 000 zručností, každá úloha platí iba za 5 najrelevantnejších vyhľadaní.

DSPy: Skompilované few-shot príklady ako zmrazené zručnosti

Kompilácia DSPy: optimalizátory BootstrapFewShot a MIPROv2 kompilujú zmrazené few-shot ukážky do promptov modulov Predict

DSPy zaujíma radikálne odlišný prístup od každého iného frameworku. Namiesto injektovania zručností za behu DSPy kompiluje optimálne few-shot ukážky offline a natrvalo ich zabuduje do promptov modulov.

Proces kompilácie

Dva hlavné optimalizátory riadia kompiláciu:

BootstrapFewShot: Používa učiteľský modul na generovanie stôp cez program. Stopy, ktoré prejdú používateľom definovanou metrikou, sa uchovajú ako ukážky. Každý modul dspy.Predict v rámci programu dostáva vlastnú kurátorskú sadu ukážok.

MIPROv2 (Multi-prompt Instruction Proposal Optimizer v2): Trojfázový proces:

  1. Bootstrap: Generovanie kandidátnych sád ukážok
  2. Propose: Generovanie kandidátnych textov inštrukcií, ktoré zohľadňujú distribúciu dát aj ukážky
  3. Search: Bayesovská optimalizácia nad kombinovaným priestorom inštrukcií x ukážok naprieč všetkými modulmi

Parametre ako max_bootstrapped_demos (generované príklady) a max_labeled_demos (z trénovacích dát) riadia, koľko príkladov skončí v prompte každého modulu.

Fixné po kompilácii

Po kompilácii sú ukážky uložené v atribúte demos každého modulu Predict a formátované do promptu pri každom volaní LLM. Za behu sa nemenia — „zručnosť" je zmrazená.

To znamená, že zručnosti DSPy sú najpredvídateľnejšie v našom porovnaní: tokenové náklady sú známe po kompilácii, medzi ťahmi nie je žiadna variancia a agent vždy vidí rovnaké ukážky. Nevýhodou je nepružnosť — na zmenu zručností musíte rekompilovať.

Perzistencia

Skompilované programy sa serializujú do JSON vrátane všetkých ukážok. Sú plne perzistentné a načítateľné naprieč reláciami, čo robí z DSPy jeden z najodolnejších mechanizmov uchovávania zručností.

SuperAGI: Registrácia na základe toolkitov vopred

Registrácia toolkitov vopred v SuperAGI a CAMEL-AI: všetky schémy nástrojov načítané pri inicializácii agenta

SuperAGI používa tradičný vzor toolkitov, kde sa všetky nástroje registrujú pri inicializácii agenta.

Každý toolkit rozširuje BaseToolkit s:

  • atribútmi name a description
  • metódou get_tools() vracajúcou zoznam inštancií BaseTool
  • get_env_keys() pre požadované premenné prostredia

Toolkity sa inštalujú z GitHub repozitárov cez správcu nástrojov SuperAGI. Pri inicializácii agenta BaseToolkit.get_tools() vráti všetky nástroje a ich kompletné schémy sú vystavené LLM ako definície function-calling.

Neexistuje odložené načítavanie, žiadne progresívne odhaľovanie a žiadne filtrovanie na ťah. Schéma každého zaregistrovaného nástroja je prítomná v každom volaní. Toto je najjednoduchší model injektovania a dobre funguje pre agentov so zameranými, malými sadami nástrojov, ale neškáluje sa na agentov potrebujúcich desiatky schopností.

CAMEL-AI: Registrácia nástrojov v ChatAgent

CAMEL-AI sleduje podobný vzor registrácie vopred. Nástroje z rôznych toolkitov (napr. MathToolkit, SearchToolkit) sa odovzdávajú ako zoznam do ChatAgent(tools=[...]) pri inicializácii.

Framework zdôrazňuje, že vlastné funkcie potrebujú jasné názvy argumentov a komplexné docstringy, aby model pochopil použitie — schéma nástroja je jediný obsah „zručnosti", ktorý model vidí. Neexistuje samostatný mechanizmus injektovania inštrukcií.

Medzi nedávne doplnky patrí podpora MCP (Model Context Protocol) cez MCPToolkit, ktorá umožňuje ChatAgent pripojenie k MCP serverom a registráciu externých nástrojov. To rozširuje dostupný nástrojový povrch, ale nemení model injektovania — všetky objavené MCP nástroje sa stále registrujú vopred.

Porovnanie naprieč platformami

Kedy sa zručnosti injektujú

NačasovaniePlatformyČo sa injektuje
Vždy prítomné (štart relácie)Claude Code, CrewAI, Deep Agents, Semantic Kernel, SuperAGI, CAMEL-AI, DSPyMetadáta (názov + popis) alebo plné schémy
Pri aktivácii (spustené používateľom alebo agentom)Claude Code, Deep Agents, OpenAIPlné telo zručnosti
Každá úloha/ťahCrewAI, AutoGen TeachabilityPlné telo (CrewAI) alebo vyhľadané záznamy (AutoGen)
Pri výbere LLMSemantic Kernel, MetaGPTObsah šablóny promptu
Pri zhode podobnostiVoyager, AutoGen TeachabilityVyhľadaný kód alebo záznamy
Skompilované/fixnéDSPyOptimalizované few-shot príklady

Modely perzistencie

PerzistenciaPlatformyMechanizmus
Iba jeden ťahMetaGPT, VoyagerŠablóna renderovaná na akciu / na generovanie
V rámci relácieClaude Code, Deep Agents, OpenAI, Semantic KernelTelo zostáva v histórii správ
Znovu injektované pri každej úloheCrewAI, SuperAGI, CAMEL-AIPripojené nanovo pri každom vykonaní úlohy
Medzi reláciami (perzistentné úložisko)AutoGen Teachability, Voyager, DSPyVektorová DB / skompilované moduly / knižnica zručností

Prežitie kompakcie kontextu

PlatformaČo sa stane, keď sa kontext zaplní
Claude CodeZnovu pripojí najnovšie zručnosti (5K tokenov každá, 25K limit). Staršie zručnosti vynechané
CrewAIN/A — injektované nanovo na úlohu, žiadna akumulácia
Deep AgentsTelo v histórii konverzácie, podlieha štandardnému orezávaniu LangChain
OpenAIN/A — každé API volanie je nezávislé
AutoGenIba relevantné záznamy vyhľadané na ťah, prirodzene ohraničené
VoyagerIba top-K zručností vyhľadaných na úlohu, prirodzene ohraničené

Vzor progresívneho odhaľovania

Najvýznamnejší architektonický trend naprieč týmito platformami je adopcia progresívneho odhaľovania — konceptu prevzatého z UI dizajnu, kde sa informácie odhaľujú postupne na základe potreby.

Prečo záleží na progresívnom odhaľovaní

Naivný prístup k injektovaniu zručností — načítanie všetkého vopred — vytvára dva problémy:

  1. Plytvanie tokenmi: Väčšina zručností nie je relevantná pre väčšinu ťahov. Načítanie 20 plných tiel zručností, keď sú na ťah potrebné iba 1 – 2, plytvá 90 %+ tokenov súvisiacich so zručnosťami.
  2. Rozptýlenie pozornosti: Výskum degradácie kontextu ukazuje, že LLM fungujú horšie, keď ich kontext obsahuje veľké množstvo irelevantných informácií. Viac zručností v kontexte môže v skutočnosti znížiť kvalitu aplikácie zručností.

Progresívne odhaľovanie rieši oba problémy udržiavaním ľahkého indexu dostupných zručností a načítavaním plného obsahu iba keď je potrebný.

Variácie implementácie

Claude Code používa dedikovaný systém: metadáta zručností v správach system-reminder, Skill tool na aktiváciu a ToolSearch na odložené schémy nástrojov. Framework riadi injektovanie automaticky s kompakciou založenou na prioritách.

LangChain Deep Agents používa existujúcu schopnosť agenta čítať súbory: SkillsMiddleware injektuje index a agent načíta plný obsah cez read_file(). Toto je transparentnejšie, ale ponúka menej optimalizácie na úrovni frameworku.

OpenAI Responses API používa zoskupovanie na základe menných priestorov s vyhľadávaním spravovaným platformou: menné priestory nástrojov poskytujú vysokoúrovňové popisy a tool_search vracia relevantné schémy. Platforma riadi logiku vyhľadávania úplne.

Úspory tokenov v praxi

Čísla sú presvedčivé. S 12 zručnosťami:

  • Trvalé injektovanie (štýl CrewAI/SuperAGI): ~30 000 tokenov
  • Iba index progresívneho odhaľovania: ~600 tokenov
  • Index + 2 aktivované zručnosti: ~2 000 – 5 000 tokenov

To je 83 – 98 % redukcia spotreby tokenov súvisiacich so zručnosťami na ťah. Počas dlhej relácie so stovkami ťahov sa úspory dramaticky kumulujú.

Architektonické vzory a kompromisy

Pri pohľade na všetkých 11 platforiem sa vynárajú štyri odlišné architektonické vzory:

Vzor 1: Trvalé injektovanie

Používajú: CrewAI, SuperAGI, CAMEL-AI, Semantic Kernel

Ako funguje: Plný obsah zručností alebo schémy nástrojov sú prítomné v každom volaní LLM.

Výhody:

  • Maximálna spoľahlivosť — agent má vždy k dispozícii plnú expertízu
  • Najjednoduchšia implementácia — žiadna aktivačná logika nie je potrebná
  • Predvídateľné tokenové náklady — rovnaké pri každom ťahu

Nevýhody:

  • Tokenové náklady rastú lineárne s počtom zručností
  • Rozptýlenie pozornosti pri veľkom počte zručností
  • Neškáluje sa nad ~5 – 10 zručností na agenta

Najlepšie pre: Zameraných agentov s 1 – 3 hlavnými zručnosťami, ktoré sú vždy relevantné.

Vzor 2: Progresívne odhaľovanie

Používajú: Claude Code, LangChain Deep Agents, OpenAI Responses API/Agents SDK

Ako funguje: Ľahké metadáta vždy prítomné; plný obsah načítaný na vyžiadanie.

Výhody:

  • Škáluje sa na desiatky alebo stovky dostupných zručností
  • Minimálne tokenové náklady, keď zručnosti nie sú potrebné
  • Zachováva cache promptov, keď sa plné schémy pripájajú na koniec

Nevýhody:

  • Agent môže prehliadnuť signál na aktiváciu relevantnej zručnosti
  • Dodatočná latencia z aktivačného kroku
  • Komplexnejšia implementácia frameworku

Najlepšie pre: Univerzálnych agentov, ktorí potrebujú prístup k mnohým schopnostiam, ale používajú iba niekoľko na úlohu.

Vzor 3: Sémantické vyhľadávanie

Používajú: AutoGen Teachability, Voyager

Ako funguje: Dopyty vektorovej databázy vynášajú na povrch relevantné zručnosti/znalosti na základe sémantickej podobnosti s aktuálnym kontextom.

Výhody:

  • Prirodzene ohraničené tokenové náklady bez ohľadu na veľkosť knižnice
  • Relevancia obsahu sa zlepšuje s rastom knižnice
  • Učenie a akumulácia medzi reláciami
  • Žiadna explicitná aktivácia nie je potrebná — relevancia sa vypočítava automaticky

Nevýhody:

  • Kvalita vyhľadávania závisí od kvality modelu embeddingov
  • Riziko vyhľadania zastaraných alebo subtílne nesprávnych informácií
  • Vyžaduje infraštruktúru vektorovej databázy
  • Menej predvídateľné — rôzne ťahy načítajú rôzny obsah

Najlepšie pre: Agentov, ktorí sa učia zo skúseností a potrebujú akumulovať doménové znalosti v čase.

Vzor 4: Skompilované/statické injektovanie

Používajú: DSPy, MetaGPT

Ako funguje: Zručnosti sa kompilujú do fixného obsahu promptu (DSPy) alebo sa aktivujú cez rigidné šablóny akcií (MetaGPT).

Výhody:

  • Najpredvídateľnejšie správanie — rovnaký obsah zakaždým
  • Optimalizácia sa dá vykonať offline (kompilácia DSPy)
  • Žiadna réžia za behu na výber zručností
  • Preukázaná účinnosť pre dobre definované, opakovateľné úlohy

Nevýhody:

  • Nepružnosť — zmena zručností vyžaduje rekompiláciu (DSPy) alebo zmeny kódu (MetaGPT)
  • Nedokáže sa adaptovať na nové situácie mimo skompilovaných príkladov
  • Samotný proces kompilácie DSPy vyžaduje veľa volaní LLM

Najlepšie pre: Produkčné pipeline s dobre definovanými úlohami, kde spoľahlivosť prevažuje nad flexibilitou.

Praktické dôsledky pre tvorcov agentov

Výber správneho vzoru

Správna architektúra injektovania zručností závisí od profilu vášho agenta:

Ak má váš agent úzku, dobre definovanú rolu (napr. bot na kontrolu kódu, agent zákazníckej podpory pre jeden produkt), trvalé injektovanie (vzor CrewAI/SuperAGI) je najjednoduchšie a najspoľahlivejšie. Tokenové náklady 2 – 3 vždy prítomných zručností sú zvládnuteľné a vyhnete sa komplexnosti aktivačnej logiky.

Ak váš agent potrebuje široké schopnosti, ale používa iba niekoľko na interakciu (napr. asistent pre vývojárov, univerzálny automatizačný agent), progresívne odhaľovanie (vzor Claude Code/Deep Agents) je jednoznačným víťazom. Úspory 83 – 98 % tokenov v škále sú príliš významné na to, aby sa ignorovali.

Ak sa váš agent potrebuje učiť a zlepšovať z interakcií (napr. osobný asistent, doménový expert akumulujúci znalosti), sémantické vyhľadávanie (vzor AutoGen Teachability) poskytuje učiaci sa cyklus, ktorý ostatným vzorom chýba. Len zabezpečte kontroly kvality toho, čo vstupuje do znalostnej bázy.

Ak váš agent beží dobre definované pipeline (napr. spracovanie dát, generovanie reportov, štandardizované workflow), skompilované injektovanie (vzor DSPy) vám dáva najpredvídateľnejšie, najoptimalizovanejšie správanie.

Hybridný prístup

Pre produkčné tímy agentov, kde agenti musia fungovať priamo z krabice, odporúčame hybridný prístup:

Základné zručnosti (1 – 2 na agenta, definujúce ich primárnu doménovú expertízu): vždy injektované do systémového promptu, v štýle CrewAI. Toto sú nenahraditeľné schopnosti, ktoré agent potrebuje pri každom ťahu.

Rozšírené zručnosti (ďalšie schopnosti, ktoré agent môže potrebovať): iba metadáta v systémovom prompte, načítané cez mechanizmus vyhľadávania/načítania keď sú potrebné, v štýle Deep Agents. Tieto rozširujú sadu schopností agenta bez platenia tokenových nákladov, keď nie sú relevantné.

Naučené znalosti (akumulovaná doménová expertíza): uložené vo vektorovej databáze a sémanticky vyhľadávané na každý ťah, v štýle AutoGen. To umožňuje agentovi zlepšovať sa v čase bez manuálneho vytvárania zručností.

Táto vrstvená architektúra sa prirodzene mapuje na to, ako sa buduje systémový prompt: dátum → persóna → systémové inštrukcie → základné zručnosti → index zručností → kontext role/tímu. Základné zručnosti a index pridávajú predvídateľné, zvládnuteľné tokenové náklady, zatiaľ čo plné telá zručností sa objavujú iba keď sú potrebné.

Osvedčené postupy pre tokenový rozpočet naprieč frameworkmi

Bez ohľadu na to, ktorý vzor injektovania používate, tieto stratégie správy tokenov platia univerzálne:

Poradie priateľské ku cache

Stabilný kontext (systémové inštrukcie, schémy nástrojov) umiestňujte na začiatok promptu. U poskytovateľov podporujúcich cachovanie promptov stoja cachované tokeny o 75 % menej. Claude Code aj OpenAI injektujú objavené schémy nástrojov na koniec kontextu špecificky preto, aby zachovali cache hity na statickom prefixe.

Odľahčenie

Sumarizujte odpovede nástrojov namiesto uchovávania plných výsledkov v kontexte. Uložte kompletné dáta v externých referenciách, ku ktorým agent môže pristúpiť na vyžiadanie. Toto je obzvlášť dôležité pre agentov, ktorí robia veľa volaní nástrojov na reláciu.

Redukcia

Komprimujte históriu konverzácie prostredníctvom sumarizácie. Extrahujte kľúčové fakty z dlhých výmen do zhustených reprezentácií. Každý framework s perzistenciou na úrovni relácie profituje z agresívnej správy histórie.

Vyhľadávanie namiesto prednačítavania

Dynamicky získavajte relevantné informácie za behu namiesto načítavania všetkého vopred. Toto sa vzťahuje na zručnosti, znalostné bázy a dokonca aj na históriu konverzácie. Štúdie ukazujú, že to môže znížiť veľkosť promptov až o 70 %.

Izolácia

Používajte sub-agentov na konkrétne úlohy, aby kontext každého agenta zostal zameraný. Namiesto toho, aby ste jednému agentovi dali 20 zručností, vytvorte tím 5 agentov so 4 zručnosťami každý. Každý agent si udržiava štíhle kontextové okno a tím kolektívne pokrýva celú sadu schopností.

Záver

Spôsob, akým AI agentové frameworky injektujú zručnosti do kontextu, je jedným z najdôslednejších architektonických rozhodnutí v dizajne agentov — no zriedka sa diskutuje na tejto úrovni detailu.

Oblasť jednoznačne konverguje k progresívnemu odhaľovaniu ako preferovanému vzoru pre univerzálnych agentov, pričom Claude Code, LangChain Deep Agents a OpenAI všetci nezávisle dospeli k podobným trojúrovňovým architektúram. Medzitým špecializované vzory ako sémantické vyhľadávanie (AutoGen, Voyager) a skompilované injektovanie (DSPy) slúžia dôležitým výklenkom, ktoré samotné progresívne odhaľovanie neadresuje.

Pre praktikov budujúcich agentové systémy dnes je kľúčovým poznatkom, že injektovanie zručností nie je problém s jedným univerzálnym riešením. Správny prístup závisí od role vášho agenta, počtu zručností, ktoré potrebuje, toho, či sa potrebuje učiť v čase, a vašej tolerancie ku kompromisu medzi tokenovými nákladmi a spoľahlivosťou.

Najrobustnejšie produkčné systémy budú pravdepodobne kombinovať viacero vzorov — trvalé injektovanie pre základné schopnosti, progresívne odhaľovanie pre rozšírené zručnosti a sémantické vyhľadávanie pre akumulované znalosti — a vytvárať tak agentov, ktorí sú efektívni aj expertní zároveň.

Najčastejšie kladené otázky

Yasha je talentovaný softvérový vývojár so špecializáciou na Python, Javu a strojové učenie. Yasha píše technické články o AI, prompt engineeringu a vývoji chatbotov.

Yasha Boroumand
Yasha Boroumand
CTO, FlowHunt

Vytvárajte inteligentnejších AI agentov s FlowHunt

Navrhujte tímy AI agentov s inteligentným injektovaním zručností a správou kontextu. Bez potreby kódovania.