大家好,我是 chris,一个用 AI 写代码写了快一年的开发者。
今天分享一个自己用了几个月后决定开源的工具,顺带聊聊我用它持续追踪自己 prompt 质量六周后发现的一些规律。
🤔 起因
某天我在翻 Claude Code 的 session log,发现自己的 debug 类 prompt 几乎都长这样:
"修一下这个 bug"
"为什么这里报错"
"这里有问题"
每个不超过 10 个字,没有文件,没有行号,没有具体报错。然后我花了 20 分钟调这个 AI 才搞定的东西,其实可能 2 分钟就结束了——如果我当时写得具体一点。
我想知道:我的 prompt 到底有多差?更关键的是,追踪这个数据几周后,写 prompt 的习惯真的会变吗?
💡 解决思路
既然是 NLP 问题,我就去查了研究界怎么量化"好的 prompt"。翻了几篇论文之后,发现研究界对这事比我想的要具体:
| 研究 | 核心发现 |
|---|---|
| Google arXiv:2512.14982 | 重复短语会降低输出质量 |
| Stanford arXiv:2307.03172 | LLM 对 prompt 首尾权重更高(position bias) |
| SPELL EMNLP 2023 | 词汇熵可作为信息密度代理指标 |
| Prompt Report arXiv:2406.06608 | prompt 可分为 12 个任务类别 |
有理论依据之后,我基于这 4 篇论文实现了一个 0-100 打分系统。
🔍 打分逻辑
reprompt score 从四个维度出分:
Specificity(0-40 分) — 最重要。检测文件路径、行号、函数名、具体报错是否存在。这些信息给 AI 提供了可操作的上下文,有和没有差距极大。
Position(0-25 分) — 关键信息是否在 prompt 开头。根据 Stanford 的研究,LLM 对首尾权重远高于中间,把 auth.service.ts:47 放在前面比放在后面效果好。
Repetition(0-15 分) — 检测 prompt 内的重复短语,重复越多扣分越多。
Perplexity proxy(0-20 分) — 用词汇多样性(Shannon 熵)近似信息密度。
🎯 先看效果
废话不多说,直接看分数:
$ reprompt score "修一下这个 bug"
Prompt Quality Score: 18/100
Specificity ██░░░░░░░░ 5/40 — 无文件、无函数、无错误信息
Position ███░░░░░░░ 8/25 — 上下文空洞
Repetition ██████████ 0/15 — 无惩罚
Perplexity ██░░░░░░░░ 5/20 — 词汇单一
$ reprompt score "修复 auth.service.ts:47 的空指针异常 — token 在 session 超时时变 null,应该抛 AuthException 而不是返回 200"
Prompt Quality Score: 91/100
Specificity █████████░ 38/40 — 文件路径、行号、错误类型、预期行为
Position █████████░ 22/25 — 关键信息前置
Repetition ██████████ 0/15 — 无惩罚
Perplexity ██████████ 20/20 — 词汇丰富
📊 六周追踪后的发现
跑完 reprompt insights,我自己的结果是这样的:
debug : avg 31/100 ███░░░░░░░ Research: 65+ ← 重点改进
implement: avg 64/100 ██████░░░░ Research: 70+
test : avg 72/100 ███████░░░ Research: 68 ✓
debug 类平均 31 分,和研究基准的 65 差了一半。
最差的那批 prompt 几乎全是一两个小时没调出来、最后放弃的 session 开头。这个规律不是巧合——越急越懒,越懒越模糊,越模糊来回磨的越久。
追踪三周后,debug 平均分从 31 涨到了 48。不是因为刻意练习,而是每次 session 结束后看到 reprompt digest --quiet 输出的那一行数字,下意识地就会多写几个字。数字的力量比告诉自己"要写清楚"强很多。
🎭 Prompt 人格报告
v0.9 新增了 reprompt wrapped,生成类似 Spotify 年度总结的 prompt 报告。它会根据你的 prompt 类别分布和习惯,给你分配一个"人格":
-
Architect(架构师) — 偏系统级思考
-
Firefighter(救火队长) — 偏反应式调试
-
Explorer(探索者) — 偏探索和学习
-
Optimizer(优化师) — 偏重构和改进
-
Scholar(学者) — 偏解释和研究
-
Builder(建造者) — 偏功能实现
我自己是 70% Architect + 20% Firefighter。意外吗?看完数据后觉得完全不意外。
🛠 其他功能
reprompt compare "prompt A" "prompt B"
逐维度对比两条 prompt,搞清楚改动带来了什么变化。
reprompt digest
每周对比本周 vs 上周:prompt 数量、平均分变化、类别分布。
加 --quiet 输出单行,可以挂在 Claude Code Stop hook,每次 session 结束自动显示:
Week of Mar 10: 156 prompts ↑12% | specificity 47→62 ↑ | debug ↓ implement ↑
reprompt style
个人 prompt 风格指纹:平均长度、类别分布、开头模式、specificity 分布曲线。
reprompt import
v0.9 新增。导入 ChatGPT 和 Claude.ai 的网页端对话记录:
reprompt import conversations.json # ChatGPT 数据导出
reprompt import claude-export.zip # Claude.ai 账号导出
导入后和 CLI 工具扫描的数据放在同一个 DB,所有分析命令通用。
📦 快速上手
pipx install reprompt-cli
reprompt demo # 先用内置示例数据体验一下
reprompt scan # 扫描你的 AI 编程会话(自动识别工具,零配置)
reprompt insights # 看看自己哪类 prompt 最差
reprompt score "你的 prompt" # 单条打分
reprompt wrapped # 生成 prompt 人格报告
支持自动识别的工具: Claude Code、Cursor、Aider、Gemini CLI、Cline、OpenClaw — 6 种扫描。
支持导入的平台: ChatGPT(conversations.json)、Claude.ai(ZIP 导出)— 2 种导入。
🔧 技术栈
-
Python 3.10+,scikit-learn(TF-IDF + K-means),SQLite
-
493 个测试,严格 mypy,不是玩具项目
-
8 个 Adapter(6 自动扫描 + 2 手动导入)
-
所有数据本地处理,打分纯 NLP,无 LLM 调用,可选 Ollama 嵌入
-
MIT 协议
写在最后
开源地址:github.com/reprompt-de…,有兴趣的同学可以看看。
你的调试类 prompt 平均分多少?我猜大多数人跟我一样,debug 的时候写得最短,然后磨的时间最长。欢迎评论区交流。
觉得有用的话,点个赞再走 ⭐