Tinklaraštis

Kodėl Claude atlieka ne tą užduotį ir kaip tai ištaisyti

Markdown

Claude parašo ne tai, nes skuba rašyti kodą nesupratęs jūsų ketinimų. Paaiškinu priežastis ir pateikiu 3 paruoštas užklausas, kad jis pirmiausia užduotų klausimų.

Skaityti visą straipsnį

Svarbiausia įžvalga

Claude parašo ne tai, nes puola rašyti kodą ir pats nusprendžia, ko, jo manymu, norėjote. Dažnai jis suklysta. Beveik niekada problema nėra modelis — net pats galingiausias nepataikys į tikslą, jei užduotis neaiški. Tai išsprendžiu vienu žingsniu: pirmiausia leidžiu Claude mane apklausti, išsiaiškinti mano ketinimus ir tik tada rašyti. Toliau pateikiu tris paruoštus raginimus, kuriuos galite nukopijuoti ir įklijuoti.

Daugiau apie paslaugos naudojimą skaitykite Ailoot dokumentacijoje.

Kodėl Claude daro ne tai?

Svarbiausia įžvalga

Claude gauna trumpą užduotį, akimirksniu užpildo spragas ir puola rašyti kodą pagal savo paties užduoties versiją. Jo versija skiriasi nuo jūsų. Taip gaunate diff, apimantį 14 failų, nors tikėjotės pakeisti vieną eilutę. Priežastis — atotrūkis tarp to, ką pasakėte, ir to, ką turėjote omenyje. Modelis su tuo beveik nesusijęs.

Parašote: „Pridėk filtrus produktų puslapyje.“ Jūsų galvoje tai reiškia porą žymimųjų langelių ir atnaujinamą sąrašą. Claude išgirsta tą patį ir nusprendžia kurti visavertį filtravimo variklį: atskirą state store, savarankišką įvesties delsos logiką, URL sinchronizavimą ir tuziną pagalbinių funkcijų. Šimtai eilučių, nors būtų užtekę kelių URL parametrų.

Tokiu atveju išvada aiški: agentas nesuklydo — jis tiesiog išsprendė daug didesnę problemą, nei reikėjo. Problema buvo ta, kad norimas rezultatas nebuvo aprašytas pakankamai trumpai ir tiksliai.

Svarbiausias žodis — „ketinimas“. Jūs jį turite mintyse, Claude — ne. Jis mato jūsų užklausos tekstą ir visą kontekstą iki tos užklausos. Tada spragas užpildo spėliodamas. Kuo trumpesnė užklausa, tuo daugiau spėlionių — ir tuo labiau rezultatas nutolsta nuo to, ko norėjote.

Anthropic tai aiškiai pasako Claude Code dokumentacijoje:

Jei leisite Claude iškart imtis kodo, jis gali išspręsti ne tą problemą.

— Claude Code Docs, https://code.claude.com/docs/en/best-practices

Su tuo susidūriau savo projekte. Paprašiau pataisyti vieną autorizacijos ekraną, o gavau diff, paveikusį pusę gretimo modulio. Claude nebuvo kaltas: parašiau jam vieną eilutę, o visa kita jis sugalvojo pats. Nuo tada kiekvieną užduotį, didesnę nei rašybos klaidos taisymas, pradedu klausimais — tais, kuriuos man užduoda Claude.

Ar tikrai kaltas modelis — ir kodėl nepataiko net patys galingiausi?

Svarbiausia įžvalga

Modelis svarbesnis mažiau, nei žmonės linkę manyti. Gavęs neaiškią užduotį, net pats galingiausias nepataikys į tikslą: jis gauna tokias pat neišsamias instrukcijas ir spragas užpildo savo spėlionėmis. Kūrėjai, kurie kontroliuoja savo agentą, pasiekia tokių pačių rezultatų naudodami ir aukščiausios klasės, ir vidutinės klasės modelį. Viskas priklauso nuo to, kaip aiškiai aprašote, ko norite. Šiuo atveju modelio galia yra antraeilė.

Kas savaitę pasirodo už ankstesnį „protingesnis“ modelis, ir kaskart atrodo, kad pagaliau AI supras mus iš kelių žodžių. Taip nebus. Galingesnis modelis kodą rašo greičiau ir geriau susidoroja su sudėtinga logika, bet vis tiek negali skaityti jūsų minčių. Jei užduotis suformuluota prastai, gausite gražiai parašytą, bet vis tiek neteisingą rezultatą.

