Skip to content

Tutorial 3 Your First Agent Task pl

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

Samouczek 3 · Twoje pierwsze zadanie dla agenta

Cel: dodać zupełnie nową komendę do CLI — od początku do końca — kierując swoim agentem. Dodamy lockedin endorse: rekomenduje zupełnie obcych ludzi za umiejętności, których niemal na pewno nie mają. W stylu marki.

To serce samouczka. Przećwiczysz prawdziwą pętlę: specyfikacja → testy → implementacja → zielona bramka → recenzja.

← Poprzednio: Samouczek 2 Jak działa kod · Dalej: Samouczek 4 Formułowanie promptów i recenzja


Krok 0 — Zdecyduj, jak wygląda „gotowe”

Zanim cokolwiek podpowiesz, napisz specyfikację sam, prostym językiem. Niejasne prośby dają niejasny kod — od człowieka lub agenta.

endorse wypisuje 5–7 linii, każda rekomendująca losowo wybraną osobę (użyj istniejącej puli NAMES) za losowo wybraną buzzwordową umiejętność (nowa pula). Kończy się satyryczną puentą w jednej linii. Musi być osiągalna jako lockedin endorse, jako sesyjne /endorse i pojawiać się w help. Cała losowość musi używać funkcji pomocniczych z ziarnem pick/shuffle, aby wyjście pozostało deterministyczne. npm test musi pozostać zielony i powinien być nowy test, który przypina co najmniej jeden niezmiennik.

Ten akapit to rzecz, którą przekażesz agentowi. Zauważ, że nazywa ograniczenia z rozdziału 2 (RNG z ziarnem, bramka testowa, nawyk niezmienników).

Krok 1 — Poproś agenta o plan, nie o kod

Zacznij od poproszenia o plan. To Twoja szansa, aby wychwycić złe podejście, zanim zmienią się jakiekolwiek pliki.

„Chcę dodać komendę endorse do LockedIn CLI. Oto specyfikacja: [paste your spec]. Zanim napiszesz kod, powiedz mi, które pliki zmienisz i jakie jest Twoje podejście, abym mógł to zatwierdzić. Trzymaj się istniejących wzorców dla komendy takiej jak connect.”

Dobry plan wspomina: nowa pula SKILLS + renderEndorse() w src/lockedin.js, podłączenie do dispatch() i handleSlash(), dodanie wiersza do renderHelp(), wyeksportowanie nowej funkcji/puli oraz dodanie testów w obu plikach testowych. Jeśli plan pomija zasadę RNG z ziarnem albo testy, powiedz to teraz.

Krok 2 — Najpierw testy

Poproś agenta, aby napisał testy przed implementacją. Testy-najpierw zamieniają Twoją specyfikację w coś wykonywalnego i utrzymują agenta w ryzach.

„Świetnie. Najpierw dodaj tylko testy, które padają: test jednostkowy, że renderEndorse() zwraca tekst wspominający znaną umiejętność i co najmniej 5 rekomendacji, oraz test cli.test.js, że lockedin endorse kończy się z 0 i drukuje rekomendację. Użyj stałego ziarna. Nie implementuj jeszcze renderEndorse — zobaczmy najpierw, jak testy padają.”

Uruchom je i patrz, jak padają z właściwego powodu (funkcja jeszcze nie istnieje):

npm test

Krok 3 — Pozwól agentowi zaimplementować

Teraz daj zielone światło implementacji:

„Teraz zaimplementuj to, aby te testy przeszły, trzymając się wzorca connect. Dodaj pulę SKILLS około 25 buzzwordowych umiejętności, renderEndorse(), która zwraca string, podłącz dispatch i handleSlash, dodaj wiersz help i wyeksportuj to, co dodałeś. Używaj tylko pick/shuffle do losowości.”

To, co agent wyprodukuje, powinno wyglądać bardzo podobnie do reszty pliku. Na przykład pula SKILLS i renderer:

const SKILLS = [
  'Thought Leadership', 'Synergia', 'Storytelling', 'Vibe’y',
  'Strategiczna Drzemka', 'Alignment Interesariuszy', 'Radykalna Szczerość', /* ...~25 total... */
];

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('  ✔ Polecono ' + n + ' za ' + skills[i % skills.length]));
  out.push('', '  Polecasz 6 nieznajomych za umiejętności, których nie potrafisz zweryfikować. Odwdzięczą się rekomendacją w ciągu godziny.');
  return out.join('\n');
}

…plus po jednej linii w dispatch() i handleSlash(), wiersz w renderHelp() oraz SKILLS, renderEndorse dodane do module.exports.

Krok 4 — Bramka

npm test

Zielone? Właśnie wysłałeś funkcję z agentem, testy-najpierw. Nie zielone? To normalne — przejdź do pętli iteracji z rozdziału 4 i powiedz agentowi dokładnie, co padło.

Następnie rzuć okiem na prawdziwą rzecz (testy sprawdzają tekst, ale i tak powinieneś spojrzeć):

node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse   # reproducible

Krok 5 — Recenzja, zanim zaakceptujesz

Nigdy nie akceptuj diffa, którego nie przeczytałeś. Przejrzyj konkretnie te rzeczy:

  • Czy trzymał się wzorca? Nowa komenda powinna odzwierciedlać connect — żadnych nowych zależności, żadnego console.log wewnątrz src/.
  • Tylko RNG z ziarnem? Poszukaj w diffie Math.random. Nie powinno go być.
  • Czy dotknął czegoś, czego nie powinien? Zmiana powinna być addytywna; niepowiązane linie nie powinny się przesuwać.
  • Czy nowy test jest sensowny? Powinien paść, jeśli ktoś później zepsuje funkcję — a nie tylko sprawdzać true.

Jeśli coś jest nie tak, poproś o poprawkę (rozdział 4). Jeśli jest dobrze, gotowe.


✅ Wypróbuj ze swoim agentem

Przejdź całą powyższą pętlę na serio. Potem, dla dodatkowych punktów, poproś agenta, aby ją rozszerzył:

  • „Spraw, aby endorse przyjmowało opcjonalne imię: lockedin endorse Ada powinno rekomendować konkretnie Adę. Dodaj test, utrzymaj bramkę zieloną.”

Zbudowałeś teraz funkcję od początku do końca. Ostatni rozdział dotyczy robienia tego płynnie — formułowania promptów i recenzowania jak inżynier prowadzący.

Dalej: Samouczek 4 Formułowanie promptów i recenzja

📘 LockedIn CLI wiki

Tutorial

Reference


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

Clone this wiki locally