Návrh, vylepšovanie a údržba zručností agentov (Agent Skills) v Perplexity

How Perplexity writes, reviews, and maintains Agent Skills, plus the guide our engineers use to build them.

AutoriPerplexity Engineering

Produkty prehratých agentov spoločnosti Perplexity stoja na základoch know-how a špecializovaných znalostí zabalených v modulárnych Agent Skills. V našich technických prostrediach udržiavame starostlivo spravovanú knižnicu zručností (Skills). Tieto zručnosti zahŕňajú mnohé z univerzálnych nástrojov, ktoré poháňajú Perplexity Computer; špecifické schopnosti pre oblasti ako financie, právo a zdravotníctvo; a veľmi širokú ponuku modulov na uspokojenie potrieb používateľov. Niektoré zručnosti sú vyvolávané zriedkavo, ale po vyvolaní sú kritické keď. Aby sa zabezpečila trvale vynikajúca používateľská skúsenosť, tím agentov spoločnosti Perplexity uprednostňuje kvalitu zručností rovnako ako kvalitu kódu.

Intuície a osvedčené postupy potrebné na vývoj vysoko kvalitnej zručnosti (Skill) sa výrazne líšia od tých, ktoré sa vyžadujú pri tvorbe tradičného softvéru. Tím agentov kontroluje množstvo požiadaviek na stiahnutie od vynikajúcich inžinierov, ktorí vyvíjajú zručnosti v priebehu svojej práce. Výsledkom sú takmer vždy mnohé pripomienky a návrhy na revíziu. Je to preto, lebo mnohé užitočné vzory na písanie kódu sa pri tvorbe zručností stávajú antipatrónmi.

Napríklad, ak si vezmete niektoré aforizmy z PEP20 – The Zen of Python, rýchlo sa ukáže, že písanie dobrého kódu v Pythone sa líši od písania dobrých zručností (Skills). Z 20 riadkov múdrosti je aspoň polovica úplne nesprávna alebo aktívne zavádzajúca pri písaniu zručností. Tu je päť z nich:

Zen of Python

Zen of Skills

Simple is better than complex

Zručnosť (Skill) je priečinok, nie súbor. Zložitosť je funkciou.

Explicit is better than implicit

Aktivácia je implicitné porovnávanie vzorov. Progresívne zverejňovanie.

Sparse is better than dense

Kontext je drahý. Maximálny signál na token.

Special cases aren’t special enough to break the rules

Zádrhele SÚ špeciálne prípady (sú to obsah s najvyššou hodnotou).

If the implementation is easy to explain, it may be a good idea

Ak sa to dá ľahko vysvetliť, model to už vie. Vymažte to.

Päť kontrastov medzi zenom Pythonu a odporúčaniami článku pre písanie Skills.

Táto príručka je dokument, ktorý používajú inžinieri v rámci spoločnosti Perplexity pri vývoji a revízii zručností (Skills). Túto príručku uvoľňujeme aj pre verejnosť, aby naše objavy a poznatky mohli priniesť úžitok širšej komunite. Či už ste inžinier navrhujúci produkčné zručnosti vo svojej každodennej práci, používateľ počítača (Computer), ktorý chce vyvinúť vlastnú zručnosť v oblasti, ktorú poznáte najlepšie, alebo oboje, táto príručka je pre vás.

Čo je to zručnosť (Skill)?

Keď píšete zručnosť (Skill), nepíšete obyčajný starý softvér (aj keď zručnosti sú teraz súčasťou hlavných logických enginov pre systémy agentov). Skôr budujete kontext pre modely a ich prostredia. Zručnosť má iné obmedzenia a iné návrhové princípy. Ak napíšete zručnosť tak, ako píšete kód, neuspjete.

Zručnosť (Skill) je najmenej štyri veci, najmä v kontexte toho, ako ich budujeme v spoločnosti Perplexity.

Zručnosť (Skill) je adresár

