Remiantis tikru Claude Code automatinio programavimo atveju, dalinamės kai kuriomis užuominų gudrybėmis

2/11/2026
4 min read

Šiame straipsnyje, per tikrą atvejį, pasidalinsiu su jumis tikru Claude Code naudojimo pavyzdžiu. Prieš dalindamasis, atliksime nedidelę apklausą

Pirminis reikalavimas: vienas vertingas mokantis vartotojas norėjo, kad straipsniuose pridėčiau straipsnio pakeitimo laiką

Iš pirmo žvilgsnio šis reikalavimas atrodo sunkiai įgyvendinamas. Nes mano svetainės straipsniai nėra saugomi duomenų bazėje, jie yra sukurti naudojant next.js SSG. Jie išvis neturi atnaujinimo laiko.

Viena gudrybė čia yra: sprendžiant problemas, nereikia tiesiogiai paduoti pirminio reikalavimo Claude Code, dėl šių priežasčių

1. Pirminis reikalavimas yra gana neaiškus, jis gali būti neteisingai suprastas, ir jei jis bus neteisingai suprastas, galiausiai nors ir bus pridėtas laikas, bet šis laikas gali būti nepatikimas

2. Claude Code Tokenų sunaudojimas yra tikrai labai brangus, todėl neaiškus reikalavimas gali sukelti daug Tokenų beprasmį sunaudojimą

Todėl reikia išskaidyti pirminį reikalavimą. Aš pirmiausia pakonsultavau su deepseek, kuris man davė du sprendimus

1. Failo sukūrimo laikas, kiekvieną kartą build'inant, reikia gauti failo sukūrimo laiką, bet turbopack pakavimo strategija yra šiek tiek kitokia, kiekvieną kartą build'inant failo hash reikšmė keičiasi, šis sukūrimo laikas gali būti nepatikimas

2. git commit laikas, pagalvojau, kad tai turėtų būti patikimiausia

Turėdamas apytikslę sprendimo kryptį, sukūriau šią paprastą užuominą: įkompiliuokite git commit laiką į kiekvieno .mdx straipsnio viršų

Claude Code yra gana patikimas, jei užuomina yra tiksliai suformuluota, apskritai problemų nekyla, tiesiog pradeda vykdyti

Sunaudojus 7 JAV dolerius iš mano limito, po maždaug 20 minučių, pagaliau buvo sėkmingai įvykdyta.

Kaip ir galima buvo tikėtis, įvyko netikėtumas - jis praleido 171 failų pakeitimus.

Viena didžiausių spąstų čia yra ta, kad iš tikrųjų šie praleisti failai tik papildomai perduoda vieną pass parametrą, visa kita yra visiškai ta pati

<PostLayout pass>...

Bet jis nesugeba prisitaikyti, šį papildomą parametrą apibrėžia kaip visiškai kitokį pasirinktinį komponentą. Ir tada praleidžia, neapdorodamas ~ ~

import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
  const gitInfo = getGitFileInfo('src/app/你的路径/page.mdx');
  return (
    
      {children}
    
  );
}

Bet reali situacija yra tokia, kad man reikalingas rezultatas yra toks, o vykdymo rezultatas yra visiškai identiškas.

import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
  return (
    
      {children}
    
  );
}

Ir tada čia aš užkliuvau už užuominos spąstų

Aš vėl įvedžiau užuominą: naudokite tą patį metodą kaip ir anksčiau, kad pertvarkytumėte praleistus 171 failą

Mano ši išraiška, gerai pagalvojus, turi šiek tiek dviprasmybių. Nes Claude Code jau man davė pasiūlymą, bet aš jo nepripažįstu, mano ketinimas buvo pakeisti praleistus failus taip, kaip jau buvo pakeisti šimtai kitų failų, bet vykdymo metu jis suprato kaip: anksčiau jau pasiūlytą sprendimą

Ši dviprasmybė tiesiogiai lėmė, kad jis 20 minučių vykdė pagal man nepageidaujamą sprendimą, viduryje net du kartus klaidą ištaisė savarankiškai, smarkiai naudodamas mano tokenus, dvi skirtingos dviprasmybės pradėjo kovoti ir sukėlė klaidą.

Galiausiai aš vėl turėjau atsisakyti šio vykdymo ir aiškiai iš naujo nurodyti savo prasmę.

Santrauka

1. Užuominose geriau būtų turėti santykinai stabilų ir tikslų sprendimą, kuo mažiau AI turėtų galvoti, tuo mažesnė haliucinacijų tikimybė.

2. Užuominose reikalavimai neturėtų turėti dviprasmybių, dviprasmybės gali sukelti klaidų, nors Claude Code galiausiai gali jas ištaisyti, bet tai sukels daug tokenų sunaudojimo. Ir kadangi LLM yra pagrįstas prognozavimo mechanizmu, ankstyvas neteisingas supratimas, dviprasmybės ir pan., gali lėmti, kad kiekvienas tolesnis žingsnis vis labiau nukryps neteisinga kryptimi, ir jis bandys logiškai suderinti, sukurdamas kažką, kas neegzistuoja, kuo toliau, tuo daugiau problemų, ir taip pat padidins kūrėjo patikrinimo sudėtingumą, jei būsite apgauti jo haliucinacijų, tai gali sukelti rimtų pasekmių

3. Natūralios kalbos apribojimai nėra tokie tikslūs kaip kodo, užuominose, turint failo pavadinimus, kodo kintamuosius, kodo specialiuosius žodžius, techninę terminologiją ir pan., labai sumažins Cluade Code haliucinacijas

Published in Technology

You Might Also Like