摘要
项目背景 soffio 是一个 100% 代码由 AI (GPT-5.1-Codex+少量Claude Opus) 完成的 AI 原生项目,人类仅负责架构设计与流程监控。
核心决策
- 模型选择:放弃 Claude 选用 Codex。Claude 虽强但易偏离架构、存在“偷懒”现象且长上下文遗忘严重;Codex 执行更精准、严格遵守架构文档且状态稳定。
- 技术栈:选择 Rust。利用 Rust 严格的编译器和工具链作为“强约束”,防止 AI 产生幻觉代码,提供比提示词更硬性的反馈。
开发方法论
- 过程监控:给予 AI 全部权限,人类不看代码细节,转而监控 AI 的思考过程,仅在思路偏离时打断。
- 基线思维:面对 AI 不熟悉的新技术,先通过联网查阅文档建立一个标准模块(基线),后续功能让 AI 参考该基线实现,大幅提升准确率。
- 线条引导:放弃单点提示词,采用逐步引导的对话模式,让 AI 沿着正确的逻辑线条延伸。
关键感悟 开发模式已从“编写代码”转变为“元思考”。人类的核心价值在于精准描述需求、把控整体架构以及引导 AI 的思维方向。AI 是介于人与工具之间的“智能工具”,让开发者能更纯粹地专注于业务逻辑。
1. 我的使用习惯
- 全权委托:给 AI 全部的权限,我提供提示词,AI 全自动执行。
- 人工监控:执行关键任务时我会盯住 AI 的思考过程和工具输出,发现思路不正确时打断。
- 参数设定:推理力度调到最大(不一定是最佳方案,我没有试过其他情况)。
2. 为什么选择 Codex
Claude(我主要使用 Opus 系列)无疑足够优秀,但是我在使用时发现自己很难把控它产出的代码。相比之下,Codex 更像是我需要的那种“指哪打哪”的工具。
Claude 的主要问题:
- 架构偏离:偏离我设置的架构要求(如:偷懒选择最快的方案而不是最易于维护和审查的方案)。
- 记忆衰退:长上下文时容易对需求出现遗忘,尤其是自动 compact 后,性能下降很厉害。
- 风格问题:太像人类,有时候不够严肃。
- 过度发挥:喜欢自作主张多做一些我没有明确要求的事情,有时候也并不是做错了,只是会和我自己对项目的规划不一致。
Codex 的优势:
- 指令服从:我提出要求后,它写的代码不会多也不会少。
- 架构严谨:对我的架构要求(
AGENTS.md)会更当回事(Claude 经常写着写着不管了)。 - 性能稳定:在长上下文时不会出现明显的性能下降,可以在临近上下文窗口时更加放心的使用,对于更早的上下文也可以更准确的回顾。
Claude 的优势:
- 内容创意:默认情况下产出的内容更有“人味”,更加贴近人类喜好。提示词模糊或者不准确时更容易获得惊艳的效果。
Codex 的主要问题:
- 响应速度:相同提示词和任务会慢很多。
3. 为什么会使用 Rust 技术栈
- 上下文增强:我认为 codebase 和工具输出实际上提供了比提示词更多的上下文。
- 强约束:Rust 的工具链和编译器能够给 AI很好的反馈,也更易于约束 AI 不要天马行空的写代码。
4. 遇到了哪些问题
主要挑战:AI 对 datastar 和 askama(尤其是宏的使用)以及某些库较新的 API 不够熟悉,很难在没有准备的情况下写准确,容易陷入不断调试的循环。
解决方案流程:
- 主动检索:在初期让 AI 自己通过
web.run在网络上查询使用文档(Codex 会自己翻源码来看)。 - 文档沉淀:必要时在 codebase 中形成持久化文档。
- 基线学习:在后期 AI 可以阅读 codebase 中的基线实现进行学习。
5. 感悟
- 需求转化的挑战:AI 编程的现在问题不是无法实现某个功能,而是人类如何准确的把自己的需求描述出来然后 AI 准确的实现需求。
- 基线的重要性:建立基线后 AI 可以根据基线实现类似功能,有基线参考时成功率和准确率都会提升。在
soffio中 posts 页面作为管理站点的基线实现,其他页面均参考该页面使用相同的模式实现。 - 关注过程:关注代码不如关注思考过程。也许思考过程正确不一定能写出准确的代码,但思考过程偏离了一定会乱写。
- 架构师的角色:对于从 0 开始的项目,前期的架构过程很重要,人类对整体架构方案的把控也很重要。这会直接影响如何判断 AI 的思路是否偏离以及最终的效果是不是最初想要的样子。
- 思维方式转变:以前是自己思考代码如何写,现在是思考应该如何引导 AI 往正确的方向思考。
- 引导策略:逐步引导而不是期望一步到位。一次性的提示词像一个点,逐步引导的对话像一条初始线条,AI 更容易沿着正确的线条继续画下去而不是从一个点开始自由发挥。
- 工具利用:利用好 MCP 工具:发现错误后有时候讲一堆不如让 AI 自己“看”一下使用一下。
- 人机关系:以前的开发是人类(智能但不一定准确)与工具(准确但不一定智能)之间的活动,而 AI 是介于两者之间的东西,像一个“智能的工具”,在我看来 AI 的参与不是让人类不思考了,而是需要让人类更加存粹的思考(元思考?)。
- 最终体验:从我的使用体验来看,AI 确实解放了我的双手,可以更加专注的进行思考不必被语言和工具打断。