Zručnosť (Skill) nie je len jeden súbor SKILL.md. V mnohých prípadoch zručnosť zahŕňa niekoľko súborov. V adresári pojmenovanom po vašej zručnosti môžete mať:

SKILL.md: frontmatter a inštrukcie

scripts/: kód, ktorý agent spúšťa, nevynájde nanovo

references/: ťažké dokumenty, načítané podmienečne

assets/: šablóny, schémy a dáta

config.json: úvodné nastavenie používateľa pri prvom spustení

Tento vzor typu hviezda-hub vám umožňuje udržať zručnosti (Skills) veľmi zamerané a tesné a štruktúru priečinkov možno použiť veľmi kreatívnym spôsobom. Niekedy mimoriadne zložité zručnosti ťažia z viacerých úrovní hierarchie, ktoré modelovi pomáhajú lepšie sa orientovať. Predpokladajte, že zručnosť vyžaduje znalosti naprieč 300 témami, ktoré možno zoskupiť do 20 oblastí predmetu. Spoľahlivý výber správnej témy medzi 300 je nevyriešenou výzvou aj pre dnešné najlepšie modely hranice. Pre model je oveľa jednoduchší problém vybrať si jednu z 20 oblastí než spomedzi 15 tém v danej oblasti.

Ako jeden z príkladov toho, ako viacerá hierarchia prináša hodnotu, náš tím použité tri úrovne tématického vnorenia v rámci zručností poháňajúcich schopnosti dane z príjmov v USA počítača (Computer) túto minulú daňovú sezónu. Táto hierarchia bola absolútne nepostrádateľná vzhľadom na zložitosť daňového zákona: v našich skorých testoch predloženie modelu s jediným priečinkom obsahujúcim všetkých 1 945 sekcií amerického daňového zákona (U.S. Internal Revenue Code) malo za následok horší výkon než nenačítanie zručnosti vôbec. Usporiadanie informácií do logických pododdelení bolo nevyhnutné na zabezpečenie operácií čítania s vysokou presnosťou.

Táto hierarchia však nevznikla zadarmo. Zvyšujúce sa úrovne hierarchie vyžadujú rastúce úrovne kurátorstva naprieč informačnou architektúrou na správu výslednej nepriamej cesty. Vytvorili sme príručky pre rýchlu orientáciu, vlastné vyhľadávacie nástroje a ďalšie pomôcky na podporu modelu pri lokalizácii informácií s minimom nepriamej cesty. V tomto prípade vykonanie ťažkej práce kurátorstva nakoniec prinieslo pozitívny konečný výsledok: zručnosť (Skill), ktorá umožnila modelom vykonávať úlohy súvisiace s daňami oveľa schopnejšie než len pri použití všeobecných nástrojov.

Účtovný kalkulátor Schedule C vytvorený pomocou daňových Skills Computeru.

Zručnosť (Skill) je formát

Zručnosť (Skill) je formát. Hlavný koreňový súbor SKILL.md musí mať názov aj popis. Okrem toho sa zručnosť musí presne zhodovať s názvom adresára, v ktorom sa nachádza. Názov musí byť napísaný malými písmenami, nesmie obsahovať žiadne medzery a môže používať pomlčky. Popis je spúšťač smerovania. Ide o bežný bod zlyhania: popis nie je internou dokumentáciou o tom, čo zručnosť robiť. Zhrňuje inštrukcie pre model, kedy zručnosť načítať. Často tak uvidíte „Načítať, keď“, nie „Táto zručnosť robí“. To je dôležité kvôli spôsobu, akým väčšina implementácií vkladá popis do kontextu modelu.

