Dizajniranje, usavršavanje i održavanje vještina agenata u Perplexityju

Kako Perplexity piše, pregledava i održava vještine agenata, uz vodič koji naši inženjeri koriste za njihovu izradu.

AutoriPerplexity Engineering

Perplexityjevi proizvodi s naprednim agentima temelje se na stručnom znanju i domenskoj ekspertizi upakiranima u modularne Agent Skills. Održavamo pomno odabranu biblioteku vještina (Skills) u našim tehničkim okruženjima. Te vještine obuhvaćaju mnoge uslužne programe opće namjene koji pokreću Perplexity Computer; mogućnosti specifične za pojedinačne djelatnosti u područjima kao što su financije, pravo i zdravstvo; te vrlo širok raspon modula za rješavanje potreba korisnika. Neke se vještine rijetko pozivaju, ali su ključne kada se pozovu. Kako bi se osiguralo dosljedno izvrsno korisničko iskustvo, tim za agente u Perplexityju daje jednaki prioritet kvaliteti vještina kao i kvaliteti koda.

Intuicije i najbolje prakse potrebne za razvoj visokokvalitetne vještine značajno se razlikuju od onih potrebnih za izradu tradicionalnog softvera. Tim za agente pregledava mnoge zahtjeve za povlačenjem (pull requests) od izvrsnih inženjera koji razvijaju vještine tijekom svog rada. Rezultat su gotovo uvijek brojni komentari i prijedlozi za reviziju. To je tako zato što mnogi korisni obrasci za pisanje koda postaju antipobrasci pri stvaranju vještina.

Na primjer, ako uzmete neke od aforizama iz PEP20 – Zen Pythona, brzo postaje jasno da pisanje dobrog Python koda nije isto što i pisanje dobrih vještina. Od 20 redaka mudrosti, najmanje polovina je potpuno pogrešna ili aktivno obmanjujuća prilikom pisanja vještina. Ovdje je pet njih:

Zen Pythona

Zen vještina

Jednostavno je bolje nego složeno

Vještina je mapa, a ne datoteka. Složenost je značajka.

Eksplicitno je bolje nego implicitno

Aktivacija je implicitno podudaranje uzoraka. Progresivno otkrivanje.

Rijetko je bolje nego gusto

Kontekst je skup. Maksimalni signal po tokenu.

Posebni slučajevi nisu dovoljno posebni da bi kršili pravila

Skrivene zamke SU posebni slučajevi (one su sadržaj najveće vrijednosti).

Ako je implementaciju lako objasniti, možda je to dobra ideja

Ako je to lako objasniti, model to već zna. Izbrišite to.

Pet kontrasta između Zen of Python i smjernica članka za pisanje Skills.

Ovaj vodič je dokument koji inženjeri diljem Perplexityja koriste pri razvoju i pregledu vještina. Također objavljujemo ovaj vodič javnosti kako bi naša otkrića i spoznaje mogli koristiti široj zajednici. Bilo da ste inženjer koji dizajnira produkcijske vještine u svom svakodnevnom radu, korisnik računala koji želi razviti vlastitu vještinu u području koje najbolje poznajete, ili oboje, ovaj vodič je za vas.

Što je vještina?

Kada pišete vještinu, ne pišete običan stari softver (iako su vještine sada dio glavnih logičkih strojeva za sustave agenata). Umjesto toga, gradite kontekst za modele i njihova okruženja. Vještina ima drugačija ograničenja i drugačije principe dizajna. Ako pišete vještinu onako kako pišete kod, doživjet ćete neuspjeh.

Vještina je barem četiri stvari, posebno u kontekstu načina na koji ih gradimo u Perplexityju.

Vještina je direktorij

Vještina nije samo jedna datoteka SKILL.md. U mnogim slučajevima vještina uključuje nekoliko datoteka. Pod direktorijem nazvanim po vašoj vještini možete imati:

SKILL.md: uvodni metapodatci (frontmatter) i upute

scripts/: kod koji agent pokreće, a ne izmišlja ponovno

references/: opsežna dokumentacija, učitava se uvjetno

