90分HN热帖揭示AI编程工具的隐藏规律:不是AI不会做设计,是你的Prompt没给对"风格锚点"。
▲ ▲ 八种AI生成风格对比:只有Qt风格消除了AI Slop(来源:envs.net/~volpe, HN 90pts)
事件回顾
6月12日,程序员volpe在个人博客发表了一篇题为《Slightly reducing the sloppiness of AI generated frontend》的文章,迅速登上Hacker News首页,获得90个推荐和26条深度讨论。
volpe做的事情很简单:他用同一个单页应用(一个选举人团预测可视化工具),反复让AI Agent按照不同设计风格重新生成前端界面。他测试了八种风格:SaaS产品页风格、广播风格、GTK桌面应用风格、Apple HIG风格、Material Design风格、Windows 11原生风格、Qt桌面应用风格,以及原始的AI自发风格。
结果令人震惊。
八种风格里,七种都带着明显的"AI味"——那种你一眼就能认出来的、千篇一律的AI生成感。 只有一种风格例外:Qt。
volpe写道:"Simply asking it to make it look like a Qt app — to my tasteless eyes — removed almost all feeling of slop."(只需要要求它做成Qt应用的样子——在我这个没有审美的人看来——几乎完全消除了AI Slop的感觉。)
他甚至把其他所有个人工具软件都用AI重构成了Qt风格,并认为"看起来好多了"。
这个发现背后藏着什么规律?对我们这些天天用AI编程工具的创业者来说,有什么启示?
为什么"Qt风格"能消除AI Slop?
HN评论区给出了一个关键解释。
用户voxleone指出:Qt在训练数据中有极高的"概念密度"。Qt是一个存在了几十年的GUI框架,AI模型在训练过程中见过大量的Qt教程、截图、源代码、技术文档和社区讨论。这使得"Qt应用"在模型的潜在空间中成为一个高度凝聚、边界清晰的概念。
换句话说,当你说"做一个网页应用"时,AI模型在数十亿个模糊的、风格各异的示例中随机采样,结果自然是不稳定的、缺乏个性的。但当你明确说"做一个Qt风格的应用",AI模型的搜索空间被大幅收窄到了一个定义完善的"风格分布"(style distribution)上。
这就像让一个画家"画一幅画"vs"画一幅莫奈风格的画"——后者的结果通常更好,因为约束反而释放了创造力。
AI Slop到底是什么?
volpe在文章中给出了一个精妙的定义:Slop不是一种风格,而是一种叠加物。
"Slop is not a distinct style, it can be overlaid on top of many others. Even when I got it to make a page to look like X, it looked like X with slop."
这解释了很多AI创业者的困惑:为什么即使用Cursor或Claude Code生成了看起来"专业"的界面,总有一种说不清道不明的廉价感?因为AI在没有明确设计约束时,会自然偏向训练数据中出现频率最高的"平均风格"——而这种平均风格恰好是过去十年SaaS产品的那套视觉语言。
评论区用户swiftcoder一针见血:"To me the 'AI slop' mostly just looks like the last decade of SaaS products."(对我来说,AI Slop看起来就是过去十年的SaaS产品。)
bg-indigo-600的CTA按钮、slate-900的标题颜色、特定的阴影和圆角半径——这些不是AI发明的,是AI从无数个SaaS模板中学来的。问题不在于AI,而在于我们对AI的期望:我们希望它创新,但它只能重组已知。
我们能学到什么?
▲ ▲ AI编程的"风格锚点"原理:品牌名称比形容词更有效(来源:HN讨论 + OSSInsight数据)
1. 风格锚点比风格描述更有效
volpe的实验说明了一个深层原则:对AI编程工具来说,指定一个"风格名称"(如Qt、Material、HIG)远比描述视觉特征(如"简洁""专业""现代")有效。
为什么?因为"Qt"是一个在训练数据中有明确定义的商标级概念,AI不需要猜测你想要什么。而"简洁"是一个主观形容词,在不同上下文中指向完全不同的设计方向。
这个原则不仅适用于前端设计。当你让AI写代码时,"写一个类似Redis的缓存层"比"写一个高性能缓存"产出更好。当你让AI写文章时,"写成36氪深度报道风格"比"写得专业一些"效果更好。
品牌名称、框架名称、产品名称——这些是AI理解世界的高分辨率锚点。
2. AI编程工具正在经历"设计觉醒"
volpe的文章只是冰山一角。近期AI编程社区的讨论正从"能不能生成"转向"生成的质量如何"。
OpenAI Codex CLI开源后在GitHub上28天增长457星(OSSInsight数据),排名AI编程工具增长第二。Claude Code同期增长433星。而异常增长的头名是anomalyco/opencode(683星),一个专注AI代码质量的开源项目。
开发者不再满足于"AI能写代码",开始追问"AI写的代码看起来怎么样、维护性如何、用户体验够不够好"。这是AI编程工具从"能用"到"好用"的必经阶段。
3. 约束=创造力,这是AI时代的设计第一原理
传统的设计思维是:给创作者最大自由,他能产出最好作品。
AI时代的设计思维正好相反:给AI最精确的约束,它才能产出最接近期望的结果。
这和Prompt Engineering的根本原则一致:好的Prompt不是"少说两句让AI发挥",而是"把你能想到的所有约束都写进去"。
volpe的Qt实验就是这句话的完美验证:他没有描述任何颜色、布局、字体,只说了一个词"Qt"。这个高度凝练的约束比一百个形容词更有效。
行动建议
- 建立你的"风格锚点库":收集10-20个在你领域里有明确定义的品牌/框架/产品名称,在Prompt中使用它们替代模糊形容词。比如前端用"Qt风格""Stripe风格""Linear风格",后端用"Redis风格""Postgres风格"。
- 给AI一个"设计系统"而非"设计描述":HN用户mywittyname分享了他的方法——先让AI做一个"设计画廊"(Design Gallery),把所有UI组件渲染出来,确认风格一致后再开始写功能代码。这比在每个Prompt里重复描述设计需求高效得多。
- 用Tailwind而非CSS:评论区ramesh31的经验是:纯Tailwind类名比自定义CSS更有利于AI生成一致的前端。因为Tailwind的类名本身就是原子化的语义约束,AI不需要在HTML和CSS文件之间跳转推理。
- 接受"AI有风格,但没有品味":volpe自嘲"a person without taste controlling an AI without taste"(一个没品味的人控制一个没品味的AI)。但这句话反过来说也是好消息:你不需要是设计师,只需要知道怎么给AI正确的约束。
一个值得关注的趋势
volpe文章引发的讨论远不止一个前端技巧。评论区stabbles提出:"This begs for a modern version of CSS Zen Garden, where the CSS is generated by different LLMs and prompts."(这催生了一个现代版的CSS禅意花园,CSS由不同大模型和Prompt生成。)
CSS Zen Garden是2003年的经典项目,展示了同一份HTML在不同CSS下可以呈现截然不同的设计。如果2026年有人做一个AI版——同一份HTML,不同大模型和Prompt自动生成CSS——这将是检验AI设计能力的终极实验场。
对于AI创业者来说,这不仅仅是一个有趣的话题。随着AI生成内容的比例持续攀升(LinkedIn上Agent-shipped code在2026年增长了1400%),如何让AI产出的界面"去Slop化"正在成为一个有商业价值的技能。
毕竟,当所有人都能用AI生成一个SaaS产品页面时,那个看起来不像AI生成的,就是赢家。
#AI创业 #AI编程 #前端设计 #Prompt技巧 #一人公司
本文由AI辅助创作,经人工审核编辑发布
