先把需求说清楚
这节课照着开发者平时的做法,做一个小应用。
眼下的想法只有一句话。这时候直接说“做出来”,空着的地方智能体只能全靠猜。先聊清楚,再把说定的事情写下来。
也可以用 plan 模式(shift+tab)先聊,这个模式下智能体改不了文件。这个实验换个办法:让它先来问你,效果是一样的。
动手
-
点输入,再按 Enter。智能体会在终端里问你三个问题。要是它没问,就再说一遍:
问我 3 个简短的问题。 -
回答完,让它写
requirements.md。讲清楚哪些要做、哪些不做,比如:能添加待办、勾选完成、删除,并把清单保存在浏览器的 localStorage 里。暂时不要登录,也不要同步。写一个 requirements.md,分两节:Must have 和 Not now。
-
看看差异。登录放在 Not now 下面了吗?如果和你想的不一样,选 No,换个更直白的说法再讲一遍。
把设计定下来
做什么已经谈好了。写代码之前,再把怎么做定下来。
智能体会照着 design.md 写代码,这里错了,代码也会跟着错。
动手
-
点输入,再按 Enter。智能体会读
requirements.md,写出design.md。看完差异,选 Yes。 -
拿它和
requirements.md对一对。Must have 都写进去了吗?清单是存在localStorage里吗?有没有混进 Not now 里的东西? -
不对的地方都放进一条消息里,一起说。小模型常常把脚本叫作
script.js、忘了localStorage,或者加上你没提过的功能:在 design.md 里:把脚本叫作 app.js,在 Data 里写明清单保存在 localStorage 里,并删掉 Clear All,requirements.md 里没有它。
-
再看新的差异。要是漏了哪一点,就单把那一点再说一遍。
照着设计写代码
该写代码了。这次智能体照着 design.md 写,不用再猜。写好之后,和开发者平时一样,先跑起来看看。
动手
- 点输入,再按 Enter。
- 看第一份差异
index.html。和设计对得上,就选 Yes, allow all edits。如果智能体写完一个文件就停了,让它接着写:现在根据 design.md 写 style.css 和 app.js。 - 点运行。添加两条待办,勾选一条,删掉一条。再点一次运行,清单应该还在。
- 哪里不对劲,就告诉智能体你看到了什么,别直接指挥它怎么改:
点运行后,我的待办都没了。
腾出空间
智能体读过的文件、给过的回复,都会留在上下文里。上下文很小,聊几轮就满了,一满,回答就会变差。
有两个命令可以腾出空间,都不会动你的文件。
| 命令 | 保留 | 什么时候用 |
|---|---|---|
/compact 保留 … |
一段简短摘要,包含你点名的内容 | 同一个任务还要接着做 |
/clear |
什么都不留 | 开始新任务 |
这里的任务还要接着做,所以用 compact。
动手
- 点输入,再按 Enter。智能体会先读
app.js和index.html,再修改它们。每份差异都看一看。 - 点运行,添加两条待办并勾选一条。页面上显示
1 left了吗? - 在终端里敲
/context。现在大部分空间都被对话占着。 - 敲
/compact 保留设计决定,再看一次/context,小了很多。 - 问一句
列表保存在哪里?,它应该还记得:在app.js里用localStorage保存。如果答不上来,说明摘要把这条丢了,下次在 /compact 后面写明。
如果你没要求,终端里却出现了 Conversation compacted,那是智能体自己腾出了空间,同样算数。
修复编译错误
app.js 里少了一个字符,浏览器连脚本都读不懂,在编译这一步就失败了,代码一行也跑不起来。
该看哪里,报错已经告诉你了。别去猜怎么修,把报错交给智能体就好。
动手
- 点运行。页面出来了,可点 Add 没反应。终端里有一行红字报错,写着文件、行号和浏览器原本期待的内容。
- 点输入,再按 Enter,这条报错会连同文件名原样发出去。
- 看看差异,应该只改了一行。如果改得更多,选 No,让它只改那一行。
- 再点一次运行,添加一条待办。
排查 bug
这次不报错,页面也能跑,就是有个功能不对劲。这就是 bug,没有行号可贴。
先自己用一用,把问题找出来,再跟智能体讲清楚:
| 项目 | 例子 |
|---|---|
| 做了什么 | 添加了三条待办,点了 … |
| 想要的结果 | … |
| 实际结果 | … |
动手
- 点运行,添加三条待办。勾选一条,删掉一条,再点一次运行。是哪一步出了问题?
- 点输入,把三个空填上:你做了什么、实际怎么样、想要什么结果。
- 如果智能体一个文件接一个文件地读,读完却停下了,就告诉它 bug 在哪个函数里,帮它缩小范围。能做到这一步,排查就成功了一半。
- 看看差异,好的修复往往改得很少。点运行,按同样的步骤再试一遍。
这里用的模型(Qwen3.5-4B)比较小,最擅长英文,用中文更容易出错。如果回答不对劲,可以改用英文试试。
正在播放录制的会话。只有你在「动手」里完成的操作才计入目标。