assets/: predlošci, sheme i podaci

config.json: postavljanje za korisnika pri prvom pokretanju

Ovaj uzorak s hub-and-spoke strukturom omogućuje vam da vještine održavate vrlo usmjerenima i preciznima, a struktura mape može se koristiti na vrlo kreativan način. Ponekad posebno složene vještine imaju koristi od više razina hijerarhije kako bi se pomoglo modelu da se bolje snalazi. Pretpostavimo da vještina zahtijeva znanje o 300 tema, koje se mogu grupirati u 20 područja. Pouzdano odabir prave teme među njih 300 neriješeni je izazov čak i za današnje najbolje napredne modele. Modelu je puno lakši izbor usredotočiti se na jedno od 20 područja nego birati između 15 tema unutar tog područja.

Kao jedan primjer kako višerazinska hijerarhija pruža vrijednost, naš tim je koristio tri razine tematskog ugniježđivanja unutar vještina koje pokreću mogućnosti poreza na dohodak u SAD-u za Computer tijekom ove prošle porezne sezone. Ova hijerarhija bila je apsolutno neophodna s obzirom na složenost poreznog zakona: u našim ranim testovima, predstavljanje modela s jednom mapom koja sadrži svih 1.945 odjeljaka Američkog internog poreznog zakona rezultiralo je lošijim performansama nego da se vještina uopće nije učitala. Organiziranje informacija u logičke podpodjele bilo je ključno za osiguravanje operacija čitanja visoke preciznosti.

Ipak, ova hijerarhija nije došla besplatno. Rastuće razine hijerarhije zahtijevaju rastuće razine kuriranja informacijske arhitekture kako bi se upravljalo rezultirajućom neizravnošću. Osmislili smo brze vodiče za referenciranje, prilagođene uslužne programe za pretraživanje i druge alate koji pomažu modelu u pronalaženju informacija uz minimalnu neizravnost. U ovom slučaju, obavljanje teškog posla kuriranja na kraju je dalo pozitivan krajnji rezultat: vještinu koja je omogućila modelima da obavljaju zadatke povezane s porezima puno sposobnije nego korištenjem samo općih alata.

Porezni kalkulator za Schedule C izrađen uz pomoć Computerovih Skills vezanih uz poreze.

Vještina je format

Vještina je format. Temeljna korijenska datoteka SKILL.md mora imati i naziv i opis. Nadalje, vještina mora točno odgovarati nazivu direktorija u kojem se nalazi. Naziv se mora sastojati isključivo od malih slova, ne smije sadržavati razmake te može koristiti crtice. Opis predstavlja okidač za usmjeravanje. Ovo je uobičajena točka neuspjeha: opis nije unutarnja dokumentacija o tome što vještina radi. On se svodi na upute za model o tome kada treba učitati vještinu. Stoga ćete često vidjeti „Učitaj kada”, a ne „Ova vještina radi”. To je važno zbog načina na koji većina implementacija unosi opis u kontekst modela.

Unutar uvodnih metapodataka nalazi se i „depends:”, što vam omogućuje stvaranje hijerarhijskih ovisnosti vještina, te „metadata:”, koja se koristi za preglede i evaluacije. Različiti sustavi agenata mogu čak definirati vlastita polja metapodataka koja će se koristiti na način specifičan za te sustave. Kao alternativa, metapodatci specifični za vještinu mogu se upakirati u pomoćnu JSON ili YAML konfiguracijsku datoteku. To je poželjno pri izradi sustava agenata koji trebaju olakšati različite vrste ponašanja tijekom izvođenja po vještini bez zagađivanja konteksta modela sitnicama. Konačno, slično ponašanje može se postići uklanjanjem metapodataka vještine pri čitanju. Computer koristi ovu metodologiju, koja omogućuje očuvanje konfiguracije u korijenskoj datoteci SKILL.md. Potrebna je pažljiva pozornost na detalje u logici parsiranja, a možda ćete poželjeti implementirati uvjetno uklanjanje ako postoje određena polja koja je korisno imati unutar konteksta modela.

Vještina se može pozvati

