【Java+AI零花钱项目实战三M2】AI驱动Java项目M2阶段开发、省Token策略与成本踩坑全复盘
摘要:本文延续Spec-Driven规范驱动开发模式,基于零花钱智能管理项目,完成M2业务迭代阶段全流程AI实战开发。针对M0、M1阶段大模型Token消耗过高、自动全量迭代成本失控的痛点,本次M2迭代重点落地省Token精细化开发策略。全程真实记录AI问答式设计、轻量化编码、人工辅助自测、模型切换踩坑、环境问题修复全流程,深度复盘迭代期Token损耗规律与低成本AI编程实战技巧,为Java开发者长期AI工程化落地提供可复用的降本方案。IDEA + ClaudeCode(Beta) + CC Switch + 阿里云百炼大模型 + Qwen
一、前言:从「无脑AI全跑」到「精细化控本AI开发」
经过M0工程基建、M1核心业务两大阶段实战,我们已完整验证AI开发的数量级效率优势:传统1~2周的开发工作量,AI可单日完成落地。但同时也暴露了核心痛点——默认全自动迭代Token消耗极高,大模型计费成本不可忽视。
往期M1阶段,ClaudeCode默认开启「自动编码+多轮自校验+BUG自愈+全量测试」模式,十余轮迭代造成千万级Token损耗,计费成本快速上涨。
因此本次M2迭代阶段核心目标不再是单纯追求速度,而是平衡效率与成本,探索企业级可长期复用的「低成本AI编码方案」:
1、完成M2阶段业务详细设计、代码开发、自测验证全流程落地
2、落地自定义CLAUDE.md规则,限制AI无效自迭代,大幅降低Token消耗
3、真实复盘M2全流程Token损耗、模型切换踩坑、欠费踩坑经验
二、M2阶段AI问答式详细设计落地
延续专栏统一的Spec-Driven开发规范,先设计、后编码、文档先行。M2迭代不凭空设计,依托项目已有完整工程体系与迭代基线开展。
M2的功能规划,是由项目基建阶段在roadmap.md中定义好的,详情请见本专栏的姐妹篇的详解 【Java+AI零花钱项目实战一】工程基建:架构设计+项目骨架从零搭建(Spec-Driven+IDEA+ClaudeCode+SpringAI+Qwen)
2.1 AI问答式生成M2详细设计文档
在IDEA ClaudeCode命令行下发核心指令:输出M2的详细设计文档,采用问答式与我交互。
相较于初期AI开发,当前ClaudeCode具备极强的项目上下文感知能力,无需人工重复赘述项目背景,可自动完成全量文件检索与学习:
1、自动读取里程碑文件 roadmap.md,获取M2阶段预设功能定位与迭代目标

2、主动加载顶层约束文件 mission.md、tech-stack.md,对齐项目技术栈、规范、业务边界。
3、自主学习M0、M1阶段详细设计文档与已落地代码结构,保证M2架构、代码风格、工程规范与前序版本完全统一
2.2 问答式交互设计,人工把控核心决策
AI梳理完项目全量上下文后,不会自主输出设计方案,而是主动罗列所有架构、业务、技术决策点,以问答形式交由人工确认,彻底规避AI自主设计的偏差与冗余。
开发过程中可灵活选择:采纳AI给出的最优方案、备选方案,或手动输入自定义方案,完全掌控项目迭代方向。

2.3 文档同步迭代,保证工程一致性
M2迭代过程中,部分业务决策与初始 roadmap.md 规划存在差异。为避免文档与代码脱节、产生技术负债,本次设计定稿后,同步指令AI更新迭代roadmap.md,保证所有工程文档、设计方案、业务落地完全对齐,形成闭环规范体系。
三、M2阶段轻量化编码与自测落地(省Token核心方案)
针对M1阶段AI多轮自动迭代、无效自验证导致的Token巨额损耗问题,M2阶段创新采用轻量化省Token编码模式,通过自定义规则限制AI无效操作,平衡开发效率与成本。
3.1 自定义CLAUDE.md,重构AI编码规则
吸取往期踩坑经验:ClaudeCode默认配置会自动执行「编码→自测→报错修复→多轮迭代」全流程,极大消耗Token。
本次手动新建 CLAUDE.md 专属规则文件,强制约束AI行为:仅输出规范代码,不自动执行测试、不主动迭代修复、不发散推理,将自测、修复环节转为人工精准介入,砍掉90%无效Token消耗。
下发指令让AI加载新规则:重新读取本地的CLAUDE.md文件,执行M2的编码任务。
3.2 轻量化编码效率对比
省Token模式落地后,编码效率大幅优化,无效损耗显著降低:
- M1全自动模式:耗时6小时,包含编码、全量自测、多轮自愈迭代
- M2轻量化模式:仅耗时1小时完成全量业务代码输出,无无效迭代等待
3.3 人工辅助自测与问题修复
轻量化模式下,AI仅负责高质量编码,自测环节由人工主导,精准定位问题、小步修复,避免全局扫描耗损Token。
3.3.1 Maven编译报错修复
首次编译出现控制台乱码、方法名异常问题,快速定位报错原因,手动微调方法名后,项目编译成功,快速解决基础构建问题。