V rámci frontmatteru sa nachádza aj „depends:“, čo vám umožňuje vytvoriť hierarchické závislosti zručností (Skills), a „metadata:“, ktoré sa používa na recenzie a hodnotenia. Rôzne systémy agentov môžu dokonca definovať svoje vlastné polia frontmatteru, ktoré sa používajú spôsobom špecifickým pre dané systémy. Alternatívne môžu byť metadáta špecifické pre zručnosť zabalené v pomocnom konfiguračnom súbore JSON alebo YAML. To je žiaduce pri budovaní systémov agentov, ktoré potrebujú uľahčiť rôzne typy správania za behu na zručnosť bez zaťaženia kontextu modelu detailmi. Nakoniec je možné dosiahnuť podobné správanie odstránením frontmatteru zručnosti pri čítaní. Počítač (Computer) využíva túto metódu, ktorá umožňuje zachovať konfiguráciu v koreňovom súbore SKILL.md. V logike parsovania sa vyžaduje starostlivá pozornosť venovaná detailom a môžete chcieť implementovať podmienečné odstraňovanie, ak existujú určité polia, ktoré je užitočné mať v kontexte modelu.

Zručnosť (Skill) je vyvolateľná

Zručnosť (Skill) je vyvolateľná. Agent načíta zručnosť za behu (runtime). Dôležité je, že zručnosti nie sú vždy zoskupené do kontextu. V predvolenom nastavení väčšina systémov agentov rozbalí zručnosti progresívne podľa konkrétnej potreby.

Existujú najmenej tri úrovne nákladov na kontext v spôsobe, akým sme implementovali zručnosti (Skills) v počítači (Computer). Tu je postup:

Počítač (Computer) volá load_skill(name="...")

Počítač (Computer) skopíruje adresár zručnosti (Skill) do izolovaného sandboxu pre vykonávanie

Počítač (Computer) rekurzívne automaticky načíta závislosti v značke „depends:“

Počítač (Computer) potom odstráni frontmatter a agent tak vidí iba telo a dodatočné súbory

Rôzne systémy agentov sa môžu rozhodnúť vystaviť obsah zručnosti (Skill) rôznymi spôsobmi. Niektoré systémy sa napríklad môžu rozhodnúť nevystaviť hierarchiu súborov vôbec a nechať na modeli, aby hierarchiu objavil prostredníctvom operácií so súborovým systémom. Iné systémy sa môžu rozhodnúť poskytnúť modelu mapovanie celého stromu súborov až po určitý limit skrátenia a/alebo hĺbky. Aby bol kontext čistý, počítač (Computer) vynecháva úplné hierarchie súborov z kontextu vyvolania; toto je však možné prepísať na základe jednotlivých zručností.

Zručnosť (Skill) je progresívna

Zručnosti (Skills) sú progresívne. V počítači (Computer) existujú tri rôzne úrovne nákladov na kontext a všetky tri znášame v rôznych fázach:

Úroveň

Čo sa načíta

Rozpočet

Kedy platíte

Index

názov: popis pre každú zručnosť (Skill), ktorá nie je skrytá

~100 tokenov na zručnosť (Skill)

Každá relácia, každý používateľ, platí sa vždy

Načítať

Úplné telo SKILL.md

~5 000 tokenov

~5 000 tokenov

Doba behu (Runtime)

Súbory v adresároch scripts/, references/, assets/, podzručnosti, FORMATTING.md, SPECIAL_CASES.md

Neobmedzené

Iba vtedy, keď ich agent prečíta

Tri úrovne kontextu Skill: index, plné načítanie Skill a referenčné súbory za behu.

Počítač (Computer) zostavuje index zručností (Skills), ktorý obsahuje názov a popis pre každú dostupnú zručnosť. Rozpočet na to je okolo 100 tokenov na zručnosť (kratšie je ešte lepšie). Je to tak tesné, pretože tieto náklady platíte v každej relácii, za každého používateľa. Toto sa vkladá do výzvy systému na samom začiatku konverzácie. Model má prístup k množstvu pomenovaných zručností a popisov, takže sa môže rozhodnúť, či zavolať „load_skill()“. Podmienka na vstup do tohto indexu je extrémne vysoká. Vaša zručnosť musí byť veľmi užitočná a popis musí byť extrémne hustý a stručný, pretože všetci platia tieto náklady neustále.

