-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task nl
🌎 Taal: Nederlands — bekijk alle 33 talen
Doel: voeg een gloednieuw commando aan de CLI toe — van begin tot eind —
door je agent aan te sturen. We voegen lockedin endorse toe: het geeft totale
vreemden endorsements voor vaardigheden die ze vrijwel zeker niet hebben. Helemaal
on brand.
Dit is het hart van de tutorial. Je oefent de echte lus: specificatie → tests → implementatie → groene barrière → review.
← Vorige: Tutorial 2 Hoe de code werkt · Volgende: Tutorial 4 Prompting en review
Schrijf eerst zelf de specificatie in gewone taal voordat je ook maar iets prompt. Vage verzoeken leveren vage code op — van een mens of van een agent.
endorseprint 5–7 regels, die elk een willekeurig gekozen persoon endorsen (hergebruik de bestaandeNAMES-pool) voor een willekeurig gekozen buzzword-vaardigheid (een nieuwe pool). Het eindigt met een satirische oneliner. Het moet bereikbaar zijn alslockedin endorse, als/endorsebinnen de sessie, en het moet inhelpverschijnen. Alle willekeur moet de gesedepick/shuffle-helpers gebruiken zodat de uitvoer deterministisch blijft.npm testmoet groen blijven, en er moet een nieuwe test zijn die ten minste één invariant vastlegt.
Die alinea is wat je aan de agent geeft. Merk op dat hij de beperkingen uit hoofdstuk 2 noemt (RNG met seed, de testbarrière, de gewoonte van invarianten).
Begin door om een plan te vragen. Dit is je kans om een slechte aanpak te vangen voordat er bestanden veranderen.
"Ik wil een
endorse-commando aan LockedIn CLI toevoegen. Hier is de specificatie: [paste your spec]. Voordat je code schrijft, vertel me welke bestanden je gaat aanpassen en wat je aanpak is, zodat ik die kan goedkeuren. Volg de bestaande patronen van een commando alsconnect."
Een goed plan noemt: een nieuwe SKILLS-pool + een renderEndorse() in
src/lockedin.js, aansluiten op dispatch() en handleSlash(), een rij aan
renderHelp() toevoegen, het nieuwe exporteren en tests aan beide testbestanden
toevoegen. Als het plan de RNG-regel met seed of de tests vergeet, zeg dat
nu.
Vraag de agent om de tests vóór de implementatie te schrijven. Tests eerst maakt je specificatie uitvoerbaar en houdt de agent eerlijk.
"Mooi. Voeg eerst alleen falende tests toe: een unit-test waarin
renderEndorse()tekst teruggeeft met een bekende vaardigheid en minstens 5 endorsements, en een test incli.test.jswaarinlockedin endorseexitcode 0 geeft en een endorsement print. Gebruik een vaste seed. ImplementeerrenderEndorsenog niet — laten we eerst zien dat de tests om de juiste reden falen."
Draai ze en kijk hoe ze om de juiste reden falen (de functie bestaat nog niet):
npm testGeef nu groen licht voor de implementatie:
"Implementeer het nu zodat die tests slagen, volgens het
connect-patroon. Voeg eenSKILLS-pool toe met ~25 buzzword-vaardigheden, eenrenderEndorse()die een string teruggeeft, koppeldispatchenhandleSlash, voeg een rij toe aanhelpen exporteer wat je toevoegt. Gebruik alleenpick/shufflevoor willekeur."
Wat de agent produceert zou sterk op de rest van het bestand moeten lijken.
Bijvoorbeeld een SKILLS-pool en een renderer:
const SKILLS = [
'Thought Leadership', 'Synergie', 'Vibes', 'Blockchain (conceptueel)',
'Nederig Doen', 'Er Nog Op Terugkomen', 'Aura Farming', /* ...~25 in totaal... */
];
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(' ✔ Gaf ' + n + ' een endorsement voor ' + skills[i % skills.length]));
out.push('', ' Je gaf 6 vreemden een endorsement voor vaardigheden die je niet kunt verifiëren. Binnen het uur geven ze jou er eentje terug.');
return out.join('\n');
}…plus elk één regel in dispatch() en handleSlash(), een rij in
renderHelp(), en SKILLS, renderEndorse toegevoegd aan module.exports.
npm testGroen? Dan heb je net test-first een feature met een agent opgeleverd. Niet groen? Dat is normaal — ga naar de iteratielus van hoofdstuk 4 en vertel de agent precies wat er faalde.
Kijk daarna ook naar het echte resultaat (tests controleren tekst, maar je moet het nog steeds zien):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # reproduceerbaarAccepteer nooit een diff die je niet hebt gelezen. Scan specifiek op deze punten:
-
Volgde het het patroon? Het nieuwe commando moet
connectspiegelen — geen nieuwe dependencies, geenconsole.logbinnensrc/. -
Alleen RNG met seed? Zoek in de diff naar
Math.random. Die zou er niet mogen zijn. - Raakte het iets aan dat het niet moest aanraken? De wijziging moet additief zijn; niet-gerelateerde regels horen niet te verschuiven.
-
Is de nieuwe test betekenisvol? Hij moet falen als iemand later de
feature stukmaakt — niet alleen
trueasserten.
Als iets niet klopt, vraag dan om een fix (hoofdstuk 4). Als het goed is, ben je klaar.
Doe de volledige lus hierboven echt. Vraag de agent daarna, voor extra punten, om het uit te breiden:
- "Laat
endorseeen optionele naam accepteren:lockedin endorse Adamoet specifiek Ada endorsen. Voeg een test toe en houd de barrière groen."
Je hebt nu van begin tot eind een feature gebouwd. Het volgende hoofdstuk gaat over dit soepel doen — prompten en reviewen als een lead engineer.
Volgende: Tutorial 4 Prompting en review
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.