Vještina se može pozvati. Agent učitava vještinu tijekom izvođenja. Važno je napomenuti da se vještine ne pakiraju uvijek u kontekst. prema zadanim postavkama, većina sustava agenata razvija vještine progresivno prema specifičnoj potrebi.

Postoje najmanje tri razine troškova konteksta u načinu na koji smo implementirali vještine u Computeru. Evo postupka:

Computer poziva load_skill(name="...")

Computer kopira direktorij vještine u izolovano okruženje za izvršavanje (sandbox)

Computer rekurzivno automatski učitava ovisnosti u oznaci „depends:”

Computer zatim uklanja metapodatke i agent stoga vidi samo tijelo i dodatne datoteke

Različiti sustavi agenata mogu odabrati izlaganje sadržaja vještine na različite načine. Kao primjer, neki sustavi mogu odabrati da uopće ne izlažu hijerarhiju datoteka, prepuštajući modelu da otkrije hijerarhiju putem operacija datotečnog sustava. Drugi sustavi mogu odabrati dati modelu mapiranje cijelog stabla datoteka do određenog ograničenja skraćivanja i/ili dubine. Kako bi kontekst bio čist, Computer izostavlja potpune hijerarhije datoteka iz konteksta poziva; međutim, to se može nadjačati za svaku vještinu zasebno.

Vještina je progresivna

Vještine su progresivne. U Computeru postoje tri različite razine troškova konteksta, i sve tri snosimo u različitim fazama:

Razina

Što se učitava

Proračun

Kada plaćate

Indeks

naziv: opis za svaku vidljivu vještinu

~100 tokena po vještini

Svaka sesija, svaki korisnik, uvijek se plaća

Učitaj

Puno tijelo SKILL.md

~5.000 tokena

~5.000 tokena

Vrijeme izvođenja

Datoteke u scripts/, references/, assets/, podvještine, FORMATTING.md, SPECIAL_CASES.md

Neograničeno

Samo kada ih agent pročita

Tri razine konteksta Skilla: indeks, potpuno učitavanje Skilla i referentne datoteke tijekom izvođenja.

Computer gradi indeks vještina koji ima naziv i opis za svaku dostupnu vještinu. Proračun za ovo je oko 100 tokena po vještini (kraće je još bolje). Toliko je strogo jer taj trošak plaćate u svakoj sesiji, za svakog korisnika. Ovo se umeće u sistemski upit na samom početku razgovora. Model ima pristup nizu imenovanih vještina i opisa tako da može odlučiti hoće li pozvati „load_skill()”. Prag za ulazak u ovaj indeks iznimno je visok. Vaša vještina mora biti vrlo korisna, a opis mora biti iznimno zbijen i sažet jer svi plaćaju trošak cijelo vrijeme.

Nakon što sustav agenata učita vještinu, slijedi puno tijelo datoteke SKILL.md. U idealnom slučaju, tekst tijela ne prelazi 5.000 tokena. Čak i tada, želite da svaka rečenica bude važna jer jednom kada učitate vještinu, ostatak razgovora mora plaćati taj trošak dok ne dođete do granice sažimanja. Mnoge niti učitavaju između tri i pet različitih vještina, što multiplicira ovaj trošak. Vještine s previše suvišnih dijelova gotovo će sigurno narušiti druge vještine kao i ukupne sposobnosti agenata. Ukratko, ako se vaša vještina učita i ne radi pravu stvar, to je izgubljeni kontekst.

Konačna razina progresije su skripte ili posebni slučajevi, poput podvještina ili oblikovanja. Ovdje želite staviti neograničenu uvjetnu granatu logiku. Agent će je koristiti samo kada mu zatreba, što znači da postoji puno niži prag za ono što želite ovdje staviti.

U indeksu je svaki token važan. Učitano tijelo vještine je opuštenije, a vrijeme izvođenja je najopuštenije. To može biti 20.000 tokena ili nula tokena. Ovo je razina na kojoj biste mogli razmisliti o širenju konteksta modela na progresivan način.

Kada vam je potrebna vještina?

