Skip to content

Tutorial 3 Your First Agent Task el

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

Μάθημα 3 · Η πρώτη σου εργασία με πράκτορα

Στόχος: πρόσθεσε μια ολοκαίνουργια εντολή στο CLI — από άκρη σε άκρη — καθοδηγώντας τον πράκτορά σου. Θα προσθέσουμε το lockedin endorse: υποστηρίζει εντελώς αγνώστους για δεξιότητες που σχεδόν σίγουρα δεν έχουν. Πάνω στο brand.

Αυτή είναι η καρδιά του μαθήματος. Θα εξασκηθείς στον πραγματικό βρόχο: προδιαγραφή → tests → υλοποίηση → πράσινη πύλη → έλεγχος.

← Προηγούμενο: Μάθημα 2 Πώς λειτουργεί ο κώδικας · Επόμενο: Μάθημα 4 Prompting και έλεγχος


Βήμα 0 — Αποφάσισε πώς μοιάζει το «ολοκληρωμένο»

Πριν κάνεις οποιοδήποτε prompt, γράψε την προδιαγραφή μόνος/η σου σε απλή γλώσσα. Τα ασαφή αιτήματα παίρνουν ασαφή κώδικα — από άνθρωπο ή από πράκτορα.

Το endorse τυπώνει 5–7 γραμμές, καθεμία υποστηρίζοντας ένα τυχαία επιλεγμένο άτομο (επαναχρησιμοποίησε το υπάρχον pool NAMES) για μια τυχαία επιλεγμένη buzzword δεξιότητα (ένα νέο pool). Τελειώνει με μια σατιρική μονόγραμμη ατάκα. Πρέπει να είναι προσβάσιμο ως lockedin endorse, ως το εντός-συνεδρίας /endorse, και να εμφανίζεται στο help. Όλη η τυχαιότητα πρέπει να χρησιμοποιεί τους βοηθούς pick/shuffle με seed ώστε η έξοδος να μένει ντετερμινιστική. Το npm test πρέπει να μένει πράσινο, και θα πρέπει να υπάρχει ένα νέο test που καθηλώνει τουλάχιστον ένα αναλλοίωτο.

Αυτή η παράγραφος είναι αυτό που θα δώσεις στον πράκτορα. Πρόσεξε ότι κατονομάζει τους περιορισμούς από το Κεφάλαιο 2 (γεννήτρια με seed, η πύλη ελέγχου, η συνήθεια των αναλλοίωτων).

Βήμα 1 — Ζήτα από τον πράκτορα να σχεδιάσει, όχι να κωδικοποιήσει

Ξεκίνα ζητώντας ένα πλάνο. Αυτή είναι η ευκαιρία σου να πιάσεις μια κακή προσέγγιση πριν αλλάξει οποιοδήποτε αρχείο.

«Θέλω να προσθέσω μια εντολή endorse στο LockedIn CLI. Εδώ είναι η προδιαγραφή: [paste your spec]. Πριν γράψεις κώδικα, πες μου ποια αρχεία θα αλλάξεις και την προσέγγισή σου, για να την εγκρίνω. Ακολούθησε τα υπάρχοντα μοτίβα για μια εντολή σαν το connect

Ένα καλό πλάνο αναφέρει: ένα νέο pool SKILLS + μια renderEndorse() στο src/lockedin.js, τη σύνδεσή της στο dispatch() και στο handleSlash(), την προσθήκη μιας γραμμής στο renderHelp(), την εξαγωγή της νέας συνάρτησης/pool, και την προσθήκη tests και στα δύο αρχεία test. Αν το πλάνο χάνει τον κανόνα της γεννήτριας με seed ή τα tests, πες το τώρα.

Βήμα 2 — Tests πρώτα

Ζήτα από τον πράκτορα να γράψει τα tests πριν την υλοποίηση. Τα tests-πρώτα μετατρέπουν την προδιαγραφή σου σε κάτι εκτελέσιμο, και κρατούν τον πράκτορα έντιμο.

«Ωραία. Πρώτα, πρόσθεσε μόνο tests που αποτυγχάνουν: ένα unit test ότι η renderEndorse() επιστρέφει κείμενο που αναφέρει μια γνωστή δεξιότητα και τουλάχιστον 5 endorsements, και ένα test cli.test.js ότι το lockedin endorse βγαίνει με 0 και τυπώνει ένα endorsement. Χρησιμοποίησε ένα σταθερό seed. Μην υλοποιήσεις ακόμα την renderEndorse — ας δούμε πρώτα τα tests να αποτυγχάνουν.»