Išvada jums paprasta. Siekti vis naujesnio modelio, kad šis geriau spėliotų, yra aklavietė. Pigiau ir patikimiau išmokti pateikti užduotis taip, kad jam nereikėtų spėlioti. Apie tai — toliau.

Kas yra grilling ir kaip jis padeda suderinti lūkesčius su AI?

Svarbiausia įžvalga

Grilling — tai kai prieš pradėdama darbą priverčiate AI jus apklausti: ji užduoda išsamius klausimus apie užduotį, kol pasiekiate bendrą supratimą. Tikslas — panaikinti komunikacijos spragą dar prieš parašant pirmą kodo eilutę.

Tai skamba prieštaringai. Kreipiamės į AI, kad darbus atliktume greičiau, o dabar mums sakoma ją pristabdyti ir iš pradžių užduoti klausimų. Tačiau penkios minutės klausimų prieš programuojant gali sutaupyti valandą vėlesnių taisymų.

Problema ne vien ta, kad prastai paaiškinote Claude savo mintis. Dažnai ir patys dar nebūnate iki galo apgalvoję užduoties: kokius atvejus reikia numatyti, kur yra ribos, kas svarbiausia. Grilling klausimais padeda tai išsiaiškinti. Pokalbio pabaigoje turite ne tik AI suprantamą užduotį, bet ir savo užduotį, pagaliau išsamiai suformuluotą.

Taip veikia konteksto inžinerija: svarbiausias darbas vyksta prieš raginimą, o ne jį rašant. Neieškote stebuklingos raginimo formuluotės; iš anksto išdėstote Claude, ko jums reikia, kol jis supranta be papildomų paaiškinimų.

Kaip priversti Claude pirmiausia užduoti klausimų?

Svarbiausia įžvalga

Trumpai aprašykite užduotį ir aiškiai paprašykite Claude prieš pradedant darbą jus apklausti: tegu jis klausia apie detales, kraštinius atvejus ir apribojimus, o pabaigoje viską sudeda į specifikacijos failą. Tai oficiali Anthropic rekomendacija — Claude Code dokumentacijoje pateiktas paruoštas raginimo šablonas. Nukopijuokite jį, pakeiskite aprašą ir įklijuokite sesijos pradžioje.

Anthropic ne tik leidžia taip dirbti — ji tai rekomenduoja. Dokumentacijoje yra skyrius „Leiskite Claude jus apklausti“ su paruoštu raginimu. Štai praktiška versija:

Raginimas

Raginimas grilling sesijai — paprašykite Claude jus apklausti

Noriu sukurti [trumpas užduoties aprašymas].

Prieš rašydamas kodą, išsamiai mane apklausk. Klausk apie įgyvendinimą, sąsają, kraštinius atvejus, rizikas ir kompromisus. Neklausk akivaizdžių dalykų — gilinkis į sudėtingas vietas, apie kurias galėjau nepagalvoti.

Užduok po vieną klausimą ir lauk mano atsakymo. Po kiekvieno klausimo iškart pasiūlyk savo rekomenduojamą atsakymą.

Tęsk, kol viską aptarsime. Tada parenk išsamią specifikaciją faile, pavadintame SPEC.md.

Trys detalės paverčia šį raginimą naudingu, o ne dekoratyviu. Pirma, „po vieną klausimą“. Jei AI išberia dešimt klausimų iš karto, sutrinkate ir atsakote paviršutiniškai. Antra, „pasiūlyk atsakymą“: jums nereikia visko sugalvoti nuo nulio — galite sutikti arba pataisyti. Trečia, „parenk specifikaciją faile“: iš jūsų išgrynintas ketinimas tampa dokumentu, kuris nepasimes.

Anthropic naudą apibūdina kaip pastangų klausimą:

Laikas, skirtas tinkamai parengti specifikaciją, vertingesnis už laiką, praleistą stebint įgyvendinimą.

— Claude Code dokumentacija, https://code.claude.com/docs/en/best-practices

Po apklausos atidarykite naują sesiją ir pateikite jai užbaigtą specifikaciją. Švarus kontekstas ir aiškiai nusakytas ketinimas — ir Claude iš pirmo karto pataiko į tikslą.

Metodas „įrodyk man, kad tai geriausias planas“

Svarbiausia įžvalga

