这两年,很多程序员已经习惯了一个错觉:AI 编程工具是包月自助餐。
几十块、十几二十美元,买一个月。平时让它补代码、解释报错、写单测,忙的时候让 Agent 直接读仓库、改文件、跑测试。用起来很爽,爽到很多人已经不太记得,背后每一次上下文读取、每一次模型推理、每一次反复改错,其实都有成本。
现在账单开始把这件事摊开了。
Copilot 这类工具转向 token、AI credits、高级请求额度以后,大家突然发现,原来“让 AI 多跑一会儿”不是一句轻飘飘的话。一个复杂任务,读一堆文件,来回修十几轮,可能比你想象中贵得多。
我不觉得这件事只是在讲涨价。它更像是在提醒程序员:你到底是在用 AI,还是已经把自己的工作节奏交给 AI 了。
先分清你依赖的是哪一种 AI
很多讨论一上来就问:AI 编程工具还能不能用?
这个问题太粗了。
同样是用 AI,差别很大。
第一种是代码补全。你写到一半,它补几行。这个场景消耗不大,风险也低,更多像一个更聪明的输入法。它能省时间,但一般不会替你决定系统怎么改。
第二种是问答和局部生成。比如你让它解释一段报错,补一个 SQL,写一个工具函数,或者帮你整理测试用例。这个阶段已经开始消耗上下文,但只要问题边界清楚,成本还能控制。
第三种才是真正容易失控的:Agent 工作流。
你给它一句话:“帮我把这个模块重构一下,顺便补测试。”然后它开始读仓库、找依赖、改文件、运行命令、遇到错误再修、修完再跑。表面上你只发了一条指令,背后可能已经发生了很多轮模型调用。
这也是为什么很多人会觉得不理解:我明明只让它做了一个任务,怎么额度没了这么多?
因为你看到的是一个任务,计费系统看到的是一串上下文、工具调用和反复推理。
真正烧钱的不是 AI,而是模糊需求
很多程序员第一次被 AI 账单吓到,不是因为模型单价有多高,而是因为自己以前没有意识到使用方式有多松。
需求没想清楚,先让 AI 试试。
报错没看明白,继续让 AI 猜。
上下文越塞越多,历史对话越来越长,文件一次性丢一堆。最后 AI 看起来很勤奋,一直在改,一直在解释,一直在道歉。你坐在旁边等它“再试一次”。
这种工作方式,过去的问题是浪费时间。现在多了一个问题:浪费钱。
更麻烦的是,账单往往来得比反馈更晚。你在执行任务的时候,很难直观看到这次调用到底会花掉多少额度。等你看到账单,很多调用已经发生了。

所以我更建议普通程序员把 AI 当成一个需要预算的协作者,而不是一个无限耐心的免费同事。
用之前先问自己几个问题:
这个需求我能不能用三句话说清楚?
哪些文件必须给 AI,看全仓库是不是偷懒?
我希望它产出方案、代码,还是排查路径?
这个任务跑偏以后,我准备在哪里停下来?
这些问题听起来不酷,但能省钱,也能省命。
重度依赖最危险的地方不是账单
账单只是最容易被看见的部分。
更隐蔽的问题是能力迁移。
以前你遇到一个线上 bug,会自己看日志、画调用链、缩小范围、猜测原因、验证假设。现在你把日志贴给 AI,它很快给你列出几个可能原因。第一次很舒服,第二次也很舒服,时间久了,你可能会跳过自己建立判断的过程。
这才是我觉得普通程序员要小心的地方。
AI 可以帮你写代码,但它不会替你承担后果。线上挂了,需求做歪了,数据被改坏了,老板不会去问模型为什么没想清楚。最后还是人来解释,人来回滚,人来补救。
如果你只是让 AI 帮你少敲几行代码,问题不大。
如果你已经习惯了“我不判断,让 AI 先跑”,那就要停一下。
程序员真正值钱的地方,正在从“写出代码”往前移。你要知道需求该不该做,旧系统哪里不能动,什么方案上线风险最小,AI 生成的代码哪里看起来像对的但其实会埋坑。
这些能力不会因为 AI 更强就消失。相反,代码生成越便宜,垃圾代码也会越多。能筛、能审、能收口的人会更重要。
普通程序员该怎么继续用
我不建议因为按量计费就不用 AI。
那有点像因为云服务器按量收费,就退回去自己买机器。方向没错,错的是用法太粗。
更实际的办法是给 AI 编程加几条规矩。
先让 AI 做方案,不要上来就改代码。
我现在更喜欢先问:“这个问题可能有哪几种改法?风险分别是什么?先不要写代码。”这一步花不了多少,但能逼自己把任务边界看清楚。方案都说不清,直接让它动仓库,后面大概率会返工。
小步提交,不要让 Agent 一口吃完整个需求。
一个任务拆成几段:先读代码给结论,再改一个小点,再补测试,再做边界处理。每一步你都能停下来检查。AI 跑偏时,损失也小。
上下文要抠门。
不要动不动把一整个目录塞进去。先给接口、错误日志、相关函数、最小复现。AI 如果确实需要更多文件,再补。很多时候不是模型不聪明,是你给了太多噪音。
把测试和 review 留给自己。
AI 写完以后,至少自己过一遍 diff。重点看异常分支、权限判断、数据迁移、并发场景、SQL 条件、缓存失效。它最容易在这些地方写出“看着像工程代码”的东西。
给高消耗任务设置停止点。
比如一个 Agent 连续修两轮还没跑通,就不要让它无限重试。停下来自己看错误。很多账单就是在“再试一次”里慢慢堆起来的。
别急着卸载,先改习惯
AI 编程工具按用量算账以后,最受伤的不是完全不用 AI 的人,也不是只用补全的人,而是那批已经习惯把复杂任务整包扔给 Agent 的人。
以前工具替你承担了算力成本,你只感受到效率。
现在成本回到使用者面前,大家才开始重新计算:这一轮调用到底值不值?
这不是坏事。
它会逼我们从“会不会用 AI”,走到“会不会管理 AI”。会提问只是第一层,会拆任务、控上下文、审代码、算成本,才是更接近真实工作的部分。
普通程序员还可以重度使用 AI,但最好别无脑依赖。
让它补全,让它解释,让它做初稿,让它跑一些低风险的小任务。复杂需求、线上问题、核心模块改造,还是要人先想清楚,再让 AI 进场。
我现在对 AI 编程工具的态度很简单:该用就用,但每一次让它跑起来之前,先想一下自己到底要买什么。
买几行代码,不贵。
买一次完整判断,AI 未必卖得起,你也未必付得起。
夜雨聆风