Skip to content

Tutorial 3 Your First Agent Task zh

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

教程 3 · 你的第一个智能体任务

🌎 语言: 简体中文查看全部 33 种语言

目标: 通过指导智能体,端到端为 CLI 添加一个全新命令。我们将加入 lockedin endorse:它会为几乎肯定不具备某项技能的陌生人背书。很符合品牌调性。

这是教程的核心。你将练习真正的循环:规格 → 测试 → 实现 → 绿色门禁 → 审查。

← 上一章:教程 2:代码如何工作 · 下一章: 教程 4:提示与审查


步骤 0 —— 先定义“完成”

在提示智能体前,先用普通语言写出规格。模糊请求只会得到模糊代码,无论执行者是人还是智能体。

endorse 打印 5–7 行,每行从既有 NAMES 池随机选择一个人,再从新的流行语 技能池随机选择一项进行背书。结尾是一句讽刺短句。它必须能通过 lockedin endorse 和会话内 /endorse 调用,并出现在 help 中。所有随机性必须使用 带种子的 pick / shuffle 助手,以保持确定性。npm test 必须保持绿色,并新增至少一个 固定不变量的测试。

把这段交给智能体。它明确包含第 2 章的约束:带种子的 RNG、测试门禁和不变量习惯。

步骤 1 —— 先让智能体规划,不要编码

先要求一份计划,以便在文件被改动前发现错误方向。

“我想为 LockedIn CLI 添加 endorse 命令。规格如下:[paste your spec]。 先不要写代码,请说明会修改哪些文件及实现方法,等我批准。遵循 connect 命令的现有模式。”

好计划应提到:在 src/lockedin.js 添加 SKILLS 池和 renderEndorse(),接入 dispatch()handleSlash(),向 renderHelp() 添加一行,导出新函数和池,并在两份测试文件中 添加测试。如果遗漏带种子 RNG 或测试,请立即指出。

步骤 2 —— 测试优先

让智能体先写测试,再写实现。测试优先会把规格变成可执行内容,也让智能体不能蒙混过关。

“很好。先只添加失败测试:单元测试确认 renderEndorse() 返回的文本提到一个已知技能, 且至少包含 5 项背书;cli.test.js 测试确认 lockedin endorse 以 0 退出并打印背书。 使用固定种子。暂时不要实现 renderEndorse,先观察测试按预期失败。”

运行:

npm test

确认它因正确原因失败:函数还不存在。

步骤 3 —— 让智能体实现

现在批准实现:

“现在实现功能并让测试通过。遵循 connect 模式:添加约 25 项流行语技能的 SKILLS 池, 编写返回字符串的 renderEndorse(),接入 dispatchhandleSlash,添加 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

步骤 4 —— 门禁

npm test

变绿了吗?你刚刚用智能体以测试优先方式交付了一个功能。没变绿也很正常:进入第 4 章的迭代循环, 把确切失败信息交给智能体。

随后亲自查看真实输出:

node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse   # 可重现

步骤 5 —— 接受前审查

不要接受未读过的差异。重点检查:

  • 是否遵循模式? 新命令应仿照 connect,不增加依赖,不在 src/ 中使用 console.log
  • 是否只使用带种子的 RNG? 搜索差异中的 Math.random,结果应为空。
  • 是否触碰无关内容? 改动应主要是增量式的,无关行不应移动。
  • 新测试是否有意义? 日后功能被破坏时它必须失败,而不是只断言 true

有问题就要求修复;没有问题便完成。


✅ 和你的智能体一起试试

实际完成上面的整个循环。额外练习:

  • “让 endorse 接受可选姓名:lockedin endorse Ada 应专门为 Ada 背书。 添加测试,并保持门禁绿色。”

你已经端到端构建了一个功能。下一章会讲如何像技术负责人一样顺畅地提示和审查。

下一章:教程 4:提示与审查

📘 LockedIn CLI wiki

Tutorial

Reference


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

Clone this wiki locally