提示词工程 (Prompt Engineering) #
不修改模型、不写代码,只通过改变你说的话来控制AI输出质量的技术。零成本,所有人都能做。
1. 为什么提示词重要 #
同一个模型,不同的提示词,输出质量可以差10倍。
差的:帮我写一个Python脚本
好的:
我需要一个Python脚本,功能是:
1. 读取当前目录下所有 .md 文件
2. 提取每个文件的 YAML frontmatter 中的 tags 字段
3. 统计每个 tag 出现的次数
4. 按频率排序输出到 stats.csv
环境:Python 3.12,只用标准库。
输出格式:先给我完整代码,再解释关键部分。
区别就是:你给了足够的上下文和约束条件。
2. 我的真实用法 #
大部分时候我不会一开始就写特别精确的提示词——因为我自己可能也还没想清楚要什么。
先让AI帮我理清思路 #
我的习惯是:自己有具体要求就直接输入;没有的话,前几轮会和AI谈论究竟想要什么,让AI来问我,帮我确认模糊的想法。
怎么触发AI来问你?
- 在 IDE / CLI 的 instructions 里写:
"必须遵守:当你有不明白的地方或者完成工作或有需要澄清的问题时,请调用提问工具以获取进一步指示,而不是直接结束对话。" - 在网页端直接说:
"先不要做,问我几个问题帮我理清需求"
有时候你以为自己知道要什么,其实只是有一个模糊的方向。让AI追问你,比你自己硬想效率高。
根据不足迭代 instruction #
我写的 instruction 不是一次成型的——是根据AI出现的不足一条条加上去的。
比如模型不用 Skills,我就写 "XX动作使用XX skill";比如模型老是跳过确认步骤,我就加 "完成后必须调用提问工具"。
你不需要提前想好所有规则。用着用着发现问题 → 加一条规则 → 问题消失。 instruction 是一个活的文档。
不同任务分配给不同模型 #
不是所有任务都用同一个模型。我现在的分配大概是:
| 任务 | 模型 | 为什么 |
|---|---|---|
| 规划/架构 | Claude Opus | 逻辑清晰,能做长线思考 |
| 前端/设计 | Gemini | 对前端设计的理解比GPT到位 |
| 后端实现 | GPT-Codex | 针对编码优化过 |
| 代码审查 | GPT | 挑错能力强 |
| 一般任务 | 小模型 | 省额度 |
| 严重bug | 当前最强模型 | 别省了 |
3. 通用原则 #
不管用什么模型,这几条都适用:
1. 给角色(Role) #
你是一个有10年经验的Python后端工程师。
让模型知道用什么视角、什么水平来回答。
这种用法会让模型的回答角度被预先收窄。
2. 给上下文(提供背景) #
我在做一个Obsidian插件,项目结构是这样的:...
模型看不到你的屏幕,所有它需要知道的东西都得你说清楚。
3. 给约束(反向提示词) #
只使用标准库,不要用第三方包。
代码不超过100行。
先给方案,我确认后再写代码。
限制越明确,输出越可控。
4. 给格式(规范化) #
用表格比较这三个方案的优缺点。
每个方案不超过3句话。
AI很擅长遵循格式要求——但你得先提。
5. 给示例 (Few-shot参考) #
我需要把笔记标题格式化。规则如下:
输入:"第三章 VHDL语言基础" → 输出:"03-VHDL语言基础"
输入:"第十讲 LTI系统" → 输出:"10-LTI系统"
现在处理这个:...
你写半天"请用中文数字转阿拉伯数字,去掉"第"字和"讲"字",不如给两个例子让它自己学到规则。
4. 进阶技巧 #
思维链 (Chain of Thought) #
请一步一步分析这个问题,先列出你的思考过程,再给出结论。
让AI展示推理过程,减少错误。这个已过时,开启Thinking模式即可。
自我审查 #
回答之后,请检查你的回答中是否有:
1. 逻辑错误
2. 遗漏的边界情况
3. 和我给的约束矛盾的地方
双AI对比 #
-
我的审查方式之一:把同一个问题给两个模型,看它们的回答哪里一致、哪里冲突。冲突的地方往往就是需要深挖的点。
-
我的审查方式之二:让另一个模型审查模型输出的准确性,参考审查模型的回复,思考改进的点。
AI出了问题怎么办 #
直接跟AI反馈自己想要的效果,让它和你讨论为什么不行和为什么行。不是单纯刷一遍,是让它理解你的判断逻辑。如果是根本理解错了,修改提示词重刷;如果只是细节问题,直接指出来。
System Prompt vs User Prompt #
- System Prompt:设置AI的"人格"和规则,通常在对话开头,用户看不到
- User Prompt:你每次说的话
在API调用和AI IDE中可以自定义 System Prompt,官网对话通常不行。这就是为什么 instruction 文件很有用——它本质上就是持久化的 System Prompt。