Po tom, čo systém agentov načíta zručnosť (Skill), je k dispozícii celé telo súboru SKILL.md. V ideálnom prípade text tela nepresahuje 5 000 tokenov. Aj tak chcete, aby na každej vete záležalo, pretože akonáhle naordinujete zručnosť, zvyšok konverzácie to musí zaplatiť, kým nenarazíte na hranicu kompaktnosti. Mnoho vlákien načítava kdekoľvek medzi tromi až piatimi rôznymi zručnosťami, čím sa tieto náklady násobia. Zručnosti s množstvom zbytočností takmer určite zhoršia ostatné zručnosti, ako aj celkové schopnosti agenta. Stručne povedané, ak sa vaša zručnosť načíta a neurobí tú správnu vec, je to premárnený kontext.

Konečnou úrovňou progresie sú skripty alebo špeciálne prípady, ako sú podzručnosti alebo formátovanie. Sem chcete umiestniť neobmedzenú podmienenú rozvetvenú logiku. Agent ju použije iba vtedy, keď ju bude potrebovať, čo znamená, že existuje oveľa nižšia latka pre to, čo sem chcete vložiť.

V indexe je každý token dôležitý. Načítané telo zručnosti (Skill) je uvoľnenejšie a doba behu je najuvoľnenejšia. Toto môže byť 20 000 tokenov alebo nulové tokeny. Toto je úroveň, na ktorej by ste mohli premýšľať o rozšírení kontextu modelu progresívnym spôsobom.

Kedy potrebujete zručnosť (Skill)?

Tím agentov je často požiadaný, aby sa vyjadril k tomu, či je zručnosť (Skill) skutočne potrebná pre danú doménu alebo prípad použitia. Len veľmi zriedka máme definitívnu odpoveď len z prvých princípov. Jediný spôsob, ako to skutočne zistiť, je začať s vaším agentom bez zručnosti, vykonať niekoľko hlavných dopytov a potom zistiť, či agent odvádza dobrú prácu.

Keď potrebujete zručnosť (Skill)

Existuje mnoho úloh, ktoré sú v distribúcii pre trénované modely. Zručnosť (Skill) musíte použiť iba vtedy, ak chcete toto správanie zmeniť nejakým špecifickým spôsobom, ktorý nemôžete napríklad jednou vetou vo svojej výzve. Zručnosť teda potrebujete vtedy, keď sa agent bez špeciálneho kontextu pomýli, alebo ak existuje nejaká nekonzistencia alebo nedeterminizmus, v ktorom potrebujete byť extrémne konzistentní naprieč behmi.

Môže sa stať, že vaše vedomosti sú trvalé, ale nie sú v trénovacích údajoch. Môžu existovať obmedzenia alebo pracovné postupy špecifické pre podnik, prípadne to môže byť záležitosť vkusu. Máme napríklad niekoľko zručností súvisiacich s dizajnom v počítači (Computer), ktoré napísal Henry Modisett (náš šéf dizajnu). Dôvod, prečo každý token existuje v týchto zručnostiach, je ten, že Henry má veľmi dobrý vkus, pokiaľ ide o navrhovanie webových stránok a súborov PDF. Henry určuje, ktoré písma použiť a ktoré písma nepoužiť, ako tieto písma pôsobia a ďalšie záležitosti úsudku, ktoré sa model nemôže naučiť len zotréningových údajov.

Keď nepotrebujete zručnosť (Skill)

Vidíme veľa zručností (Skills), v ktorých inžinieri napísali sériu príkazov git, ktoré je potrebné vykonať v poradia. To je zbytočné, pretože model už vie, ako to urobiť, čo znamená, že to vytvára skvelú dokumentáciu, ale slabú zručnosť.

Vidíme príklady, kde zručnosti rekapitulujú inštrukcie zo systémovej výzvy. Na to zručnosť (Skill) nepotrebujete. Vedomosti relevantné pre väčšinu požiadaviek by mali byť zahrnuté v globálnom kontexte, nie v podmienečne načítanej zručnosti

