Uvod: Agent, ki si ga vsi želijo, brez pretiravanja
Pri kodirnih agentih je tako, da večina poskuša biti tvoj šef, tvoj kopilot in tvoj terapevt – nato pa pozabi preprosto napisati kodo. Načrt je naslednji: dodaj ducat vektorskih shramb, potresi nekaj orkestracijske čarobnega prahu, pripni brskalnik in reci, da je to to. V predstavitvi deluje dobro. Razpade pa takoj, ko ga prosiš, da popravi nestabilen integracijski test ob 16:52 v petek.
Izdelava lahkega kodirnega agenta s sistemom Claude 4.5 je – presenetljivo – pravzaprav preprosta, če nehaš sanjariti o univerzalnem programskem služabniku in preprosto izdelaš orodje, ki bere kodo, načrtuje, ureja, izvaja in ponavlja. Brez pridig o »UI, ki nadomešča razvijalce«. Brez Rube Goldbergovih cevovodov. Samo tesna zanka, ki dobro opravlja očitne stvari.
To je vodnik s praktičnimi nasveti, kako to doseči, ne da bi vključili celoten oddelek za operacije UI. Za možgane bomo uporabili Claude 4.5, za roke datotečni sistem in lupino, za kratkoročno osredotočenost pa majhen pomnilnik. To je vse. Lahkotnost pomeni, da ga lahko razumeš v enem samem sedenju, ga izvajaš lokalno in mu zaupaš, ker je vsak korak pregleden. Kar je, če si v zadnjem času uporabljal karkoli na tem področju, skoraj subverzivno.
Zakaj Claude 4.5 deluje za minimalnega agenta
Claude 4.5 ima temperament, ki si ga dejansko želiš za kodo: previden pri upoštevanju navodil, presenetljivo dober pri branju razlik in ne preveč željan haluciniranja ogrodij, ki jih nisi zahteval. Model je kompetenten pri postopnem sklepanju, ne da bi zahteval celoten roman v pozivu. Zaradi te kombinacije – sklepanja plus zadržanosti – je idealen za zanko kodirnega agenta:
- Opazuj: Preberi trenutne datoteke, dnevnike napak in teste.
- Načrtuj: Predlagaj konkretne popravke z utemeljitvijo.
- Deluj: Popravi datoteke, zaženi ukaze.
- Reflektiraj: Ocenjuj izhod, ponavljaj ali ustavi.
To lahko pritrdiš na kateri koli repozitorij in pridobiš vrednost v enem popoldnevu. Trik je v tem, da se upreš želji, da bi ga spremenili v »platformo UI«. Če ohraniš agenta lahkega, Claude 4.5 opravi težko delo, ne da bi ti pri tem oviral.
Lahka arhitektura: Pet delov, brez drame
Tukaj je celoten sklad, ki ga potrebuješ:
- Osrednja zanka: En proces, ki kliče Claude 4.5 in interpretira njegova sporočila o uporabi orodij.
- Orodja: Majhen nabor – read_file, write_file, list_dir, run_tests (ali run_cmd), search_code.
- Sestavljalnik konteksta: Sestavi kratek, usmerjen poziv z metapodatki repozitorija in nedavnimi razlikami.
- Kratkoročni pomnilnik: Drsno pogovorno okno plus eksplicitna beležka za načrt in omejitve.
- Varovala: Omejitve žetonov, časa in pisanja datotek; način suhega izvajanja; in posnetki povratne vožnje.
To je vse. Lahko ga izvajaš brez glave v terminalu ali ga zaviješ v minimalni uporabniški vmesnik, če moraš. Razlog, zakaj to deluje, je dolgočasen: vsako dejanje je opazovano in preverljivo. Agent predlaga spremembo, prikaže razliko, zažene teste, prebere izhod in bodisi nadaljuje bodisi se ustavi. Vmes ni nobene skrivnostne vsebine.
Kako zgraditi agenta (ne da bi izgubili rdečo nit)
1. korak: Določite pogodbo – poziv in orodja
Tvoj agent je tako dober, kot je njegova pogodba z modelom. Naj bo sistemski poziv kratek, strog in neizprosno praktičen.
Sistemski poziv, destiliran:
- Si kodirni agent. Tvoja naloga je, da narediš majhne, pravilne spremembe v repozitoriju, da zadovoljiš uporabniško nalogo.
- Razmišljaj naglas v skriti beležnici; uporabniku razkrij samo načrte in razlike.
- Raje imej minimalne razlike, delujoče teste in postopno napredovanje.
- Če nisi prepričan, predlagaj poskus in ga izvedi.
- Nikoli ne izmišljuj datotek ali ukazov – pred urejanjem jih naštej in preberi.
Shema orodij (ne razmišljaj preveč o tem):
- read_file(pot, odmik?, dolžina?)
- write_file(pot, vsebina, create_if_missing=false)
- run_cmd(ukaz, timeout=60, cwd=repo_root)
- search_code(poizvedba, pot=repo_root, max_results=50)
Izbirne dobrote: git_diff in git_revert(sha), če želiš povratne vožnje brez rok. Lahko preskočiš vektorsko shrambo; večina uporabnih nalog je odvisna od peščice datotek v delovnem pomnilniku plus hitro iskanje.
2. korak: Ohranite kontekst vitkega
Stiskanje konteksta je kult tovora pri oblikovanju agentov. Ne meči celotnega monorepositorija v poziv. Namesto tega:
- Povzetek repozitorija: En odstavek povzetka README; vstopne točke; ukaz za izvajanje testov.
- Aktivne datoteke: Samo datoteke, ki se jih agent namerava dotakniti – jih po potrebi preberi v delih.
- Naloga: Uporabniški cilj, jedrnato izražen: »Popravi neuspešen test FooTest.test_bar v tests/foo_test.py.«
- Omejitve: Omejitve izvajanja, seznam dovoljenih pisanja datotek, pravila sloga in pričakovanja semantičnega različic, če je primerno.
- Nedavna zgodovina: Zadnji dve razliki in njuni rezultati testov. Nič drugega.
Claude 4.5 je popolnoma sposoben pridobiti več konteksta, ko ga potrebuje, prek search_code in read_file. Daj mu zemljevid, ne ozemlja.
3. korak: Zanka (Opazuj → Načrtuj → Deluj → Reflektiraj)
- Opazuj: Začni z navajanjem imenikov, branjem neuspešnega testa, kode v testu in dnevnika napak. Prosi Clauda, naj povzame simptome okvare v dveh ali treh točkah.
- Načrtuj: Naj Claude predlaga načrt z:
- Datoteke za pregled ali urejanje
- Minimalne razlike za poskus
- Ukaz za testiranje za potrditev
- Deluj: Uporabi predlagano razliko prek write_file. Prikaži razliko dobesedno. Zaženi teste.
- Reflektiraj: Povratno vnesi stdout/stderr. Vprašaj Clauda: nadaljuj, povratna vožnja ali ustavi? Če se načrt spremeni, zahtevaj en stavek utemeljitve, ki se sklicuje na dejanski izhod.
- Izhod: Ustavi, ko testi uspejo ali po N ponovitvah, kar nastopi prej.
To je poveličano programiranje v paru, kjer dejansko ohranjaš pošteno seznanjanje.
4. korak: Varovala, ki ti rešijo konec tedna
- Seznam dovoljenih pisanja: Dovoli pisanje samo znotraj src/, lib/ ali izrecno odobrenih poti.
- Omejitev velikosti razlike: Omeji urejanja na 200–500 vrstic na korak. Če je večje, razdeli na podkorake.
- Seznam dovoljenih ukazov: Izvajalniki testov, linterji in nekaj skript razvijalcev. Prepovej omrežje. Želiš si ponovljivost, ne divjega zahoda curl.
- Časovna omejitev in ponovni poskusi: Kratke časovne omejitve, največ en ponovni poskus – neskončne zanke ponovnega izvajanja so tam, kjer agenti umrejo.
- Način suhega izvajanja: Natisni predlagane razlike, vendar ne piši. Odlično za pregled kode.
Claude 4.5 se bo držal pravil, če jih boš naredil izrecne. Če jih ne boš, se ne čudi, ko bo poskušal »pomagati« s preureditvijo celotnega repozitorija v skladu z objavo na blogu iz leta 2017.
5. korak: Pomnilnik, ki je dejansko uporaben
Kratkoročni pomnilnik reši 80 % težave. Ohrani:
- Beležnico za trenutno hipotezo in načrt.
- Seznam datotek, ki so se dotaknile v tej seji.
- Zadnja dva izhoda ukazov.
To je dovolj, da lahko Claude 4.5 razmišlja skladno. Dolgoročni pomnilnik – dnevniki nalog, vdelave – je lahko koristen za ponavljajoče se baze kode, vendar ga obravnavaj kot izbirni sladkor. Če tvoj agent ne more popraviti testa brez 500 MB vektorskega indeksa, to ni agent – to je odvisnost.
Minimalna skica implementacije
V psevdokodnih izrazih lahko tega agenta implementiraš v nekaj sto vrsticah:
- inicializiraj: naloži metapodatke repozitorija, omejitve in odjemalca modela
- opazuj: preberi neuspešne teste, datoteke, dnevnike
- načrt = model.predlagaj_načrt(kontekst)
- dokler ni končano in koraki < MAX:
- razlika = model.predlagaj_popravek(načrt)
- prikaži(razliko); morda odobri
- izhod = run_cmd(plan.test_cmd)
- reflektiraj = model.oceni(izhod)
- če reflektiraj == uspeh: končano = res
- drugače če reflektiraj == povratna_vožnja: git_revert(zadnji_commit)
- drugače: načrt = model.revidiraj_načrt(izhod)
Opazil boš manjkajoče dele: nobenih agentov, ki upravljajo agente, nobenih »delegatov«, nobenega ločenega »modela načrtovalca« in »modela izvajalca«. Claude 4.5 lahko opravi obe nalogi dobro, če ga ne sabotiraš z aparatom Rube Goldberga.
Pozivanje, ki se ne trudi preveč
Slabi pozivi se trudijo biti pametni. Dobri pozivi so dolgočasni in specifični. Tukaj je zdrava okostnica za tvoj osrednji blok navodil:
- Cilj: Navedi natančno kodirno nalogo in merila uspešnosti.
- Kontekst: Struktura projekta, vstopne točke in ukaz za testiranje.
- Omejitve: Seznam dovoljenih pisanja, omejitev velikosti razlike, brez omrežja.
- Prednostne nastavitve sloga: Različica jezika, oblikovalnik, pravila linterja.
- Postopek: Opazuj → Načrtuj → Deluj → Reflektiraj; prikaži razlike; zaženi teste; ponavljaj do N korakov; ustavi, ko testi uspejo.
Claude 4.5 s to strukturo ne bo potreboval 100-vrstičnega scenarija igranja vlog. Preprosto deluje.
Praktični primer: Popravi neuspešen test
Recimo, da test ne uspe v tests/time_test.py, ker parse_time("09:00") vrne 5400 namesto 32400. Zanka agenta bi morala izgledati takole:
- Opazuj: Preberi time.py in time_test.py; zaženi pytest -k parse_time.
- Načrtuj: Hipoteza – matematična napaka sekund proti minutam; predlagaj urejanje parse_time; dodaj robni primer enote.
- Deluj: Popravi parse_time, dodaj test za ure z vodilno ničlo; zaženi teste.
- Reflektiraj: Če testi še vedno ne uspejo, preberi napako, prilagodi matematiko ali regex, ponovno zaženi.
Minimalni uspešni popravek je lahko dvovrstična sprememba. To je bistvo. Majhni popravki, hitri cikli, resničen napredek.
Kje lahkost premaga kuhinjsko korito
- Latenca: En model, ena zanka, brez orkestracijske obremenitve.
- Preglednost: Vsak korak je preverljiv. Lahko ga primerjaš, ga povrneš, ga ponovno zaženeš.
- Nadzor: Varovala ohranjajo lokalno škodo. Agent ne more zaidati v tvojo infrastrukturo.
- Stroški: Manj klicev, manj konteksta, predvidljivi žetoni.
- UX: Razumeš ga. Tvoji soigralci ga razumejo. Tvoja prihodnja različica te ne bo sovražila.
In kompromisi:
- Širina: Lahek kodirni agent ne bo refaktoriral tvojega petjezičnega monorepositorija v enem samem prehodu. Niti ne bi smel.
- Pobuda: Ne bo izumljal večtedenskih načrtov. Ti mu daješ naloge.
- Stanje: Brez velike pomnilniške plasti pozablja oddaljeno zgodovino po zasnovi. To je funkcija, dokler ni napaka.
Idealno mesto za Claude 4.5 za kodirne agente
Claude 4.5 blesti pri:
- Branju in razmišljanju o razlikah in dnevnikih.
- Proizvodnji skladnih, minimalnih sprememb kode.
- Upoštevanju omejitev in izrecnosti glede negotovosti.
Manj odličen je pri:
- Ugibanju obnašanja API-ja, ki ga ne more prebrati.
- Težki koreografiji orodij (tukaj ni potrebna).
- Dolgih refaktorjih z več datotekami brez človeka, ki usmerja korake.
Ta zadnja točka je pomembna. Najboljši način za doseganje močnih rezultatov ni, da agenta narediš večjega – ampak da nalogo narediš manjšo. Uporabi svoje možgane za določanje obsega, Claude 4.5 pa za izvajanje znotraj tega obsega.
Beseda o integraciji IDE
Upreti se želji, da bi to neposredno vgradil v podokno IDE s petdesetimi preklopnimi stikali. Terminalna zanka z navadnimi besedilnimi razlikami je lažje zaupati in jo razhroščevati. Če želiš sladkor za urejevalnik, naj bo neumen:
- Ukazi za začetek/ustavitev zanke.
- Prikaži razlike v razdeljenem pogledu.
- Poziv za odobritev za pisanje (izbirno, vendar pametno).
Lahko integriraš pozneje. Najprej naj deluje.
Sider.AI, uporabljeno varčno, dejansko pomaga Če želiš pragmatično okolje za izvajanje te vrste zanke, ne da bi ponovno izumljal ogrodje, Sider.AI dejansko deluje – vsaj ko ga uporabljaš za tisto, v čemer je dober. Ohranja pogovor in razlike urejene, ti omogoča izvajanje ukazov in te ne sili v nekakšno grandiozno »avtonomno ogrodje agentov«. Trik je, da ohraniš svoja pravila: kratki pozivi, tesne zanke, vidne razlike. Sider se umakne s poti, kar je redkeje, kot bi moralo biti. Pogoste pasti (in kako se izogniti neumnemu videzu)
- Preveč natlačen kontekst: Če tvoj poziv bereš kot sporočilo z zahtevo po odkupnini, delaš narobe. Pridobi datoteke na zahtevo.
- Prezgodnje refaktoriranje: Agent predlaga preureditev modulov? Najprej naj uspešno opravi teste. Refaktoriraj pozneje.
- Halucinarne datoteke: Zahtevaj list_dir in read_file pred katerim koli write_file na novo pot.
- Neskončne zanke ponovnega izvajanja: Omeji korake. Zahtevaj utemeljitev za vsako novo hipotezo.
- Ena velikanska razlika: Razdeli spremembe. Manjše razlike hitreje ne uspejo in jih je lažje obravnavati.
Varnost in zaščita brez paranoje
- Lokalno izvajanje: Izvajaj v izoliranem imeniku. Brez omrežja privzeto.
- Izolacija odvisnosti: Uporabi lokalni venv ali vsebnik. Pripni različice.
- Skrivnosti: Agent jih ne potrebuje. Če ukaz zahteva žeton, se ustavi in vprašaj.
- Revizija: Ohrani vsak načrt, razliko in ukaz v dnevniku.
Kako vedeti, da deluje
- Svinek se skrajša: Popravki napak, ki so trajali eno uro, zdaj trajajo deset minut.
- Manj napak pri debelih prstih: Razlike postanejo manjše, testi pa bolj zeleni.
- Zaupaš mu: Nehate lebdeti nad vsakim dejanjem, ker te ni zažgal.
- Soigralci ga uporabljajo: Definicija uspeha je, da ga drugi sprejmejo brez sestanka.
Skrbno povečevanje obsega
Če res moraš povečati obseg, to stori z disciplino:
- Vzporedne podnaloge, ne vzporedni možgani: Razdeli delo, izvajaj več lahkih zank v ločenih imenikih in združi, ko je zeleno.
- Epizodni pomnilnik, ne izliv možganov: Shrani uspešne popravke in preslikave simptomov v popravke. Kirurško pridobi.
- Občasni »večji« prehodi: Rezerviraj sejo, ki jo vodi človek, za refaktorje; agent pomaga, ne vodi.
Minimalna referenčna implementacija (skica)
Psevdokoda, podobna Pythonu, za začetek:
- def init(self, repo_root, model):
- self.history = [] # zadnji dve razliki in izhodi testov
- "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)})
Človeku prijazen konec
Industrija obljublja avtonomne agnete za razvijalce. Kar dejansko potrebujemo, je pošten pomočnik, ki bere, načrtuje, ureja, izvaja in se ustavi. Claude 4.5 je dober pri tem, pod pogojem, da ga ne zakoplješ pod ogrodja, ki večinoma obstajajo zato, da bi upravičili same sebe. Lahkost ni kompromis – to je bistvo. Zgradi zanko, dodaj varovala in pusti, da orodje naredi tisto, kar so orodja vedno počela, ko jih ohranjaš preprosta: zmanjšaj delo.
Zaključek: Dolgočasna bližnjica, ki zmaga
Tukaj je tvoj kontrolni seznam za lahkega kodirnega agenta s sistemom Claude 4.5:
- Ena zanka, en model, majhna orodja.
- Tesni kontekst: naloga, nekaj datotek, zadnji izhodi.
- Minimalne razlike, pogosti testi, trde omejitve.
- Lokalno, izolirano izvajanje; brez omrežja.
- Izbirni sladkor za urejevalnik; nikoli obvezen.
Če prižmiš oči, je sumljivo podoben dobri strojni opremi, samo hitreje. In to je bistvo. Najpametnejša stvar, ki jo lahko narediš tukaj, ni lov za »avtonomijo« – ampak kodificiranje discipline. Manj ko zahtevaš od agenta, več dobiš.
Pogosta vprašanja
V1:Kako začnem graditi lahkega kodirnega agenta s sistemom Claude 4.5?
Določite majhen nabor orodij (beri, piši, išči, izvajaj), napišite strog sistemski poziv in implementirajte zanko Opazuj → Načrtuj → Deluj → Reflektiraj. Naj bo kontekst majhen in vnesite resnične dnevnike in razlike – Claude 4.5 deluje najbolje, ko je naloga ozka in je povratna informacija konkretna.
V2:Ali potrebujem vektorsko bazo podatkov ali pomnilniško plast za kodirnega agenta Claude 4.5?
Ne. Za večino nalog je dovolj kratkoročni pomnilnik plus search_code. Dolgoročni pomnilnik dodaj samo, če večkrat obiščeš isto repozitorij in lahko dokažeš, da prihrani žetone, ne da bi agenta naredil bolj neumnega.
V3:Katera varovala so bistvena za kodirnega agenta Claude 4.5?
Seznam dovoljenih zapisljivih poti, omejitev velikosti razlik, omejevanje ukazov in beleženje vsakega dejanja. Te preproste omejitve ohranjajo agenta predvidljivega in naredijo povratne vožnje dolgočasne – v dobrem smislu.
V4:Ali lahko lahek agent obravnava refaktorje z več datotekami?
Da, če delo razdeliš na majhne korake in ohranjaš zanko tesno. Claude 4.5 lahko upravlja refaktorje, vendar usmerjaš obseg; sicer boš dobil eno velikansko, krhko razliko, ki je ne boš želel pregledati.
V5:Kje se Sider.AI prilega kodirnemu agentu Claude 4.5?
Sider.AI je koristen kot urejen delovni prostor: pogovori, razlike in ukazi na enem mestu, brez vsiljevanja težkega ogrodja agenta. Uporabi ga za izvajanje zanke, ne za ponovno izum.