个人AI编程体验
2026-08-22 programming正式使用 AI 编程工具算下来也接近五个月了,整理一下个人的使用体验。
开始
接触 AI 编程是从 GitHub Copilot 开始的,最初只拿它做一些规律性代码的补全,例如一系列相邻边界条件的判断,或者粘贴 json 自动生成 struct。再往后会在注释内写简单的函数说明让它实现,相当于代替了手动谷歌搜索再从 stackoverflow 复制粘贴的过程。当时觉得只能算是一些手动流程的自动化替代,对自己的开发效率影响不大,所以也就没有正式订阅。然后是公司里的部分同事开始使用 Cursor,自己本身日常使用 VS Code,对它的换皮版本不太感兴趣,并且从 GitLab 仓库提交的代码来看,其代码质量也不太能达到预期。再往后就只是使用网页版的 DeepSeek 和 Gemini 进行对话问答,代替了自己小部分谷歌搜索的需求,整体感觉约 20% 的 AI 回答中会包含幻觉,最好自己拿多个渠道交叉验证。
前面的都只算是浅尝辄止,由于 VS Code 今年一直在不断更新 AI 相关功能,所以在三月份就试着拿 GitHub Copilot 的 Chat 模式来修 bug,过程中持续盯着大模型的思考过程和命令调用,发现与个人思维习惯完全对的上,换成自己来做也会是一样的定位和修复方式,使用的 Claude Sonnet 模型令人感到惊艳。由于 Claude 官方渠道存在一定使用门槛,所以先订阅了 GitHub Copilot Pro 开始在正式工作中使用,随着 GitHub Copilot Pro 计费方式的调整以及最新模型的适配落后,自己开始走 Google Play 渠道订阅官方的 Claude Pro 套餐。无任何 Python 经验的情况下,拿 Claude Code 重构了线上一个 Python 仓库的 agent 功能,勉强上线但遗留了一堆问题,感觉主要是早期版本残留下来的奇葩需求导致,从功能设计层面就开始打结了。再往后就基本都是 vibe coding 了,不再人工编写代码,全部交由 AI 维护。
体验
重构线上 Python 仓库的 agent 功能时,就直接是团队多人全 AI 协作的模式了,过程中暴露出了各种各样的问题:
- 团队中会有把需求原样丢给 AI,一点儿不想动脑,不考虑实现方案也不检查实现效果,再把 AI 输出原样提交的
- 团队内的历史经验未同步到 AI,例如最终产物通常会锁死依赖版本来实现构建可重现,而 AI 生成时会直接引用各依赖项的 latest
- 即使统一使用 openspec 来保留每次变更的上下文,AI 依然会在多次迭代后发生偏移,不再符合已有的 specs 要求
- AI 生成的代码量爆炸,openspec 单组 propose/apply/archive 可产生数千甚至上万行代码变更,无法人工审核
- AI 对于服务端的程序异常处理不全,对于生产环境的实际限制也会由于缺失背景信息而考虑不周
以上主要是研发内部的问题,在跨部门的协作流程中也存在明显问题:引入 AI 后盲目追求速度,对产出的责任感下降,例如产品把 AI 生成的文档丢给研发,研发把 AI 生成的代码丢给测试,测试人工测出问题后到处找人,发现都讲不明白原始需求。在 V2EX 上也刷到过类似的吐槽贴 /t/1221898。
此外现有的内部工具仍是针对人工操作制定的交互逻辑,例如需要在网页上登录跳板机访问测试环境才能查询到的服务日志,在测试阶段对于 AI 定位问题来说就是阻碍,必须人工进行介入,后续内部工具应该会更多考虑 AI 作为操作者的情况。当然也不能不做限制完全放开,团队内就出现过同事的 Codex 查询 ~/.ssh/config 后自动连接到了一台内网测试服务器,执行 find 命令把磁盘 IO 打满之后才发现问题,这个月在 V2EX 上也刷到过两篇 AI 误删文件的帖子 /t/1233011 和 /t/1238217。
日常工作之外,自己也在空闲时间拿 AI 测试了一些东西。例如使用 openspec 从零新建的 agent-example,即使完全抛弃历史包袱让 AI 从头实现,也依然会出现一系列功能 bug,所以重构线上功能时遇到的问题不全是历史遗留的奇葩需求导致,AI 本身就会写出各种各样的 bug。后面还尝试用 AI 来逆向一个往蓝牙墨水屏上传图的安卓应用,第一步是 APK → Docs+Python,实际体验像是在随机抽奖,即使相同的模型配上相同的提示词,每次跑出来的还原效果仍有较大差异,只能多次清空目录从头跑,最后选一个相对不错的结果留下。再往后的 Docs+Python → Go 和 Docs+Python → Web 不再需要重新逆向,实现过程就顺利得多,最终托管到 Cloudflare 上的 inkako-web 网页也是像模像样的。整体感受 AI 写代码的效率确实高,多次重跑时把提示词丢给 AI,一晚上就可以把逆向过程从头重跑一遍,自己去研究 APK 逆向的话,肯定不是几个晚上就能搞定的,加上后面的 Golang CLI 和 Web Bluetooth 调试估计得占用三到四周的晚上。
入坑游戏《洛克王国:世界》之后,偶然在 NGA 上刷到了一篇关于“洛克王国世界助手”的帖子,作者在里面提到流量解析是参考的 TSF4G 通信协议,于是开始在 GitHub 上搜索更多类似开源项目,尝试喂给 AI 来实现一个自己个人定制的游戏助手,最终创建了三个仓库:
- rocom-capture: 游戏数据解包流程整理,以及运行在 Linux 网关上的流量解析工具,主要提供宠物筛选/捕获提醒/收集品地图等功能
- rocom-petvo: 解包过程中发现的宠物音频,提取出来做成了一个点击播放宠物叫声的网站 petvo.whoisnian.com
- rocom-pets: 解包过程中发现的宠物模型,提取出来做成了一个桌宠客户端,并利用 wasm 实现了网页端模型预览 rkpet.whoisnian.com
三个仓库都是按照“向 AI 提出功能需求,人工验收实现结果”的方式搭建的,完整的人工输入记录在 HISTORY.md,但对于 AI 所选技术方案的了解程度不同,各仓库后续迭代维护的难度也就不同。解包流程主要来自 FModel 依赖的 CUE4Parse,这部分 AI 参与的内容不多,所以仅涉及数据简单展示的 rocom-petvo 就没有太多发挥空间,只要解包流程能跑通就能轻松补充新宠物。而 rocom-capture 除了游戏数据解包之外,还要求游戏的通信协议已知,且通信过程中的数据包可解析,后续迭代就是对游戏内的新功能抓包看数据,然后拆分为后端存储和前端展示,还算可以迭代。至于 rocom-pets 则主要包含 AI 对游戏渲染效果的逆向,自己只能指出差异点和补充实机截图,祈祷 AI 产出更好的效果,最近的一些需求已经开始导致 Claude Opus 5 原地打转或越改越差了,对于后续的迭代没有任何信心,新宠物和新炫彩都不确定能还原多少。
经验
人与 AI 最理想的工作模式是人在上游,AI 在下游,即 (人⇆人) → (AI⇆AI)。但实际开发过程中很难实现,因为人的输出喂给 AI 的步骤没办法一次完成,总是需要对 AI 的产出进行调整,以及最终的测试验收环节还离不开人。
个人习惯是单独记录一个 HISTORY.md,作为与其他人沟通时的唯一可信源,不要求其他人阅读 AI 产出的内容,很像 rust-lang/rust is adopting an LLM policy 中提到的一句 No one except the author is required to read LLM output unless they choose to。
AI 参与的项目中,考虑长期维护的项目和快速 MVP 会有不同的要求,快速 MVP 只要跑得起来就行,而长期维护则需要更加了解项目边界和能力范围,才能避免后续迭代失控。
vibe coding 时对于编程语法和代码细节这类内容可以忽略,但对技术方案的整体流程还应保持了解,至少要知道数据是什么样子,会从哪里流向哪里,否则随着后续迭代失控就只能变成 AI 的传声筒,面对一片混沌的项目束手无策。
之前与外部公司协作时觉得至少要有一方能理清完整流程,来主导双方分别负责的内容,现在换成了自己跟 AI 协作,期望 AI 始终把握完整流程并不靠谱,只能自己来做主导双方的人。
对相关领域知识了解得越少,就越觉得 AI 在相关领域厉害。个人习惯单线程关注 AI 的实现过程,因为感觉 AI 很像是扫雷游戏,只要中间某一步歪了,那后面就会越来越歪,后续的产出都不能信任,最好是及时 /rewind 回到上一步重新开始。
实际工作中单个 Claude Pro 的额度完全不够用,最高强度时五小时额度实际半小时到一小时就能用完,一次五小时额度约占周额度的 10%,现在是开了两个 Pro 订阅勉强够用,如果没有客诉或历史问题要查,就可能因为 AI 额度限制而阻塞工作。
整体上看 AI 虽然减少了写代码的时间,但测试时间和修 bug 的时间会增多,写代码时 AI 附带的测试多数只是表面样子,对于产品的完整功能起不到多少实际效果,期望后续能把测试工作完全交给 AI,完整的功能测试才能减轻测试同事的人工压力。
未来
- 个人觉得 AI 是无法阻挡的大趋势,应持续关注并跟随使用,明确适合和不适合做的事,自己以前的习惯也需要适应改变。
- 当前阶段的 AI 尚未达到产品可以直接指挥实现功能的地步,仍需要人来把控整体技术方案,但未来可能达到,不过无法确定是多远的未来。
- 当前的 AI 热度存在一定水分,但不会突然一崩到底,感觉 AI 要么可以一直进化迭代,要么会到某个阶段卡住,然后等待下一波技术爆发。
- 个人空闲时间倒是可以把 AI 当作一个超高自由度的游戏来玩,自己给自己下发任务,尝试通过各种渠道来实现任务目标。