-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task fi
Tavoite: lisää täysin uusi komento CLI:hin — päästä päähän — ohjaamalla
agenttiasi. Lisäämme lockedin endorse: se suosittelee täysin tuntemattomia
taidoista, joita heillä lähes varmasti ei ole. Brändin mukaista.
Tämä on opetusohjelman ydin. Harjoittelet oikeaa silmukkaa: spesifikaatio → testit → toteutus → vihreä portti → arviointi.
← Edellinen: Tutorial 2 Miten koodi toimii · Seuraava: Tutorial 4 Promptaus ja arviointi
Ennen kuin promptaat mitään, kirjoita spesifikaatio itse selkeällä kielellä. Epämääräiset pyynnöt tuottavat epämääräistä koodia — ihmiseltä tai agentilta.
endorsetulostaa 5–7 riviä, joista jokainen suosittelee satunnaisesti valittua henkilöä (käytä uudelleen olemassa olevaaNAMES-poolia) satunnaisesti valitusta muotisana-taidosta (uusi pooli). Se päättyy satiiriseen yhden rivin lauseeseen. Sen täytyy olla tavoitettavissa komennollalockedin endorse, session sisäisenä/endorse-komentona, ja näkyähelp:ssä. Kaiken satunnaisuuden täytyy käyttää siemennettyjäpick/shuffle-apufunktioita, jotta tuloste pysyy deterministisenä.npm test:n täytyy pysyä vihreänä, ja mukana pitää olla uusi testi, joka kiinnittää vähintään yhden invariantin.
Tuo kappale on se, minkä annat agentille. Huomaa, että se nimeää luvun 2 rajoitteet (siemennetty RNG, testiportti, invarianttien tapa).
Aloita pyytämällä suunnitelma. Tämä on tilaisuutesi kiinni huonon lähestymistavan ennen kuin yksikään tiedosto muuttuu.
"Haluan lisätä
endorse-komennon LockedIn CLI:hin. Tässä spesifikaatio: [paste your spec]. Ennen koodin kirjoittamista, kerro mitkä tiedostot muutat ja lähestymistapasi, jotta voin hyväksyä sen. Seuraa olemassa olevia malleja komennolle kutenconnect."
Hyvä suunnitelma mainitsee: uuden SKILLS-poolin + renderEndorse():n
src/lockedin.js:ssä, sen kytkemisen dispatch():iin ja handleSlash():iin,
rivin lisäämisen renderHelp():iin, uuden funktion/poolin viennin, ja testien
lisäämisen molempiin testitiedostoihin. Jos suunnitelma jättää huomiotta
siemennetyn RNG -säännön tai testit, sano se nyt.
Pyydä agenttia kirjoittamaan testit ennen toteutusta. Testit ensin muuttaa spesifikaatiosi suoritettavaksi, ja se pitää agentin rehellisenä.
"Hienoa. Lisää ensin vain epäonnistuvat testit: yksikkötesti, joka varmistaa, että
renderEndorse()palauttaa tekstiä, joka mainitsee tunnetun taidon ja vähintään 5 suositusta, jacli.test.js-testi, joka varmistaa, ettälockedin endorsepoistuu koodilla 0 ja tulostaa suosituksen. Käytä kiinteää siementä. Älä vielä toteutarenderEndorse:ia — katsotaan ensin testien epäonnistuvan."
Aja ne ja katso niiden epäonnistuvan oikeasta syystä (funktiota ei vielä ole olemassa):
npm testAnna nyt vihreä valo toteutukselle:
"Toteuta se nyt niin, että nuo testit menevät läpi, seuraten
connect-mallia. LisääSKILLS-pooli, jossa on ~25 muotisanataitoa,renderEndorse(), joka palauttaa merkkijonon, kytkedispatchjahandleSlash, lisäähelp-rivi, ja vie mitä lisäsit. Käytä satunnaisuuteen vainpick/shuffle:a."
Sen, mitä agentti tuottaa, pitäisi näyttää hyvin samalta kuin muu tiedosto.
Esimerkiksi SKILLS-pooli ja renderöijä:
const SKILLS = [
'Ajatusjohtajuus', 'Synergia', 'Tarinankerronta', 'Fiilikset',
'Strateginen torkkuminen', 'Sidosryhmien linjaus', 'Radikaali suoruus', /* ...~25 yhteensä... */
];
function renderEndorse() {
const people = shuffle(NAMES).slice(0, 5 + Math.floor(rand() * 3)); // 5–7
const skills = shuffle(SKILLS);
const out = [''];
people.forEach((n, i) =>
out.push(' ✔ Suosittelit henkilöä ' + n + ' taidosta ' + skills[i % skills.length]));
out.push('', ' Suosittelit kuutta tuntematonta taidoista, joita et voi todentaa. He suosittelevat sinua takaisin tunnin sisällä.');
return out.join('\n');
}…plus yksi rivi kumpaankin dispatch():iin ja handleSlash():iin, rivi
renderHelp():iin, ja SKILLS, renderEndorse lisättynä
module.exports:iin.
npm testVihreä? Julkaisit juuri ominaisuuden agentin kanssa, testit ensin. Ei vihreä? Se on normaalia — mene luvun 4 iterointisilmukkaan ja kerro agentille täsmälleen mikä epäonnistui.
Sitten silmäile oikeaa juttua (testit tarkistavat tekstiä, mutta sinun pitäisi silti katsoa):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # toistettavissaÄlä koskaan hyväksy diffiä, jota et ole lukenut. Silmäile erityisesti näitä:
-
Noudattiko se mallia? Uuden komennon pitäisi heijastaa
connect:ia — ei uusia riippuvuuksia, eiconsole.log:iasrc/:n sisällä. -
Vain siemennetty RNG? Etsi diffistä
Math.random. Sitä ei pitäisi olla. - Koskiko se mihinkään, mitä ei pitäisi? Muutoksen pitäisi olla lisäävä; asiaan kuulumattomat rivit eivät pitäisi liikkua.
-
Onko uusi testi merkityksellinen? Sen pitäisi epäonnistua, jos joku
myöhemmin rikkoo ominaisuuden — ei vain väittää
true.
Jos jokin on pielessä, pyydä korjausta (luku 4). Jos se on hyvä, olet valmis.
Tee koko yllä oleva silmukka oikeasti. Sitten, ekstrapisteiden vuoksi, pyydä agenttia laajentamaan sitä:
- "Tee
endorse:sta hyväksyvä valinnainen nimi:lockedin endorse Adapitäisi suositella nimenomaan Adaa. Lisää testi, pidä portti vihreänä."
Olet nyt rakentanut ominaisuuden päästä päähän. Viimeinen luku käsittelee tämän tekemistä sulavasti — promptaamalla ja arvioimalla kuin tiiminvetäjä.
Seuraava: Tutorial 4 Promptaus ja arviointi
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.