03
写出第一个 Prompt
写出你的第一个 Prompt
很多人第一次用 AI 写代码,最容易犯的错不是不会提问,而是提问太像随口聊天。你说得越模糊,AI 越容易给你一份“看起来像能用”的答案,但真正落到项目里就开始跑偏。
第一个 prompt 不需要高级技巧,关键是把 task 说清楚,把边界说清楚,把验收说清楚。
为什么第一个 Prompt 很重要
因为它会直接决定你对 AI 编程的第一印象。
如果你的第一条 prompt 是:
帮我写个函数。
那 AI 大概率只能靠猜。
但如果你把角色、任务、背景、约束和输出都说清楚,AI 的稳定性会高很多。
一个够用的 Prompt 骨架
第一次写 prompt,不用追求 fancy。
先用这个骨架就够了:
[角色]
你是资深前端工程师,熟悉 Next.js + TypeScript。
[任务]
帮我实现一个去重并按字母排序的字符串数组函数。
[背景]
代码放在 `utils/array.ts`,项目使用 ESLint + Prettier。
[约束]
- 不要修改原数组
- 保留类型定义
- 空数组返回空数组
[输出]
- 给完整代码
- 简要解释时间复杂度
- 说明如何验证
这类结构的好处是:AI 不需要猜你的 environment,也不容易擅自补设定。
5 个最关键的 Prompt 元素
| 元素 | 为什么重要 |
|---|---|
| Role | 给 AI 一个工作身份,减少风格漂移 |
| Task | 明确到底要做什么 |
| Context | 让它知道代码会落在哪个项目、哪个文件 |
| Constraints | 防止它乱加依赖、乱改风格 |
| Output | 控制返回格式,便于你直接使用 |
没有 context 和 constraints 的 prompt,通常是最容易偏题的。
第一次写 Prompt,最值得补的是 Example
如果你能提供 input / output example,稳定性会明显提高。
Example
输入:
["b", "a", "b"]
期望输出:
["a", "b"]
因为对 AI 来说,example 比抽象描述更不容易误解。
在 Cursor / Claude Code 里怎么用
你不一定非要把 prompt 写得像论文。
更务实的方式是:
- 打开目标 file
- 把 prompt 贴进去
- 让 AI 先给 plan 或代码
- 立刻运行验证
这里最重要的一步不是生成,而是立刻验证。
不然你很容易误以为“看起来没问题 = 真没问题”。
第一个 Prompt 最容易踩的坑
| 坑 | 会发生什么 | 修正方法 |
|---|---|---|
| 只说目标,不给 context | 代码和项目风格不兼容 | 补 file / stack / style |
| 一次塞太多需求 | 输出混乱 | 拆成 2-3 步 |
| 不写 constraints | AI 擅自引入依赖或改结构 | 先声明禁区 |
| 不写 acceptance | 你不知道算不算完成 | 写清如何验证 |
一个更稳的迭代方式
第一轮不要追求“直接一步到位”。
更建议这样问:
先不要直接写代码。
请先告诉我你的实现思路、涉及哪些边界情况、以及我该怎么验证。
这样你可以先判断方向对不对,再让它落代码。
一个最小的第一次练习
建议不要一上来做复杂 feature。
先挑这种小 task:
- 写一个 utility function
- 给按钮补 loading 状态
- 提取一段重复逻辑
- 解释一条报错
这些 task 的好处是:
- 结果容易验证
- 改动范围可控
- 更容易建立正确的 AI 使用节奏
Practice
现在就试一次:
- 挑一个小 task
- 用
Role + Task + Context + Constraints + Output写 prompt - 补一个 input / output example
- 让 AI 先给 plan,再给代码
如果你把这 4 步跑顺了,你的第一个 prompt 就已经比大多数“随便问一句”的起点高很多了。