Skip to content

Tutorial 3 Your First Agent Task fr

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

Tutoriel 3 · Votre première tâche avec l'agent

Objectif : ajouter une commande toute neuve à la CLI — de bout en bout — en dirigeant votre agent. Nous ajouterons lockedin endorse : elle recommande de parfaits inconnus pour des compétences qu'ils n'ont presque certainement pas. Dans le ton.

C'est le cœur du tutoriel. Vous pratiquerez la vraie boucle : spéc → tests → implémentation → barrière au vert → revue.

← Précédent : Tutoriel 2 Comment fonctionne le code · Suivant : Tutoriel 4 Prompting et revue


Étape 0 — Décidez à quoi ressemble « terminé »

Avant de rédiger le moindre prompt, écrivez vous-même la spéc en langage clair. Les demandes vagues donnent du code vague — d'un humain ou d'un agent.

endorse affiche 5 à 7 lignes, chacune recommandant une personne choisie au hasard (réutilisez le pool NAMES existant) pour une compétence jargonneuse choisie au hasard (un nouveau pool). Elle se termine par une pointe satirique. Elle doit être accessible en tant que lockedin endorse, en tant que /endorse dans la session, et apparaître dans help. Tout l'aléatoire doit utiliser les helpers à graine pick/shuffle pour que la sortie reste déterministe. npm test doit rester au vert, et il devrait y avoir un nouveau test qui fixe au moins un invariant.

Ce paragraphe est ce que vous confierez à l'agent. Remarquez qu'il nomme les contraintes du Chapitre 2 (RNG à graine, la barrière de tests, l'habitude des invariants).

Étape 1 — Demandez à l'agent de planifier, pas de coder

Commencez par demander un plan. C'est votre chance de repérer une mauvaise approche avant qu'aucun fichier ne change.

« Je veux ajouter une commande endorse à LockedIn CLI. Voici la spéc : [paste your spec]. Avant d'écrire du code, dis-moi quels fichiers tu vas modifier et ton approche, pour que je puisse l'approuver. Suis les patrons existants pour une commande comme connect. »

Un bon plan mentionne : un nouveau pool SKILLS + un renderEndorse() dans src/lockedin.js, son branchement dans dispatch() et handleSlash(), l'ajout d'une ligne à renderHelp(), l'export de la nouvelle fonction/du nouveau pool, et l'ajout de tests dans les deux fichiers de test. Si le plan oublie la règle du RNG à graine ou les tests, dites-le maintenant.

Étape 2 — Les tests d'abord

Demandez à l'agent d'écrire les tests avant l'implémentation. Les tests d'abord transforment votre spéc en quelque chose d'exécutable, et gardent l'agent honnête.

« Parfait. D'abord, ajoute uniquement des tests qui échouent : un test unitaire montrant que renderEndorse() renvoie du texte mentionnant une compétence connue et au moins 5 recommandations, et un test cli.test.js montrant que lockedin endorse sort avec 0 et affiche une recommandation. Utilise une graine fixe. N'implémente pas encore renderEndorse — voyons d'abord les tests échouer. »

Exécutez-les et regardez-les échouer pour la bonne raison (la fonction n'existe pas encore) :

npm test

Étape 3 — Laissez l'agent implémenter

Donnez maintenant le feu vert à l'implémentation :

« Maintenant, implémente-la pour faire passer ces tests, en suivant le patron de connect. Ajoute un pool SKILLS d'environ 25 compétences jargonneuses, un renderEndorse() qui renvoie une chaîne, branche dispatch et handleSlash, ajoute une ligne à help, et exporte ce que tu as ajouté. N'utilise que pick/shuffle pour l'aléatoire. »

Ce que l'agent produit devrait beaucoup ressembler au reste du fichier. Par exemple, un pool SKILLS et un moteur de rendu :

const SKILLS = [
  'Leadership éclairé', 'Synergie', 'Vibes', 'Blockchain (en théorie)',
  'Modestie performative', 'Revenir sur le sujet', 'Aura Farming', /* ...~25 au 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('  ✔ Recommandé ' + n + ' pour ' + skills[i % skills.length]));
  out.push('', '  Vous avez recommandé 6 inconnus pour des compétences que vous ne pouvez pas vérifier. Ils vous recommanderont en retour dans l’heure.');
  return out.join('\n');
}

…plus une ligne dans dispatch() et dans handleSlash(), une ligne dans renderHelp(), et SKILLS, renderEndorse ajoutés à module.exports.

Étape 4 — La barrière

npm test

Au vert ? Vous venez de livrer une fonctionnalité avec un agent, les tests d'abord. Pas au vert ? C'est normal — allez à la boucle d'itération du Chapitre 4 et dites à l'agent exactement ce qui a échoué.

Ensuite, jetez un œil à la vraie chose (les tests vérifient le texte, mais vous devriez tout de même regarder) :

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

Étape 5 — Passez en revue avant d'accepter

N'acceptez jamais un diff que vous n'avez pas lu. Survolez spécifiquement ces points :

  • A-t-il suivi le patron ? La nouvelle commande devrait refléter connect — pas de nouvelles dépendances, pas de console.log dans src/.
  • Uniquement le RNG à graine ? Cherchez Math.random dans le diff. Il ne devrait y en avoir aucun.
  • A-t-il touché quelque chose qu'il ne devrait pas ? Le changement devrait être additif ; les lignes sans rapport ne devraient pas bouger.
  • Le nouveau test est-il significatif ? Il devrait échouer si quelqu'un casse plus tard la fonctionnalité — pas seulement affirmer true.

Si quelque chose cloche, demandez une correction (Chapitre 4). Si c'est bon, vous avez terminé.


✅ Essayez avec votre agent

Faites toute la boucle ci-dessus pour de vrai. Ensuite, en bonus, demandez à l'agent de l'étendre :

  • « Fais en sorte que endorse accepte un nom optionnel : lockedin endorse Ada devrait recommander Ada spécifiquement. Ajoute un test, garde la barrière au vert. »

Vous avez maintenant construit une fonctionnalité de bout en bout. Le dernier chapitre porte sur la façon de le faire sans accroc — rédiger des prompts et passer en revue comme un ingénieur lead.

Suivant : Tutoriel 4 Prompting et revue

📘 LockedIn CLI wiki

Tutorial

Reference


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

Clone this wiki locally