我给每个发送给Claude Code的提示打分。我的平均分是38分(满分100分)。
这并不是因为我在提示方面表现不佳——而是因为我也是人。在凌晨2点调试一个身份验证错误时,我不会仔细构建我的请求。我会直接输入“修复身份验证错误”然后按下回车。
我构建了一个评分引擎。然后是一个压缩引擎。它们告诉我哪里出错了,但并没有修复任何东西。因此,我构建了我真正想要的部分:一个重写引擎,它可以将一个模糊的提示变得更好。没有大型语言模型(LLM)。没有API调用。只有从自然语言处理(NLP)论文中提取的规则。
前后对比
$ reprompt rewrite "我在想你是否可以帮我修复那个似乎有点问题的身份验证错误"
34 → 56 (+22)
╭─ 重写内容 ────────────────────────────────────────╮
│ 帮我修复那个似乎有问题的身份验证错误。 │
╰────────────────────────────────────────────────────╯
变更
✓ 删除了填充词 (缩短了18%)
✓ 删除了模糊语言
你还应该
→ 添加实际的代码片段或错误信息 以 提供上下文
→ 按名称引用特定的文件或函数
→ 添加约束 (例如,"不要修改现有测试")
“你还应该”部分实际上是最有用的部分。机器处理它能处理的内容——去除填充词、重组——并告诉你只有人类才能添加的内容。
重写器的功能
四种变换,按顺序应用:
1. 去除填充词。 “请帮我”, “我基本上需要的是”, “我希望你”——这些添加了标记却没有增加信息。40+条英语规则,40+条汉语规则(重用压缩引擎)。
2. 前置指令。 如果你的关键请求埋在中间,就将其移动到前面。这很重要:斯坦福大学的“迷失在中间”论文发现,模型对开头指令的记忆比对中间指令的记忆好2-3倍。
3. 重复关键要求。 对于长提示(超过40个单词)且重复性低的情况,主要指令在结尾处重复。谷歌研究(arXiv:2512.14982)发现适度的重复可以将记忆提升多达76%。这一点仅在提示足够长,以至于模型可能会失去线索时才会生效。
4. 去除模糊措辞。 “也许”、“可能”、“我在想”、“有点”、“算是”。这些措辞削弱了指令信号而没有增加信息。12个正则表达式模式。
为什么不使用LLM进行重写?
我考虑过这个问题。我选择基于规则的原因有三个:
速度快。 在50毫秒以内。你可以在预提交钩子或CI管道中运行它,没人会注意到。
确定性强。 相同的输入,得到相同的输出。我实际上在CI中使用reprompt lint,并设定了分数阈值——如果我使用LLM重写器,我的CI在星期二可能会随机失败,因为GPT可能会感到有创意。
这是私密的。 我的提示包含生产错误信息、内部文件路径,有时还有我忘记删除的API密钥。这正是我不希望发送给另一个大型语言模型进行“改进”的内容。
更广泛的工具包
rewrite 是一个命令。这里还有其他内容:
reprompt check "你的提示" # 完整诊断:评分 + 语法检查 + 重写
reprompt build "任务" --file auth.ts # 从组件组装提示
reprompt compress "你的提示" # 节省40-60%的令牌
reprompt scan # 发现来自9个AI工具的会话
reprompt privacy --deep # 在会话中查找泄露的API密钥
reprompt lint --score-threshold 50 # CI质量门(包括GitHub Action)
自动发现来自Claude Code、Cursor、Aider、Codex CLI、Gemini CLI、Cline和OpenClaw的会话。通过导出与ChatGPT和Claude.ai连接。浏览器扩展在您输入时显示实时评分徽章——点击它以获取内联建议。
我仍然没有弄明白的事情
重写工具处理了大约30%构成良好提示的内容。其余的70%是只有您自己知道的事情——您正在盯着的错误信息、您刚刚编辑的文件、您尝试过但没有成功的事情。没有任何工具可以为您添加这些。
我也认为评分目前还“不是很准确”。在调试会话中,来自某人的3个单词的提示可能比来自不理解代码库的人的200个单词的精美请求更有效。存在于您脑中的上下文不会在评分中体现出来。
这些权重是针对四篇自然语言处理(NLP)论文进行校准的,但这些论文研究的是孤立的提示。真正的提示发生在对话的中间,通常是在凌晨两点,当你已经解释了三遍问题时。我不确定该如何评分。
尝试一下
pip install reprompt-cli
reprompt check "你最糟糕的提示"
reprompt rewrite "你最糟糕的提示"
麻省理工学院,本地专用,1800+ 测试。 GitHub · PyPI
老实说,我很好奇:在发送提示之前,你会考虑它们吗,还是更像是随意的思维流?我已经跟踪自己的提示几个月了,当我感到疲惫时,仍然会默认使用懒惰的提示。开始觉得这就是人类的工作方式。