-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task zh HK
🌎 語言: 繁體中文(香港) — 查看全部 33 種語言
目標: 通過指導智能體,端到端為 CLI 加入一個全新指令。我們將加入
lockedin endorse:它會為幾乎肯定不具備某項技能的陌生人背書。很符合品牌調性。
這是教程的核心。你將練習真正的循環:規格 → 測試 → 實作 → 綠色門禁 → 審查。
← 上一章:教程 2:程式碼如何工作 · 下一章: 教程 4:提示與審查
在提示智能體前,先用普通語言寫出規格。模糊請求只會得到模糊程式碼,無論執行者是人還是智能體。
endorse輸出 5–7 行,每行從既有NAMES池隨機選擇一個人,再從新的流行語 技能池隨機選擇一項進行背書。結尾是一句諷刺短句。它必須能通過lockedin endorse和會話內/endorse呼叫,並出現在help中。所有隨機性必須使用 帶種子的pick/shuffle助手,以保持確定性。npm test必須保持綠色,並新增至少一個 固定不變量的測試。
把這段交給智能體。它明確包含第 2 章的約束:帶種子的 RNG、測試門禁和不變量習慣。
先要求一份計劃,以便在檔案被改動前發現錯誤方向。
“我想為 LockedIn CLI 加入
endorse指令。規格如下:[paste your spec]。 先不要寫程式碼,請說明會修改哪些檔案及實作方法,等我批準。遵循connect指令的現有模式。”
好計劃應提到:在 src/lockedin.js 加入 SKILLS 池和 renderEndorse(),接入
dispatch() 與 handleSlash(),向 renderHelp() 加入一行,導出新函式和池,並在兩份測試檔案中
加入測試。如果遺漏帶種子 RNG 或測試,請立即指出。
讓智能體先寫測試,再寫實作。測試優先會把規格變成可執行內容,也讓智能體不能蒙混過關。
“很好。先只加入失敗測試:單元測試確認
renderEndorse()返回的文字提到一個已知技能, 且至少包含 5 項背書;cli.test.js測試確認lockedin endorse以 0 退出並輸出背書。 使用固定種子。暫時不要實作renderEndorse,先觀察測試按預期失敗。”
執行:
npm test確認它因正確原因失敗:函式還不存在。
現在批準實作:
“現在實作功能並讓測試通過。遵循
connect模式:加入約 25 項流行語技能的SKILLS池, 編寫傳回字串的renderEndorse(),接入dispatch和handleSlash,加入help行, 並導出新增內容。隨機性只能使用pick/shuffle。”
結果應與其余程式碼很相似,例如:
const SKILLS = [
'思想領導力', '協同', '講故事', '氛圍',
'戰略小睡', '持份者對齊', '激進坦誠', /* ...約 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。
npm test變綠了嗎?你剛剛用智能體以測試優先方式交付了一個功能。沒變綠也很正常:進入第 4 章的迭代循環, 把確切失敗資訊交給智能體。
隨後親自查看真實輸出:
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # 可重現不要接受未讀過的差異。重點檢查:
-
是否遵循模式? 新指令應仿照
connect,不增加相依性,不在src/中使用console.log。 -
是否只使用帶種子的 RNG? 搜索差異中的
Math.random,結果應為空。 - 是否觸碰無關內容? 改動應主要是增量式的,無關行不應移動。
-
新測試是否有意義? 日後功能被破壞時它必須失敗,而不是只斷言
true。
有問題就要求修復;沒有問題便完成。
實際完成上面的整個循環。額外練習:
- “讓
endorse接受可選姓名:lockedin endorse Ada應專門為 Ada 背書。 加入測試,並保持門禁綠色。”
你已經端到端構建了一個功能。下一章會講如何像技術負責人一樣順暢地提示和審查。
下一章:教程 4:提示與審查 o
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.