Tim za agente često dobiva upite da se izjasni o tome je li vještina doista potrebna za određenu domenu ili slučaj upotrebe. Vrlo rijetko imamo konačan odgovor samo iz temeljnih načela. Jedini način da se to doista sazna jest započeti s vašim agentom bez vještine, pokrenuti nekoliko ključnih upita i zatim otkriti radi li agent dobar posao.

Kada vam je potrebna vještina

Postoje mnogi zadaci koji su u distribuciji za obučene modele. Morate primijeniti vještinu samo ako želite promijeniti to ponašanje na neki specifičan način koji ne možete učiniti, recimo, jednom rečenicom u svom upitu. Dakle, vještina vam je potrebna kada će agent pogriješiti bez posebnog konteksta, ili ako postoji neka nedosljednost ili nedeterminizam koji morate učiniti iznimno dosljednim kroz različita izvođenja.

Može se dogoditi da je vaše znanje trajno, ali se ne nalazi u podatcima za obuku. Može postojati vremensko ograničenje ili radni tijekovi specifični za poduzeće, ili to može biti pitanje ukusa. Na primjer, imamo nekoliko vještina povezanih s dizajnom u Computeru koje je napisao Henry Modisett (naš glavni direktor za dizajn). Razlog zašto svaki token postoji u tim vještinama je taj što Henry ima vrlo dobar ukus kada je u pitanju dizajn web stranica i PDF-ova. Henry određuje koje fontove koristiti, a koje ne koristiti, kako ti fontovi djeluju i druga pitanja prosudbe koja model ne može naučiti samo iz podataka za obuku.

Kada vam vještina nije potrebna

Vidimo mnoge vještine u kojima su inženjeri napisali niz git naredbi koje je potrebno izvršiti redom. To je nepotrebno jer model već zna kako to učiniti, što znači da je to odlična dokumentacija, ali loša vještina.

Vidimo primjere u kojima vještine ponavljaju upute iz sistemskog upita. Za to vam nije potrebna vještina. Znanje relevantno za većinu zahtjeva trebalo bi biti uključeno u globalni kontekst, a ne u uvjetno učitanu vještinu

Ako postoji nešto što se mijenja brže nego što to možete održavati, vještina vam nije potrebna. Na primjer, ako pristupate nekoj udaljenoj MCP krajnjoj točki i njezini alati ili verzije tih alata se često mijenjaju, ne biste ih trebali unositi u vještinu. Ako to učinite, završit ćete s odstupanjima i model će raditi pogreške.

Svaka je vještina porez

Evo korisnog testa koji možete primijeniti na svaku rečenicu u svojoj vještini: „Bi li agent ovo pogriješio bez ove upute?” Ako rečenica ne mora biti tu, ne može si priuštiti biti tu jer svi plaćaju ovaj trošak svaki put. Kada odlučujete hoćete li dodati vještinu ili ne, zapamtite ovaj porez u kojem svaka sesija i svaki korisnik troše tokene.

Sljedeći poznati citat, koji zvuči puno bolje na francuskom, otprilike se prevodi kao „Ovo sam pismo napisao dulje samo zato što nisam imao vremena skratiti ga.”

« 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

Baš kao i Pascal, morate uložiti vrijeme u svaku vještinu. Teško je napisati kratku vještinu. Ako je vašu vještinu lako napisati, vjerojatno je predugačka ili ne bi trebala postojati. dobra vještina je kratka koliko god može biti.

Ako se zateknete kako pokušavate generirati vještinu iz prve i postavljate PR-ove u roku od pet minuta, rezultati će gotovo sigurno biti ispod prosjeka. Zapravo, rano istraživanje je pokazalo da ako koristite LLM-ove za pisanje vještina, LLM vjerojatno neće imati koristi od toga: „Samogenerirane vještine u prosjeku ne pružaju nikakvu korist, što pokazuje da modeli ne mogu pouzdano izrađivati proceduralno znanje od čijeg trošenja imaju koristi.”

Kako izgraditi vještinu

Drukčije rečeno, morate unijeti svoje mišljenje u svaku vještinu koju napišete. Slijedite ove korake.

