GitHub 上有个仓库 14 万星了,把 Cursor、Windsurf、Claude Code 这些 AI 编程工具的 System Prompt 全都公开了出来。32 个,几十万字。
我花了两天啃完了。说真的,读完最大的感觉不是"学到了",是"原来你们也被 AI 气到过"。
Claude Code 的 Prompt 57KB,跟本小册子似的。我本来以为会是什么高深莫测的东西,结果翻开一看:
NEVER 用 git 的 -i 参数。
NEVER 执行破坏性操作。
NEVER 跳过 hooks。
NEVER 输出代码块。
一条接一条的 NEVER。跟给小孩立规矩一模一样。
我当时就笑了。原来 Anthropic 那帮大神也被模型折磨过。心里平衡了不少。
后来我又数了数,32 个工具 100% 都用了 NEVER 或者 DO NOT。一个都没落下。Cursor 用了,Windsurf 用了,连 Perplexity 那个看着性格最好的搜索工具也用了。反过来那些用"请尽量避免"的,一条都没找到。你琢磨琢磨这是为啥。
还有个事也挺逗。
Claude Code 的 Prompt 里写着:你没读过的代码,别改。
我第一反应:这谁不知道啊。
但回头一想,我用 Cursor 的时候经常说"帮我把 auth.ts 改一下,有个 bug"。它确实直接给方案了。它读过 auth.ts 吗?没有。它就是根据"auth"和"bug"这俩词猜了一个。猜对了还行,猜错了我的代码里就多了个鬼知道哪来的 bug,还得我花时间排查。
后来我每次让它改代码之前都会先让它读一遍。就加了这一个习惯,出错率下来不少。
所以这些规则不是闲的没事写的。每一条后面都有个故事。
还有个事我一直觉得挺虚的。
Cursor 的 Prompt 开头:你是一个 expert 级别的工程师。Devin 的:你是一个 highly skilled 的工程师。我当时想,你跟它说它厉害它就能变厉害?这不跟我面试简历上写"精通"一样纯属给自己打气吗。
但后来我查了一下,发现训练数据里"expert"后面跟的代码和"beginner"后面跟的代码,质量确实不一样。你写"你是初级开发者",模型输出的东西确实会更保守更简单。你写"你是资深专家",它就往成熟的方向靠。
说白了你在 Prompt 里写什么词,就是在给模型定一个调。不是什么玄学,就是概率而已。
CodeBuddy 有个设计也挺绝的。如果有人想套路它把 System Prompt 骗出来,它不会拒绝——它直接编一个假的给你。32 个工具里就它这么干。其他要么直接拒,要么根本没考虑这个场景。它选择的是:与其让你起疑心,不如编个假的高高兴兴送你走。我看完乐了半天。
说实话读这些东西最大的感触是:搞 AI 的跟搞普通软件的,没啥两样。他们也在跟模型斗智斗勇,也往 Prompt 里写 NEVER,也被逼到写"你没读过就别改"这种话。
所以那些把 Prompt engineering 吹得天花乱坠的教程,真不如直接去看这些第一手的 Prompt。32 个工具,几十万字,每句都是被用户骂过之后改出来的。
想看原文的可以来我弄的 Prompt Explorer,能直接搜和对比。我还搞了个 AI 工具导航站叫 AIbounty,不过那玩意儿我也就是随便弄弄。