Na osnovu stvarnog slučaja automatskog programiranja sa Claude Code, podelićemo neke tehnike za promptove

Ovaj članak, kroz stvarni slučaj, podeliće sa vama primer stvarne upotrebe Claude Code-a. Pre nego što počnemo, hajde da uradimo malu anketu
Originalni zahtev: Jedan cenjeni plaćeni korisnik želi da u članku dodam vreme izmene članka
Na prvi pogled, ovaj zahtev je teško realizovati. Jer članci na mom sajtu nisu sačuvani u bazi podataka, već su izgrađeni koristeći SSG od next.js-a. Oni uopšte nemaju vreme ažuriranja.
Ovde je jedan trik: kada rešavamo problem, ne treba direktno dati originalni zahtev Claude Code-u, iz sledećih razloga
1. Originalni zahtev je relativno nejasan, može doći do pogrešnog razumevanja, i ako jednom pogrešno shvati, na kraju će možda dodati vreme, ali to vreme možda neće biti pouzdano
2. Potrošnja Token-a za Claude Code je zaista veoma skupa, stako nejasan zahtev može dovesti do velike potrošnje Token-a bez smisla
Stoga, moramo razložiti originalni zahtev. Prvo sam se konsultovao u deepseek-u, deepseek mi je dao dve opcije
1. Vreme izgradnje fajla, prilikom svakog build-a, moramo dobiti vreme izgradnje fajla, ali pakovanje turbopack-a je malo drugačije, prilikom svakog build-a, hash vrednost fajla se menja, ovo vreme izgradnje možda nije pouzdano
2. Vreme git commit-a, pomislio sam, ovo bi trebalo da bude pouzdano
Nakon što sam imao opšti pravac rešenja, imao sam ovaj jednostavan prompt: Kompajlirajte vreme git commit-a u zaglavlju svakog .mdx članka
Claude Code je ipak pouzdan, ako je prompt precizan, generalno nema greške, samo krene da izvršava
Nakon što je potrošio moj budžet od 7 dolara, za oko 20 minuta, konačno je uspešno izvršen.
Kada se nije ništa loše očekivalo, desila se greška, preskočio je izmene na 171 fajlova.
Ovde je jedna velika zamka, zapravo preskočeni fajlovi su samo imali dodatni prosleđeni parametar pass, sve ostalo je potpuno isto
<PostLayout pass>...Ali on nije bio fleksibilan, definisao je ovaj dodatni parametar kao potpuno drugačiji prilagođeni komponent. I onda ga je preskočio i nije obradio ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/vaš-put/page.mdx');
return (
{children}
);
}Ali stvarna situacija je da mi treba ovakav rezultat, rezultat izvršavanja je potpuno isti.
import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
return (
{children}
);
}I tada sam upao u zamku sa promptom
Ponovo sam uneo prompt: Koristite isti način kao gore da refaktorizujete preskočenih 171 fajlova
Moj izraz, ako se bolje razmisli, ima malo dvosmislenosti. Jer Claude Code mi je već dao predloženo rešenje, ali ja ne prihvatam to rešenje, moja namera je bila da koristim već izmenjenih nekoliko stotina fajlova na isti način da izmenim preskočene fajlove, ali tokom izvršavanja, on je to shvatio kao: gore navedeno predloženo rešenje
Ova dvosmislenost je direktno dovela do toga da je on izvršavao po nepoželjnom rešenju 20 minuta, čak je došlo do 2 greške i samopopravke, žestoko je trošio moje tokene, dve dvosmislenosti su se počele sukobljavati što je dovelo do greške.
Na kraju sam morao da odustanem od ovog izvršavanja i ponovo da razjasnim svoju nameru.
Zaključak
1. U promptovima je najbolje uključiti relativno stabilna i tačna rešenja, što manje razmišljanja za AI, to će smanjiti stopu halucinacija.
2. U promptovima za zahteve nikako ne sme biti dvosmislenosti, dvosmislenost lako dovodi do grešaka, iako Claude Code na kraju može da popravi, ali to će uzrokovati veliku potrošnju tokena. I pošto je LLM zasnovan na mehanizmu predviđanja za proizvodnju rezultata, rano pogrešno čitanje, dvosmislenost itd., dovodiće do toga da svaki sledeći korak ide sve dalje u pogrešnom pravcu, i on će pokušati da bude logično samodosledan, generišući nešto što ne postoji, što više piše problem postaje veći, i takođe povećava težinu provere za programera, ako budete prevareni njegovim halucinacijama, to će dovesti do ozbiljnih posledica
3. Ograničenja prirodnog jezika nisu tako precizna kao kod, u promptovima, uključivanje imena fajlova, kod promenljivih, kod specijalnih reči, stručnih termina itd., će uveliko smanjiti halucinacije Claude Code-a





