{
  "slug": "ai-coding-tools-real-problem",
  "url": "https://kelewrites.com/posts/ai-coding-tools-real-problem/",
  "title": "AI 编程工具集体「卡顿」的真问题：太早开始吃自己的狗粮",
  "subtitle": "Cursor、Claude Code、Codex 都在为同一笔代码废料债买单",
  "summary": "Theo（t3.gg）从亲手投资 Cursor 的角度，把 Cursor、Claude Code、Codex 共同的卡顿、闪退、消息丢失等「不一致」问题拆到底——根因不是模型不行，而是这些公司在模型还很弱的时候就 100% 用自家工具写自家代码，让前六个月堆下的废料指数级扩散。文章把他的吐槽收敛成三层论点：表层 UX 烂、中层代码库惯性、底层方法论错位，并给出可操作的反向路径。",
  "date": "2026-03-02",
  "updated": "",
  "tags": [
    "AI",
    "Agent",
    "工程方法",
    "行业洞察"
  ],
  "series": "",
  "source": {
    "title": "【中配】Cursor, Claude Code 和 Codex 都有一个巨大的问题 - Theo - t3.gg",
    "url": "https://www.bilibili.com/video/BV13yP5zWEaF/"
  },
  "ai": {
    "summary": "Theo（t3.gg）从亲手投资 Cursor 的角度，把 Cursor、Claude Code、Codex 共同的卡顿、闪退、消息丢失等「不一致」问题拆到底——根因不是模型不行，而是这些公司在模型还很弱的时候就 100% 用自家工具写自家代码，让前六个月堆下的废料指数级扩散。文章把他的吐槽收敛成三层论点：表层 UX 烂、中层代码库惯性、底层方法论错位，并给出可操作的反向路径。",
    "takeaways": [
      "Theo（t3.gg）从亲手投资 Cursor 的角度，把 Cursor、Claude Code、Codex 共同的卡顿、闪退、消息丢失等「不一致」问题拆到底——根因不是模型不行，而是这些公司在模型还很弱的时候就 100% 用自家工具写自家代码，让前六个月堆下的废料指数级扩散。文章把他的吐槽收敛成三层论点：表层 UX 烂、中层代码库惯性、底层方法论错位，并给出可操作的反向路径。",
      "开场：从「吐槽」到「定罪」",
      "一、表层症状：不是「偶尔有 bug」，是「失败方式从不重样」",
      "二、中层铁律：代码库惯性，前六个月就是天花板"
    ],
    "audience": [
      "正在做 AI Agent / 工程实践的工程师",
      "关心工程落地与系统设计的人",
      "关注 AI 行业演化的从业者"
    ],
    "quote": "一句话总结：Cursor、Claude Code、Codex 的真问题不是模型不行，而是它们在模型还很弱的时候就 100% 用自家工具写自家代码——前六个月堆出的代码废料正在指数级吞掉这些产品的未来。",
    "questions": [
      "这篇文章的核心结论是什么？",
      "开场：从「吐槽」到「定罪」到底讲了什么？",
      "表层症状：不是「偶尔有 bug」，是「失败方式从不重样」是什么意思？",
      "中层铁律：代码库惯性，前六个月就是天花板是什么意思？"
    ],
    "citation": {
      "title": "AI 编程工具集体「卡顿」的真问题：太早开始吃自己的狗粮",
      "conclusion": "Theo（t3.gg）从亲手投资 Cursor 的角度，把 Cursor、Claude Code、Codex 共同的卡顿、闪退、消息丢失等「不一致」问题拆到底——根因不是模型不行，而是这些公司在模型还很弱的时候就 100% 用自家工具写自家代码，让前六个月堆下的废料指数级扩散。文章把他的吐槽收敛成三层论点：表层 UX 烂、中层代码库惯性、底层方法论错位，并给出可操作的反向路径。",
      "points": [
        "开场：从「吐槽」到「定罪」",
        "一、表层症状：不是「偶尔有 bug」，是「失败方式从不重样」",
        "二、中层铁律：代码库惯性，前六个月就是天花板"
      ],
      "quote": "一句话总结：Cursor、Claude Code、Codex 的真问题不是模型不行，而是它们在模型还很弱的时候就 100% 用自家工具写自家代码——前六个月堆出的代码废料正在指数级吞掉这些产品的未来。",
      "url": "https://kelewrites.com/posts/ai-coding-tools-real-problem/",
      "attribution": "kele · Article Share"
    }
  },
  "headings": [
    {
      "depth": 2,
      "text": "开场：从「吐槽」到「定罪」"
    },
    {
      "depth": 2,
      "text": "金字塔总览"
    },
    {
      "depth": 2,
      "text": "一、表层症状：不是「偶尔有 bug」，是「失败方式从不重样」"
    },
    {
      "depth": 3,
      "text": "1.1 Cursor：被砍掉的智能体编辑器切换开关"
    },
    {
      "depth": 3,
      "text": "1.2 Claude Code：CLI 居然会锁住输入框"
    },
    {
      "depth": 3,
      "text": "1.3 真正的恶心点：失败方式从不重样"
    },
    {
      "depth": 2,
      "text": "二、中层铁律：代码库惯性，前六个月就是天花板"
    },
    {
      "depth": 3,
      "text": "2.1 一条被大多数人忽视的曲线"
    },
    {
      "depth": 3,
      "text": "2.2 好代码线性增长，坏代码指数扩散"
    },
    {
      "depth": 3,
      "text": "2.3 AI 智能体把扩散速度乘以十"
    },
    {
      "depth": 3,
      "text": "2.4 Anthropic 收购 Bun，是给自己擦屁股"
    },
    {
      "depth": 2,
      "text": "三、底层错位：过早 100% 自吃狗粮，是个早到致命的决定"
    },
    {
      "depth": 3,
      "text": "3.1 这些公司「过早」在哪里？"
    },
    {
      "depth": 3,
      "text": "3.2 模型再强也救不了起点很烂的代码库"
    },
    {
      "depth": 3,
      "text": "3.3 反向路径：把这套方法论倒过来做"
    },
    {
      "depth": 3,
      "text": "3.4 一个反直觉的方法论：原型库与正式库并行"
    },
    {
      "depth": 2,
      "text": "一页速览"
    },
    {
      "depth": 2,
      "text": "一句话收束"
    }
  ],
  "text": "> **一句话总结**：Cursor、Claude Code、Codex 的真问题不是模型不行，而是它们在模型还很弱的时候就 100% 用自家工具写自家代码——前六个月堆出的代码废料正在指数级吞掉这些产品的未来。\n\n---\n\n## 开场：从「吐槽」到「定罪」\n\n过去几年里，Theo（t3.gg，Cursor 的早期投资者）在各种 AI 编程工具之间来回切换：Copilot、Supermaven、Cursor、Claude Code、Codex……换得越多，他越确定一件事：**这些工具的体验都很烂，且烂得像同一种病**。\n\n明明 AI 让写代码前所未有的便宜，工具本身却越来越不顺手：Cursor 每点一下 UI 就乱跳、Claude Code 这种 CLI 居然有按键延迟、贴个截图就能把整段对话上下文打废。换到五年前你跟人说「我要从 IDE 退回 CLI 是为了少点 bug」，对方会以为你疯了。结果今天的现实是：**CLI 的 bug 比派生自 VS Code 的 IDE 还多**。\n\nTheo 给出的诊断很尖锐——这些工具本身就是用自家工具写出来的，而且是从 Sonnet 3.5 / 3.7 那个还很弱的时代就开始的。「吃自家狗粮」本该是好事，但对 AI 编程工具这一波，**他认为这是一个早到致命的决定**。\n\n接下来分三层展开：表层是 UX 的不一致；中层是代码库惯性这一条工程铁律；底层是「过早全押 AI 写自己」这一方法论错位。\n\n---\n\n## 金字塔总览\n\n---\n\n## 一、表层症状：不是「偶尔有 bug」，是「失败方式从不重样」\n\n### 1.1 Cursor：被砍掉的智能体编辑器切换开关\n\n0.45 之前的 Cursor，左下角有一个智能体 / 编辑器的二态切换开关。Theo 视频评论区被问得最多的就是「那个按钮怎么没了」。\n\nCursor 团队的解释是「我们想给用户更多自定义」，于是把这个二态开关换成了一堆布局按钮。结果：\n智能体面板的位置会在切换前后左右乱跳；\n切到编辑器再切回来，热键失灵；\nTheo 几乎每次操作都会误点到隔壁的邮箱编辑器，「每打开两次就能泄露一次邮箱」。\n\n更要命的是，他亲口去 Cursor 办公室告诉对方这样做很蠢，对方依然推上线了。**这不是失误，这是判断错位。**\n\n### 1.2 Claude Code：CLI 居然会锁住输入框\n\nTheo 演示得很直观——打开 Claude Code，立刻开始按 1、2、3、4……一直按到 8、9，画面里才开始有字符出现。\n\n> 一个 CLI 应用是怎么做到锁住输入框的？这种事如果发生在网页上，会是个能毁掉 Web 声誉的梗。现在它出现在我们的终端里。\n\n更荒唐的是贴图的 race condition：图片压缩没完成就允许提交，导致消息空发；下一次发消息时之前那张图被「静默挂载」上来；触发上下文上限把整段对话烧毁，**几个小时的工作直接归零，且没有任何挽回入口**。\n\n### 1.3 真正的恶心点：失败方式从不重样\n\nTheo 强调的不是「会失败」，而是「两次失败的方式从来都不重样」：\n\n| 你以为的根因 | 真正的根因 |\n\n| 模型不确定 | 模型本来就不确定，但产品代码也不稳 |\n| 偶发 bug | 同一个 bug 每次以不同形态触发 |\n| 边缘 case | 主路径就是边缘 case 拼起来的 |\n\n这是一种**结构性的不一致**——你没法靠肌肉记忆去躲坑，因为坑每次都长得不一样。\n\n> **金句**：最糟糕的不是它一直失败，而是它每次失败的方式都不一样——你连防御都没法防御。\n\n---\n\n## 二、中层铁律：代码库惯性，前六个月就是天花板\n\n### 2.1 一条被大多数人忽视的曲线\n\nTheo 抛出一个他在 Twitch 多年观察出来的规律：\n新项目启动后**前 3–6 个月**，代码库质量在持续爬升；\n过了那个点，**代码库这辈子的质量就停在那个高度了**，之后只会缓慢下滑；\n这适用于绝大多数团队，无论用不用 AI。\n\n原因是**惯性**：React 19 上线一个月你就升级了，但你已经用 React 17 写了四年，再让你升级到 React 20 几乎不可能。代码库就是这样一年年地把自己锁在某个版本、某种模式、某种 hack 上。\n\n### 2.2 好代码线性增长，坏代码指数扩散\n\n代码库的演化里有一条不公平的规律：\n\n为什么坏代码扩散更快？**因为坏代码之所以「坏」，往往就是为了省事**。省事的写法天然容易被搜索到、被复制、被 AI 当成「现有模式」继续往外抄。\n\n### 2.3 AI 智能体把扩散速度乘以十\n\n一个普通初级工程师抄错模式，可能一周犯一次；AI 智能体抄错模式，一天能犯十次，而且非常理直气壮：\n\n> 既然这段代码已经在库里了，那就说明它合格——毕竟代码就在那。\n\nCodex / Claude Code 都有一个共同倾向：**强烈参考代码库里现存的写法**。这本来是好事，但前提是代码库里的写法本身值得被参考。如果库里 50% 是 Sonnet 3.5 / 3.7 时代留下的废料，AI 就在拼命复制废料。\n\n### 2.4 Anthropic 收购 Bun，是给自己擦屁股\n\nTheo 给出一个非常辛辣的旁证：Anthropic 花大价钱挖来业内顶尖的运行时团队（Bun，Jarred Sumner，Zig 重写 JavaScript 运行时）。\n\n为什么？\n\n> 收购这些，只是为了让你那个 CLI 工具，别一跑就占两个 G 内存。\n\n也就是说，他们已经默认**重写代码库的成本，比挖一个团队来优化下层运行时的成本还要高**。这本身就是一个判断——这套代码库已经救不动了。\n\n> **金句**：所有人都在讨论模型，但真正决定 Cursor / Claude Code 命运的不是模型，是它们前六个月留下的那笔代码废料债。\n\n---\n\n## 三、底层错位：过早 100% 自吃狗粮，是个早到致命的决定\n\n### 3.1 这些公司「过早」在哪里？\n\n「吃自家狗粮」（dogfooding）历史上是个褒义词——用 C 写 C 编译器、用 React 写 React DevTools，都让产品迭代得更深。\n\n但 AI 编程工具这一波不一样。Theo 引用 Anthropic 自己 2 月底（**2025 年 2 月，Sonnet 3.7 还是最强模型**的时代）的公开博文，他们已经在用 Claude Code 完成「大部分」工作了，从重构到合并提交到琐碎编码苦力活。\n\n> 用 Sonnet 3.5 / 3.7 这种该死的模型，你可能没法构建一个严肃的应用程序。咱们现实一点吧。\n\n把那个时代写出来的代码沉淀下来，作为今天 Claude Code 的主干，等于把整个产品的下限**永久锁在了那个时代的模型水平**上。\n\n### 3.2 模型再强也救不了起点很烂的代码库\n\nTheo 给了一句很扎人的判断：\n\n> 任何模型都不可能写出比它最初参考的代码质量更高的代码。\n\n这意味着 Opus 4.6、Codex 5.3 这一代模型再强，**当它们落到一个起点就很糟糕的代码库里时，能力会被现有模式拽下来**。新模型擅长的是「从零创建」，不是「清理 Sonnet 3.5 留下的烂账」。\n\n### 3.3 反向路径：把这套方法论倒过来做\n\nTheo 给的处方不是「别用 AI 写代码」，恰恰相反，是**更激进地用 AI**，但要换一种姿势：\n\n| 错误姿势 | 正确姿势 |\n\n| 让 AI 在烂代码库里增量改 | 大锤砸掉那一整块，让 AI 从计划重写 |\n| 容忍「以后再修」 | 零容忍——闻到代码异味就立刻铲掉 |\n| 把代码当资产，舍不得删 | 把代码当耗材，5000 行说删就删 |\n| 所有功能堆进主库 | 不属于核心就开新仓库，宁可多管十个项目 |\n| 一上来就让 AI 干活 | 先在 plan 模式磨计划，反复 push back |\n\n**三个最有杀伤力的具体动作**：\n**零容忍**：发现烂模式立刻删，不要查历史、不要问理由，因为它会指数扩散；\n**大锤式重写**：以前重写 5000 行要 50 天，所以不划算；现在几小时搞定，**重写比修复更便宜**了；\n**代码库数量翻 10 倍**：Theo 自己已经从 2–3 个仓库管到 40+ 个，因为每个项目「干完就别再动」比「都塞进主库」要健康得多。\n\n### 3.4 一个反直觉的方法论：原型库与正式库并行\n\nTheo 举了一个游戏圈的真实案例——**Vampire Survivors（吸血鬼幸存者）**。\n\n主开发者维护两份代码库：\n一份是浏览器里的 Phaser.js 版本，**烂、快、能改**——他自己用来试想法；\n一份是团队用 C++ 重写的主机 / Steam 版，**稳、慢、不动如山**。\n\n新功能永远先在烂版本里试通，再交给团队搬到正式版本里。**烂代码库的定位就是「想法验证机」，不是要发布的成品**。\n\nTheo 提出一个延伸假设：未来工程团队可能会**正式把这种姿态制度化**——用 AI 快速产出一份「氛围编程版」做原型，验证可行后**整体扔掉**，让工程师以原型为蓝图重写一份正式版。\n\n> 「三思而后行」可能变成「写两遍代码合并一次」——甚至「提交十个 PR 合并一个」。\n\n而 Cursor / Claude Code 现在的状态，恰恰相反：**它们把那份原本只该用来试想法的「氛围编程版」当成了正式产品**，于是所有人都在为这个错位买单。\n\n> **金句**：现在这些 AI 编程工具的代码库，等于把「应该被扔掉的原型」错当成「要长期维护的产品」——它们不是工程失败，是定位失败。\n\n---\n\n## 一页速览\n\n| 层级 | 内容 | 一句话核心 |\n\n| **核心结论** | 共同的巨大问题 | 不是模型不行，是它们太早 100% 用自己写自己，前六个月的废料正在指数吞噬未来 |\n| **主论点一** | 表层 UX | 不是有 bug，是每次失败方式都不一样，连防御都防御不了 |\n| 1.1 | Cursor | 砍掉智能体 / 编辑器切换开关，UI 抖到能一键泄露邮箱 |\n| 1.2 | Claude Code | CLI 居然会锁输入框；贴图 race 烧掉整段对话 |\n| 1.3 | 结构性病灶 | 失败方式从不重样 = 结构性不一致 |\n| **主论点二** | 中层铁律 | 代码库前六个月就是天花板，坏代码指数扩散 |\n| 2.1 | 惯性曲线 | 3–6 个月触顶，之后只会下滑 |\n| 2.2 | 不对称扩散 | 好代码线性增长，坏代码指数复制 |\n| 2.3 | AI 放大器 | 智能体抄烂模式比人快十倍，且非常理直气壮 |\n| 2.4 | Bun 收购 | Anthropic 已默认这套代码库救不动，只能从下层运行时擦屁股 |\n| **主论点三** | 底层错位 | 过早 100% 自吃狗粮，是早到致命的决定 |\n| 3.1 | 时间点错位 | 用 Sonnet 3.5 / 3.7 时代的代码当主干 |\n| 3.2 | 上限被锁 | 模型不可能写出比初始参考更高质量的代码 |\n| 3.3 | 反向处方 | 零容忍 / 大锤式重写 / 代码库数量翻 10 倍 |\n| 3.4 | 方法论假设 | 原型库 + 正式库并行，把「氛围编程」收编为验证机 |\n\n---\n\n## 一句话收束\n\n> **AI 让写代码变便宜了——便宜到「代码不再是资产，而是耗材」。谁先把这个心智切换过来，谁就能跳出 Cursor、Claude Code、Codex 现在被困住的代码废料牢笼。**"
}
