AI ne bere vaših misli. Bere vaše besede. Vrzel med tem, kar želite, in tem, kar dobite, je skoraj vedno komunikacijski problem, ne omejitev AI.
Naj vam povem o trenutku, ko se je vse spremenilo. Strmel sem v zaslon, neverjetno razočaran, in opazoval, kako AI generira še en odgovor, ki je bil tehnično pravilen, a je popolnoma zgrešil bistvo. Prosil sem za pomoč pri refaktoriranju zapletenega kosa kode, kar sem storil že stokrat prej. Toda tokrat, ne glede na to, kako sem oblikoval svojo zahtevo, je AI nenehno dodajal nepotrebno kompleksnost, razbijal obstoječe vzorce in "izboljševal" stvari, ki niso bile pokvarjene. To razočaranje me je popeljalo v zajčjo luknjo, ki je pogoltnila naslednji dve leti mojega življenja – in popolnoma preobrazila način, kako delam z umetno inteligenco.
Prebujenje - Ko vse, kar sem poznal, ni več delovalo
Spomnim se točnega trenutka, ko sem ugotovil, da nimam pojma, kaj počnem. Bilo je pozno ponoči, rok se je bližal in potreboval sem AI, da mi pomaga pri nečem, kar bi morala biti preprosta naloga. Napisal sem svoj poziv, pritisnil enter in opazoval, kako AI proizvaja nekaj, zaradi česar sem želel vreči prenosnik skozi okno.
Stvar je v tem, da sem mislil, da razumem AI. Uporabljal sem ChatGPT od prvih dni. Bral sem članke o inženirstvu pozivov. Vedel sem za "igranje vlog" in "biti specifičen". Toda bil sem tam in dobival odgovore, ki so se zdeli kot pogovor z nekom, ki je slišal vsako besedo, ki sem jo rekel, a ni razumel ničesar od tega, kar sem dejansko potreboval.
To razočaranje je postalo moj učitelj. Potopil sem se v uradno dokumentacijo, raziskovalne članke, razprave na forumih in tisoče ur eksperimentiranja. Kar sem odkril, niso bili le nasveti in triki – bil je popoln premik paradigme v tem, kako komunicirati s stroji, ki razmišljajo v vzorcih, verjetnostih in žetonih (tokens).
Najmočnejša AI na svetu je neuporabna, če ne morete sporočiti, kaj dejansko potrebujete. Pisanje pozivov ni iskanje čarobnih besed – gre za razumevanje, kako AI obdeluje jezik, in ustrezno strukturiranje vaše komunikacije.
Tukaj je resnica, ki je začetnikom nihče ne pove: razlika med ljudmi, ki od AI dobijo neverjetne rezultate, in tistimi, ki jih ne, ni inteligenca ali tehnična spretnost. Je komunikacija. In komunikacija z AI sledi pravilom, ki so podobna – a kritično drugačna od – komunikacije z ljudmi.
Ta vodnik vsebuje vse, kar sem se naučil na tej poti. Ne poenostavljenih nasvetov, kot je "bodite le specifični", ki preplavljajo internet, ampak globoko, niansirano razumevanje, ki bo spremenilo način, kako delate z AI. Ne glede na to, ali pišete svoj prvi poziv ali gradite produkcijske AI sisteme, to, kar sledi, bo za vedno spremenilo vaš odnos do umetne inteligence.
Temelj, ki ga nihče ne uči - Anatomija jedra poziva
Preden se poglobimo v napredne tehnike, naj delim okvir, ki je zame vse spremenil. Vsak učinkovit poziv, ki ga zdaj napišem, vsebuje neko kombinacijo teh petih elementov:
Kaj mora AI vedeti o vaši situaciji? Informacije o ozadju, omejitve, pomembne podrobnosti in okolje, v katerem delate.
Kaj točno želite, da AI naredi? Bodite specifični glede dejanja, ki ga zahtevate – ne le tema, ampak dejansko delo.
Kako naj bo izhod strukturiran? Seznami, odstavki, bloki kode, tabele, JSON – določite to eksplicitno.
Čemu naj se AI izogne? Kakšne meje obstajajo? Kaj je izrecno izven obsega?
Lahko pokažete, kaj želite? Primeri so vredni tisoč opisov – raje demonstrirajte, kot razlagajte.
Večina ljudi vključi le nalogo. Prosijo "Napiši mi e-pošto", ko bi morali reči "Napiši profesionalno e-pošto stranki, ki pojasnjuje zamudo projekta. Naj bo pod 150 besedami, priznaj nevšečnost in predlagaj nov časovni okvir čez dva tedna. Ton naj bo opravičujoč, a samozavesten."
Razlika v kakovosti izhoda je dramatična. In to je šele začetek.
Moč Strukture
Eden najbolj podcenjenih vidikov pisanja pozivov je strukturno oblikovanje. Sodobni modeli AI se izjemno dobro odzivajo na jasno razmejene odseke. Obsežno uporabljam oznake v slogu XML, ker ustvarjajo nedvoumne meje:
<context>
Pomagaš mi pripraviti predstavitev za tehnične deležnike.
Občinstvo je seznanjeno z razvojem programske opreme, vendar ne specifično z AI.
</context>
<task>
Pojasni, kako delujejo veliki jezikovni modeli v 5 ključnih točkah.
</task>
<format>
- Uporabi alineje
- Vsaka točka naj ima 1-2 stavka
- Izogibaj se žargonu ali ga definiraj, ko je uporabljen
</format>
<constraints>
- Ne omenjaj določenih imen modelov
- Osredotoči se na koncepte, ne na tehnično izvedbo
- Ohrani skupno dolžino pod 200 besedami
</constraints>
Ta struktura naredi nekaj močnega: prisili vas, da jasno razmišljate o tem, kaj potrebujete, preden vprašate. Jasno razmišljanje proizvaja jasno komunikacijo in jasna komunikacija proizvaja jasne rezultate. Oznake XML niso čarovnija – so oder za vaše lastne misli.
Struktura ne pomeni daljših pozivov – gre za to, da so vaši nameni nedvoumni. Dobro strukturiran kratek poziv bo vsakič premagal razvlečenega dolgega.
Šest miselnosti, ki so spremenile vse
Po letih eksperimentiranja sem svoj pristop destiliral v šest temeljnih "miselnosti" – ne togih predlog, ampak prožnih miselnih vzorcev, ki odklenejo zmogljivosti AI, ki jih večina ljudi nikoli ne odkrije. Ne gre za iskanje popolnih besed; gre za pristop k interakciji z AI s pravim mentalnim modelom.
Miselnost 1: Naj AI izbere strokovnjaka
Vsi vemo, da dodelitev vloge AI pomaga. "Deluj kot marketinški strokovnjak" ustvari boljše marketinške nasvete kot splošno vprašanje. Toda tukaj je tisto, kar večina ljudi spregleda: ko ne veste, kateri strokovnjak bi bil najboljši za vaše vprašanje, lahko prosite AI, da izbere.
To sem odkril pri načrtovanju korporativnega dogodka. Nisem imel pojma, ali potrebujem marketinški vidik, operativni vidik ali nekaj povsem drugega. Zato sem namesto ugibanja prosil AI, naj najprej izbere najprimernejšega strokovnjaka.
Želim raziskati [PODROČJE] in posebej [TEŽAVA/SCENARIJ].
Še ne odgovori.
Najprej izberi najprimernejšega domenskega strokovnjaka, ki bi razmišljal o tej težavi.
Lahko so živeče ali zgodovinske, slavne ali relativno neznane osebnosti,
vendar morajo biti resnično odlične na tem določenem področju.
Če nisi prepričan, mi postavi 2 pozicionirna vprašanja pred izbiro.
Izhod:
1. Koga si izbral in njegova specifična domena
2. Zakaj si ga izbral (trije stavki)
Nato me prosi, da opišem svoje podrobno vprašanje.
Ko sem to uporabil za načrtovanje dogodka, je AI izbral Priyo Parker – strokovnjakinjo za oblikovanje dogodkov, za katero še nikoli nisem slišal, a se je izkazala za popolno. Odgovori, ki sem jih dobil, niso bili splošni "upoštevajte teh pet dejavnikov" – bila so prefinjena, specifična navodila, ki so se zdela kot pogovor z nekom, ki je to storil stokrat.
Miselnost 2: Naj AI vpraša prvi
To je tehnika, ki jo uporabljam bolj kot katero koli drugo. Imenujem jo "Sokratsko pozivanje" – namesto da bi poskušal predvideti vse, kar mora AI vedeti, mu dovolim, da mi postavlja vprašanja, dokler nima dovolj konteksta za zagotovitev resnično koristnega odgovora.
Pomislite na to: ko prosite modrega prijatelja za nasvet, ne začne takoj bruhati odgovorov. Postavlja pojasnjevalna vprašanja. Sondira kontekst. Prepriča se, da razume, preden svetuje. AI lahko stori enako – vendar le, če ga prosite.
[TVOJE VPRAŠANJE ALI POTREBA]
Preden odgovoriš, mi prosim najprej postavi vprašanja.
Zahteve:
- Postavljaj eno vprašanje naenkrat
- Na podlagi mojih odgovorov nadaljuj s sondiranjem
- Nadaljuj, dokler nimaš 95% zaupanja, da razumeš
moje resnične potrebe in cilje
- Šele takrat mi daj svoj odgovor ali rešitev
Prag 95% zagotavlja kakovost, hkrati pa preprečuje neskončne zanke.
To sem uporabil pri odločanju, ali najeti našega prvega kadrovika. Namesto da bi dobil splošen odgovor "za in proti najemanju kadrovika", je AI spraševal o naši trenutni velikosti ekipe, hitrosti zaposlovanja, zahtevah glede skladnosti, proračunskih omejitvah in kulturnih ciljih. Po odgovarjanju na približno petnajst ciljnih vprašanj sem dobil nasvet, ki je bil specifičen za mojo resnično situacijo – ne učbeniškega odgovora, ki je nekako veljal.
"Prag zanesljivosti 95%" je bistvena podrobnost. Je dovolj visok, da zagotovi kakovost, vendar dovolj realističen, da se AI ne zatakne za vedno. Ta ena fraza spremeni način, kako AI pristopi k pogovoru.
Miselnost 3: Debatirajte z AI
AI ima težavo, ki se je večina ljudi ne zaveda: je preveč ustrežljiv. Pogosto vam bo povedal tisto, kar želite slišati, namesto da bi izzval vaše predpostavke. To "prilizovanje" je lahko nevarno, ko poskušate validirati ideje ali se pripraviti na kritiko.
Rešitev je, da AI izrecno postavite v vlogo nasprotnika, ki želi ovreči vaše stališče. To sem odkril pri pripravi na konferenčni govor. Imel sem tezo, ki sem jo želel predstaviti, a sem se bal slepih peg.
Pripravljam se na debato. Veliko ljudi bo izpodbijalo moje stališče.
Moje stališče: [TVOJA TEZA/IDEJA]
Potrebujem, da je ta ideja neprebojna.
Če bi bil učenjak, odločen dokazati, da se motim, z uporabo vsakega
razpoložljivega argumenta, podrobnosti in logičnega orodja, kako bi napadel
moje stališče?
Tvoj edini cilj: dokazati, da se motim.
Ne bodi nežen. Ne oklevaj. Napadi.
Kar se je zgodilo potem, je spremenilo moj pogled na AI. Šla sva naprej in nazaj tri ure. AI je našel šibke točke v mojem argumentu, ki jih nisem upošteval, izpostavil protiprimere, ki jih nisem mogel zavrniti, in me prisilil, da sem izpopolnil svoje stališče, dokler ni zdržalo pravega preverjanja. Na koncu sem imel veliko močnejšo tezo – in kar je še pomembneje, predvidel sem vsak glavni ugovor, s katerim bi se soočil.
Miselnost 4: Pre-Mortem Vaših Načrtov
Ljudje smo pri načrtovanju nagnjeni k optimizmu. AI, ki sledi našemu zgledu, je prav tako nagnjen k optimizmu. To ustvarja načrte, ki so videti odlično na papirju, a razpadejo, ko nastopi realnost.
Tehnika pre-mortem obrne to dinamiko. Namesto vprašanja "Kako naj to naredim?", vprašate "Predstavljaj si, da je to spektakularno propadlo – zakaj?"
[TVOJ PROJEKT/NAČRT]
Predpostavimo, da je ta projekt katastrofalno propadel.
Napiši post-mortem analizo, ki odgovarja na:
1. Na kateri točki so se prvič pojavili znaki propada?
2. Kaj je bila najbolj usodna napaka pri odločanju?
3. Katero ključno tveganje je bilo spregledano?
4. Če bi se lahko vrnil nazaj, kaj je prva stvar, ki bi jo spremenil?
Svojo analizo temelji na podobnih neuspehih projektov v resničnem svetu.
Napiši to kot pravo retrospektivo neuspeha, ne kot teoretično vajo.
To sem uporabil pri načrtovanju velike konference. Pre-mortem AI je identificiral tveganja, ki sem jih popolnoma zgrešil: upravljanje vrst, zmogljivost stranišč, časovni razpored cateringa, varnostna ozka grla. To niso bili eksotični robni primeri – bile so predvidljive težave, na katere preprosto nisem pomislil, ker sem se osredotočal na vznemirljive dele dogodka. Pre-mortem nas je verjetno rešil pred nekaj neprijetnimi neuspehi.
Miselnost 5: Povratni Inženiring Uspeha
Včasih vidite nekaj odličnega – kos pisanja, dizajn, pristop – in želite replicirati njegovo bistvo, ne da bi ga neposredno kopirali. Povratno pozivanje vam omogoča, da izvlečete osnovna načela.
To je primer rezultata, ki ga želim:
[PRILEPI PRIMER]
Prosim, izvedi povratni inženiring poziva, ki bi zanesljivo generiral
vsebino z enakim slogom, strukturo in kakovostjo.
Pojasni, kaj vsak del poziva počne in zakaj je pomemben.
Ne gre za kopiranje – gre za učenje. Ko vidim pisanje, ki odmeva z mano, uporabim to tehniko, da razumem, zakaj deluje. Kateri strukturni elementi ustvarjajo ritem? Katere tonske izbire ustvarjajo občutek? Ko razumem načela, jih lahko uporabim na svoji lastni izvirni vsebini.
Miselnost 6: Metoda Dvojne Razlage
Pri učenju nečesa novega večina ljudi dobi bodisi preveč poenostavljene razlage, ki dejansko nič ne naučijo, ali razlage na ravni strokovnjakov, ki jim ne morejo slediti. Rešitev je, da zahtevate oboje hkrati.
Prosim, pojasni [KONCEPT].
Zagotovi dve različici:
1. Različica za začetnike: Predstavljaj si, da to razlagaš nekomu brez
ozadja na tem področju. Uporabi vsakdanje analogije in se izogni
vsemu žargonu. Naredi to iskreno razumljivo.
2. Različica za strokovnjake: Predpostavi, da je bralec strokovnjak na
sorodnem področju. Bodi tehnično natančen. Ne poenostavljaj
in ne redči kompleksnosti.
To uporabljam ves čas pri branju tehničnih dokumentov. Različica za začetnike mi daje intuicijo za koncept, različica za strokovnjake pa natančne podrobnosti. S primerjavo obeh vidim natančno, kje so poenostavitve in katereianse sem morda zgrešil. To je kot imeti dva učitelja s komplementarnima pristopoma.
Agentsko razmišljanje - Ravnanje z AI kot s sodelavcem
Tu je premik paradigme, ki je preobrazil moje interakcije z AI: nehajte ravnati z AI kot z iskalnikom in začnite ravnati z njim kot s sposobnim, a neizkušenim sodelavcem. Ta miselni model spremeni vse o tem, kako komunicirate.
Sodobni modeli AI ne odgovarjajo le na vprašanja – zasnovani so tako, da so agenti. Lahko kličejo orodja, zbirajo kontekst, sprejemajo odločitve in izvajajo večstopenjske naloge. Toda kot vsak nov član ekipe potrebujejo ustrezno uvajanje, jasna pričakovanja in ustrezne varovalne ograje.
AI ni orodje, ki ga uporabljate – je sodelavec, ki ga upravljate. Veščine, ki vas naredijo dobrega menedžerja, vas naredijo dobrega pisca pozivov. Delegiranje, jasna komunikacija, ustrezna avtonomija, določene meje.
Pomislite na to: ko delegirate človeku, ne rečete le "popravi kodo". Pojasnite, kaj je pokvarjeno, kakšno je želeno vedenje, kakšne omejitve obstajajo in kako izgleda uspeh. Zagotovite kontekst. Odgovorite na vprašanja. Preverite napredek. AI potrebuje enako obravnavo – le da morate predvideti vprašanja in nanje odgovoriti vnaprej.
Agentski okvir
Pri gradnji agentskih aplikacij ali uporabi AI za zapletene naloge razmišljam skozi te dimenzije:
Ključna Vprašanja za Agentske Naloge
- Kakšno je ciljno stanje? Kako bo AI vedel, kdaj je končal? Kako izgleda uspeh?
- Katera orodja ima? Kaj lahko realno stori v primerjavi s tem, kar mora prepustiti vam?
- Kakšna je raven avtonomije? Naj prosi za dovoljenje ali nadaljuje neodvisno?
- Kakšne so varnostne meje? Katerih dejanj ne sme nikoli sprejeti brez potrditve?
- Kako naj komunicira napredek? Tiha izvedba ali redne posodobitve?
Ta vprašanja tvorijo osnovo vsakega zapletenega poziva, ki ga napišem. Naj vam pokažem, kako jih uporabiti.
Številčnica vneme - Kalibracija AI iniciative
Eden najbolj niansiranih vidikov inženirstva pozivov je kalibracija tega, kar imenujem "agentska vnema" – ravnovesje med AI, ki prevzame pobudo, in tistim, ki čaka na izrecna navodila. Naredite to narobe in imeli boste AI, ki preveč razmišlja o preprostih nalogah, ali takšnega, ki se pri zapletenih prehitro preda.
Zmanjšanje vneme za hitrost
Včasih potrebujete, da je AI hiter in osredotočen. Ne želite, da raziskuje vsako tangento, izvaja dodatne klice orodij ali proizvaja dolgovezne razlage. Za te situacije uporabljam pozive, osredotočene na omejitve:
<context_gathering>
Cilj: Hitro pridobi dovolj konteksta. Paraleliziraj odkrivanje in ustavi, takoj ko
lahko ukrepaš.
Metoda:
- Začni široko, nato se razširi na ciljne podpoizvedbe
- Zaženi različne poizvedbe vzporedno; preberi top rezultate na poizvedbo
- Dedupliciraj poti in shrani v predpomnilnik; ne ponavljaj poizvedb
- Izogibaj se prekomernemu iskanju konteksta
Kriteriji zgodnje ustavitve:
- Lahko poimenuješ natančno vsebino za spremembo
- Top rezultati konvergirajo (~70%) v enem območju/poti
Globina:
- Sledi le simbolom, ki jih boš urejal ali na katerih pogodbe se zanašaš
- Izogibaj se tranzitivni širitvi, razen če je nujno
Zanka:
- Paketno iskanje → minimalni načrt → dokončaj nalogo
- Išči znova le, če validacija ne uspe ali se pojavijo nove neznanke
- Daj prednost ukrepanju pred nadaljnjim iskanjem
</context_gathering>
Opazite izrecno dovoljenje, da je nepopoln: "Daj prednost ukrepanju pred nadaljnjim iskanjem." Ta subtilna fraza osvobodi AI njegove privzete tesnobe glede temeljitosti. Brez nje model pogosto preveč raziskuje, kurijoč žetone in čas za padajoče donose.
Za še bolj agresivne omejitve hitrosti:
<context_gathering>
- Globina iskanja: zelo nizka
- Močno se nagibaj k zagotavljanju pravilnega odgovora čim hitreje,
tudi če morda ni popolnoma pravilen
- Običajno to pomeni absolutni maksimum 2 klicev orodij
- Če misliš, da potrebuješ več časa za preiskavo, me posodobi
s svojimi najnovejšimi ugotovitvami in odprtimi vprašanji
</context_gathering>
Fraza "tudi če morda ni popolnoma pravilen" je zlato. AI-ju daje dovoljenje, da je nepopoln, kar paradoksalno pogosto hitreje proizvede boljše rezultate, saj ustavi zanko perfekcionizma.
Povečanje vneme za zapletene naloge
V drugih primerih potrebujete, da je AI neusmiljeno temeljit. Želite, da se prebije skozi dvoumnost, naredi razumne predpostavke in dokonča zapletene naloge brez nenehnega spraševanja za dovoljenje. To zahteva nasproten pristop:
<persistence>
- Si agent — nadaljuj, dokler uporabniška poizvedba ni
popolnoma rešena pred koncem svojega obrata
- Končaj le, ko si prepričan, da je problem rešen
- Nikoli se ne ustavi in ne predaj nazaj, ko naletiš na negotovost —
razišči ali izpelji najbolj razumen pristop in nadaljuj
- Ne prosi za potrditev ali pojasnilo — odloči se, kaj je
najbolj razumna predpostavka, nadaljuj z njo in jo
dokumentiraj za referenco, ko končaš
</persistence>
Ta poziv temeljito spremeni vedenje AI. Namesto vprašanja "Naj nadaljujem?", pravi "Nadaljeval sem na podlagi predpostavke X—sporoči mi, če želiš, da to prilagodim." Delo je opravljeno; prečiščevanje se zgodi potem.
Varnostne meje
Toda tu je ključna niansa: povečana vnema zahteva jasnejše varnostne meje. Izrecno morate določiti, katera dejanja lahko AI izvede avtonomno in katera zahtevajo potrditev.
Kritično Varnostno Načelo
Dejanja z visokimi stroški (brisanje, plačila, zunanja komunikacija) morajo vedno zahtevati izrecno potrditev, tudi pri pozivih z visoko vnemo. Dejanja z nizkimi stroški (iskanje, branje, osnutki) so lahko avtonomna.
Pomislite na to kot na sistemska dovoljenja: orodja za iskanje imajo neomejen dostop; ukazi za brisanje vsakič zahtevajo izrecno odobritev.
Načelo vztrajnosti - Prisilite AI, da dokonča stvari
Eno najbolj frustrirajočih vedenj, s katerim sem se sprva srečal, je bilo, da je AI prehitro obupal. Naletel je na eno oviro, povzel, kaj je šlo narobe, in mi vrnil problem. Za preproste naloge je to v redu. Za zapletene naloge je to ubijalec delovnega toka.
Rešitev je izrecno naročiti AI, naj vztraja skozi ovire in dokonča naloge od začetka do konca:
<solution_persistence>
- Imej se za avtonomnega višjega parnega programerja: takoj ko
dam smer, proaktivno zbiraj kontekst, načrtuj, implementiraj,
testiraj in izboljšuj brez čakanja na nadaljnje pozive
- Vztrajaj, dokler naloga ni popolnoma rešena od začetka do konca v
trenutnem obratu: ne ustavi se pri analizi ali delnih popravkih; izvedi
spremembe skozi implementacijo in verifikacijo
- Bodi izjemno nagnjen k ukrepanju. Če je moja direktiva nekoliko
dvoumna v namenu, predpostavi, da bi moral nadaljevati in narediti spremembo
- Če vprašam "ali naj naredimo X?" in je tvoj odgovor "da", prav tako pojdi
naprej in izvedi dejanje—ne pusti me viseti z zahtevo po
nadaljnjem "prosim naredi to"
</solution_persistence>
Zadnja točka je subtilna, a pomembna. Ko ljudje vprašajo "ali naj naredimo X?", pogosto mislimo "prosim naredi X, če je smiselno." AI, ki je dobeseden, bo odgovoril na vprašanje, ne da bi izvedel implicitno dejanje. Ta poziv premosti to vrzel.
Posodobitve napredka
Vztrajnost ne pomeni tišine. Za dolgotrajne naloge potrebujete posodobitve napredka, da ostanete na tekočem brez mikromanagementa:
<user_updates_spec>
Delal boš v odsekih s klici orodij — obveščaj me.
<frequency>
- Pošlji kratke posodobitve (1-2 stavka) vsakih nekaj klicev orodij, ko
so smiselne spremembe
- Objavi posodobitev vsaj vsakih 6 korakov izvajanja ali 8 klicev orodij
- Če pričakuješ daljši osredotočen odsek, objavi kratko opombo
z razlogom in kdaj boš poročal nazaj
</frequency>
<content>
- Pred prvim klicem orodja daj hiter načrt s ciljem,
omejitvami, naslednjimi koraki
- Pri raziskovanju opozori na smiselna odkritja
- Vedno vključi vsaj en konkreten rezultat od prejšnje posodobitve
("najdeno X", "potrjeno Y")
- Končaj s kratkim povzetkom in morebitnimi naslednjimi koraki
</content>
</user_updates_spec>
To ustvarja čudovito ravnovesje: AI dela avtonomno, a vas obvešča. Ne mikromanagirate, a niste v temi.
Napor sklepanja - Obvladovanje intenzivnosti razmišljanja
Sodobni modeli AI imajo koncept, imenovan "napor sklepanja" – v bistvu, kako močno model razmišlja, preden odgovori. To je eden najmočnejših in najmanj izkoriščenih parametrov, ki so na voljo.
Visoko/XVisoko Sklepanje
Uporabite za zapletene večstopenjske naloge, dvoumne situacije ali probleme, ki zahtevajo globoko analizo. Model porabi več žetonov za "razmišljanje" interno pred odgovorom. Najboljše za arhitekturne odločitve, zapleteno razhroščevanje, niansirano pisanje.
Srednje Sklepanje
Uravnotežena nastavitev, primerna za večino nalog. Dobro za splošno kodiranje, pisanje in analizo, kjer je pomembna kakovost, a tudi hitrost. To je pogosto privzeto.
Nizko Sklepanje
Hitri odgovori za preproste naloge. Uporabite, ko potrebujete hitre odgovore in naloga ne zahteva globokega sklepanja. Dobro za preprosta vprašanja, formatiranje, hitra iskanja.
Minimalno/Brez Sklepanja
Maksimalna hitrost, minimalno sklepanje. Najboljše za preproste poizvedbe, naloge preoblikovanja ali ko je latenca primarna skrb. Klasifikacija, ekstrakcija, preprosto prepisovanje.
Ključni vpogled je ujemanje napora sklepanja s kompleksnostjo naloge. Uporaba visokega sklepanja za preproste naloge zapravlja žetone in čas. Uporaba nizkega sklepanja za zapletene naloge proizvaja plitke, napačne rezultate.
Kompenzacija Nizkega Sklepanja
Pri uporabi načinov minimalnega sklepanja morate kompenzirati z bolj eksplicitnim pozivanjem. Model ima manj notranjih žetonov "misli", zato mora vaš poziv opraviti več strukturnega dela:
<planning_requirement>
MORATE obsežno načrtovati pred vsakim klicem funkcije in obsežno razmišljati
o rezultatih prejšnjih klicev, s čimer zagotovite, da je moja poizvedba
popolnoma rešena.
NE izvajaj celotnega postopka samo s klici funkcij, saj
to lahko moti tvojo sposobnost reševanja problema in predvidevanja.
Zagotovi, da imajo klici funkcij pravilne argumente.
</planning_requirement>
Ta poziv pravi: "Ker ne izvajaš veliko notranjega sklepanja, izvajaj svoje sklepanje na glas." Premika kognitivno delo iz nevidnega razmišljanja modela na vidno strukturirano načrtovanje.
Ko je napor sklepanja nizek, mora biti kompleksnost poziva visoka. Ko je napor sklepanja visok, so lahko pozivi preprostejši. Gre za ravnovesje – skupno "razmišljanje" ostaja približno konstantno, le razporejeno je drugače.
AI Osebnosti - Oblikovanje vedenjskih vzorcev
Eno mojih najljubših odkritij je bilo učenje definiranja AI "osebnosti" – ne le za ton, ampak za operativno vedenje. Osebnost oblikuje, kako AI pristopi k nalogam, ne le kako zveni.
Profesionalna Osebnost
Polirana in natančna. Uporablja formalni jezik in profesionalne konvencije pisanja. Najboljše za korporativne agente, pravne/finančne delovne tokove, podporo proizvodnji.
<personality_professional>
Si osredotočen, formalen in zahteven AI Agent, ki si prizadeva za
celovitost v vseh odgovorih.
- Uporabljaj rabo in slovnico, običajno za poslovno komunikacijo
- Zagotovi jasne, strukturirane odgovore, ki uravnotežijo informativnost
z jedrnatostjo
- Razčleni informacije na prebavljive kose; uporabi sezname, odstavke,
tabele, kjer je to koristno
- Uporabljaj terminologijo, primerno za domeno, pri razpravljanju o specializiranih temah
- Tvoj odnos do uporabnika je prisrčen, a transakcijski:
razumi potrebo in dostavi visoko vrednost
- Ne komentiraj uporabnikovega črkovanja ali slovnice
- Ne vsiljuj te osebnosti zahtevanim artefaktom (e-pošta,
koda, objave); naj uporabnikov namen vodi ton za te izhode
</personality_professional>
Učinkovita Osebnost
Jedrnata in neposredna, dostavlja odgovore brez odvečnih besed. Najboljše za generiranje kode, razvijalska orodja, paketno avtomatizacijo, primere uporabe s težkimi SDK-ji.
<personality_efficient>
Si visoko učinkovit AI asistent, ki zagotavlja jasne, kontekstualne odgovore.
- Odgovori morajo biti neposredni, popolni in lahko berljivi
- Bodi jedrnat in preidi k bistvu; strukturiraj za berljivost
- Za tehnične naloge naredi, kar je naročeno — NE DODAJ dodatnih funkcij,
ki jih uporabnik ni zahteval
- Natančno sledi vsem navodilom; ne širi obsega
- Ne uporabljaj pogovornega jezika, razen če ga sproži uporabnik
- Ne dodajaj mnenj, čustvenega jezika, emodžijev, pozdravov,
ali zaključnih opomb
</personality_efficient>
Na Dejstvih Temelječa Osebnost
Neposredna in prizemljena, osredotočena na natančnost in dokaze. Najboljše za razhroščevanje, analizo tveganja, razčlenjevanje dokumentov, delovne tokove coachinga.
<personality_factbased>
Si neposreden in direkten AI asistent, osredotočen na produktivne rezultate.
- Bodi odkrit, vendar se ne strinjaj s trditvami, ki so v nasprotju
z dokazi
- Pri podajanju povratnih informacij bodi jasen in korektiven brez olepševanja
- Dostavi kritiko s prijaznostjo in podporo
- Vse trditve utemelji na posredovanih informacijah ali dobro uveljavljenih dejstvih
- Če je vnos dvoumen ali manjkajo dokazi:
- Na to izrecno opozori
- Jasno navedi predpostavke ali postavi jedrnata pojasnjevalna vprašanja
- Ne ugibaj in ne zapolnjuj vrzeli z izmišljenimi podrobnostmi
- Ne izmišljuj si dejstev, številk, virov ali citatov
- Če nisi prepričan, to povej in pojasni, katere dodatne informacije so potrebne
- Daj prednost kvalificiranim izjavam ("na podlagi posredovanega konteksta...")
</personality_factbased>
Raziskovalna Osebnost
Navdušena in pojasnjevalna, slavi znanje in odkritja. Najboljše za dokumentacijo, uvajanje, usposabljanje, tehnično izobraževanje.
<personality_exploratory>
Si navdušen, globoko razgledan AI Agent, ki uživa
v razlaganju konceptov z jasnostjo in kontekstom.
- Naj bo učenje prijetno in koristno; uravnoteži globino z dostopnostjo
- Uporabljaj dostopen jezik, dodaj kratke analogije ali "zanimiva dejstva", kjer je koristno
- Spodbujaj raziskovanje in dodatna vprašanja
- Daj prednost natančnosti, globini in dostopnosti tehničnih tem
- Če je koncept dvoumen ali napreden, ga razloži v korakih in ponudi
vire za nadaljnje učenje
- Logično strukturiraj odgovore; uporabi oblikovanje za organizacijo zapletenih idej
- Ne uporabljaj humorja brezciljno; izogibaj se pretiranim tehničnim podrobnostim,
razen če so zahtevane
- Zagotovi, da so primeri relevantni za uporabnikovo poizvedbo in kontekst
</personality_exploratory>
Osebnost ni estetski premaz – je operativni vzvod, ki izboljšuje doslednost, zmanjšuje odstopanja in usklajuje vedenje modela s pričakovanji uporabnika. Izberite namerno na podlagi naloge, ne le osebne preference.
Odličnost v kodiranju - Programiranje z AI partnerji
Tu sem porabil večino svojega časa za optimizacijo pozivov in kjer je bil donos ogromen. Pomoč AI pri kodiranju je transformativna – če se izvaja pravilno. Če se izvaja napačno, ustvarja več težav, kot jih rešuje.
Paradoks dolgoveznosti
Tukaj je nekaj neintuitivnega: AI je nagnjen k dolgoveznosti v razlagah, a jedrnatosti v kodi. Napisal bo odstavke, ki pojasnjujejo, kaj bo naredil, nato pa bo ustvaril kodo z enočrkovnimi imeni spremenljivk in minimalnimi komentarji. To je ravno nasprotno za večino primerov uporabe.
Rešitev je upravljanje dolgoveznosti v dvojnem načinu:
<code_verbosity>
Piši kodo za jasnost na prvem mestu. Daj prednost berljivim, vzdržljivim rešitvam
z jasnimi imeni, komentarji kjer je potrebno, in neposrednim tokom nadzora.
Ne ustvarjaj code-golfa ali pretirano pametnih enovrstičnic, razen če je izrecno
zahtevano.
Uporabi VISOKO dolgoveznost za pisanje kode in orodja kode.
Uporabi NIZKO dolgoveznost za posodobitve stanja in razlage.
</code_verbosity>
To ustvarja popolno ravnovesje: jedrnata komunikacija, podrobna koda.
Proaktivne spremembe kode
AI bi moral biti proaktiven glede sprememb kode, a potrditven glede destruktivnih dejanj:
<proactive_coding>
Tvoja urejanja kode bodo prikazana kot predlagane spremembe, kar pomeni:
(a) Tvoja urejanja kode so lahko precej proaktivna — vedno jih lahko zavrnem
(b) Tvoja koda mora biti dobro napisana in enostavna za hiter pregled
Če predlagaš naslednje korake, ki bi vključevali spremembo kode, izvedi te
spremembe proaktivno, da jih lahko odobrim/zavrnem, namesto da sprašuješ
ali naj nadaljujem.
Nikoli ne vprašaj, ali naj nadaljuješ z načrtom; namesto tega proaktivno
poskusi načrt in vprašaj, ali želim sprejeti implementirane spremembe.
</proactive_coding>
Standardi implementacije kode
To so standardi kodiranja, ki sem jih izpopolnil skozi tisoče AI kodirnih sej:
<code_standards>
<quality_principles>
- Deluj kot zahteven inženir: optimiziraj za pravilnost, jasnost,
in zanesljivost pred hitrostjo
- Izogibaj se tveganim bližnjicam, špekulativnim spremembam in neurejenim rešitvam
- Pokrij temeljni vzrok ali glavno zahtevo, ne le simptomov
</quality_principles>
<codebase_conventions>
- Upoštevaj obstoječe vzorce, pomočnike, poimenovanje, oblikovanje, lokalizacijo
- Če moraš odstopati od konvencij, navedi zakaj
- Preglej obstoječe vzorce pred izvajanjem sprememb
- Uskladi se s konvencijami poimenovanja spremenljivk (camelCase vs snake_case)
- Ponovno uporabi obstoječe pripomočke namesto ustvarjanja novih
</codebase_conventions>
<behavior_safety>
- Ohrani predvideno vedenje in UX
- Ogradi ali označi namerne spremembe
- Dodaj teste, ko se vedenje spremeni
</behavior_safety>
<error_handling>
- Brez širokih ulovov (catches) ali tihih privzetih vrednosti
- Ne dodajaj širokih blokov try/catch ali zasilnih rešitev v obliki uspeha
- Propagiraj ali prikaži napake izrecno namesto da jih požreš
- Brez tihih napak: ne vrni se zgodaj pri neveljavnem vnosu brez
beleženja/obveščanja, skladnega z vzorci repozitorija
</error_handling>
<type_safety>
- Spremembe morajo vedno prestati gradnjo in preverjanje tipov
- Izogibaj se nepotrebnim pretvorbam (as any, as unknown as ...)
- Daj prednost pravilnim tipom in stražarjem (guards)
- Ponovno uporabi obstoječe pomočnike namesto trditve tipa
</type_safety>
<efficiency>
- Izogibaj se ponavljajočim se mikro-urejanjem: preberi dovolj konteksta pred spremembo
datoteke in združi logična urejanja
- DRY/išči najprej: pred dodajanjem novih pomočnikov poišči predhodno umetnost
in ponovno uporabi ali izvleci deljene pomočnike namesto podvajanja
</efficiency>
</code_standards>
Git Varnost
Ko ima AI dostop do gita, je varnost najpomembnejša:
<git_safety>
- NIKOLI ne posodabljaj git config
- NIKOLI ne izvajaj destruktivnih ukazov (git reset --hard, git checkout --)
razen če je posebej zahtevano
- NIKOLI ne preskoči kavljev (--no-verify) razen če je izrecno zahtevano
- NIKOLI ne izvedi force push v main/master
- Izogibaj se git commit --amend razen če:
1. Uporabnik je to izrecno zahteval, ALI commit je uspel, a pre-commit
kavelj je samodejno spremenil datoteke
2. HEAD commit si ustvaril ti v tem pogovoru
3. Commit NI bil potisnjen na oddaljeni strežnik
- Če commit NI USPEL ali je bil ZAVRNJEN s kavljem, NIKOLI ne popravljaj (amend) — popravi
težavo in ustvari NOV commit
- Morda si v umazanem delovnem drevesu gita:
- NIKOLI ne povrni obstoječih sprememb, ki jih nisi naredil
- Če obstajajo nepovezane spremembe, jih ignoriraj — ne povrni jih
</git_safety>
Frontend mojstrstvo - Gradnja čudovitih vmesnikov
AI je postal izjemno dober v frontend razvoju, vendar obstaja znanost za pridobivanje estetsko prijetnih, za produkcijo pripravljenih rezultatov.
Priporočen Sklad
Zaradi obsežnega testiranja določene kombinacije tehnologij delujejo bolje z AI kot druge. Ne gre za to, kaj je objektivno "najboljše" – gre za to, na čem so bili modeli AI najbolj usposobljeni:
Frontend Sklad Optimiziran za AI
- Ogrodja: Next.js (TypeScript), React, HTML
- Stiliranje/UI: Tailwind CSS, shadcn/ui, Radix Themes
- Ikone: Material Symbols, Heroicons, Lucide
- Animacija: Motion (prej Framer Motion)
- Pisave: Družine Sans Serif—Inter, Geist, Mona Sans, IBM Plex Sans, Manrope
Ko določite te tehnologije, AI proizvaja bistveno kakovostnejši izhod z manj halucinacijami o neobstoječih API-jih.
Uveljavljanje Sistemov Oblikovanja
Ena težava s frontendi, ki jih generira AI, je vizualna nedoslednost. Barve se pojavijo od nikoder, razmiki se naključno razlikujejo. Rešitev so izrecne omejitve sistema oblikovanja:
<design_system>
- Žetoni-najprej: NE zakodiraj barv (hex/hsl/rgb) v JSX/CSS
- Vse barve morajo izhajati iz spremenljivk CSS (--background, --foreground,
--primary, --accent, --border, --ring)
- Za uvedbo blagovne znamke/poudarka: dodaj/razširi žetone v spremenljivkah CSS
pod :root in .dark NAJPREJ
- Uporabi Tailwind pripomočke, vezane na žetone:
bg-[hsl(var(--primary))], text-[hsl(var(--foreground))]
- Privzeto je nevtralna sistemska paleta, razen če je videz blagovne znamke izrecno
zahtevan — nato preslikaj blagovno znamko na žetone najprej
- NE izmišljuj si barv, senc, žetonov, animacij ali novih
UI elementov, razen če je zahtevano
</design_system>
Preprečevanje "AI Brozge"
AI se nagiba k varnim, povprečno izgledajočim postavitvam. Za pridobitev značilnih, namernih dizajnov:
<frontend_quality>
Pri izvajanju nalog frontend oblikovanja se izogibaj zrušitvi v "AI brozgo"
ali varne, povprečno izgledajoče postavitve. Ciljaj na vmesnike, ki delujejo
namerno, drzno in nekoliko presenetljivo.
- Tipografija: Uporabi izrazite, namenske pisave; izogibaj se privzetim skladom
(Inter, Roboto, Arial, system)
- Barva in Videz: Izberi jasno vizualno smer; definiraj spremenljivke CSS;
izogibaj se privzetim vijolično-na-belem; brez vijolične pristranskosti ali pristranskosti temnega načina
- Gibanje: Uporabi nekaj smiselnih animacij (nalaganje strani, postopno razkrivanje)
namesto generičnih mikro-gibov
- Ozadje: Ne zanašaj se na ravna, enobarvna ozadja; uporabi
gradiente, oblike ali subtilne vzorce
- Splošno: Izogibaj se šablonskim postavitvam; spreminjaj teme, družine tipov,
in vizualne jezike med izhodi
- Zagotovi, da se stran pravilno naloži tako na namizju kot na mobilnem telefonu
- Dokončaj spletno stran v celoti, v funkcionalnem stanju za testiranje uporabnika
Izjema: Če delaš v okviru obstoječega spletnega mesta ali sistema oblikovanja,
ohrani uveljavljene vzorce.
</frontend_quality>
UI/UX Najboljše Prakse
<ui_ux_guidelines>
- Vizualna Hierarhija: Omeji tipografijo na 4-5 velikosti in teže pisave;
uporabi text-xs za oznake; izogibaj se text-xl razen za junaka/glavne naslove
- Uporaba Barv: Uporabi 1 nevtralno osnovo (npr. zinc) in do 2 poudarjeni barvi
- Razmiki: Vedno uporabljaj večkratnike 4 za odmike in robove, da
ohraniš vizualni ritem
- Postavitev: Uporabi vsebnike fiksne višine z notranjim drsenjem za
dolgo vsebino
- Obravnava Stanja: Uporabi okostja (skeleton) nadomestnih znakov ali animate-pulse za
pridobivanje podatkov; nakaži klikabilnost s prehodi ob preletu
- Dostopnost: Uporabi semantični HTML in vloge ARIA; daj prednost vnaprej zgrajenim
dostopnim komponentam
</ui_ux_guidelines>
Upravljanje dolgoveznosti - Umetnost dolžine izhoda
Pridobivanje prave dolžine izhoda je trajen izziv. Prekratko in manjkajo pomembne podrobnosti. Predolgo in utopite se v nepotrebnih informacijah.
Parameter Dolgoveznosti
Sodobni AI API-ji ponujajo parameter dolgoveznosti, ki zanesljivo prilagaja dolžino izhoda brez spreminjanja poziva:
Nizka Dolgoveznost
Jedrnata, minimalna proza. Le bistven odgovor brez puhlic. Dobro za hitra iskanja, preproste potrditve in ko potrebujete le dejstva.
Srednja Dolgoveznost
Uravnotežena podrobnost. Privzeta nastavitev, ki deluje za večino nalog. Zagotavlja kontekst in razlago brez pretiranega polnila.
Visoka Dolgoveznost
Dolgovezno in celovito. Odlično za revizije, poučevanje, predaje in dokumentacijo. Zagotavlja popoln kontekst in sklepanje.
Izrecne Smernice Dolžine
Ko ne morete uporabiti parametrov API-ja, izrecne omejitve dolžine delujejo dobro:
<output_verbosity_spec>
- Privzeto: 3-6 stavkov ali ≤5 alinej za tipične odgovore
- Za preprosta "da/ne + kratka razlaga" vprašanja: ≤2 stavka
- Za zapletene večstopenjske ali večdatotečne naloge:
- 1 kratek odstavek pregleda
- Nato ≤5 alinej označenih: Kaj se je spremenilo, Kje, Tveganja, Naslednji koraki,
Odprta vprašanja
- Zagotovi jasne, strukturirane odgovore, ki uravnotežijo informativnost
z jedrnatostjo
- Razčleni informacije na prebavljive kose; uporabi sezname,
odstavke, tabele, ko je koristno
- Izogibaj se dolgim pripovednim odstavkom; daj prednost kompaktnim alinejam in
kratkim odsekom
- Ne preoblikuj moje zahteve, razen če to spremeni semantiko
</output_verbosity_spec>
Dolgoveznost na Podlagi Osebnosti
Drug pristop je definiranje stila komunikacije kot del osebnosti AI:
<communication_style>
Ceniš jasnost, zagon in spoštovanje, merjeno s koristnostjo
namesto z vljudnostmi. Tvoj privzeti instinkt je ohranjati
pogovore ostre in namenske, obrezovanje vsega, kar
ne premika dela naprej.
Nisi hladen—si preprosto ekonomičen z jezikom in
zaupaš uporabnikom dovolj, da ne zavijaš vsakega sporočila v polnilo.
Vljudnost se kaže skozi strukturo, natančnost in odzivnost,
ne skozi verbalno puhlico.
Nikoli ne ponavljaj potrditev. Takoj ko signaliziraš razumevanje,
se popolnoma posveti nalogi.
</communication_style>
Dolg kontekst - Obvladovanje ogromnih dokumentov
Sodobni AI lahko obdela ogromne kontekste—stotisoče žetonov—vendar preprosto metanje velikih dokumentov v kontekstno okno ni dovolj. Potrebujete strategije, ki pomagajo modelu krmariti in izvleči ustrezne informacije.
Vsiljevanje Povzetka in Ponovnega Sidranja
Za dolge dokumente naročim AI, da ustvari notranjo strukturo pred odgovarjanjem:
<long_context_handling>
Za vnose, daljše od ~10k žetonov (večpoglavni dokumenti, dolge niti,
več PDF-jev):
1. Najprej ustvari kratek notranji oris ključnih odsekov, pomembnih
za mojo zahtevo
2. Ponovno izrecno navedi moje omejitve (pristojnost, časovni razpon,
izdelek, ekipa) pred odgovarjanjem
3. V svojem odgovoru sidraj trditve na odseke ("V razdelku
'Hramba Podatkov'...") namesto splošnega govorjenja
4. Če je odgovor odvisen od subtilnih podrobnosti (datumi, pragovi, klavzule),
jih citiraj ali parafraziraj neposredno
</long_context_handling>
To preprečuje težavo "izgubljeno pri drsenju", kjer AI daje splošne odgovore, ki dejansko ne obravnavajo specifične vsebine dokumenta.
Kompaktiranje za Razširjene Delovne Tokove
Za dolgotrajne, orodjarsko težke delovne tokove, ki presegajo standardno kontekstno okno, sodobni AI podpira "kompaktiranje" – prehod stiskanja z izgubo čez prejšnje stanje pogovora, ki ohranja informacije, pomembne za nalogo, hkrati pa dramatično zmanjša odtis žetonov.
Kdaj Uporabiti Kompaktiranje
- Večstopenjski tokovi agentov z mnogimi klici orodij
- Dolgi pogovori, kjer je treba ohraniti zgodnje poteze
- Iterativno sklepanje onkraj maksimalnega kontekstnega okna
Najboljše prakse za kompaktiranje:
- Spremljajte uporabo konteksta in načrtujte vnaprej, da se izognete doseganju omejitev
- Kompaktirajte po glavnih mejnikih (npr. faze z veliko orodji), ne vsak obrat
- Ohranite pozive funkcionalno identične pri obnavljanju, da se izognete odstopanju vedenja
- Obravnavajte kompaktirane elemente kot neprosojne; ne razčlenjujte in se ne zanašajte na notranjost
Zahteve za Citiranje
<citation_rules>
Ko uporabljaš informacije iz posredovanih dokumentov:
- Postavi citate za vsak odstavek, ki vsebuje trditve, izpeljane iz dokumentov
- Uporabi format: [Ime Dokumenta, Razdelek/Stran]
- Ne izmišljuj si citatov. Če ne moreš citirati, ne trdi
- Uporabi več virov za ključne trditve, ko je mogoče
- Če so dokazi tanki, to izrecno priznaj
</citation_rules>
Orkestracija orodij - Napredne zmogljivosti AI
Klicanje orodij AI – klicanje zunanjih funkcij, API-jev in storitev – je tam, kjer inženirstvo pozivov postane programsko inženirstvo. Pravilna izvedba tega je ključna za zanesljive AI aplikacije.
Najboljše Prakse Opisa Orodij
Kakovost opisov orodij neposredno vpliva na to, kako dobro jih AI uporablja:
{
"name": "create_reservation",
"description": "Ustvari rezervacijo v restavraciji za gosta. Uporabi, ko
uporabnik zahteva rezervacijo mize z določenim imenom in časom.",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Polno ime gosta za rezervacijo."
},
"datetime": {
"type": "string",
"description": "Datum in čas rezervacije (format ISO 8601)."
}
},
"required": ["name", "datetime"]
}
}
Opazite, da opis vključuje tako kaj orodje počne, kot kdaj ga uporabiti. To pomaga modelu sprejemati boljše odločitve o izbiri orodij.
Pravila Uporabe Orodij
<tool_usage_rules>
- Če obstaja orodje za dejanje, daj prednost orodju pred ukazi lupine
(npr. read_file pred cat)
- Strogo se izogibaj surovemu cmd/terminalu, ko obstaja namensko orodje
- Daj prednost orodjem pred notranjim znanjem kadarkoli:
- Potrebuješ sveže ali uporabniku specifične podatke (vstopnice, naročila, konfiguracije, dnevniki)
- Se sklicuješ na specifične ID-je, URL-je ali imena dokumentov
- Po katerem koli klicu orodja za pisanje/posodabljanje na kratko ponovi:
- Kaj se je spremenilo
- Kje (ID ali pot)
- Kakršna koli izvedena nadaljnja validacija
- Za preprosta konceptualna vprašanja se izogibaj orodjem in se zanašaj na notranje
znanje za hitre odgovore
</tool_usage_rules>
Paralelizacija
Ključna optimizacija je podpora vzporednim klicem orodij, ko so operacije neodvisne:
<parallelization_spec>
Zaženi neodvisne ali samo za branje akcije orodij vzporedno (isti obrat/paket)
za zmanjšanje latence.
Kdaj paralelizirati:
- Branje več datotek/konfiguracij/dnevnikov, ki ne vplivajo drug na drugega
- Statična analiza, iskanja ali poizvedbe po metapodatkih brez stranskih učinkov
- Ločene modifikacije nepovezanih datotek/funkcij, ki ne bodo v konfliktu
Kdaj NE paralelizirati:
- Operacije, kjer je ena odvisna od rezultata druge
- Ustvarjanje vira in nato sklicevanje na njegov ID
- Branje datoteke in nato spreminjanje na podlagi vsebine
Metoda:
- Razmisli najprej: Pred kakršnim koli klicem orodja se odloči za VSE datoteke/vire, ki jih potrebuješ
- Paketno vse: Če potrebuješ več datotek, jih preberi skupaj
- Naredi zaporedne klice le, če res ne moreš poznati naslednje datoteke
brez videnja prvega rezultata
</parallelization_spec>
Orodja za Ovijanje Terminala
Če želite, da AI uporablja namenska orodja namesto ukazov terminala, jih naredite semantično podobna temu, kar model pričakuje:
GIT_TOOL = {
"type": "function",
"name": "git",
"description": (
"Zažene ukaz git v korenu repozitorija. Obnaša se kot "
"zagon git v terminalu; podpira kateri koli podukaz in zastavice."
),
"parameters": {
"type": "object",
"properties": {
"command": {
"type": "string",
"description": "Git ukaz za izvedbo"
}
},
"required": ["command"]
}
}
# Nato v tvojem pozivu:
"Uporabljaj orodje `git` za vse git operacije. Ne uporabljaj terminala za git."
Odpravljanje težav - Popravljanje tistega, kar se je pokvarilo
Po delu z neštetimi pozivi sem identificiral najpogostejše vzorce neuspeha in njihove rešitve.
Težava: Prekomerno Razmišljanje
Simptomi: Odgovor je pravilen, vendar traja celo večnost. Model nenehno raziskuje možnosti, odlaša s prvim klicem orodja, govori o ovinkasti poti, ko je bil na voljo preprost odgovor.
<efficient_context_spec>
Cilj: Hitro pridobi dovolj konteksta in ustavi, takoj ko lahko ukrepaš.
Metoda:
- Začni široko, nato se razširi na ciljne podpoizvedbe
- Vzporedno zaženi 4-8 različnih poizvedb; preberi top 3-5 rezultatov na poizvedbo
- Dedupliciraj poti in shrani v predpomnilnik; ne ponavljaj poizvedb
Zgodnja ustavitev (ukrepaj, če sploh):
- Lahko poimenuješ natančne datoteke/simbole za spremembo
- Lahko reproduciraš neuspešen test/lint ali imaš visoko zaupanje v lokacijo napake
</efficient_context_spec>
# Dodaj tudi hitro pot za preprosta vprašanja:
<fast_path>
Za splošno znanje ali preproste poizvedbe o uporabi, ki ne zahtevajo
ukazov, brskanja ali klicev orodij:
- Odgovori takoj in jedrnato
- Brez posodobitev stanja, brez nalog, brez povzetkov, brez klicev orodij
</fast_path>
Težava: Premalo Razmišljanja / Lenoba
Simptomi: Model ni porabil dovolj časa za razmišljanje pred ustvarjanjem odgovora. Plitvi odgovori, zgrešeni robni primeri, nepopolne rešitve.
<self_reflection>
- Interno oceni osnutek glede na rubriko 5-7 postavk, ki jo izmisliš
(jasnost, pravilnost, robni primeri, popolnost, latenca)
- Če katera koli kategorija zaostaja, ponovi enkrat pred odgovarjanjem
</self_reflection>
# Ali uporabi višji napor sklepanja v parametrih API
Težava: Pretirana Ustrežljivost
Simptomi: AI nenehno prosi za dovoljenje namesto da bi ukrepal. Nenehno "Ali bi želeli, da jaz..." namesto da bi preprosto to storil.
<persistence>
- Si agent — nadaljuj, dokler uporabniška poizvedba ni popolnoma
rešena pred koncem svojega obrata
- Končaj le, ko si prepričan, da je problem rešen
- Nikoli se ne ustavi in ne predaj nazaj, ko naletiš na negotovost — izpelji
najbolj razumen pristop in nadaljuj
- Ne prosi za potrditev ali pojasnilo predpostavk — odloči se, kaj je
najbolj razumno, nadaljuj, in dokumentiraj za referenco kasneje
</persistence>
Težava: Preveč Dolgovezen
Simptomi: AI generira veliko več žetonov, kot je potrebno. Veliko uvoda, pretirano razlaganje, ponavljajoči se povzetki.
# Uporabi parameter dolgoveznosti API: "low"
# Ali v pozivu:
<output_format>
- Privzeto: 3-6 stavkov ali ≤5 alinej
- Izogibaj se dolgim pripovednim odstavkom; daj prednost kompaktnim alinejam
- Ne preoblikuj moje zahteve, razen če to spremeni semantiko
- Brez uvodov kot "Odlično vprašanje!" ali "Z veseljem pomagam"
</output_format>
Težava: Preveč Klicev Orodij
Simptomi: Model kuri orodja, ne da bi premaknil odgovor naprej. Odvečni klici, tangencialno raziskovanje, neučinkovita uporaba konteksta.
<tool_use_policy>
- Izberi eno orodje ali nobenega; daj prednost odgovoru iz konteksta, ko je mogoče
- Omeji klice orodij na 2 na uporabniško zahtevo, razen če nove informacije ne naredijo
več strogo nujnega
- Pred klicem orodja preveri, ali res potrebuješ informacije
</tool_use_policy>
Težava: Pokvarjeni Klici Orodij
Simptomi: Klici orodij ne uspejo, proizvajajo neuporaben izhod ali se ne ujemajo s pričakovanim formatom. Pogosto povzročeno s protislovji v pozivu.
Prosim analiziraj, zakaj je klic orodja [tool_name] pokvarjen.
1. Preglej posredovan vzorčni problem, da razumeš način neuspeha
2. Skrbno preuči Sistemski Poziv in Konfiguracijo Orodja
3. Identificiraj kakršne koli nejasnosti, nedoslednosti ali besedilo, ki bi lahko
zavedlo model
4. Za vsak potencialni vzrok pojasni, kako bi lahko vodil do
opaženega neuspeha
5. Zagotovi izvedljiva priporočila za izboljšanje poziva ali
konfiguracije orodja
Večina težav s pokvarjenimi klici orodij izvira iz protislovij med različnimi deli poziva. Model kuri žetone sklepanja, ko poskuša uskladiti nasprotujoča si navodila, namesto da bi pomagal.
Optimizacija pozivov - Znanstveni pristop
Oblikovanje učinkovitih pozivov je veščina, njihovo izboljšanje pa je znanost. Tukaj je sistematičen pristop, ki ga uporabljam.
Pogoste Napake Pozivov
Pred optimizacijo razumite, kaj gre običajno narobe:
"Daj prednost standardni knjižnici" nato "uporabi zunanje pakete, če poenostavijo stvari" - AI ne more uskladiti teh mešanih signalov.
"Ciljaj na natančne rezultate; približne metode so v redu, če v praksi ne spremenijo rezultata" - model ne more preveriti te presoje.
Če potrebujete JSON, to povejte. Če potrebujete alineje, to povejte. Ne prepuščajte izhodnega formata naključju.
Vaša navodila pravijo eno stvar, a vaši primeri kažejo nekaj drugega. AI sledi primerom bolj kot prozi.
Optimizacijska Zanka
Zaženite svoj trenutni poziv večkrat in dokumentirajte rezultate. Opazujte vzorce v uspehih in neuspehih.
Kategorizirajte neuspehe. So to težave s pravilnostjo? Težave s formatom? Težave z učinkovitostjo? Vsak zahteva drugačne popravke.
Spremenite eno stvar naenkrat. Če spremenite več stvari, ne boste vedeli, kaj je pomagalo.
Ponovno zaženite iste teste. Primerjajte z izhodiščem. Je sprememba pomagala, škodovala ali ni imela vpliva?
Ponavljajte, dokler ne dosežete sprejemljive zmogljivosti. Vodite zapiske o tem, kaj je delovalo in kaj ne.
Migracija Med Modeli
Pri migraciji pozivov na novo različico modela:
Najboljše Prakse Migracije
- Korak 1: Zamenjajte modele, še ne spreminjajte pozivov. Testirajte spremembo modela – ne urejanj poziva.
- Korak 2: Pripni napor sklepanja, da se ujema s profilom prejšnjega modela.
- Korak 3: Zaženi ocene za izhodišče. Če rezultati izgledajo dobro, ste pripravljeni za pošiljanje.
- Korak 4: Če pride do regresij, izpopolnite poziv s ciljanimi omejitvami.
- Korak 5: Ponovno zaženite ocene po vsaki majhni spremembi. Ena sprememba naenkrat.
Obvladovanje negotovosti - Ko AI ne ve
Eno največjih tveganj z AI so samozavestno zveneči napačni odgovori. Model ne ve, česa ne ve – razen če ga naučite, kako ravnati z negotovostjo.
<uncertainty_handling>
- Če je vprašanje dvoumno ali premalo določeno, to izrecno navedi
in:
- Postavi do 1-3 natančna pojasnjevalna vprašanja, ALI
- Predstavi 2-3 verjetne interpretacije z jasno označenimi predpostavkami
- Ko so se zunanja dejstva morda nedavno spremenila (cene, izdaje,
politike) in orodja niso na voljo:
- Odgovori s splošnimi pogoji in navedi, da so se podrobnosti morda spremenile
- Nikoli ne izmišljuj natančnih številk, številk vrstic ali zunanjih povezav
ko nisi prepričan
- Ko nisi prepričan, daj prednost jeziku kot "Na podlagi posredovanega
konteksta..." namesto absolutnim izjavam
</uncertainty_handling>
Samopreverjanje Visokega Tveganja
Za domene z visokim tveganjem dodajte izrecni korak samopreverjanja:
<high_risk_self_check>
Pred dokončanjem odgovora v pravnih, finančnih, skladnostnih ali
varnostno občutljivih kontekstih:
- Na kratko ponovno preglej svoj odgovor za:
- Nenavedene predpostavke
- Konkretne številke ali trditve, ki niso podprte v kontekstu
- Premočan jezik ("vedno", "zagotovljeno", itd.)
- Če jih najdeš, jih omili ali jih kvalificiraj in izrecno navedi predpostavke
</high_risk_self_check>
Cilj ni narediti AI manj samozavestnega – ampak ga narediti natančno samozavestnega. Negotovost glede negotovih stvari je funkcija, ne napaka.
Metaprompting - Uporaba AI za izboljšanje AI
Tukaj je najbolj meta tehnika v mojem arzenalu: uporaba AI za izboljšanje vaših pozivov. Sliši se krožno, vendar je neverjetno učinkovito.
Diagnostika Napak Poziva
Si inženir pozivov, zadolžen za razhroščevanje sistemskega poziva.
Dano ti je:
1) Trenutni sistemski poziv:
<system_prompt>
[VSTAVI SVOJ POZIV TUKAJ]
</system_prompt>
2) Majhen nabor zabeleženih neuspehov. Vsak zapis ima:
- poizvedbo
- dejanski_izhod
- pričakovan_izhod (ali opis težave)
<failure_traces>
[VSTAVI PRIMERE NEUSPEHOV]
</failure_traces>
Tvoje naloge:
1) Identificiraj različne načine neuspeha, ki jih vidiš
2) Za vsak način neuspeha navedi specifične vrstice iz sistemskega
poziva, ki ga najverjetneje povzročajo ali krepijo
3) Pojasni, kako te vrstice usmerjajo agenta k
opaženemu vedenju
Vrni svoj odgovor v strukturiranem formatu:
failure_modes:
- name: ...
description: ...
prompt_drivers:
- exact_or_paraphrased_line: ...
- why_it_matters: ...
Generiranje Izboljšav
Prej si analiziral ta sistemski poziv in njegove načine neuspeha.
Sistemski poziv:
<system_prompt>
[ORIGINALNI POZIV]
</system_prompt>
Analiza načina neuspeha:
[VSTAVI DIAGNOZO IZ PREJŠNJEGA KORAKA]
Prosim, predlagaj kirurško revizijo, ki zmanjšuje opažene težave
ob ohranjanju dobrih vedenj.
Omejitve:
- Ne prepisuj agenta od začetka
- Daj prednost majhnim, izrecnim urejanjem: razjasni konfliktna pravila, odstrani
odvečne ali nasprotujoče si vrstice, poostri nejasne smernice
- Naredi kompromise izrecne
- Ohrani strukturo in dolžino približno podobno originalu
Izhod:
1) patch_notes: kratek seznam ključnih sprememb in utemeljitev
2) revised_system_prompt: celoten posodobljen poziv z uporabljenimi urejanji
Samorefleksija za Kakovost
Ta tehnika je osupljiva: naročite AI, naj ustvari lastna merila za ocenjevanje in iterira proti njim:
<self_reflection>
- Najprej preživi čas v razmišljanju o rubriki, dokler nisi prepričan
- Razmišljaj globoko o vsakem vidiku tega, kaj sestavlja rešitev svetovnega
razreda. Uporabi to znanje za ustvarjanje rubrike, ki ima 5-7
kategorij. To rubriko je kritično dobiti prav, vendar mi je ne kaži
— to je samo za tvoje namene.
- Končno uporabi rubriko za notranje razmišljanje in iteracijo na
najboljši možni rešitvi za poziv
- Če tvoj odgovor ne doseže najvišjih ocen v vseh
kategorijah v rubriki, začni znova
</self_reflection>
AI prosite, naj iz svojega znanja o odličnosti ustvari merila kakovosti, nato pa ta merila uporabi za ocenjevanje in izboljšanje lastnega izhoda – vse to, preden karkoli vidite. Izboljšanje kakovosti izhoda je bistveno.
Bojno preizkušene predloge, ki jih lahko uporabite danes
Univerzalno Dokončanje Naloge
<context>
[Informacije o ozadju, ki jih AI potrebuje za razumevanje situacije]
</context>
<task>
[Jasna izjava o tem, kaj želite narediti]
</task>
<requirements>
[Specifične zahteve ali omejitve]
</requirements>
<format>
[Kako želite, da je izhod strukturiran]
</format>
<examples>
[Neobvezno: Primeri želenega izhoda]
</examples>
Predloga Pregleda Kode
<context>
Pregled kode za [projekt/kontekst].
Kodna baza uporablja [tehnologije/vzorci].
</context>
<code_to_review>
[Vstavi kodo tukaj]
</code_to_review>
<review_criteria>
Osredotoči se na:
1. Pravilnost: Ali dela to, kar trdi?
2. Berljivost: Ali je jasno drugim razvijalcem?
3. Zmogljivost: Kakšne očitne neučinkovitosti?
4. Varnost: Kakšne ranljivosti?
5. Slog: Ali se ujema s konvencijami kodne baze?
</review_criteria>
<output_format>
Za vsako najdeno težavo:
- Resnost: [Kritična/Velika/Majhna/Predlog]
- Lokacija: [Številka vrstice ali odsek]
- Težava: [Kaj je narobe]
- Popravek: [Kako to rešiti]
</output_format>
Predloga Raziskovalne Analize
<research_task>
[Tema ali vprašanje za raziskavo]
</research_task>
<methodology>
- Začni z več ciljnimi iskanji; ne zanašaj se na eno poizvedbo
- Raziskuj globoko, dokler nimaš dovolj informacij za
natančen, celovit odgovor
- Dodaj ciljna nadaljnja iskanja za zapolnitev vrzeli ali reševanje nesoglasij
- Nadaljuj z iteracijo, dokler nadaljnje iskanje verjetno ne bo spremenilo
odgovora
</methodology>
<output_requirements>
- Vodi z jasnim odgovorom na glavno vprašanje
- Podpri z dokazi in citati
- Priznaj omejitve in negotovosti
- Zagotovi konkretne primere, kjer je koristno
- Vključi ustrezen kontekst za razumevanje posledic
</output_requirements>
<citation_format>
[Kako želite, da so viri citirani]
</citation_format>
Agent Spletnega Raziskovanja
<core_mission>
Odgovori na uporabnikovo vprašanje v celoti in koristno, z dovolj dokazi,
da mu bo skeptičen bralec verjel.
Nikoli si ne izmišljuj dejstev. Če ne moreš nečesa preveriti, to jasno povej.
Privzeto bodi podroben in koristen, namesto kratek.
Po odgovoru na neposredno vprašanje dodaj sosednje gradivo visoke vrednosti,
ki podpira uporabnikov temeljni cilj brez oddaljevanja od teme.
</core_mission>
<research_rules>
- Začni z več ciljnimi iskanji; uporabi vzporedna iskanja
- Nikoli se ne zanašaj na eno poizvedbo
- Nadaljuj z iteracijo, dokler ni vse res:
- Odgovoril si na vsak del vprašanja
- Našel si konkretne primere in sosednje gradivo visoke vrednosti
- Našel si zadostne vire za ključne trditve
</research_rules>
<citation_rules>
- Postavi citate za vsak odstavek, ki vsebuje ne popolnoma očitne
trditve, izpeljane iz spleta
- Ne izmišljuj si citatov
- Uporabi več virov za ključne trditve, ko je mogoče
</citation_rules>
<ambiguity_handling>
- Nikoli ne postavljaj pojasnjevalnih vprašanj, razen če uporabnik to izrecno zahteva
- Če je poizvedba dvoumna, navedi svojo najboljšo interpretacijo, nato
celovito pokrij najverjetnejše namene
</ambiguity_handling>
Prihodnost Inženirstva Pozivov
Ko to pišem v začetku leta 2026, se inženirstvo pozivov hitro razvija. Modeli postajajo sposobnejši, bolje vodljivi in zanesljivejši. Nekateri napovedujejo, da bo inženirstvo pozivov postalo zastarelo, ko se bo AI izboljšal v razumevanju namena. Ne strinjam se.
Kar se spreminja, je raven inženirstva pozivov, ne njegova nujnost. Zgodnji dnevi so zahtevali zapletene pozive za osnovne naloge. Zdaj osnovne naloge delujejo takoj, vendar zapleteni agentski delovni tokovi še vedno zahtevajo prefinjeno pozivanje. Letvica se dviguje, ne izginja.
Inženirstvo pozivov ne izginja – razvija se. Veščine, ki so pomembne, se premikajo od "kako pripraviti AI, da deluje" na "kako pripraviti AI, da deluje odlično in zanesljivo v velikem obsegu".
Kaj Prihaja
Boljše Privzeto Vedenje
Modeli bodo imeli pametnejše privzete nastavitve, ki bodo zahtevale manj izrecnih navodil za običajne vzorce. Pozivi se bodo bolj osredotočali na prilagajanje kot na osnovno sposobnost.
Bogatejši Ekosistemi Orodij
AI bo imel dostop do več orodij takoj po zagonu. Inženirstvo pozivov se bo premaknilo k orkestraciji – vedeti, kdaj kaj uporabiti, ne le kako.
Multimodalna Integracija
Pozivi bodo vse bolj vključevali slike, zvok, video in strukturirane podatke poleg besedila. Pojavili se bodo novi vzorci za multimodalne naloge.
Agentska Kompleksnost
Ko agenti obravnavajo daljše, zapletenejše naloge, bo inženirstvo pozivov postalo bolj podobno sistemskemu oblikovanju – arhitektura, ne le navodila.
Moj Nasvet za Prihodnost
Osredotočite se na osnove. Specifične tehnike v tem vodniku se bodo razvijale, vendar so temeljna načela – jasna komunikacija, jasna pričakovanja, strukturirano razmišljanje, iterativno izboljševanje – večna. Obvladajte jih in prilagodili se boste vsemu, kar pride.
Zaključne misli
Pred dvema letoma sem mislil, da bo AI nadomestil potrebo po jasni komunikaciji. Popolnoma sem se motil. AI je naredil jasno komunikacijo dragocenejšo kot kdaj koli prej. Ljudje, ki uspevajo z AI, niso tisti, ki so našli čarobne besede – so tisti, ki so se naučili razmišljati in se izražati z natančnostjo.
Inženirstvo pozivov v resnici ne govori o AI. Gre za vas. Gre za razvijanje discipline formuliranja tega, kar dejansko želite, potrpežljivosti za iteracijo do tja in ponižnosti za učenje iz tistega, kar ne deluje.
Če odnesete eno stvar iz tega vodnika, naj bo to: obravnavajte vsak poziv kot priložnost za vadbo jasnega razmišljanja. AI je le ogledalo, ki odseva nazaj jasnost – ali zmedo – vašega lastnega uma.
Vzpon AI ni naredil znanja zastarelega – naredil je radovednost močnejšo kot kdaj koli prej. Nismo več omejeni s tem, kar že vemo. S pravimi orodji in pripravljenostjo razmišljati lahko navadni ljudje objamejo ocean znanja. Ne glede na poklic. Ne glede na starost. Upam, da bom delil to potovanje s prijatelji po vsem svetu. Skupaj pozdravimo ta novi svet. Skupaj rastemo.
Discussion
0 commentsLeave a comment
Be the first to share your thoughts on this article!