Korak 0: Napišite evaluacije

Najprije napišite neke evaluacije. Slučajeve evaluacije možete izvući iz:

Stvarni korisnički upiti: uzorci iz produkcije ili vašeg pouzdanog tima stručnjaka

Poznati neuspjesi: Agent nije uspio jer vještina nije postojala

Zbrka sa susjednim elementima: Blizu granice vaše domene, ali se usmjerava na drugu vještinu

U najmanju ruku, trebali biste osigurati da testirate učitava li se vještina kada je to potrebno. U idealnom slučaju, uzorkujete neke od njih, možda iz produkcijskog okruženja. Također možete razmotriti poznate slučajeve pogrešaka: možda je cijeli razlog zašto ste krenuli pisati vještinu specifičan neuspjeh koji ste primijetili ili možda vršite refaktoriranje i postoji neka zabuna u dvjema bliskim domenama koje su obuhvaćene jednom vještinom.

Započnite sa sličnim negativnim i pozitivnim primjerima. Negativni primjeri su iznimno moćni i mogu biti važniji od pozitivnih primjera.

Korak 1: Opis

Ovo je najteži redak u vještini. To je okidač za usmjeravanje, a ne dokumentacija. Da biste ispravno odredili naziv i opis, nije vas briga za sadržaj vještine. Stalo vam je samo do toga je li vještina učitana i ubačena na pravim mjestima te je li slobodna od sporednih učinaka koji nisu ciljani, što je način neuspjeha broj jedan. Svaki put kada dodate dodatnu vještinu, rizikujete da svaku drugu vještinu učinite malo lošijom, pa morate osigurati da svedete regresiju na minimum.

Opet, loš opis opisuje što vještina radi ili zašto je korisna. Dobar opis govori kada agent treba učitati vještinu. Na primjer, recimo da imate nešto za praćenje zahtjeva za povlačenjem (pull requests). Nemojte pisati što vještina radi. Napišite što inženjeri govore kada su frustrirani i žele da osigurate da njihov PR radi, poput „pazi na” ili „prati CI” ili „pobrini se da ovo prođe”.

Evo brzog popisa za provjeru:

Počinje s „Učitaj kada...”

Ciljajte na 50 riječi ili manje

Opisuje korisnikovu namjeru, idealno iz stvarnih upita

Ne sažima radni tijek

Stvarni upiti su ono što možete pokriti omjerom 80-20. Obično dva ili tri primjera funkcioniraju dobro. Nije lako dodati točno i samo onoliko koliko vam je potrebno.

Korak 2: Napišite tijelo

Zatim napišite sam sadržaj vještine. Primijetite da ovo nije Korak 0 ni Korak 1.

Komunikacija radnih tijeka s LLM-om potpuno je drugačija od komuniciranja radnih tijeka s kolegom, ili čak s vašim sustavom za izvođenje. Prilikom učenja novog softverskog alata, inženjer će možda trebati pročitati dokumentaciju, dobiti upute od nekoga s iskustvom i naučiti kako koristiti alat. U međuvremenu, za gotovo svaki softverski alat koji postoji najmanje godinu dana, samo trebate spomenuti njegov naziv i LLM ima sve informacije koje su mu potrebne.

Kada pišete tijelo, preskočite očite stvari. Mnogi inženjeri imaju dovoljno iskustva u pisanju readme.md datoteka koje navode svaku naredbu koju netko treba izvršiti. Lako je vratiti se na to kada pišete vještinu jer se čini kao da pišete dokumentaciju, ali ako to učinite, vaša će vještina biti smeće. Dakle, nemojte pisati niz naredbi.

Na primjer, ne trebate pisati: „git log # pronađi commit; git checkout main; git checkout -b <clean-branch>; git cherry-pick <commit>;”

Umjesto toga napišite: „Prenesi (cherry-pick) commit na čistu granu. Riješite sukobe uz očuvanje namjere. Ako ne može proći čisto, objasnite zašto.”