Ne tik liepkite AI užduoti klausimų — liepkite jai ir apginti savo sprendimą. Į užduotį įtraukiu reikalavimą įrodyti, kad pasiūlytas planas yra geriausias, o ne tik pirmas šovęs į galvą, ir kad jis apgalvotas keliais žingsniais į priekį. Taip Claude išeina iš režimo „padarysiu kažką panašaus“ ir tampa kritiku, kuris patikrina savo darbą dar prieš jums skiriant laiko įgyvendinimui.

Grilling padeda išgryninti jūsų ketinimus. Tačiau AI turi ir antrą įprotį: griebti pirmą įtikinamai atrodantį sprendimą. Anthropic šį neatitikimą vadina principu „pasitikėk, bet patikrink“: Claude pateikia įtikinamą įgyvendinimą, kuris neatlaiko kraštinių atvejų. Išeitis — prašyti įrodymų dar prieš rašant kodą.

Jei negalite patikrinti rezultato, nepateikite jo.

— Anthropic, Claude Code Docs, https://code.claude.com/docs/en/best-practices

Beveik visada į raginimą įtraukiu skyrių „įrodyk“. Štai tikslus tekstas:

Raginimas

Raginimas — paprašykite AI apginti savo planą

Prieš rašydamas kodą, išanalizuok užduotį kaip kritikas.

Rask 2-3 būdus jai išspręsti. Kiekvieno atveju įrodyk man, kad jis iš tiesų išsprendžia mano užduotį, o ne be reikalo didina sudėtingumą. Nerašyk kodo vien tam, kad rašytum kodą.

Tada pasirink vieną ir įrodyk, kad tai geriausias sprendimas, apgalvotas keliais žingsniais į priekį. Kas neveiks projektui augant? Ko dabar nepastebime?

Tik tada pasiūlyk įgyvendinimo būdą.

Be šio skyriaus Claude pateikia pirmą veikiantį variantą. Įtraukus jį, Claude pats atmeta aklavietes, paaiškina pasirinkimą ir leidžia pamatyti savo argumentus dar prieš paliečiant bent vieną failą. Perskaitote trumpą tekstą per dvi minutes, užuot valandą aiškinęsi, kodėl užbaigtas kodas neveikia taip, kaip tikėtasi.

Išankstinė nesėkmės analizė: prieš pradėdami paprašykite AI rasti 10 nesėkmės priežasčių

Svarbiausia įžvalga

Išankstinė nesėkmės analizė — tai metodas, kai paprašote AI įsivaizduoti, kad projektas jau žlugo, ir įvardyti priežastis. Claude pereina iš optimistinio „viską padarysiu“ režimo prie silpnųjų vietų, kurios kitu atveju išryškėtų po savaitės darbo, paieškos. Dar neinvestavę laiko į projektą gaunate rizikų sąrašą ir galite jomis pasirūpinti iš anksto.

Tai mano mėgstamiausias metodas, ir jis veikia psichologiškai. Paprašyta „gerai atlikti darbą“, AI nusiteikia sėkmei ir praleidžia spragas. Paprašykite jos įsivaizduoti nesėkmę ir ji pradės pastebėti tai, ką anksčiau ignoravo. Raginimas trumpas:

Raginimas

Išankstinės nesėkmės analizės raginimas — raskite spragas prieš pradėdami

Įsivaizduok, kad dabar yra po metų. Mūsų planuojamas projektas žlugo.

Užrašyk 10 priežasčių, kodėl taip nutiko. Ko pradžioje neįvertinome, ką nuvertinome, kur nukirtome kampus ir kurios prielaidos pasirodė klaidingos?

Tada prie kiekvienos priežasties pasakyk, ką galime pataisyti jau dabar, kad ją pašalintume.

Šį raginimą naudoju prieš patvirtindamas planą. Pusė priežasčių pasirodo esanti nesąmonė, bet kita pusė — tikros kliūtys, su kuriomis būčiau susidūręs po savaitės. Joms išspręsti planavimo etape prireikia dešimties minučių. Susidūrimas su jomis užbaigtame projekte kainuoja kelias dienas tyrimo.

Derinys paprastas: grilling išgrynina ketinimus, „įrodyk“ pagrindžia sprendimą, o išankstinė nesėkmės analizė randa spragas. Trys trumpi tekstai, kuriuos įklijuojate prieš rašydami kodą. Jie paverčia Claude iš skubančio vykdytojo bendradarbiu, kuris pirmiausia pagalvoja.

Kodėl perkrautas kontekstas priverčia Claude elgtis kvailai?

Svarbiausia įžvalga

