Appearance
Prompt 写法
人类自然语言的写法,不完全等于适合 LLM 的写法。
对人类自然的表达,很多是在处理社交关系;对模型更有效的表达,重点是让目标、约束和结构更清楚。
为什么 prompt 写法和自然语言习惯不一样
人和人说话时,很多冗余信息是有社交价值的:
- 礼貌
- 缓冲
- 语气
- 暗示
- 省略
但对 LLM 来说,更重要的通常是:
- 目标明确
- 约束明确
- 结构明确
- 示例明确
- 输出格式明确
自然语言习惯里最常见的低效写法
礼貌很多,约束很少需求藏在长段落里省略关键边界条件
更适合 LLM 的 prompt 习惯
通常更稳的写法是把信息拆出来:
text
任务:总结下面内容
目标:给出 3 条结论
限制:每条不超过 20 字
输出格式:Markdown 无序列表
输入:...同样一个意思,口语 prompt 和结构化 prompt 差很多吗
用 DeepSeek tokenizer 实测:
| 写法 | token 数 |
|---|---|
你好,麻烦你帮我把下面这段文字总结一下,最好分成三点,谢谢。 | 18 |
任务:总结下面内容\n要求:3条\n每条不超过20字 | 15 |
Agent prompt 再往前走一步
| 写法 | 文本 | token 数 |
|---|---|---|
| 口语版 | 你好,麻烦你帮我把下面这段文字总结一下,最好分成三点,谢谢。 | 18 |
| 结构化版 | 任务:总结下面内容\n要求:3条\n每条不超过20字 | 15 |
| Agent 版 | 任务:阅读 docs/api.md\n步骤:提取关键接口;归纳错误点\n输出:JSON\n约束:不要编造 | 26 |
这张表最值得注意的是:
- 结构化版更紧凑,也更稳
- agent 版 token 更多,因为它承担了
任务 + 步骤 + 输出协议 + 约束
对 LLM 来说,哪些自然语言细节特别重要
- 是否明确说了“你要做什么”
- 是否明确说了“不要做什么”
- 是否给了输出格式
- 是否给了优先级
- 是否给了边界条件
- 是否把示例和正文清楚分开
- 是否用分隔符隔开输入材料和指令
结论
- 写给人看的自然语言,不一定是写给模型看的好 prompt
- 单轮任务更适合结构化写法
- agent 任务通常需要更多 token,不是为了“好看”,而是为了稳定执行