Ak sa niečo mení rýchlejšie, než to dokážete udržiavať, zručnosť (Skill) nepotrebujete. Ak napríklad narážate na vzdialený koncový bod MCP a jeho nástroje alebo verzie týchto nástrojov sa často menia, nemali by ste ich vkladať do zručnosti. Ak tak urobíte, skončíte len s posunom a model bude robiť chyby.

Každá zručnosť (Skill) je daň

Tu je užitočný test, ktorý môžete aplikovať na každú vetu vo svojej zručnosti (Skill): „Pomýlil by sa agent v tejto veci bez tejto inštrukcie?“ Ak veta tam nemusí byť, nemôže si dovoliť tam byť, pretože všetci platia tieto náklady zakaždým. Keď sa rozhodujete, či pridať zručnosť alebo nie, pamätajte na túto daň, v ktorej každá relácia a každý používateľ stoja tokeny.

Nasledujúci známy citát, ktorý znie vo francúzštine omnoho lepšie, sa dá voľne preložiť ako „Tento list som napísal dlhší len preto, lebo som nemal čas ho skrátiť.“

« Je n’ai fait celle-ci plus longue que parce que je n’ai pas eu le loisir de la faire plus courte. » — Blaise Pascal, Lettres Provinciales, 1657

Rovnako ako Pascal, musíte investovať čas do každej zručnosti (Skill). Je ťažké napísať krátku zručnosť. Ak je vaša zručnosť ľahko napísateľná, je pravdepodobne príliš dlhá alebo by nemala existovať. Dobrá zručnosť je taká krátka, ako to len ide.

Ak zistíte, že sa pokúšate o jednorazové generovanie zručností (Skill) a vytváranie PR za päť minút, výsledky budú takmer určite podpriemerné. Skorý výskum totiž ukázal, že ak používate LLM na písanie zručností, LLM z toho pravdepodobne nebude profitovať: „Samo generované zručnosti neprinášajú v priemere žiadny úžitok, čo ukazuje, že modely nedokážu spoľahlivo vytvárať procedurálne znalosti, z ktorých spotreby profitujú.“

Ako vytvoriť zručnosť (Skill)

Inými slovami, musíte vniesť svoj názor do každej zručnosti (Skill), ktorú napíšete. Postupujte podľa týchto krokov.

Krok 0: Napíšte vyhodnotenia (Evals)

Najprv napíšte niektoré vyhodnotenia. Prípady vyhodnotenia môžete získať z:

Skutočné dopyty používateľov: vzorka z produkcie alebo vašej dôveryhodnej skupiny

Známe zlyhania: Agent zlyhal, pretože zručnosť (Skill) neexistovala

Zámena susedov: Blízko hranice vašej domény, ale smeruje na inú zručnosť (Skill)

Prinajmenšom by ste sa mali uistiť, že testujete, či sa zručnosť (Skill) načíta, keď je to potrebné. V ideálnom prípade vzorkujete niektoré z nich, možno z produkčného prostredia. Môžete tiež zvážiť známe prípady chýb: možno celý dôvod, prečo ste sa pustili do písania zručnosti, je kvôli konkrétnemu zlyhaniu, ktoré ste si všimli, alebo možno robíte refaktoring a v dvoch blízkych doménach, ktoré pokrýva jedna zručnosť, panuje nejaký zmätok.

Začnite s podobnými negatívnymi a pozitívnymi príkladmi. Negatívne príklady sú extrémne silné a môžu byť dôležitejšie ako pozitívne príklady.

Krok 1: Popis

Toto je najťažší riadok v zručnosti (Skill). Je to spúšťač smerovania, nie dokumentácia. Aby ste názov a popis nastavili správne, nezáleží vám na obsahu zručnosti. Záleží vám iba na tom, či je zručnosť načítaná a vložená v správnych bodoch a neobsahuje vedľajšie účinky mimo cieľa, čo je režim zlyhania číslo jeden. Zakaždým, keď pridáte dodatočnú zručnosť, riskujete, že každá iná zručnosť bude o niečo horšia, takže sa musíte uistiť, že minimalizujete regresiu.

