xfyyzy

摘要

项目背景 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 全自动执行。
  • 人工监控:执行关键任务时我会盯住 AI 的思考过程和工具输出,发现思路不正确时打断。
  • 参数设定:推理力度调到最大(不一定是最佳方案,我没有试过其他情况)。

2. 为什么选择 Codex

Claude(我主要使用 Opus 系列)无疑足够优秀,但是我在使用时发现自己很难把控它产出的代码。相比之下,Codex 更像是我需要的那种“指哪打哪”的工具。

转向

Codex 的精准性

精准执行: 代码不多也不少

架构依从: 重视 AGENTS.md

长上下文稳定: 临界窗口依然可用

历史回顾: 准确回顾早期内容

Claude (Opus) 的不确定性

偏离架构: 偷懒选快方案

长上下文遗忘: 自动 Compact 后性能下降

拟人化: 不够严肃

自作主张: 做未要求的事

Claude 的主要问题:

  • 架构偏离:偏离我设置的架构要求(如:偷懒选择最快的方案而不是最易于维护和审查的方案)。
  • 记忆衰退:长上下文时容易对需求出现遗忘,尤其是自动 compact 后,性能下降很厉害。
  • 风格问题:太像人类,有时候不够严肃。
  • 过度发挥:喜欢自作主张多做一些我没有明确要求的事情,有时候也并不是做错了,只是会和我自己对项目的规划不一致。

Codex 的优势:

  • 指令服从:我提出要求后,它写的代码不会多也不会少。
  • 架构严谨:对我的架构要求(AGENTS.md)会更当回事(Claude 经常写着写着不管了)。
  • 性能稳定:在长上下文时不会出现明显的性能下降,可以在临近上下文窗口时更加放心的使用,对于更早的上下文也可以更准确的回顾。

Claude 的优势:

  • 内容创意:默认情况下产出的内容更有“人味”,更加贴近人类喜好。提示词模糊或者不准确时更容易获得惊艳的效果。

Codex 的主要问题:

  • 响应速度:相同提示词和任务会慢很多。

3. 为什么会使用 Rust 技术栈

Rust_ToolchainAIUserRust_ToolchainAIUser约束 AI 避免天马行空提示词需求编写/编译代码编译器报错/类型检查 (强反馈)产出高质量代码
  • 上下文增强:我认为 codebase 和工具输出实际上提供了比提示词更多的上下文。
  • 强约束:Rust 的工具链和编译器能够给 AI很好的反馈,也更易于约束 AI 不要天马行空的写代码。

4. 遇到了哪些问题

主要挑战:AI 对 datastaraskama(尤其是宏的使用)以及某些库较新的 API 不够熟悉,很难在没有准备的情况下写准确,容易陷入不断调试的循环。

解决方案流程

遇到生僻库/新API

是否有本地文档?

初期阶段

AI 通过 web.run 查询文档/源码

在 codebase 形成持久化文档

后期阶段

AI 阅读 codebase 基线实现

自主学习/准确实现

  1. 主动检索:在初期让 AI 自己通过 web.run 在网络上查询使用文档(Codex 会自己翻源码来看)。
  2. 文档沉淀:必要时在 codebase 中形成持久化文档。
  3. 基线学习:在后期 AI 可以阅读 codebase 中的基线实现进行学习。

5. 感悟

核心理念

智能工具

AI 是介于人与工具之间的"智能工具"

元思考

人类需进行更纯粹的思考

解放双手

专注思考,不被打断

过程控制

需求描述

难点在于准确描述需求

关注思考

思考偏离比代码错误更危险

逐步引导

对话像线条,而非单点的提示词

架构与基线

基线重要性

Posts 页面作为基线,提升后续准确率

架构先行

前期把控决定最终效果

MCP 工具

让 AI 自己"看"和"试"

  • 需求转化的挑战:AI 编程的现在问题不是无法实现某个功能,而是人类如何准确的把自己的需求描述出来然后 AI 准确的实现需求。
  • 基线的重要性:建立基线后 AI 可以根据基线实现类似功能,有基线参考时成功率和准确率都会提升。在 soffio 中 posts 页面作为管理站点的基线实现,其他页面均参考该页面使用相同的模式实现。
  • 关注过程:关注代码不如关注思考过程。也许思考过程正确不一定能写出准确的代码,但思考过程偏离了一定会乱写。
  • 架构师的角色:对于从 0 开始的项目,前期的架构过程很重要,人类对整体架构方案的把控也很重要。这会直接影响如何判断 AI 的思路是否偏离以及最终的效果是不是最初想要的样子。
  • 思维方式转变:以前是自己思考代码如何写,现在是思考应该如何引导 AI 往正确的方向思考。
  • 引导策略:逐步引导而不是期望一步到位。一次性的提示词像一个点,逐步引导的对话像一条初始线条,AI 更容易沿着正确的线条继续画下去而不是从一个点开始自由发挥。
  • 工具利用:利用好 MCP 工具:发现错误后有时候讲一堆不如让 AI 自己“看”一下使用一下。
  • 人机关系:以前的开发是人类(智能但不一定准确)与工具(准确但不一定智能)之间的活动,而 AI 是介于两者之间的东西,像一个“智能的工具”,在我看来 AI 的参与不是让人类不思考了,而是需要让人类更加存粹的思考(元思考?)。
  • 最终体验:从我的使用体验来看,AI 确实解放了我的双手,可以更加专注的进行思考不必被语言和工具打断。