-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task de
🌎 Sprache: Deutsch — alle 33 Sprachen ansehen
Ziel: füge der CLI einen komplett neuen Command hinzu — von Anfang bis Ende — indem du deinen Agenten steuerst. Wir fügen lockedin endorse hinzu: Es bestätigt völlig Fremden Fähigkeiten, die sie mit ziemlicher Sicherheit nicht haben. Passt perfekt zur Marke.
Das ist das Herzstück des Tutorials. Du übst den echten Loop: Spezifikation → Tests → Implementierung → grünes Test-Gate → Review.
← Zurück: Tutorial 2 So funktioniert der Code · Weiter: Tutorial 4 Prompts formulieren und prüfen
Bevor du irgendetwas promptest, schreib die Spezifikation selbst in normaler Sprache auf. Vage Anfragen liefern vagen Code — von Menschen oder Agenten.
endorsegibt 5–7 Zeilen aus, von denen jede eine zufällig ausgewählte Person (verwende den vorhandenenNAMES-Pool wieder) für eine zufällig ausgewählte Buzzword-Fähigkeit bestätigt (ein neuer Pool). Am Ende steht ein satirischer One-Liner. Der Command muss alslockedin endorse, als das In-Session-/endorseund inhelperreichbar sein. Jede Zufälligkeit muss die Helperpick/shufflemit Seed verwenden, damit die Ausgabe deterministisch bleibt.npm testmuss grün bleiben, und es soll einen neuen Test geben, der mindestens eine Invariante festhält.
Diesen Absatz gibst du dem Agenten. Achte darauf, dass er die Einschränkungen aus Kapitel 2 benennt (RNG mit Seed, das Test-Gate, die Gewohnheit mit Invarianten).
Fang damit an, nach einem Plan zu fragen. Das ist deine Chance, einen schlechten Ansatz zu erwischen, bevor Dateien verändert werden.
„Ich möchte LockedIn CLI einen
endorse-Command hinzufügen. Hier ist die Spezifikation: [paste your spec]. Bevor du Code schreibst, sag mir, welche Dateien du ändern wirst und wie du vorgehen willst, damit ich es freigeben kann. Folge den vorhandenen Mustern für einen Command wieconnect.“
Ein guter Plan erwähnt: einen neuen SKILLS-Pool + ein renderEndorse() in src/lockedin.js, das Verdrahten in dispatch() und handleSlash(), eine Zeile in renderHelp(), den Export der neuen Funktion bzw. des neuen Pools und Tests in beiden Testdateien. Wenn im Plan die Regel mit dem RNG oder die Tests fehlen, sag es sofort.
Bitte den Agenten, die Tests vor der Implementierung zu schreiben. Tests zuerst machen deine Spezifikation ausführbar und halten den Agenten ehrlich.
„Super. Füge zuerst nur fehlschlagende Tests hinzu: einen Unit-Test dafür, dass
renderEndorse()Text zurückgibt, der eine bekannte Fähigkeit und mindestens 5 Bestätigungen erwähnt, und einen Test incli.test.js, dasslockedin endorsemit Exit-Code 0 endet und eine Bestätigung ausgibt. Verwende einen festen Seed. ImplementiererenderEndorsenoch nicht — wir wollen zuerst sehen, dass die Tests aus dem richtigen Grund fehlschlagen.“
Führe sie aus und sieh zu, dass sie aus dem richtigen Grund scheitern (die Funktion existiert noch nicht):
npm testGib jetzt grünes Licht für die Implementierung:
„Implementiere es jetzt so, dass diese Tests bestehen, und orientiere dich am Muster von
connect. Füge einenSKILLS-Pool mit ~25 Buzzword-Fähigkeiten hinzu, einrenderEndorse(), das einen String zurückgibt, verdrahtedispatchundhandleSlash, füge eine Zeile inhelphinzu und exportiere alles, was du ergänzt hast. Verwende für Zufälligkeit nurpick/shuffle.“
Was der Agent erzeugt, sollte dem Rest der Datei sehr ähnlich sehen. Zum Beispiel ein SKILLS-Pool und ein Renderer:
const SKILLS = [
'Thought Leadership', 'Synergie', 'Vibes', 'Blockchain (konzeptionell)',
'Bescheidenheit performen', 'Zurückschleifen', 'Aura-Farming', /* ...~25 insgesamt... */
];
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(' ✔ Hat ' + n + ' für ' + skills[i % skills.length] + ' bestätigt'));
out.push('', ' Du hast 6 Fremde für Fähigkeiten bestätigt, die du nicht überprüfen kannst. Sie bestätigen dich innerhalb einer Stunde zurück.');
return out.join('\n');
}…plus jeweils eine Zeile in dispatch() und handleSlash(), eine Zeile in renderHelp() und SKILLS, renderEndorse in module.exports.
npm testGrün? Du hast gerade test-first ein Feature mit einem Agenten ausgeliefert. Nicht grün? Das ist normal — geh zum Iterations-Loop aus Kapitel 4 und sag dem Agenten genau, was fehlgeschlagen ist.
Schau dir danach das echte Ergebnis an (Tests prüfen Text, aber du solltest trotzdem hinsehen):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # reproduzierbarAkzeptiere niemals einen Diff, den du nicht gelesen hast. Achte besonders auf diese Punkte:
-
Hat es dem Muster entsprochen? Der neue Command sollte
connectspiegeln — keine neuen Abhängigkeiten, keinconsole.loginnerhalb vonsrc/. -
Nur RNG mit Seed? Suche im Diff nach
Math.random. Es sollte keins geben. - Hat es etwas angefasst, das es nicht anfassen sollte? Die Änderung sollte additiv sein; nicht zusammenhängende Zeilen sollten sich nicht bewegen.
-
Ist der neue Test aussagekräftig? Er sollte scheitern, wenn jemand das Feature später kaputtmacht — nicht nur
trueprüfen.
Wenn etwas schief ist, verlang eine Korrektur (Kapitel 4). Wenn alles gut aussieht, bist du fertig.
Mach den kompletten Loop oben einmal wirklich. Und wenn du noch eins draufsetzen willst, lass den Agenten es erweitern:
- „Lass
endorseoptional einen Namen annehmen:lockedin endorse Adasoll Ada gezielt bestätigen. Füge einen Test hinzu und halte das Gate grün.“
Du hast jetzt ein Feature End-to-End gebaut. Im letzten Kapitel geht es darum, das reibungslos zu tun — Prompts zu formulieren und zu reviewen wie ein Lead Engineer.
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.