Zlý popis opäť opisuje, čo zručnosť (Skill) robí alebo prečo je užitočná. Dobrý popis hovorí, kedy by mal agent zručnosť načítať. Povedzme napríklad, že máte niečo na sledovanie pull requestov. Nepíšte, čo zručnosť robí. Napíšte, čo hovoria inžinieri, keď sú frustrovaní a chcú, aby ste zabezpečili fungovanie ich PR, ako napríklad „strážiť deti“ (babysit), „sledovať CI“ alebo „zabezpečiť, aby to prešlo“.

Tu je rýchly kontrolný zoznam:

Začína sa výrazom „Načítať, keď...“

Zamerajte sa na 50 slov alebo menej

Opisuje zámer používateľa, v ideálnom prípade zo skutočných dopytov

Zhrňuje pracovný postup

Skutočné dopyty sú to, čo môžete pokryť v pomere 80-20. Zvyčajne fungujú dobre dva alebo tri príklady. Nie je ľahké pridať presne a iba toľko, koľko potrebujete.

Krok 2: Napíšte telo

Ďalej napíšte samotný obsah zručnosti (Skill). Všimnite si, že toto nie je Krok 0 ani Krok 1.

Komunikácia pracovných postupov s LLM je úplne iná ako komunikácia pracovných postupov s kolegom alebo dokonca s vaším systémom za behu. Pri učení sa nového softvérového nástroja môže inžinier potrebovať prečítať dokumentáciu, získať prehľad od niekoho so skúsenosťami a naučiť sa nástroj používať. Medzitým pre takmer akýkoľvek softvérový nástroj, ktorý existuje aspoň rok, stačí spomenúť jeho názov a LLM má všetky informácie, ktoré potrebuje.

Keď píšete telo, vynechajte zjavné veci. Mnoho inžinierov má veľa skúseností s písaním súborov readme.md, ktoré uvádzajú každý príkaz, ktorý musí niekto spustiť. Je ľahké sa do toho vrátiť, keď píšete zručnosť (Skill), pretože máte pocit, že píšete dokumentáciu, ale ak to urobíte, vaša zručnosť bude odpad. Takže nevypisujte sériu príkazov.

Napríklad nemusíte písať: „git log # nájsť commit; git checkout main; git checkout -b <clean-branch>; git cherry-pick <commit>;“

Namiesto toho napíšte: „Vykonajte cherry-pick commitu do čistej vetvy. Vyriešte konflikty pri zachovaní zámeru. Ak to nemôže čisto prejsť, vysvetlite prečo.“

Model si počína oveľa lepšie s tým druhým než s príliš direktívnou sériou príkazov prvého, najmä keď veci zlyhajú. Nebuďte direktívni ani príliš predpisujúci, čo je krehké, a namiesto toho buďte flexibilní tam, kde môže fungovať viacero prístupov. Opäť platí, že dobrá dokumentácia pre ľudí je najčastejšie zlou dokumentáciou pre modely.

Ďalej sa zamerajte na zádrhele alebo negatívne príklady. Ide o obsah s veľmi vysokým signálom, pretože často vedú model z hľadiska toho, čo nerobiť. Ak pridáte riadok zakaždým, keď agent zakopne, naučíte sa to spustením a zádrhele budú organicky rásť.

Nakoniec, ak existuje nejaká časť, ktorá je podmienená alebo mimoriadne náročná na obsah, vyjmite ju zo súboru SKILL.md, ktorý je centrom, a vložte ju do jedného z lúčov. Vložte ju do doplnkového súboru, ktorý sa dá progresívne načítať, a na to sa pozrieme nabudúce.

Krok 3: Použite hierarchiu

Využite hierarchiu zručnosti (Skill), keď máte skript, referencie alebo používate nejaký špecifický nástroj:

scripts/ Deterministic logic the agent would reinvent every run

