Įvadas: Agentas, kurio visi nori, be jokio ažiotažo
Su programavimo agentais yra taip, kad dauguma jų bando būti tavo viršininku, tavo antruoju pilotu ir tavo terapeutu – o tada pamiršta tiesiog parašyti kodą. Dažniausiai elgiamasi taip: pridedama tuzinas vektorinių duomenų saugyklų, apibarstoma orkestravimo fėjų dulkėmis, prisegamas naršyklė, ir tuo viskas baigiasi. Tai gerai atrodo demonstracijoje. Tačiau viskas sugriūva, kai paprašai pataisyti nestabilų integracijos testą penktadienį 16:52.
Sukurti lengvą programavimo agentą su Claude 4.5 yra – staigmena – iš tikrųjų paprasta, jei nustoji vaikytis universalaus programinės įrangos liokajaus svajonės ir tiesiog sukuri įrankį, kuris skaito kodą, planuoja, redaguoja, vykdo ir kartoja. Jokių pamokslų apie „dirbtinis intelektas pakeis programuotojus“. Jokių Rube'o Goldbergo vamzdynų. Tiesiog trumpas ciklas, kuris gerai atlieka akivaizdžius dalykus.
Tai praktinis vadovas, kaip tai pasiekti neįtraukiant viso dirbtinio intelekto operacijų skyriaus. Naudosime Claude 4.5 smegenims, failų sistemą ir apvalkalą rankoms, o mažą atmintį – trumpalaikiam susikaupimui. Viskas. Lengvas reiškia, kad galite tai suprasti per vieną prisėdimą, paleisti lokaliai ir pasitikėti, nes kiekvienas žingsnis yra patikrinamas. O tai, jei pastaruoju metu naudojote ką nors šioje srityje, yra beveik aršus.
Kodėl Claude 4.5 tinka minimaliam agentui
Claude 4.5 turi temperamentą, kurio iš tikrųjų norite kodui: atsargus vykdydamas instrukcijas, stebėtinai neblogai skaito skirtumus ir nėra pernelyg linkęs haliucinuoti karkasų, kurių neprašėte. Modelis kompetentingai argumentuoja žingsnis po žingsnio nereikalaudamas viso raginimo romano. Šis derinys – argumentavimas plius susivaldymas – idealiai tinka programavimo agento ciklui:
- Stebėkite: skaitykite dabartinius failus, klaidų žurnalus ir testus.
- Planuokite: siūlykite konkrečius redagavimus su paaiškinimais.
- Veikite: pataisykite failus, vykdykite komandas.
- Apmąstykite: įvertinkite išvestį, kartokite arba sustokite.
Galite pritvirtinti tai prie bet kurios saugyklos ir gauti naudos per popietę. Svarbiausia – atsispirti norui paversti tai „DI platforma“. Jei agentas yra lengvas, Claude 4.5 atlieka sunkų darbą netrukdydamas.
Lengva architektūra: penkios dalys, jokios dramos
Štai visas reikalingas rinkinys:
- Pagrindinis ciklas: vienas procesas, kuris iškviečia Claude 4.5 ir interpretuoja jo įrankių naudojimo pranešimus.
- Įrankiai: mažas rinkinys – read_file, write_file, list_dir, run_tests (arba run_cmd), search_code.
- Konteksto kūrėjas: sudarykite trumpą, taiklų raginimą su saugyklos metaduomenimis ir naujausiais skirtumais.
- Trumpalaikė atmintis: slenkantis pokalbio langas ir aiškus juodraštis planui ir apribojimams.
- Apsaugos priemonės: žetonų, laiko ir failų rašymo apribojimai; sauso vykdymo režimas; ir atšaukimo momentinės nuotraukos.
Viskas. Galite paleisti jį be galvos terminale arba apvynioti minimalia vartotojo sąsaja, jei turite. Priežastis, kodėl tai veikia, yra nuobodi: kiekvienas veiksmas yra stebimas ir patikrinamas. Agentas siūlo pakeitimą, parodo skirtumą, vykdo testus, skaito išvestį ir tęsia arba sustoja. Viduryje nėra jokios paslapties.
Kaip sukurti agentą (nepametant siužeto)
1 žingsnis: apibrėžkite sutartį – raginimas ir įrankiai
Jūsų agentas yra toks pat geras, kaip ir jo sutartis su modeliu. Sistemos raginimas turi būti trumpas, griežtas ir be atvangos praktiškas.
Sistemos raginimas, distiliuotas:
- Jūs esate programavimo agentas. Jūsų darbas yra atlikti mažus, teisingus saugyklos pakeitimus, kad patenkintumėte vartotojo užduotį.
- Mąstykite garsiai paslėptame juodraštyje; vartotojui pateikite tik planus ir skirtumus.
- Teikite pirmenybę minimaliems skirtumams, veikiantiems testams ir laipsniškam progresui.
- Jei nesate tikri, pasiūlykite eksperimentą ir paleiskite jį.
- Niekada nekuruokite failų ar komandų – prieš redaguodami išvardykite ir perskaitykite.
Įrankių schema (nepergalvokite):
- read_file(kelias, poslinkis?, ilgis?)
- write_file(kelias, turinys, create_if_missing=false)
- run_cmd(komanda, timeout=60, cwd=repo_root)
- search_code(užklausa, kelias=repo_root, max_results=50)
Pasirenkami patogumai: git_diff ir git_revert(sha), jei norite atšaukimų be rankų. Galite praleisti vektorinę duomenų saugyklą; dauguma naudingų užduočių priklauso nuo kelių failų darbinėje atmintyje ir greitos paieškos.
2 žingsnis: palaikykite kontekstą glaustą
Konteksto kimšimas yra agento dizaino kargo kultas. Nemeskite visos savo monorepozitorijos į raginimą. Vietoj to:
- Saugyklos suvestinė: vienos pastraipos README santrauka; įėjimo taškai; testų vykdymo komanda.
- Aktyvūs failai: tik tie failai, kuriuos agentas planuoja paliesti – skaitykite juos dalimis pagal poreikį.
- Užduotis: vartotojo tikslas, aiškiai suformuluotas: „Pataisykite nepavykusį testą FooTest.test_bar teste tests/foo_test.py“.
- Apribojimai: vykdymo laiko apribojimai, failų rašymo baltasis sąrašas, stiliaus taisyklės ir semantinės versijos kūrimo lūkesčiai, jei taikoma.
- Naujausia istorija: paskutiniai du skirtumai ir jų testų rezultatai. Nieko daugiau.
Claude 4.5 puikiai gali gauti daugiau konteksto, kai jam to reikia, per search_code ir read_file. Duokite jam žemėlapį, o ne teritoriją.
3 žingsnis: ciklas (Stebėkite → Planuokite → Veikite → Apmąstykite)
- Stebėkite: pradėkite išvardydami katalogus, perskaitydami nepavykusį testą, testuojamą kodą ir klaidų žurnalą. Paprašykite Claude apibendrinti nesėkmės simptomus dviem ar trimis punktais.
- Planuokite: paprašykite Claude pasiūlyti planą su:
- Failai, kuriuos reikia patikrinti arba redaguoti
- Minimalūs skirtumai, kuriuos reikia pabandyti
- Testo komanda, skirta patvirtinti
- Veikite: pritaikykite siūlomą skirtumą per write_file. Parodykite skirtumą pažodžiui. Paleiskite testus.
- Apmąstykite: grąžinkite stdout/stderr. Paklauskite Claude: tęsti, atšaukti ar sustabdyti? Jei planas keičiasi, reikalaukite vieno sakinio pagrindimo, nurodant faktinę išvestį.
- Išeikite: sustokite, kai testai praeina, arba po N iteracijų, atsižvelgiant į tai, kas įvyksta anksčiau.
Tai pagražintas programavimas poromis, kai iš tikrųjų išlaikote sąžiningą poravimą.
4 žingsnis: apsaugos priemonės, kurios išsaugo jūsų savaitgalį
- Rašymo baltasis sąrašas: leiskite rašyti tik src/, lib/ arba aiškiai patvirtintuose keliuose.
- Skirtumo dydžio apribojimas: apribokite redagavimus iki 200–500 eilučių per žingsnį. Jei didesnis, padalykite į pakopinius veiksmus.
- Komandų leidimo sąrašas: testų vykdyklės, linteriai ir keli kūrimo scenarijai. Uždrausti tinklą. Jūs norite atkuriamumo, o ne laukinių vakarų curl.
- Skirtasis laikas ir pakartotiniai bandymai: trumpi skirtieji laikai, vienas pakartotinis bandymas maksimaliai – nesibaigiantys pakartotinio paleidimo ciklai yra ten, kur agentai eina mirti.
- Sauso vykdymo režimas: spausdinkite siūlomus skirtumus, bet nerašykite. Puikiai tinka kodo peržiūrai.
Claude 4.5 laikysis taisyklių, jei jas padarysite aiškias. Jei to nepadarysite, nenustebkite, kai jis bandys „padėti“ pertvarkydamas visą jūsų saugyklą, kad ji atitiktų kokį nors tinklaraščio įrašą iš 2017 m.
5 žingsnis: atmintis, kuri iš tikrųjų yra naudinga
Trumpalaikė atmintis išsprendžia 80% problemos. Išlaikykite:
- Juodraštis dabartinei hipotezei ir planui.
- Šio seanso paliestų failų sąrašas.
- Paskutiniai du komandų rezultatai.
To pakanka, kad Claude 4.5 nuosekliai argumentuotų. Ilgalaikė atmintis – užduočių žurnalai, įterpimai – gali būti naudinga pasikartojančioms kodo bazėms, tačiau laikykite ją pasirenkamu saldikliu. Jei jūsų agentas negali pataisyti testo be 500 MB vektorinio indekso, tai nėra agentas – tai priklausomybė.
Minimalus įgyvendinimo eskizas
Pseudokodo terminais, galite įgyvendinti šį agentą keliomis šimtais eilučių:
- initialize: įkelkite saugyklos metaduomenis, apribojimus ir modelio klientą
- observe: perskaitykite nepavykusius testus, failus, žurnalus
- plan = model.propose_plan(context)
- while not done and steps < MAX:
- diff = model.propose_patch(plan)
- show(diff); maybe approve
- out = run_cmd(plan.test_cmd)
- reflect = model.evaluate(out)
- if reflect == pass: done = true
- else if reflect == rollback: git_revert(last_commit)
- else: plan = model.revise_plan(out)
Pastebėsite trūkstamas dalis: jokių agentų, valdančių agentus, jokių „delegatų“, jokio atskiro „planuotojo modelio“ ir „vykdytojo modelio“. Claude 4.5 gali puikiai atlikti abu darbus, jei nesabotuosite jo Rube'o Goldbergo aparatu.
Raginimas, kuris nesistengia per daug
Blogi raginimai bando būti protingi. Neblogi raginimai yra nuobodūs ir konkretūs. Štai sveikas pagrindinio instrukcijų bloko skeletas:
- Tikslas: nurodykite tikslią programavimo užduotį ir sėkmės kriterijus.
- Kontekstas: projekto struktūra, įėjimo taškai ir testavimo komanda.
- Apribojimai: rašymo baltasis sąrašas, skirtumo dydžio apribojimas, jokio tinklo.
- Stiliaus nuostatos: kalbos versija, formatuotojas, linterio taisyklės.
- Procesas: Stebėkite → Planuokite → Veikite → Apmąstykite; parodykite skirtumus; paleiskite testus; kartokite iki N žingsnių; sustokite, kai testai praeina.
Claude 4.5, su šia struktūra, nereikės 100 eilučių vaidmenų scenarijaus. Jis tiesiog veikia.
Praktinis pavyzdys: pataisykite nepavykusį testą
Tarkime, testas nepavyksta teste tests/time_test.py, nes parse_time("09:00") grąžina 5400 vietoj 32400. Agento ciklas turėtų atrodyti taip:
- Stebėkite: skaitykite time.py ir time_test.py; paleiskite pytest -k parse_time.
- Planuokite: hipotezė – sekundžių ir minučių matematikos klaida; siūlykite redaguoti parse_time; pridėkite vieneto kraštinį atvejį.
- Veikite: pataisykite parse_time, pridėkite testą valandoms su nuliu priekyje; paleiskite testus.
- Apmąstykite: jei testai vis dar nepavyksta, perskaitykite klaidą, pakoreguokite matematiką arba regex, paleiskite iš naujo.
Minimalus sėkmingas pataisymas gali būti dviejų eilučių pakeitimas. Tai yra esmė. Maži redagavimai, greiti ciklai, tikras progresas.
Kur lengvas pralenkia virtuvės kriauklę
- Delės trukmė: vienas modelis, vienas ciklas, jokių orkestravimo išlaidų.
- Skaidrumas: kiekvienas žingsnis yra patikrinamas. Galite jį palyginti, galite jį atšaukti, galite jį paleisti iš naujo.
- Valdymas: apsaugos priemonės apriboja žalą vietoje. Agentas negali nuklysti į jūsų infrastruktūrą.
- Kaina: mažiau skambučių, mažiau konteksto, nuspėjami žetonai.
- UX: jūs tai suprantate. Jūsų komandos draugai tai supranta. Jūsų ateities aš jūsų nekęs.
Ir kompromisai:
- Plotis: lengvas programavimo agentas nepertvarkys jūsų penkių kalbų monorepozitorijos vienu ypu. Ir neturėtų.
- Iniciatyva: jis nesukurs kelių savaičių planų. Jūs jam duodate užduotis.
- Būsenos išsaugojimas: be didelio atminties sluoksnio, jis pamiršta tolimą istoriją pagal dizainą. Tai yra funkcija, kol tai nėra klaida.
Claude 4.5 ideali vieta programavimo agentams
Claude 4.5 puikiai tinka:
- Skirtumų ir žurnalų skaitymas ir argumentavimas.
- Nuoseklių, minimalių kodo pakeitimų kūrimas.
- Laikymasis apribojimų ir aiškus kalbėjimas apie neapibrėžtumą.
Jam mažiau sekasi:
- Spėliojimas API elgsenos, kurios jis negali perskaityti.
- Sunkus įrankių choreografija (čia nereikalinga).
- Ilgas kelių failų pertvarkymas be žmogaus, vadovaujančio žingsniams.
Paskutinis punktas yra svarbus. Geriausias būdas pasiekti gerų rezultatų yra ne padaryti agentą didesnį, o padaryti užduotį mažesnę. Naudokite savo smegenis apimčiai nustatyti, o Claude 4.5 – vykdymui toje apimtyje.
Žodis apie IDE integraciją
Atsispirkite norui įdiegti tai tiesiogiai į IDE skydelį su penkiasdešimčia jungiklių. Terminale pagrįstą ciklą su paprasto teksto skirtumais lengviau pasitikėti ir derinti. Jei norite redaktoriaus patogumų, laikykite jį kvailu:
- Komandos ciklui pradėti/sustabdyti.
- Rodyti skirtumus padalytame rodinyje.
- Rašymo patvirtinimo raginimas (pasirenkamas, bet protingas).
Galite integruoti vėliau. Pirmiausia padarykite, kad jis veiktų.
Sider.AI, naudojamas saikingai, iš tikrųjų padeda Jei norite pragmatiškos aplinkos paleisti tokį ciklą neišradinėjant pastolių, Sider.AI iš tikrųjų veikia – bent jau kai naudojate jį tam, kam jis yra geras. Jis palaiko tvarkingą pokalbį ir skirtumus, leidžia paleisti komandas ir neprimeta jums kokios nors didingos „autonominio agento sistemos“. Svarbiausia – laikytis savo taisyklių: trumpi raginimai, trumpi ciklai, matomi skirtumai. netrukdo, o tai yra rečiau nei turėtų būti. Dažni spąstai (ir kaip išvengti atrodymo kvailai)
- Perkrautas kontekstas: jei jūsų raginimas skamba kaip išpirkos raštelis, darote tai neteisingai. Paimkite failus pagal poreikį.
- Priešlaikinis pertvarkymas: agentas siūlo pertvarkyti modulius? Pirmiausia padarykite, kad jis atliktų testus. Pertvarkykite vėliau.
- Haliucinuoti failai: reikalaukite list_dir ir read_file prieš bet kokį write_file į naują kelią.
- Begalinis pakartotinio paleidimo ciklas: apribokite žingsnius. Reikalaukite pagrindimo kiekvienai naujai hipotezei.
- Vienas didelis skirtumas: padalykite pakeitimus. Mažesni skirtumai nepavyksta greičiau ir yra lengviau argumentuojami.
Saugumas ir sauga be paranojos
- Vietinis vykdymas: paleiskite smėlio dėžės kataloge. Pagal numatytuosius nustatymus nėra tinklo.
- Priklausomybės izoliavimas: naudokite vietinį venv arba konteinerį. Prisekite versijas.
- Paslaptys: agentui jų nereikia. Jei komandai reikia žetono, sustokite ir paklauskite.
- Auditas: išsaugokite kiekvieną planą, skirtumą ir komandą žurnale.
Kaip sužinoti, kad tai veikia
- Švino laikas sutrumpėja: klaidų pataisymai, kurie užtruko valandą, dabar trunka dešimt minučių.
- Mažiau storų pirštų klaidų: skirtumai tampa mažesni, testai tampa žalesni.
- Jūs juo pasitikite: nustojate kabėti virš kiekvieno veiksmo, nes jis jūsų nesudegino.
- Komandos draugai jį naudoja: sėkmės apibrėžimas yra tas, kad kiti jį pritaiko be susitikimo.
Atsargus mastelio keitimas
Jei tikrai turite keisti mastelį, darykite tai su disciplina:
- Paralelinės po užduotys, o ne lygiagrečios smegenys: padalykite darbą, paleiskite kelis lengvus ciklus atskiruose kataloguose ir sujungkite, kai jie bus žali.
- Epizodinė atmintis, o ne smegenų iškrova: saugokite sėkmingus pataisymus ir simptomų ir pataisymų atitikimus. Atkurkite chirurginiu būdu.
- Periodiniai „didesni“ perėjimai: rezervuokite žmogaus vadovaujamą sesiją pertvarkymams; agentas padeda, nevadovauja.
Minimali nuorodos įgyvendinimas (eskizas)
Į Python panašus pseudokodas, kad galėtumėte judėti:
- def init(self, repo_root, model):
- self.history = [] # paskutiniai du skirtumai ir testų rezultatai
- "repo": summarize_repo(self.root),
- "constraints": {"write_whitelist": ["src/", "tests/"], "max_diff_lines": 300, "no_network": True},
- "history": self.history[-2:],
- plan = self.model("propose_plan", self.context(task))
- diff = self.model("propose_patch", {"plan": plan})
- out = run_cmd(plan.test_cmd)
- eval = self.model("evaluate", {"output": out, "plan": plan})
- self.history.append({"diff": diff, "out": tail(out)})
Žmogaus dydžio pabaiga
Pramonė nuolat žada autonominius kūrėjų agentus. Tai, ko mums iš tikrųjų reikia, yra sąžiningas padėjėjas, kuris skaito, planuoja, redaguoja, vykdo ir sustoja. Claude 4.5 tai puikiai moka, jei neužkasate jo po sistemomis, kurios dažniausiai egzistuoja tam, kad pateisintų save. Lengvas nėra kompromisas – tai yra esmė. Sukurkite ciklą, pridėkite apsaugos priemones ir leiskite įrankiui atlikti vieną dalyką, kurį įrankiai visada darė, kai laikote juos paprastais: sumažinkite darbą.
Išvada: nuobodus trumpasis kelias, kuris laimi
Štai jūsų kontrolinis sąrašas, skirtas lengvam programavimo agentui su Claude 4.5:
- Vienas ciklas, vienas modelis, maži įrankiai.
- Glaustas kontekstas: užduotis, keli failai, paskutiniai rezultatai.
- Minimalūs skirtumai, dažni testai, griežti apribojimai.
- Vietinis, smėlio dėžės vykdymas; jokio tinklo.
- Pasirenkami redaktoriaus patogumai; niekada nereikalingi.
Jei prisimerksite, tai įtartinai panašu į gerą programinės įrangos inžineriją, tik greičiau. Ir tai yra esmė. Protingiausia, ką galite padaryti čia, yra ne siekti „autonomijos“, o kodifikuoti discipliną. Kuo mažiau prašote iš agento, tuo daugiau gaunate.
DUK
Q1:Kaip pradėti kurti lengvą programavimo agentą su Claude 4.5?
Apibrėžkite mažą įrankių rinkinį (skaityti, rašyti, ieškoti, paleisti), parašykite griežtą sistemos raginimą ir įgyvendinkite Stebėkite → Planuokite → Veikite → Apmąstykite ciklą. Palaikykite mažą kontekstą ir pateikite tikrus žurnalus ir skirtumus – Claude 4.5 geriausiai veikia, kai užduotis yra siaura, o atsiliepimai yra konkretūs.
Q2:Ar man reikia vektorinės duomenų bazės ar atminties sluoksnio Claude 4.5 programavimo agentui?
Ne. Daugeliui užduočių pakanka trumpalaikės atminties ir search_code. Pridėkite ilgalaikę atmintį tik tuo atveju, jei pakartotinai grįžtate į tą pačią saugyklą ir galite įrodyti, kad tai sutaupo žetonų nepadarydami agento kvailesniu.
Q3:Kokios apsaugos priemonės yra būtinos Claude 4.5 programavimo agentui?
Baltasis sąrašas rašytinų kelių, apribokite skirtumų dydžius, apribokite komandas ir registruokite kiekvieną veiksmą. Šie paprasti apribojimai palaiko agento nuspėjamumą ir daro atšaukimus nuobodžiais – geru būdu.
Q4:Ar lengvas agentas gali atlikti kelių failų pertvarkymus?
Taip, jei padalijate darbą į mažus žingsnius ir palaikote trumpą ciklą. Claude 4.5 gali valdyti pertvarkymus, bet jūs vadovaujate apimčiai; kitaip gausite vieną didelį, trapų skirtumą, kurio nenorėsite peržiūrėti.
Q5:Kur Sider.AI tinka su Claude 4.5 programavimo agentu?
Sider.AI yra naudinga kaip tvarkinga darbo sritis: pokalbiai, skirtumai ir komandos vienoje vietoje, neprimetant sunkios agento sistemos. Naudokite ją ciklui paleisti, o ne iš naujo išrasti.