ai-view

Codex 使用心得与 Vibe Coding 经验

半年 Codex 使用总结:AI 生成 html 的优势、提示词退化、/Plan 与 /Simplify 模式、冗余代码陷阱、人工审查的必要性,以及模型上限的无奈。

用 Codex 做开发有一段时间了,从最初的惊艳到现在的边用边骂,积累了一些还算实用的经验,记一下。

一个很直接的体会是,AI 对 HTML 的生成能力远强于其他任何语言。所以平时遇到需要做文档、PPT、简历这类东西,尽量往 HTML 上靠,让 AI 来写,效率比手动调格式高太多了。甚至视频相关的辅助工具界面,用 HTML 也比写原生 UI 快。

但有一个不太好的感受,Codex 最近一段时间明显变蠢了。同样的任务,以前简单几句提示词就能理解并给出正确实现,现在需要更严谨、更结构化的描述才能达到差不多的效果。不清楚是模型本身退化了,还是上下文窗口压缩策略变了,总之体感就是同样的输入,输出质量在下滑。

高频使用的模式里,/Plan 是最常用的命令,让 AI 先列出改动清单,确认后再动手,能避免很多改一处崩三处的问题。/Simplify 专门针对最近几轮改动做冗余代码清理,AI 在迭代过程中会堆积大量无用代码,定期跑一遍 Simplify 能保持项目整洁。自动审查模式也会开着,让 AI 在生成代码时顺便做自我检查,有一定效果,但不能完全依赖。

养成的一个核心习惯是,在修改某个功能点时不要直接让 AI 改代码,而是先让它列出改动计划和影响范围,确认无误后再执行。这个思路跟 /Plan 很像,本质上是在用 AI 的规划能力对冲它的随机性。没确认计划就动手,很容易改出意料之外的连锁反应。

比较麻烦的是,AI 改完代码后经常会引入一些非预期的改动,多改了几行、重命名了某个变量、顺手优化了某个函数。这时候你没法像 Git 那样选择性暂存或丢弃,要么全盘接受,要么全部回退然后重新下更精确的指令,这个过程中浪费的时间其实不少。

如果是从零开始一个新项目,先把需求文档写好,让 AI 读文档再生成代码,效果比边写边问好得多。具体来说,需要在需求文档里提前说明前端界面风格和布局、项目文件结构、架构设计比如三层架构、代码风格规范比如数据库表命名规则。这些前置工作越细致,AI 生成的代码质量越高,后续返工越少。

AI 一定会生成冗余代码,把简单的事情复杂化。最典型的例子是 PUT 接口,更新文章内容只需要返回 code 等于 0 或非 0、data 为 nil 就够了,但 AI 会主动把更新后的文章内容塞进 data 里返回,完全多余。什么时候返回 data 是有用的呢?比如 AI Novel 项目里,生成规划列表后点击应用,这个 POST 接口确实需要返回 data,因为要把规划内容插入到列表中,前端需要拿到每项的 ID 才能继续操作。但 AI 不会区分这两种场景,它倾向于能返则返,导致大量无用数据在网络中传输。

目前来说还没有真正体验到 AI Review 带来的明显效果,或者说这个功能还没有发挥出应有的价值。最终的代码审查人工环节必不可少,否则项目永远是个黑盒,你只知道它能跑,但不知道它为什么能跑,也不知道哪些地方埋了雷。AI 可以辅助生成代码,但理解代码、判断设计是否合理、发现潜在问题,这些目前还得靠人。

Codex Windows 桌面端的体验也不太稳定,有一堆 bug,有时打不开应用,有时打开后直接显示出错啦。日常开发用的是 VSCode 加 Codex 插件,至少能方便地查看改动对比。CC Switch 也能用,现在已经支持同步会话了。

Superpower 多子智能体并发没有实际体验过,暂不评价。Git worktree 工作树的概念理论上可以复制项目代码让 AI 同时在多个分支工作然后合并,但没试过,直觉上容易产生冲突,尤其是 AI 生成的代码本来就飘忽不定。

一个很基础但很有用的习惯是,在进行较大改动之前先手动提交一次代码,万一 AI 改得不理想可以一键撤回,避免陷入改坏了但回不去了的尴尬,不用依赖 AI 的撤销功能,它往往撤不干净。

用 AI 开发了这么久,越来越觉得瓶颈还在模型本身。现阶段能做的就是,在模型的当前能力顶点下不断试错和优化提示词与流程,来达到更好的工作产出。模型的认知天花板决定了工作的上限,而这个上限目前还不够高。

另一个核心矛盾是,Loop 跑得越久,黑盒代码越多。循环提效是事实,但代价是生成的代码越来越黑盒。跑一小时生成的代码人工 Review 还能接受,跑二十小时再让 review,精力完全跟不上,不亚于从头读一个工程。所以 Loop 虽然省了写的时间,但把时间挪到了审上面,而且审的成本随代码量非线性增长,这个问题目前无解,只能自己权衡。

最后提一个观察,Codex 和自家 GPT 模型有强耦合性。Codex 的最佳体验依赖于 OpenAI 的整套 Runtime,包括 Responses API、Conversation State、Server-side Compaction 等。如果第三方只兼容 Chat Completions 而没有这些能力,长会话体验通常会变差。至于这是否就是某家模型没有推出 Codex 集成的直接原因,目前没有公开证据能够证明。但从实际体验来看,Codex 在 OpenAI 自家的模型上跑确实比切到其他模型要顺滑得多。