-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task sv
Mål: lägg till ett helt nytt kommando i CLI:n — från början till slut
— genom att dirigera din agent. Vi lägger till lockedin endorse: den
rekommenderar totala främlingar för färdigheter de nästan säkert inte har.
På varumärket.
Det här är kärnan i handledningen. Du kommer öva på den riktiga slingan: spec → tester → implementation → grön grind → granskning.
← Föregående: Tutorial 2 Hur koden fungerar · Nästa: Tutorial 4 Prompta och granska
Innan du promptar något, skriv specifikationen själv i vanligt språk. Vaga förfrågningar ger vag kod — från en människa eller en agent.
endorseskriver ut 5–7 rader, var och en som rekommenderar en slumpmässigt vald person (återanvänd den befintligaNAMES-poolen) för en slumpmässigt vald modeords-färdighet (en ny pool). Den avslutas med en satirisk enradare. Den måste vara nåbar somlockedin endorse, som/endorsei sessionen, och synas ihelp. All slumpmässighet måste använda de frösattapick/shuffle-hjälparna så att utdatan förblir deterministisk.npm testmåste förbli grönt, och det ska finnas ett nytt test som fastställer minst en invariant.
Det stycket är det du ger agenten. Lägg märke till att det namnger begränsningarna från kapitel 2 (frösatt RNG, testgrinden, invariant-vanan).
Börja med att be om en plan. Det här är din chans att fånga en dålig approach innan några filer ändras.
"Jag vill lägga till ett
endorse-kommando i LockedIn CLI. Här är specifikationen: [paste your spec]. Innan du skriver kod, berätta vilka filer du kommer ändra och din approach, så jag kan godkänna den. Följ de befintliga mönstren för ett kommando somconnect."
En bra plan nämner: en ny SKILLS-pool + en renderEndorse() i
src/lockedin.js, att koppla in den i dispatch() och handleSlash(),
lägga till en rad i renderHelp(), exportera den nya
funktionen/poolen, och lägga till tester i båda testfilerna. Om planen
missar regeln om frösatt RNG eller testerna, säg det nu.
Be agenten skriva testerna innan implementationen. Tester-först förvandlar din specifikation till något körbart, och det håller agenten ärlig.
"Bra. Lägg först till bara misslyckade tester: ett enhetstest att
renderEndorse()returnerar text som nämner en känd färdighet och minst 5 rekommendationer, och ettcli.test.js-test attlockedin endorseavslutar med 0 och skriver ut en rekommendation. Använd ett fast frö. Implementera interenderEndorseän — låt oss se testerna misslyckas först."
Kör dem och se dem misslyckas av den rätta anledningen (funktionen finns inte än):
npm testGe nu grönt ljus till implementationen:
"Implementera det nu så att de testerna passerar, och följ
connect-mönstret. Lägg till enSKILLS-pool med ~25 modeords- färdigheter, enrenderEndorse()som returnerar en sträng, koppla uppdispatchochhandleSlash, lägg till enhelp-rad, och exportera det du lade till. Använd barapick/shuffleför slumpmässighet."
Det agenten producerar bör se väldigt likt resten av filen ut. Till
exempel en SKILLS-pool och en renderare:
const SKILLS = [
'Thought Leadership', 'Synergi', 'Storytelling', 'Vibbar',
'Strategisk tupplur', 'Intressentförankring', 'Radikal uppriktighet', /* ...~25 totalt... */
];
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(' ✔ Rekommenderade ' + n + ' för ' + skills[i % skills.length]));
out.push('', ' Du rekommenderade 6 främlingar för färdigheter du inte kan verifiera. De rekommenderar dig tillbaka inom en timme.');
return out.join('\n');
}…plus en rad var i dispatch() och handleSlash(), en rad i
renderHelp(), och SKILLS, renderEndorse tillagd i module.exports.
npm testGrönt? Du har precis levererat en funktion med en agent, tester först. Inte grönt? Det är normalt — gå till kapitel 4:s iterationsslinga och berätta för agenten exakt vad som misslyckades.
Kika sedan på det riktiga (tester kontrollerar text, men du bör fortfarande titta):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # reproducerbarAcceptera aldrig en diff du inte har läst. Titta specifikt efter det här:
-
Följde den mönstret? Nytt kommando bör spegla
connect— inga nya beroenden, ingenconsole.loginutisrc/. -
Endast frösatt RNG? Sök i diffen efter
Math.random. Det bör inte finnas något. - Rörde den något den inte borde? Ändringen bör vara additiv; orelaterade rader bör inte flyttas.
-
Är det nya testet meningsfullt? Det bör misslyckas om någon senare
bryter funktionen — inte bara påstå
true.
Om något är fel, be om en fix (kapitel 4). Om det är bra är du klar.
Gör hela slingan ovan på riktigt. Sedan, för extrapoäng, be agenten utöka den:
- "Få
endorseatt acceptera ett valfritt namn:lockedin endorse Adabör rekommendera Ada specifikt. Lägg till ett test, håll grinden grön."
Du har nu byggt en funktion från början till slut. Det sista kapitlet handlar om att göra det här smidigt — prompta och granska som en ledande ingenjör.
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.