Model će obaviti puno bolji posao s potonjim nego s pretjerano propisanim nizom naredbi iz prvog primjera, posebno kada stvari krenu po zlu. Nemojte gušiti kreativnost niti biti pretjerano isključivi, što je krhko, već budite fleksibilni tamo gdje više pristupa može funkcionirati. Opet, dobra dokumentacija za ljude najčešće je loša dokumentacija za modele.

Zatim se usredotočite na skrivene zamke ili negativne primjere. To je sadržaj iznimno visoke vrijednosti jer često usmjeravaju model u pogledu toga što ne treba raditi. Ako dodate redak svaki put kada agent posrne, učit ćete pokretanjem, a skrivene će zamke rasti organski.

Na kraju, ako postoji bilo koji dio koji je uvjetan ili iznimno težak u pogledu sadržaja, izvadite ga iz datoteke SKILL.md, koja predstavlja središte (hub), i stavite ga u jedan od ogranaka (spoke). Stavite ga u pomoćnu datoteku koja se može progresivno učitavati, u što ćemo uroniti sljedeće.

Korak 3: Koristite hijerarhiju

Iskoristite hijerarhiju vještina kada imate skriptu, referentnu dokumentaciju ili koristite neki specifičan alat:

scripts/ Deterministička logika koju bi agent iznova izmišljao pri svakom pokretanju

Dajte mu kod za sastavljanje, a ne za rekonstrukciju

references/ Teška dokumentacija koja se učitava samo kada je ispunjen uvjet

„Pročitaj api-errors.md ako API vrati status koji nije 200”

assets/ Predlošci izlaza koje agent kopira i ispunjava

report-template.md, izlazne sheme

config.json Postavljanje za korisnika pri prvom pokretanju

Zatražite Slack kanal, spremite ga i ponovno upotrijebite sljedeći put

Preporučena uporaba skripti, referenci, resursa i konfiguracije unutar Skilla.

Za sve što je uvjetno ili se grana iz glavne vještine, izdvojite to u mapu. Zapamtite također da se višerazinska hijerarhija može koristiti za posebno složene vještine. Za ove ćete htjeti pažljivo razmisliti treba li funkcionalnost biti implementirana monolitno ili kao skup vještina (možda s odnosima učitavanja temeljenima na depends:).

Korak 4: Ponavljajte iteracije

Zatim napravite niz iteracija na grani. Započnite na glavnoj grani bez vještine, napravite nekoliko iteracija, izgradite svoj skup ključnih upita i pokrenite niz evaluacija. Svi koji pregledavaju kod vaše vještine zahvalit će vam što ste podnijeli jednu izmjenu skupa (changeset) zajedno s kompletom za evaluaciju. Pregledavanje uzastopnih inkrementalnih promjena (osim nove skrivene zamke) vrlo je teško, stoga pokušajte to svesti na minimum.

Vjerojatno ćete napraviti mnogo malih izmjena riječi. Male izmjene riječi u opisima mogu imati prekomjeran utjecaj na usmjeravanje (uključujući učinke prelijevanja na druge vještine), stoga obavite sav taj posao prije Koraka 5.

Korak 5: Pošaljite u produkciju

Objavite to.

Kako održavati vještinu

Sada kada ste napisali vještinu, morate je održavati.

Zamašnjak skrivenih zamki (Gotchas Flywheel)

Od ove točke nadalje, vaša lista skrivenih zamki obično snažno raste ili se mijenja. Često viđamo inženjere koji izrađuju PR-ove koji nisu evaluirani, na primjer, mijenjaju opis. Ako mijenjate opis nakon što je vaša vještina spojena (merged), skrenuli ste s puta. Ako radite promjene na onome što odlučuje hoće li usmjeriti vašu vještinu, morate napisati neke evaluacije koje podržavaju te promjene.

Vještine se uglavnom nadopunjuju. Odjeljak sa skrivenim zamkama s vremenom dobiva najveću vrijednost:

Agent ne uspijeva u nečemu → Dodajte skrivenu zamku

Agent učitava vještinu izvan cilja → Pooštrite opis i dodajte negativne evaluacije

Agent ne učitava vještinu kada bi trebao → Dodajte ključne riječi i pozitivne evaluacije