Τρέξε τα και δες τα να αποτυγχάνουν για τον σωστό λόγο (η συνάρτηση δεν υπάρχει ακόμα):

npm test

Βήμα 3 — Άσε τον πράκτορα να υλοποιήσει

Τώρα δώσε το πράσινο φως στην υλοποίηση:

«Τώρα υλοποίησέ το ώστε να περνούν αυτά τα tests, ακολουθώντας το μοτίβο του connect. Πρόσθεσε ένα pool SKILLS με ~25 buzzword δεξιότητες, μια renderEndorse() που επιστρέφει ένα string, σύνδεσε το dispatch και το handleSlash, πρόσθεσε μια γραμμή help, και εξήγαγε ό,τι πρόσθεσες. Χρησιμοποίησε μόνο pick/shuffle για την τυχαιότητα.»

Αυτό που παράγει ο πράκτορας θα πρέπει να μοιάζει πολύ με το υπόλοιπο αρχείο. Για παράδειγμα, ένα pool SKILLS και μια γεννήτρια:

const SKILLS = [
  'Thought Leadership', 'Συνέργεια', 'Storytelling', 'Vibes',
  'Στρατηγικός υπνάκος', 'Ευθυγράμμιση stakeholders', 'Ριζική ειλικρίνεια', /* ...~25 συνολικά... */
];

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('  ✔ Υποστήριξες τον/την ' + n + ' για ' + skills[i % skills.length]));
  out.push('', '  Υποστήριξες 6 αγνώστους για δεξιότητες που δεν μπορείς να επαληθεύσεις. Θα σε υποστηρίξουν κι εκείνοι μέσα στην ώρα.');
  return out.join('\n');
}

…συν μία γραμμή σε καθένα από τα dispatch() και handleSlash(), μια γραμμή στο renderHelp(), και SKILLS, renderEndorse προστεθειμένα στο module.exports.

Βήμα 4 — Η πύλη

npm test

Πράσινο; Μόλις δημοσίευσες ένα χαρακτηριστικό με πράκτορα, tests-πρώτα. Όχι πράσινο; Αυτό είναι φυσιολογικό — πήγαινε στον βρόχο επανάληψης του Κεφαλαίου 4 και πες στον πράκτορα ακριβώς τι απέτυχε.

Μετά κοίτα με το μάτι το πραγματικό πράγμα (τα tests ελέγχουν το κείμενο, αλλά πρέπει και να κοιτάξεις):

node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse   # αναπαραγώγιμο

Βήμα 5 — Έλεγξε πριν αποδεχτείς

Ποτέ μην αποδέχεσαι ένα diff που δεν έχεις διαβάσει. Ξεφύλλισε ειδικά γι' αυτά:

  • Ακολούθησε το μοτίβο; Η νέα εντολή θα πρέπει να καθρεφτίζει το connect — καμία νέα εξάρτηση, κανένα console.log μέσα στο src/.
  • Μόνο γεννήτρια με seed; Ψάξε στο diff για Math.random. Δεν θα πρέπει να υπάρχει κανένα.
  • Άγγιξε κάτι που δεν έπρεπε; Η αλλαγή θα πρέπει να είναι προσθετική· άσχετες γραμμές δεν θα πρέπει να μετακινούνται.
  • Είναι το νέο test ουσιαστικό; Θα πρέπει να αποτυγχάνει αν κάποιος αργότερα σπάσει το χαρακτηριστικό — όχι απλώς να διαβεβαιώνει true.

Αν κάτι δεν πάει καλά, ζήτα μια διόρθωση (Κεφάλαιο 4). Αν είναι καλό, τελείωσες.


✅ Δοκίμασέ το με τον πράκτορά σου

Κάνε ολόκληρο τον παραπάνω βρόχο για τα αληθινά. Μετά, για επιπλέον πόντους, ζήτα από τον πράκτορα να το επεκτείνει:

  • «Κάνε το endorse να δέχεται ένα προαιρετικό όνομα: το lockedin endorse Ada θα πρέπει να υποστηρίζει συγκεκριμένα την Ada. Πρόσθεσε ένα test, κράτα την πύλη πράσινη.»

Έχτισες τώρα ένα χαρακτηριστικό από άκρη σε άκρη. Το τελευταίο κεφάλαιο αφορά το να το κάνεις αυτό ομαλά — prompting και έλεγχος σαν επικεφαλής μηχανικός.

Επόμενο: Μάθημα 4 Prompting και έλεγχος

📘 LockedIn CLI wiki

Tutorial

Reference


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

Clone this wiki locally