03

写出第一个 Prompt

⏱️ 10分钟

写出你的第一个 Prompt

很多人第一次用 AI 写代码,最容易犯的错不是不会提问,而是提问太像随口聊天。你说得越模糊,AI 越容易给你一份“看起来像能用”的答案,但真正落到项目里就开始跑偏。

第一个 prompt 不需要高级技巧,关键是把 task 说清楚,把边界说清楚,把验收说清楚。

First Prompt Framework


为什么第一个 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 写得像论文。
更务实的方式是:

  1. 打开目标 file
  2. 把 prompt 贴进去
  3. 让 AI 先给 plan 或代码
  4. 立刻运行验证

这里最重要的一步不是生成,而是立刻验证
不然你很容易误以为“看起来没问题 = 真没问题”。


第一个 Prompt 最容易踩的坑

会发生什么修正方法
只说目标,不给 context代码和项目风格不兼容补 file / stack / style
一次塞太多需求输出混乱拆成 2-3 步
不写 constraintsAI 擅自引入依赖或改结构先声明禁区
不写 acceptance你不知道算不算完成写清如何验证

一个更稳的迭代方式

第一轮不要追求“直接一步到位”。
更建议这样问:

先不要直接写代码。
请先告诉我你的实现思路、涉及哪些边界情况、以及我该怎么验证。

这样你可以先判断方向对不对,再让它落代码。


一个最小的第一次练习

建议不要一上来做复杂 feature。
先挑这种小 task:

  • 写一个 utility function
  • 给按钮补 loading 状态
  • 提取一段重复逻辑
  • 解释一条报错

这些 task 的好处是:

  • 结果容易验证
  • 改动范围可控
  • 更容易建立正确的 AI 使用节奏

Practice

现在就试一次:

  1. 挑一个小 task
  2. Role + Task + Context + Constraints + Output 写 prompt
  3. 补一个 input / output example
  4. 让 AI 先给 plan,再给代码

如果你把这 4 步跑顺了,你的第一个 prompt 就已经比大多数“随便问一句”的起点高很多了。

📚 相关资源

❓ 常见问题

关于本章主题最常被搜索的问题,点击展开答案

为什么"帮我写个函数"这种 prompt 几乎从来不好用?

因为 AI 只能靠猜你的 stack、文件位置、命名风格和验收标准。结果通常是"看起来能跑"但放进项目就跑偏。补齐 5 件事就稳:Role(资深 React 工程师)、Task(去重 + 排序的 string 数组函数)、Context(utils/array.ts,ESLint + Prettier)、Constraints(不修改原数组)、Output(完整代码 + 时间复杂度)。

Role + Task + Context + Constraints + Output 5 个元素哪个最容易被新手漏?

Context 和 Constraints。新手通常只写 Task,AI 就会乱加依赖、乱改代码风格、把代码写到错的目录。Context 让 AI 知道代码落在哪个 file / 哪个 stack,Constraints 设禁区(不要新依赖、不改 props 签名、保留类型定义)。这两条补上,第一次输出能用率从 30% 跳到 80%。

为什么写一个 input/output example 比写一段抽象描述更有效?

因为 example 没有歧义。"去重并排序"这句话,AI 可以理解成保留首次出现的顺序、按 ASCII 排、按 locale 排。但写一行 `["b", "a", "b"] → ["a", "b"]`,AI 就只有一种解读。第一次写 prompt 最值得补的就是 1-2 个 example,比加 5 行解释更准。

第一次跑 prompt 应该先要 plan 还是直接要代码?

先要 plan。直接说"先不要写代码,告诉我实现思路、涉及哪些边界情况、我该怎么验证"。这一步能拦截方向错的回答 —— 只读 plan 30 秒就能判断 AI 理解对没,比让它写完一大段再发现走偏便宜得多。方向对了再让它落代码。

新手第一次练 Vibe Coding 该挑什么样的 task?

挑 4 类小 task:(1) 写一个 utility function;(2) 给按钮补 loading 状态;(3) 提取一段重复逻辑;(4) 解释一条报错。共同点是结果好验证、改动范围小、规则明确 —— 你能 30 秒判断对错。别一上来就让 AI 做"完整登录系统",那种 task 即使老手也容易翻车。