Claude turi ribotą konteksto langą — informacijos kiekį, kurį vienu metu gali išlaikyti mintyse. Kai langas užpildomas daugiau nei iki pusės, jis ima prarasti svarbias detales, painioti ankstesnius susitarimus ir spėlioti vietoj to, kad prisimintų. Ilga sesija apie viską iš eilės dažnai lemia, kad dienos pabaigoje AI padaro visai ką kita, nei buvote sutarę ryte.

Net tobulai suformuluota užduotis žlunga, jei ją vykdote netvarkingame kontekste. Štai kaip tai vyksta: kiekviena nauja jūsų užklausa įtraukia visą pokalbio istoriją į Claude darbinį kontekstą. Kuo ilgesnė sesija, tuo greičiau užsipildo langas. Neleiskite jam užsipildyti daugiau nei iki pusės; vėliau AI ima elgtis kvailai ir pamiršta svarbius dalykus, aptartus pradžioje.

Ši taisyklė man padeda išvengti daugiausia nusivylimo: viena užduotis — vienas pokalbis. Baigėte funkciją? Užverkite pokalbį ir kitai užduočiai pradėkite naują. Taip, kartais patogiau viską daryti viename lange, bet už tai sumokėsite prarastu kontekstu ir ne į temą pateiktais atsakymais.

Anthropic šį nesėkmės atvejį vadina „šiukšlių stalčiaus sesija“. Sprendimas paprastas: tarp nesusijusių užduočių naudokite /clear, kad išvalytumėte langą ir neperneštumėte netvarkos iš ankstesnės užduoties į naują.

Jei vykdote ilgas sesijas ir nesuprantate, kur dingsta pinigai bei AI dėmesys, apie tai atskirai rašau vadove kur keliauja Claude Code tokenai. O nuolatinio konteksto, kurį Claude perskaito kiekvieną kartą paleidžiamas, pagrindus sudėjau į vadovą apie CLAUDE.md nustatymą.

Grilling ar Plan Mode — kuo jie skiriasi ir kaip veikia kartu?

Svarbiausia įžvalga

Grilling ir Plan Mode sprendžia skirtingas tos pačios problemos puses. Grilling klausimais išgrynina jūsų ketinimus dar prieš sudarant planą. Plan Mode paima jau suprastą užduotį ir parodo pakeitimų planą, nieko neliesdamas, kol jo nepatvirtinate. Geriausia juos naudoti kartu: pirmiausia grilling išsiaiškina, ką kuriame, o tada Plan Mode tiksliai parodo, kaip tai padaryti.

Žmonės dažnai painioja šiuos du metodus arba mano, kad reikia tik vieno. Iš tikrųjų jie taikomi skirtingais proceso etapais.

FunkcijaGrillingPlan Mode
Kada vykstaPrieš planą — išgrynina ketinimusVėliau — sudaro pakeitimų planą
Kas ko klausiaAI jus apklausiaPerskaitote ir patvirtinate planą
Ką gaunateUžduoties specifikacijąPakeitimų planą pagal failus
Pagrindinė naudaPadeda išvengti „ne to norėjau“Padeda išvengti „nieko kito neliesk“

Anthropic aprašo įprastą keturių etapų darbo eigą: pirmiausia Explore (Claude išnagrinėja ir užduoda klausimų), tada Plan (sudaro planą nieko nekeisdamas), po to Implement (rašo kodą pagal planą) ir galiausiai Commit (užfiksuoja rezultatą). Grilling vyksta pirmame etape, Plan Mode — antrame. Išsamiau apie antrą etapą skaitykite vadove apie Plan Mode Claude Code.

Svarbi pačios Anthropic pastaba: neapsunkinkite tuo mažų užduočių.

Jei pakeitimą galite aprašyti vienu sakiniu, plano atsisakykite.

— Oficiali Claude Code dokumentacija, https://code.claude.com/docs/en/best-practices

Jei reikia ištaisyti rašybos klaidą, pervadinti arba pakeisti vieną eilutę, tiesiog parašykite tai tiesiogiai, be apklausų ar planų. Grilling naudingas, kai užduotyje yra neaiškumų ir klaidos kaina didelė. Atliekant trivialias užduotis jis tik lėtina.

5 užduočių formulavimo klaidos, dėl kurių AI daro ne tai

Svarbiausia įžvalga

Beveik kiekviena AI klaida kyla dėl penkių užduoties formulavimo klaidų: neaiškios vienos eilutės užklausos, nenurodytų apribojimų, raginimo „rašyk kodą“ be etapo „pirmiausia suprask“, neapibrėžto rezultato „atlikta“ ir vienos nesibaigiančios sesijos viskam. Kiekviena klaida verčia Claude užduotį papildyti spėlionėmis. Toliau parodyta, kaip jos atrodo ir kuo jas pakeisti.

