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 辅助创作,经人工审核编辑发布