Dajte mu kód na zloženie, nie na rekonštrukciu

references/ Heavy docs loaded only when a condition is met

"Prečítajte si api-errors.md, ak API vráti kód iný ako 200"

assets/ Output templates the agent copies and fills

report-template.md, výstupné schémy

config.json Úvodné nastavenie používateľa pri prvom spustení

Opýtajte sa na kanál Slack, uložte a nabudúce použite znova

Odporúčané použitia skriptov, referencií, assetov a konfigurácie v rámci Skill.

Pre čokoľvek, čo je podmienené alebo sa vetví od hlavnej zručnosti (Skill), to vyčleňte do priečinka. Pamätajte tiež na to, že pre obzvlášť zložité zručnosti možno použiť viacúrovňovú hierarchiu. Pre tieto budete chcieť starostlivo zvážiť, či by funkcionalita mala byť implementovaná monoliticky alebo ako kolekcia zručností (možno s vzťahmi načítania založenými na depends:).

Krok 4: Iterovať

Ďalej urobte množstvo iterácií na vetve. Začnite na hlavnej vetve bez zručnosti (Skill), vykonajte niekoľko iterácií, zostavte svoju sadu hlavných dopytov a spustite množstvo vyhodnotení. Každý, kto bude kontrolovať kód vašej zručnosti, vám poďakuje za odoslanie jedinej sady zmien kompletnej so sadou vyhodnotení. Kontrola po sebe idúcich prírastkových zmien (okrem nového zádrhelu) je veľmi ťažká, takže sa ju snažte minimalizovať.

Pravdepodobne urobíte veľa malých zmien slov. Malé zmeny slov v popise môžu mať nadmerný vplyv na smerovanie (vrátane presahových účinkov na iné zručnosti), takže všetku túto prácu urobte pred 5. krokom.

Krok 5: Odoslať

Odošlite to.

Ako udržiavať zručnosť (Skill)

Teraz, keď ste napísali zručnosť (Skill), musíte ju udržiavať.

Zotrvačník zádrhelov

Od tohto bodu má váš zoznam zádrhelov tendenciu výrazne rásť alebo sa meniť. Často vidíme inžinierov, ktorí vytvárajú PR, ktoré nie sú vyhodnotené, napríklad menia popis. Ak meníte popis po zlúčení vašej zručnosti (Skill), ste mimo trate. Ak robíte zmeny v tom, čo rozhoduje o smerovaní vašej zručnosti, musíte napísať nejaké vyhodnotenia, ktoré tieto zmeny podporujú.

Zručnosti (Skills) sú prevažne pridávacie. Sekcia zádrhelov časom naberá najvyššiu hodnotu:

Agent zlyhá v niečom → Pridať zádrhel

Agent načíta zručnosť (Skill) mimo cieľ → Upresniť popis a pridať negatívne vyhodnotenia

Agent nenačíta zručnosť (Skill), keď by mal → Pridať kľúčové slová a pozitívne vyhodnotenia

Zmeny systémovej výzvy → Skontrolovať kolíziu alebo duplikáciu

Je ľahké si všimnúť jeden prípad zlyhania pri internom testovaní alebo v produkcii a pridať zádrhel. Je to negatívny príklad, takže nemení explicitné usmernenie, ale dáva modelu vedieť: „Hej, je tu toto známe zlyhanie.“

Keď prechádzate od pomeru 80-20 k dosiahnutiu 99,9% alebo 99,99% úspešnosti, je ľahké tento zoznam zádrhelov rozšíriť. Keď uvidíte tieto negatívne príklady, mali by ste ich primárne pridávať do sekcie zádrhelov. Nemali by ste pridávať dlhšie inštrukcie ani meniť popis.

Sady vyhodnotení (Eval Suites)

V spoločnosti Perplexity spúšťame množstvo sád vyhodnotení na kontrolu rôznych vecí. Existuje načítanie zručností (Skill) a čítanie súborov zručností, čo kontroluje presnosť, úplnosť a zakázané kontroly samotného načítania zručnosti. Bude váš agent smerovať vašu zručnosť vtedy, keď má? Tieto zaisťujú, že nové zručnosti nenarušia existujúce hranice.