Promjene sistemskog upita → Provjerite ima li sukoba ili dupliciranja

Lako je primijetiti pojedinačni slučaj neuspjeha u internom testiranju ili u produkciji i dodati skrivenu zamku. To je negativan primjer pa zapravo ne mijenja eksplicitne smjernice, ali daje do znanja modelu: „Hej, postoji ova poznata pogreška.”

Kako prelazite s omjera 80-20 na postizanje stope uspješnosti od 99,9% ili 99,99%, lako je proširiti ovaj popis skrivenih zamki. Dok viđate ove negativne primjere, trebali biste uglavnom nadopunjavati odjeljak sa skrivenim zamkama. Ne biste trebali dodavati duže upute niti mijenjati opis.

Paketi evaluacija

U Perplexityju pokrećemo mnoge pakete evaluacija kako bismo provjerili različite stvari. Postoji učitavanje vještina i čitanje datoteka vještina, što provjerava preciznost, odziv (recall) i zabranjene provjere samog učitavanja vještina. Hoće li agent usmjeriti vašu vještinu kada bi trebao? Time se osigurava da nove vještine ne narušavaju postojeće granice.

Tu su i evaluacije koje mogu provjeriti ispravno progresivno učitavanje. Agent može učitati vještinu, ali čita li pomoćnu datoteku ili datoteke? Na primjer, ako imate financijsku vještinu za financijske upite, čita li posebnu datoteku FORMATTING.md?

Postoje i evaluacije za vještine koje testiraju završetak zadatka od kraja do kraja unutar domena. Pokrećemo punu petlju agenta i koristimo LLM sudca za ocjenjivanje rezultata na temelju rubrike dobro definiranih kriterija.

Konačno, važno je pokrenuti ove evaluacije protiv različitih modela. Computer podržava najmanje tri različite obitelji modela za orkestraciju: GPT, Claude Opus i Claude Sonnet. Želite pokrenuti učitavanje vještina i vještine domena protiv tih različitih orkestratora agenata kako biste osigurali da ne dobijete drugačije ponašanje. Sonnet i GPT ponašaju se prilično različito kada je riječ o vještinama.

Konačne misli i zaključci

Što više vještina izgradite, to ćete biti bolji u njihovoj izgradnji. Ako ne automatizirate ili ne pokušavate učiniti zadatke koje obavljate iz dana u dan ponovljivijima koristeći se vještinama, započnite odmah.

Sam čin izrade vještina čini vas boljima u izradi još vještina, a osim toga, one su iznimno dobre u automatizaciji poslovnih procesa. Ako možete opisati nešto što radite svaki tjedan prije sastanka (standup), na kraju svakog sprinta, ili bilo što što radite kao inženjer na dnevnoj, tjednoj ili čak tromjesečnoj bazi, trebali biste pisati vještinu kako biste si kupili vrijeme.

Možete li automatizirati postmortem analize? Možete li pregledati zahtjeve za povlačenjem (pull requests)? Za bilo koji zadatak koji možete učiniti, možete barem omogućiti da prva provjera bude vještina agenta. Uštedjet će vam značajno vrijeme.

Ipak, zapamtite da vještina nije laka niti uvijek nužna. Manje je više. Nekoliko drugih zaključaka:

Napišite evaluacije prije vještine. Uključite negativne primjere i zabranjena učitavanja za susjedne, ali različite vještine.

Opis je teški dio. „Učitaj kada...” (svaka riječ košta pažnju).

Skrivene zamke su sadržaj iznimno visoke vrijednosti. Započnite s tankim sadržajem, širite se kako agent griješi.

Zapamtite da je lako razbiti druge već postojeće vještine dodavanjem nove vještine, iako je niste dotaknuli (čuvajte se djelovanja na daljinu).

Koristite sve dostupne alate svaki put kada pišete i održavate vještinu. Ako želite saznati više, web stranica Agent Skills ima mnoštvo dobrih primjera, a i naše interno spremište i javni ekosustav sadrže brojne primjere dobro dizajniranih vještina.

Citiranje

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}
}