跳到正文
码上手 coding.chengyu.dev

和智能体沟通的 6 个习惯

同一个智能体,有人用得顺手,有人天天返工,差别多半在沟通方式。这一课用「差的说法 vs 好的说法」对比,讲清六个能立刻用上的习惯。

约 25 分钟 入门 通用Claude Code 核实于 2026-10-25

学完这一课,你能

  • 能把模糊的想法改写成带验收标准的任务描述
  • 能给出恰当的约束和上下文,而不是让智能体猜
  • 知道什么时候该让它先出计划,什么时候可以直接动手
  • 能用「先读再改」「小步迭代」和「要求验证」减少返工

做完番茄钟你可能已经发现:智能体既不是搜索框,也不是会读心的助手。它更像一位能力很强、但刚入职、对你的项目一无所知的同事。你交代得越清楚,它交付得越准。

好消息是,这些沟通技巧不玄学,总结起来就是六个习惯。每个习惯我都配上「差的说法」和「好的说法」的对比,你可以直接模仿。

习惯 1:说目标,也说验收标准

「改好看一点」「优化一下」「修个 bug」,这些话的问题在于:它不知道怎样算做完,你也不知道。 于是它改完说「已完成」,你一看不对,来回拉扯。

差的说法:

把番茄钟优化一下

好的说法:

番茄钟现在在手机上按钮太小,不好点。目标:在 375 像素宽的屏幕上,
三个按钮每个至少 44 像素高,并且一行排得下、不换行、不溢出。
改完后用浏览器的手机模拟模式检查并告诉我结果。

好的说法里有三个要素:现状(哪里不好)、目标(改成什么样)、验收(怎么证明)。 当你实在不知道验收标准是什么,可以反过来问它:「你觉得怎样验证这个改动是对的?」

习惯 2:给约束和上下文

约束是「不要做什么、必须遵守什么」,上下文是「它不知道但需要知道的背景」。智能体能读你的文件,但读不到你的脑子。

差的说法:

加一个计数功能

好的说法:

在 @app.js 里加一个「今日完成番茄数」的计数,显示在 @index.html 的倒计时下方。
约束:
- 继续只用原生 JS,不引入任何库;
- 数字存在浏览器的 localStorage 里,刷新页面不丢;
- 每天零点之后重新从 0 开始;
- 不要改动现有计时逻辑。

几个技巧:

  • 在 Claude Code 里输入 @ 加文件名,可以直接把那个文件放进对话,省得它去找;
  • 有截图(报错、设计稿)直接拖进终端窗口,一图胜千言;
  • 报错信息要原文贴,不要转述成「好像是数据的问题」;
  • 经常重复的约束(比如「所有注释用中文」「不要引入新依赖」),别每次都说,写进项目的说明文件 CLAUDE.md,它每次启动都会读。具体怎么写,见CLAUDE.md 与记忆一课。

习惯 3:先计划,后动手

上一课你已经试过了。这里补充什么时候该计划,什么时候别计划。

官方的最佳实践文档给了一个很实用的判断:如果你能用一句话描述这次改动的差异,就别折腾计划,直接让它做。 改错别字、重命名一个变量、加一行日志,直接说。

需要先计划的场景:

  • 改动会涉及多个文件;
  • 你对做法没把握(该用什么方案);
  • 你不熟悉它要动的那部分代码。

差的说法:

给我的网站加上用户登录

好的说法:

我想给网站加用户登录。先不要写代码,请先:
1. 读一下现有的项目结构;
2. 列出你推荐的 2 种做法,各自的优缺点和对项目的改动范围;
3. 推荐一种,并说明需要我提供什么信息。
等我选定后再开始。

实操上,按 Shift + Tab 切换到计划模式(状态栏显示 plan mode),它只读不改,直到你批准计划。

习惯 4:小步迭代

一次交给它一个大任务,出错的位置就藏在大量改动里,你很难审阅,也很难回退。把任务拆成每一步都能独立验证的小块,每块做完检查、保存,再做下一块。

差的说法:

给我做一个带用户系统、文章发布、评论和后台管理的博客

好的说法:

我们分步做一个博客。第一步:只做首页,显示三篇写死在代码里的示例文章标题和摘要。
不要做登录、评论、数据库。做完我在浏览器里看一眼,没问题再说下一步。

小步迭代有个附加好处:当你发现它走偏时,成本很低。官方建议尽早纠偏:看到它开始往错误方向走,立刻按 Esc 打断,保留已做的工作再改口。

