-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task tl
🌎 Wika: Tagalog (tl) — tingnan ang lahat ng 33 wika
Layunin: magdagdag ng bagong command sa CLI — end to end — sa pamamagitan
ng pagdidirekta sa iyong ahente. Idaragdag natin ang lockedin endorse:
mag-eendorso ito ng mga estranghero para sa mga kasanayang halos tiyak na wala
sila. Akmang-akma sa brand.
Ito ang puso ng tutorial. Sasanayin mo ang totoong loop: spec → tests → implementation → green gate → review.
← Nakaraan: Tutorial 2 Paano Gumagana ang Code · Susunod: Tutorial 4 Prompting and Reviewing
Bago ka mag-prompt ng anuman, isulat mo ang spec sa simpleng wika. Ang mga hindi malinaw na kahilingan ay nakakakuha ng malabong code — mula sa isang tao o isang ahente.
Ang
endorseay nagpi-print ng 5–7 linya. Bawat linya ay nag-eendorso ng random na piniling tao (muling gamitin ang kasalukuyangNAMESpool) para sa random na piniling buzzword na kasanayan (isang bagong pool). Nagtatapos ito sa isang satirical one-liner. Dapat itong maabot bilanglockedin endorse, bilang/endorsesa session, at lumitaw sahelp. Dapat gamitin ng lahat ng randomness ang seeded napick/shufflehelper upang manatiling deterministic ang output. Dapat manatiling berde angnpm test, at dapat may bagong test na nagtatakda ng kahit isang invariant.
Ang talatang iyon ay ang bagay na ibibigay mo sa ahente. Pansinin na pinangalanan nito ang mga hadlang mula sa Kabanata 2 (seeded RNG, ang test gate, ang invariants habit).
Magsimula sa paghingi ng plano. Ito ang pagkakataon mong mahuli ang masamang diskarte bago mabago ang anumang file.
"Gusto kong magdagdag ng command na
endorsesa LockedIn CLI. Narito ang spec: [paste your spec]. Bago magsulat ng code, sabihin sa akin kung aling mga file ang babaguhin mo at ano ang diskarte mo, para maaprubahan ko ito. Sundin ang kasalukuyang pattern ng command na tulad ngconnect."
Binabanggit ng magandang plano ang bagong SKILLS pool at renderEndorse() sa
src/lockedin.js, ang pagkakabit nito sa dispatch() at handleSlash(), ang
pagdaragdag ng row sa renderHelp(), ang pag-export ng bagong function/pool, at
ang pagdaragdag ng mga test sa dalawang test file. Kung nalaktawan ng plano ang
seeded-RNG rule o mga test, sabihin agad.
Hilingin sa ahente na isulat ang mga pagsubok bago ang pagpapatupad. Ang mga pagsubok-unang ginagawa ang iyong spec sa isang bagay na maipapatupad, at pinapanatili nitong tapat ang ahente.
"Mahusay. Una, magdagdag lamang ng mga test na mabibigo: isang unit test na nagsasabing ang
renderEndorse()ay nagbabalik ng text na bumabanggit ng kilalang kasanayan at hindi bababa sa 5 endorsement, at isangcli.test.jstest na nagsasabing anglockedin endorseay lumalabas na may code 0 at nagpi-print ng endorsement. Gumamit ng fixed seed. Huwag munang ipatupad angrenderEndorse— tingnan muna nating mabigo ang mga test."
Patakbuhin ang mga ito at panoorin silang nabigo para sa tama na dahilan (wala pa ang function):
npm testNgayon green-light ang pagpapatupad:
"Ngayon, ipatupad ito upang pumasa ang mga test, ayon sa pattern ng
connect. Magdagdag ngSKILLSpool na may humigit-kumulang 25 buzzword na kasanayan,renderEndorse()na nagbabalik ng string, ikabit ito sadispatchathandleSlash, magdagdag nghelprow, at i-export ang idinagdag mo. Gumamit lamang ngpick/shufflepara sa randomness."
Ang ginawa ng ahente ay dapat na katulad ng iba pang file. Halimbawa, a SKILLS pool at isang renderer:
const SKILLS = [
'Thought Leadership', 'Synergy', 'Storytelling', 'Vibes',
'Strategic Siesta', 'Stakeholder Alignment', 'Radical Candor', /* ...~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(' ✔ Inendorso si ' + n + ' para sa ' + skills[i % skills.length]));
out.push('', ' Nag-endorso ka ng 6 na estranghero para sa mga kasanayang hindi mo mabe-verify. I-eendorso ka rin nila sa loob ng isang oras.');
return out.join('\n');
}…may kasama pang isang linya bawat isa dispatch() at handleSlash(), isang hilera sa renderHelp(), at SKILLS, renderEndorse idinagdag sa module.exports.
npm testBerde? Nagpadala ka lang ng feature na may ahente, test-first. Hindi berde? Iyan ay normal — pumunta sa pag-ulit ng Kabanata 4 at sabihin sa ahente kung ano mismo ang nabigo.
Pagkatapos ay tingnan mismo ang totoong output (sinusuri ng mga test ang text, ngunit dapat mo pa rin itong tingnan):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # reproducibleHuwag kailanman tumanggap ng diff na hindi mo nabasa. Skim para sa mga ito partikular na:
-
Sinundan ba nito ang pattern? Dapat mag-mirror ang bagong command
connect— walang bagong dependencies, hindiconsole.logsa loobsrc/. -
Seeded RNG lang? Hanapin ang diff para sa
Math.random. Dapat wala. - Nahawakan ba nito ang anumang hindi dapat? Ang pagbabago ay dapat na additive; hindi dapat gumalaw ang mga hindi nauugnay na linya.
-
Makahulugan ba ang bagong test? Dapat itong mabigo kung masira ang feature
sa hinaharap — hindi lang mag-assert ng
true.
Kung may mali, humingi ng pag-aayos (Kabanata 4). Kung ito ay mabuti, tapos ka na.
Gawin ang buong loop sa itaas para sa tunay. Pagkatapos, para sa karagdagang kredito, hilingin sa ahente na palawigin ito:
- "Gumawa
endorsetumanggap ng opsyonal na pangalan:lockedin endorse Adadapat i-endorse si Ada partikular. Magdagdag ng pagsubok, panatilihing berde ang gate."
Nakagawa ka na ngayon ng isang tampok na end-to-end. Ang huling kabanata ay tungkol sa paggawa nito nang maayos — pag-udyok at pagre-review tulad ng isang lead engineer.
Susunod: Tutorial 4 Prompting and Reviewing
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.