Existujú aj vyhodnotenia, ktoré môžu kontrolovať správne progresívne načítanie. Agent môže zručnosť (Skill) načítať, ale prečíta si doplnkový súbor alebo súbory? Ak máte napríklad finančnú zručnosť pre finančné dopyty, prečíta si špeciálny súbor FORMATTING.md?

Existujú aj vyhodnotenia pre zručnosti (Skills), ktoré testujú dokončenie úloh od začiatku do konca v rámci domén. Spustíme celú slučku agenta a použijeme posudzovateľa LLM na ohodnotenie výsledkov na základe rubriky dobre definovaných kritérií.

Nakoniec je dôležité spustiť tieto vyhodnotenia proti rôznym modelom. Počítač (Computer) podporuje najmenej tri rôzne rodiny orchestračných modelov: GPT, Claude Opus a Claude Sonnet. Chcete spustiť načítanie zručnosti (Skill) a doménové zručnosti proti týmto rôznym orchesterom agentov, aby ste zaistili, že nezískate odlišné správanie. Sonnet a GPT sa správajú pomerne odlišne, pokiaľ ide o zručnosti.

Záverečné myšlienky a poznatky

Čím viac zručností (Skills) postavíte, tým lepší budete v ich budovaní. Ak automatizujete alebo sa nesnažíte robiť úlohy, ktoré robíte každý deň, viac reprodukovateľnými pomocou zručností, začnite okamžite.

Samotný akt budovania zručností (Skills) vás robí lepšími v budovaní ďalších zručností, a navyše sú mimoriadne dobré na automatizáciu obchodných procesov. Ak dokážete popísať niečo, čo robíte každý týždeň pred vaším standupom, na konci každého sprintu, alebo čokoľvek, čo robíte ako inžinier na dennej, týždennej alebo dokonca štvrťročnej báze, mali by ste písať zručnosť, aby ste získali svoj čas späť.

Môžete automatizovať analýzy po udalosti (postmortems)? Môžete kontrolovať pull requesty? Pri každej úlohe, ktorú dokážete urobiť, môžete mať aspoň prvý prechod ako zručnosť agenta (Agent Skill). Ušetrí vám to značný čas.

Napriek tomu pamätajte, že zručnosť (Skill) nie je jednoduchá ani vždy potrebná. Menej je viac. Niekoľkých ďalších poznatkov:

Napíšte vyhodnotenia pred zručnosťou (Skill). Zahrňte negatívne príklady a zakázané načítania pre susedné, ale odlišné zručnosti.

Popis je ťažká časť. „Načítať, keď...“ (každé slovo stojí pozornosť).

Zádrhele sú obsah s extrémne vysokou hodnotou. Začnite zoštíhlene, rastte, keď agent zlyhá.

Pamätajte, že je ľahké narušiť iné vopred existujúce zručnosti (Skills) pridaním novej zručnosti, aj keď ste sa jej nedotkli (dajte si pozor na pôsobenie na diaľku).

Použite všetky dostupné nástroje zakaždým, keď píšete a udržiavate zručnosť (Skill). Ak sa chcete dozvedieť viac, webová stránka Agent Skills má veľa dobrých príkladov a naše interné úložisko aj verejný ekosystém obsahujú mnoho príkladov dobre navrhnutých zručností.

Citácia

BibTeX
@online{perplexity2026DesigningRefiningAndMaintainingAgentSkillsAtPerplexity,
  author = {{Perplexity} and Marshall Kiely and Daisy Lee and Jerry Ma and Lauren Kolm},
  title = {{Designing, refining, and maintaining agent skills at Perplexity}},
  date = {2026-05-01},
  url = {https://perplexity.coolkeypoint.com/hub/blog/designing-refining-and-maintaining-agent-skills-at-perplexity}
}