Dažniausias klaidas apibendrinau lentelėje. Kairėje — ką žmonės paprastai daro ir kur suklysta, dešinėje — ką daryti vietoj to.

KlaidaKaip tai skambaKą daryti vietoj to
Neaiški vienos eilutės užklausa„Pagerink valdymo skydelį“Aprašykite užduotį ir pradėkite grilling sesiją — leiskite AI klausimais išsiaiškinti detales
Nenurodyti apribojimai„Pridėk autorizaciją“Pasakykite, kas neturi sugesti, kokių bibliotekų nereikia įtraukti ir kas nepatenka į užduoties apimtį
Iškart „rašyk kodą“Raginimas — ir pradedate koduotiIš pradžių „suprask ir klausk“, o tik tada rašyk kodą
Neapibrėžta, ką reiškia „atlikta“Tikitės, kad AI atspės rezultatąPateikite pavyzdį, etaloninę ekrano kopiją arba testą, rodantį, ką reiškia „veikia“
Viena sesija viskamVisą dieną praleidžiate viename pokalbyjeViena užduotis, vienas naujas pokalbis, kad kontekstas neužsiterštų

Peržiūrėkite paskutinį raginimą, į kurį AI atsakė neteisingai. Beveik neabejotinai buvo padaryta viena iš šių penkių klaidų. Dažniausiai tai pirmoji: pateikėte trumpą frazę ir tikėjotės, kad Claude teisingai papildys visa kita. Jis papildė — tik ne taip, kaip turėjote omenyje.

Kas toliau: sukurkite sistemą, kad AI jus suprastų iš kelių žodžių

Svarbiausia įžvalga

Atskiri raginimai išsprendžia atskiras užduotis. Kad AI jus suprastų ir nereikėtų kaskart ilgai aiškinti, reikia sistemos: grilling išgrynina kiekvienos užduoties ketinimus, Antrosios smegenys saugo žinias apie projektą, o konteksto inžinerija sujungia viską, ką Claude perskaito prieš raginimą. Tada dingsta priežastis, dėl kurios jis daro ne tai: visada turi pakankamai konteksto, kad nereikėtų spėlioti.

Trys šio vadovo raginimai — grilling, „įrodyk“ ir išankstinė nesėkmės analizė — padeda spręsti konkrečią užduotį. Tai jau nemažai: nebegausite 14 failų diff, kai norėjote pakeisti tik vieną eilutę.

Tačiau grilling turi ribas. Kaskart iš naujo išgryninti jūsų ketinimus užtrunka. Tikrasis pokytis įvyksta tada, kai dalis konteksto visada pasiekiama: projekto žinių aplanke, faile CLAUDE.md, kurį Claude perskaito kiekvieną kartą paleidžiamas, ir jūsų metodikoje, užkoduotoje skills. Tuomet AI pradeda užduotį jau žinodama jūsų verslą, tikslus ir stilių — ir supranta jus iš kelių žodžių, nes pusę konteksto išdėstėte iš anksto.

Naujausia Anthropic analizė parodo, kiek tai reikalauja darbo: kūrėjai AI naudoja maždaug 60% savo darbo, bet visiškai ja pasitiki tik atlikdami 0-20% užduočių. Likusiose reikia jūsų supratimo, priežiūros ir gebėjimo paaiškinti, ką reikia sukurti. Būtent šį įgūdį verta lavinti, o ne vaikytis protingiausio modelio.

Susipažinkite su Ailoot.

Išsamiau

Klausimai ir atsakymai

Kada vietoj tiesioginio kodo naudoti apklausos užklausą?

Kai baigtis, kraštiniai atvejai ar apribojimai neaiškūs, o klaidos kainuotų daug. Užduokite po vieną klausimą ir sutartą rezultatą išsaugokite SPEC.md; rašybos klaidą ar aiškų vienos eilutės pakeitimą galima prašyti tiesiogiai.

Ką patikrinti prieš priimant siūlomą planą?

Paprašykite dviejų ar trijų požiūrių ir palyginkite, kaip kiekvienas įvykdo specifikaciją bei apribojimus. Tada paleiskite nesėkmių numatymo užklausą, peržiūrėkite priežastis ir prieš įgyvendinimą spręskite aktualias rizikas.

Visi straipsniai