Skip to content

Tutorial 3 Your First Agent Task sv

James Morris edited this page Jul 29, 2026 · 1 revision

Tutorial 3 · Din första agentuppgift

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


Steg 0 — Bestäm hur "klart" ser ut

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.

endorse skriver ut 5–7 rader, var och en som rekommenderar en slumpmässigt vald person (återanvänd den befintliga NAMES-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 som lockedin endorse, som /endorse i sessionen, och synas i help. All slumpmässighet måste använda de frösatta pick/shuffle-hjälparna så att utdatan förblir deterministisk. npm test må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).

Steg 1 — Be agenten planera, inte koda

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 som connect."

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.

Steg 2 — Tester först

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 ett cli.test.js-test att lockedin endorse avslutar med 0 och skriver ut en rekommendation. Använd ett fast frö. Implementera inte renderEndorse ä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 test

Steg 3 — Låt agenten implementera

Ge nu grönt ljus till implementationen:

"Implementera det nu så att de testerna passerar, och följ connect-mönstret. Lägg till en SKILLS-pool med ~25 modeords- färdigheter, en renderEndorse() som returnerar en sträng, koppla upp dispatch och handleSlash, lägg till en help-rad, och exportera det du lade till. Använd bara pick/shuffle fö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.

Steg 4 — Grinden

npm test

Grö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   # reproducerbar

Steg 5 — Granska innan du accepterar

Acceptera 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, ingen console.log inuti src/.
  • 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.


✅ Testa det med din agent

Gör hela slingan ovan på riktigt. Sedan, för extrapoäng, be agenten utöka den:

  • "Få endorse att acceptera ett valfritt namn: lockedin endorse Ada bö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.

Nästa: Tutorial 4 Prompta och granska

📘 LockedIn CLI wiki

Tutorial

Reference


Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.

Clone this wiki locally