-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 2 How the Code Works eu
Helburua: proiektu hau AI agente batekin aldatzeko erraza — eta segurua — egiten duten diseinu-erabaki gutxi horiek ulertzea. Ez duzu kodea buruz ikasi behar; eredu mentala behar duzu, agentea zehaztasunez zuzendu ahal izateko.
← Aurrekoa: 1 Orientazioa · Hurrengoa: 3 Zure lehen ataza agentearekin
lockedin-cli/
├── bin/lockedin.js # sarrera-puntua — sarrera/irteera egiten duen parte BAKARRA
├── src/lockedin.js # nukleoa — string-ak itzultzen dituzten funtzio puruak
├── test/
│ ├── unit.test.js # nukleo-funtzioak zuzenean probatzen ditu
│ └── cli.test.js # benetako bitarra abiarazi eta bere irteera egiaztatzen du
├── tools/screenshot.js # docs/-en ikusten dituzun SVGak errenderizatzen ditu
└── package.json # metadatuak + `npm test` scripta
Lau ideiak funtzionarazten dute. Ikasi hauek eta ia edozein aldaketa eska diezaiokezu agenteari konfiantzaz.
Ireki src/lockedin.js. Ohartu render-funtzioek ez dutela inprimatzen —
string-ak itzultzen dituzte:
function renderConnect() {
const names = shuffle(NAMES).slice(0, 6);
// ...lerro-array bat eraikitzen du...
return out.join('\n'); // testua itzultzen du; ez du ezer inprimatzen
}Benetako inprimatze guztia (eta zure teklakaden irakurketa) bin/lockedin.js-en
gertatzen da. "nukleoak datuak itzultzen ditu, ertzak S/I egiten du" banaketa
hau da hemengo gauzarik garrantzitsuena, string bat besterik itzultzen ez duen
funtzio bat probatzeko hutsala delako:
const out = app.renderConnect();
assert.ok(out.includes("“Nire sare profesionalera gehitu nahi zintuzket.” — bidalia "));Terminalik simulatu gabe, stdout-ik harrapatu gabe. Agenteari funtzionalitate bat gehitzeko eskatzen diozunean, horregatik gehi diezaioke ere proba azkar eta fidagarri bat.
Txantxak src/lockedin.js-en goialdetik gertu dauden array soiletan bizi dira:
const HOOKS = [ 'Iritzi ez-popularra:', 'Utzi hori barneratzen.', /* ...~25 guztira... */ ];
const LESSONS = [ '→ Zure sarea zure ondare garbia da.', /* ... */ ];Sortzaileek pool horietatik aukeratzen dute. v1.2.0-n pool bakoitza ~25
aldaeratara hazi zen, eta txantiloi-poolen bigarren geruza bat gehitu zen
(POST_REVEALS eta REFLECT_TAGSETS bezalakoak) irteera bakoitzaren egitura alda
dadin, ez hitzak soilik. Edukia gehitzea sarritan array bati string-ak gehitzea
bezain erraza da — agente bati emateko lehen ataza ezin hobea.
Ausazko irteera eta proba automatizatuak bateraezinak dirudite. Proiektu honek zirkulua koadratzen du hazi daitekeen zenbaki-sortzaile ausazko batekin:
setSeed(42);
const a = generatePost();
setSeed(42);
const b = generatePost();
// a === b → hazi bera, post beraAusazko aukera bakoitza pick() / shuffle() laguntzaile partekatuetatik pasatzen
da, hazidun sortzaile horretatik ateratzen dutenak. Ezarri LOCKEDIN_SEED=42 eta
CLIa guztiz erreproduzigarria da. Edozein aldaketarako urrezko araua: ausazkotasun
berriak pick / shuffle erabili behar du, inoiz ez Math.random zuzenean —
bestela determinismoa (eta probak) hausten dira. Gorde hau patrikan; 3. kapituluan
gogoraraziko diozu agenteari.
-
test/unit.test.js-ek nukleo-funtzioak deitzen ditu eta itzultzen dituzten string-en gainean baieztapenak egiten (azkarra, zehatza). -
test/cli.test.js-ek benetanbin/lockedin.jsabiarazten du eta bere benetako stdout eta irteera-kodea egiaztatzen ditu (dena hasieratik amaierara funtzionatzen duela frogatzen du).
Elkarrekin langa dira. Aldaezinak ere kodetzen dituzte — app-ak egiten dituen
promesak. Adibidez, post batek beti hook ezagun batekin hasten da eta beti gutxienez
hiru → ikasgai ditu; "connect" pantailak beti incalculable esaten du. Agente
batek kodea aldatzen duenean, proba hauek promesa bat isilean hautsi duen edozer
harrapatzen dute.
Jarri lau ideiak elkarrekin eta agente batek honako hau egin dezakeen kode-base bat lortzen duzu:
- Funtzionalitate bat gehitu string bat itzultzen duen funtzio puru gisa,
- Proba bat gehitu horretarako inolako S/I gimnasiarik gabe,
- Irteera erreproduzigarri mantendu hazidun RNGaren bidez, eta
- Ezer hautsi ez duela frogatu existitzen den langa exekutatuz.
Hori da hurrengo kapituluan exekutatuko duzun begizta.
Eskatu agenteari zure ulermena egiaztatzeko — irakurriz, ez editatuz:
- "Zerrendatu
src/lockedin.js-eko eduki-pool bakoitza eta bakoitzak zenbat sarrera dituen." - "Erakutsi
test/unit.test.js-ekgeneratePost-i buruz betearazten duen aldaezin bat, eta azaldu zerk hautsiko lukeen." - "Non dago definituta hazidun RNGa, eta zein funtziok erabili behar dute
Math.random-en ordez? Ez aldatu ezer — azaldu besterik ez."
Agentearen erantzunak kapitulu honekin bat datozenean, eraikitzeko prest zaude.
Hurrengoa: 3 Zure lehen ataza agentearekin
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.