3.3.2 补充Junit测试用例
本次轻量化编码未自动生成测试用例,编译完成后单独指令AI生成M2全套Junit测试代码。同时总结优化经验:后续M3迭代将直接在编码阶段同步生成测试用例,避免二次请求、重复读取文件带来的额外Token损耗。
测试用例生成中途遭遇token耗尽,依托免费额度接续完成剩余内容输出。
四、M2阶段全量Token消耗与成本深度复盘
全程精准记录M2迭代各阶段额度损耗,对比M0、M1数据,完整复盘AI开发成本规律,为长期降本提供数据支撑。
4.1 M2迭代初始额度
M1阶段迭代完成后,10000点Standard套餐剩余额度为57.06%,剩余额度不足以支撑M2完整迭代。
4.2 M2详细设计阶段损耗
M2问答式详细设计全程,累计消耗Token 1.39M,套餐使用率从57.06%上涨至66.85%。可以看出,业务迭代设计阶段的精细化问答、方案推演,依然存在可观的Token消耗。
/- M2问答前
/- M2问答后
4.3 M2编码阶段损耗
轻量化编码阶段累计消耗Token 3.2M(320万),相较于M1全自动模式,单位功能Token损耗大幅降低,降本策略初见成效。
4.4 测试用例生成与模型切换踩坑(重金买经验)
为进一步降低成本,计划切换免费额度轻量化模型生成测试用例,实操中遭遇关键踩坑,付出真实成本代价:
1、仅通过ccSwitch切换模型,未重启ClaudeCode CLI窗口,工具未更新配置,依然沿用高价Qwen3.8-Max模型执行任务
2、后台持续计费,产生0.5元欠款,补缴费用后继续迭代
3、次日啥也没干,产生3.04元欠费,彻底验证:模型切换必须重启CLI窗口,否则配置不生效
4.5 精准提问省Token实战
本期M2为了省token,未使用ClaudeCode多轮自检、修复,所以ClaudeCode的代码输出后,自测时发现问题较多。
又因为小户人家,token不够用。ccSwitch配置为免费额度的qwen3-coder-480b-a35b-instruct这个大模型,关闭ClaudeCode窗口,重新打开。
提示词:“ UserServiceTest 中的 private final UserService service = new UserService(userMapper, passwordEncoder,refreshTokenService, auditService); 这行代码编译报错,请解决。仅解决该问题,不要发散。”
在这个提示词中,专门提示 仅解决该问题,不要发散。否则ClaudeCode可能会去加载全量文件去推理,那token就会燃烧的很好看了。这也算是三天使用ClaudeCode编程产生的下意识的反应了,省token!

改一个这么简单的问题,花了近60万token。各位看官,感受到大模型的使用损耗之大了么~
4.6 省Token取舍:AI减负、人工补位
然后再运行Junit测试用例,发现还有编译不通过的测试类
此时鼠标放在编译不过的类的对应行上时,可以看到出现了ClaudeCode的图标,此时点击该图标,则会在ClaudeCodeCli处自动生成修改的promote,后面我又补充了一句话。然后ClaudeCode就修改了这个类的这行代码

然而在当前工程中,实际上还有5个地方有同样的代码错误,ClaudeCode并未发散的去读取修改。此时我根据这个修改方法,手工修改了其他5个地方。痛苦啊,这就是要省token引发的人工成本,说真的,真不想动一行代码,但是没办法,token告急的时候,只能手搓了。
这也是低成本AI开发的核心取舍:简单重复问题人工补位,复杂逻辑问题AI落地,平衡Token成本与人工成本。
顺便吐槽下:
看到阿里云的TokenPlan的概览,写着开启代码冲浪
这怎么说呢,真实的Standard的一周1万点,还不够我用ClaudeCode冲两个下午的浪,已经被迫滚回了沙滩上,干瞪眼了…
然后现在手动调测,发现问题很多,此时只想再充钱,让AI继续干活,真不想改。看,这就是用了AI编码后的后遗症,不肯倒退一点点。
4.7 成本实战总结
Standard套餐每周10000点额度,仅能支撑2~3个下午的高强度AI编码迭代,个人实战、小型项目落地需严格把控Token消耗。长期AI开发,必须掌握「规则约束+精准提问+人工补位+模型切换」的全套降本技巧。
就这运行junit的过程中,还有很多问题,未解决。讲真的,已经不想手搓了,毕竟不是自己写的代码,维护别人的代码(包括AI)总是自带痛苦光环。
只想再花钱,让ClaudeCode一次性把活干好。
五、本章总结与迭代感悟
本次M2阶段迭代,尝试了如下三种节约token的方式。:
/- 1、规则约束是降本核心:通过自定义CLAUDE.md关闭AI无效自迭代,可直接砍掉70%以上无效Token消耗,是长期AI工程化落地的必备配置。
/- 2、模型切换有严格前提:ccSwitch模型切换后,必须重启ClaudeCode CLI窗口,否则配置不生效,极易产生隐形计费成本。
/- 3、人机分工决定性价比:复杂架构、业务编码交给AI,简单BUG修复、批量重复修改由人工补位,是当前阶段最优的人机协作模式。
总结:上述三种节约token的方式,在我看来是失败的。因为这造成了ClaudeCode编程过程的不连贯,从而带来了很多维护的成本,这个是沉浸式AI编程不希望看到的结果。
下一篇文章,我将探索,如何使用ClaudeCode多轮循环,一次性将事情办好的基础上,节约token。初步决定,引入会话压缩存储到本地的插件能力,进行实现,敬请关注,谢谢~
六、专栏系列目录(持续更新)
本专栏聚焦 Java + AI 项目实战,从环境搭建到工程落地全程精讲,持续连载更新!建议 收藏 专栏,不错过每一期实战干货,一站式掌握 AI 赋能 Java 开发的核心能力!
更多推荐




所有评论(0)