把提示词当成 API 调用来写,而不是当聊天来写。 🔧
有个新手程序员给他的 AI 助手发了一条消息——非常礼貌,非常详细,非常……浪费。
😅 新手程序员的写法(800 tokens)
「你好!我最近在做一个 React 项目,遇到了一些让我很困惑的问题,想请教一下。具体情况是这样的:我的状态更新好像有点问题,点击按钮之后数据没有刷新,但我在控制台里又看到变量值是对的……能帮我看看可能是什么问题吗?非常感谢!」
🤖 AI 回复了 2000 字分析,从状态管理讲到组件生命周期,附了三段代码。新手看了半天,没找到他真正的问题。
😎 老程序员的写法(40 tokens)
React 18。点击按钮后 state 不更新,但 console.log 显示变量值正确。
🤖 AI 直接给出解决方案:闭包陷阱,useEffect 依赖数组问题 ✅
前者消耗
800
tokens,理解更差
后者消耗
40
tokens,理解更准 ✅
大多数人第一次用 AI 写代码时,最大的误区是:用跟人说话的方式跟 AI 说话。
跟人说话需要礼貌、铺垫、委婉。跟 AI 说话需要的是精确、简洁、结构化。
差:「我遇到了一个问题,好像变量没定义,但我感觉可能是作用域的问题,不太确定」
好:「函数报错,变量未定义,但变量存在于父作用域」
后者 token 少一半,模型理解反而更准。LLM 不需要标准流畅的语言输入,它需要精确信息。牺牲语法,不要牺牲精度。
📐 提示词的四个维度:缺一个就是浪费
缺任何一个,模型就得猜——猜错就得重来,重来就浪费 token
📋
Context
技术栈、版本号、已有代码
🎯
Task
你要 AI 做什么?动词开头
📐
Constraints
不能用什么、必须用什么
📤
Output Format
只要代码?表格?200字?
💡 简单问答只需 Context + Task。代码生成场景四维必须齐全。
🚫 五大反模式:最常见的 Token 浪费
每一条都在让你多花钱,少收获
差:「你好!我最近在做一个项目,遇到了一个问题想请教一下…」
好:「React 18。点击按钮后 state 不更新。」
💡 每 token 社交废话 = 占用推理预算
差:「帮我看看这个接口的代码,好像有点问题」
好:「Express.js 4。POST /login 路由。登录成功发 JWT,失败返回 401。TypeScript。」
💡 模糊 = 模型要么猜,要么反问,都是浪费
差:「帮我做一个登录系统+仪表盘+数据表格+Firebase认证+测试」
好:拆成 5 个独立 prompt,各得其所
💡 上下文窗口不是无限的。过载导致质量差,然后重来
模型的记忆窗口是被压缩的,「记忆」断得比你想象的快。
💡 每轮重声明技术栈和约束——这不是重复,是保险
差:「怎么在 React 里实现防抖功能?能给我讲讲思路吗?」
好:「React hook: useDebounce(value, delay)。TypeScript。只给代码。」
💡 要求解释的输出量是要代码的 3 倍——而且多半不是你需要的
📤 上下文经济:输出端也要省
省 Token 不只是输入端的事,输出端同样关键。五个习惯:
📋 五个省 Token 的输出习惯
只贴出问题的代码
500 行文件贴 30 行,不用整个文件
用占位符替代样板
用 [Standard Navbar] 替代 50 行 JSX
一次声明技术栈
首条「Stack: React 18 + TS + Tailwind」,后续省略
要求最小输出
「只返回修改的函数」而非完整文件
去掉礼貌语
「很好!现在加上错误处理」→「加上错误处理」
💡 多轮对话累积下来,可省 30-50% 的 Token
✂️ 删掉这些词,每条省 5-15 个 Token
「你好」「请问」「麻烦你」
「非常感谢」「辛苦了」
「能帮我看看吗」
「我觉得可能」「不太确定」
「可以的话」「如果方便的话」
✅ 这些话在跟 AI 的对话中没有任何价值——AI 不需要被尊重,它需要被精确指令。
💰 选对模型,是最大的 Token 经济
✅ 80-90% 日常任务
轻量模型和旗舰模型的产出质量没有差异
成本差 10-100 倍 💰
⚠️ 才用旗舰模型
• 深度推理
• 长文档分析
• 新架构决策
⚡ 三种高效句式:用最少 Token 传最多信息
1️⃣ Telegram 风(省略冠词、连接词)
TypeScript。泛型约束。函数接受对象数组。给出语法。
2️⃣ Spec-List 风(问题 + 要点)
编写中间件:
- 从 Authorization 头提取 JWT → 挂载到 req.user
- 缺失返回 401,过期返回 403
- TypeScript,不用 Passport.js
3️⃣ 填空风
补全:useLocalStorage(key, defaultValue) → [value, setValue]。TypeScript。
📋 模板速查卡
查错 → [技术+版本]. [问题]. [错误信息]. Fix?
生成代码 → [技术栈]. [函数签名]. Requirements: [...]. Output: code only.
调试 → [语言]. Error: [错误信息]. Stack: [调用栈]. 只给修复代码.
重构 → [语言]. [代码]. 目标: [目的]. 只输出修改的部分.
测试 → [语言]. [函数签名]. 覆盖: 边界+正常+异常. Output: test code only.
🔑 核心方法:把提示词当成 API 调用
你不会对 API 说:
「你好,请问可以帮我处理一下这个请求吗?」
你会直接发:
POST /api/data — { id: 123 } — 200 OK
📥
结构化输入
📤
结构化输出
💰
最少 Token
🎯
最高质量
省下来的不只是 Token 💰还有时间和耐心 ⏰
- END -
本文旨在帮助开发者优化与 AI 的沟通效率,文中方法和框架仅供参考
夜雨聆风