还有一条经验规则:如果同一个问题你已经纠正了两次还没改对,别继续在这段对话里修补。 输入 /clear 清空对话,把你学到的教训写进一条更具体的新提示词,重新开始。对话里堆满失败的尝试,反而会干扰它。

习惯 5:让它先读,再改

智能体最危险的状态是「凭印象写代码」。它没读你的文件就动手,会重复造轮子、风格不一致,甚至覆盖你已有的东西。

差的说法:

给番茄钟加一个提示音

好的说法:

给番茄钟加提示音。动手前先读 @app.js,告诉我现在的计时结束时在哪里切换阶段,
以及项目里是否已经有任何声音相关的代码。然后说明你准备把提示音加在哪个函数里,
等我确认再改。

「先读再改」还有一个用法:让它参照现有的写法。 比如「看一下现有按钮是怎么写的,新加的按钮保持同样的风格」。这能让新增内容和旧代码长得一致,减少你后续整理的工作。

如果它根本不需要读文件(比如只是问概念),可以反过来用:「不要读任何文件,只凭你的知识回答」,省时间。

习惯 6:要求它验证

这是六个习惯里最重要的一个。官方最佳实践里的说法很直接:给它一个可以运行的检查,是「你得盯着看」和「你可以放手」的区别。没有检查,它判断完成的唯一依据就是「看起来差不多」,你就成了那个验证环节。

差的说法:

修复倒计时显示错误的问题

好的说法:

倒计时在 1 分钟以内会显示成 0:5 而不是 00:05。请:
1. 先复现这个问题,说明是哪里导致的;
2. 修复;
3. 验证修复结果:把格式化函数在这些输入下的输出列给我看,
   59 秒、60 秒、61 秒、0 秒、1500 秒,预期分别是 00:59、01:00、01:01、00:00、25:00;
4. 展示验证的证据(运行输出),不要只说「已修复」。

验证的形式因任务而异:

任务类型 可以让它做的验证
纯逻辑(计算、格式化) 写几个测试用例并运行,列出输入和输出
页面改动 说明在浏览器里点哪些地方、应该看到什么;有条件的话截图对比
修 bug 先复现,再修,再证明不再复现
重构 改前改后跑同一组测试,结果一致

养成一个习惯:让它交出证据,而不是结论。 看测试输出比重新检查一遍快得多。如果你无法验证,那就先别发布。

六个习惯,一个万能骨架

把它们压缩成一个可复用的模板:

万能骨架:目标、约束、计划、验证 Claude Code

目标:(一句话说清要达成什么,以及现在哪里不对)

背景:(它需要知道的上下文,相关文件用 @ 引用,报错贴原文)

约束:

  • (不能做什么,例如不引入新依赖、不改某个文件)
  • (必须遵守什么,例如沿用现有风格)

做法:先读相关文件并告诉我你的理解;如果改动涉及多个文件,先给计划等我确认;只做这一小步,不要顺手扩展其他功能。

验收:(怎样算完成,可以检查的具体标准) 完成后请运行验证,并把验证的输出或结果展示给我。

不是每次都要把所有格子填满。小改动三四句话就够;大改动才需要把骨架填完整。判断标准是:如果这件事交给一位新同事,没有这些信息他能做对吗?

常见的沟通误区

  • 道歉式提示:「不好意思麻烦你帮我看一下……」。不需要客套,直接说事;
  • 一次塞三件不相干的事:对话里的上下文是有限的,互不相干的任务混在一起会互相干扰。官方建议在无关任务之间用 /clear 重置;
  • 把「不要」说得含糊:「别搞太复杂」没有信息量,换成「不要引入新依赖,总共不超过 150 行」;
  • 盲目全盘接受:它说完成了,你就默认完成了。回到习惯 6;
  • 长期依赖口头约定:反复提醒同一条规则,说明它该被写进 CLAUDE.md,或做成权限设置。后面的权限管理与上下文管理两课会教你。
小测

下面哪条提示词最符合「说目标和验收标准」?

小测

你已经让智能体修同一个 bug 两次,每次都没有修对,对话已经很长了。最推荐的做法是?

动手试一试

拿上一课的番茄钟练习,每个习惯做一次:

动手清单

0/7

参考来源

工具更新很快,若与官方文档不一致,以官方为准。

学完了吗?

标记完成会记录在本机浏览器,计入你的学习进度和连续天数。

Esc

输入关键词开始搜索,例如「CLAUDE.md」「MCP」「部署」