传统 Java/Vue 系统如何一步步接入 AI 维护

这篇不讲概念,专门讲落地:如果手上已经有一个传统 Java / Vue / Spring Boot 系统,想让 AI 帮忙长期维护,应该先做什么、后做什么、做到什么程度就够用。


核心原则

传统系统接入 AI 维护,不是先搭一个复杂 AI 平台,也不是一开始写完所有 spec、rules、skills、harness。

正确做法是:

先让 AI 不迷路,再让 AI 不乱写,再让 AI 不乱猜业务,最后把重复任务封装成 skill。

落地顺序:

text 复制代码
1. CLAUDE.md / AGENTS.md:让 AI 不迷路
2. rules/:让 AI 不乱写
3. specs/:让 AI 不乱猜业务
4. skills/:让 AI 不重复低质量劳动
5. 每次维护后反哺:越用越稳

第一步:先写项目入口文件

最小起点是项目根目录写一个:

text 复制代码
CLAUDE.md

或者为了兼容更多 Agent,写:

text 复制代码
AGENTS.md

它是 AI 进入项目后的第一入口。

最小模板

markdown 复制代码
# 项目 AI 工作规范

## 项目说明
这是一个 XXX 系统,主要用于 XXX。

## 技术栈
- 后端:Java 17 / Spring Boot / MyBatis Plus / MySQL
- 前端:Vue 3 / Vite / Element Plus
- 缓存:Redis
- 消息队列:RabbitMQ

## 目录结构
- backend/ 后端服务
- frontend/ 前端项目
- docs/ 项目文档
- specs/ 模块规格说明
- rules/ AI 开发规则
- skills/ 可复用 AI 任务能力

## 常用命令
- 后端测试:mvn test
- 前端安装:pnpm install
- 前端构建:pnpm build

## AI 工作规则
1. 修改代码前必须先阅读相关模块 spec。
2. 不允许凭空猜接口、字段、表名。
3. 不允许大范围重构无关代码。
4. 修 bug 必须先说明根因,再改代码。
5. 完成后必须运行对应测试或说明无法运行的原因。
6. 涉及数据库变更,必须同步 migration 和文档。

这一步解决的是:

text 复制代码
AI 不知道项目是什么
AI 不知道从哪启动
AI 不知道该读哪些文件
AI 改错目录
AI 没验证就说完成

第二步:建立最小目录结构

不需要复杂,先这样就够:

text 复制代码
your-project/
├── CLAUDE.md
├── specs/
│   ├── README.md
│   └── core-business.md
├── rules/
│   ├── backend.md
│   ├── frontend.md
│   ├── database.md
│   └── testing.md
└── skills/
    └── systematic-debugging.md

如果是纯后端项目,可以更简单:

text 复制代码
your-project/
├── CLAUDE.md
├── specs/
├── rules/
│   ├── backend.md
│   └── database.md
└── skills/
    └── systematic-debugging.md

目录含义:

目录/文件 作用
CLAUDE.md AI 工作入口和最小 harness
specs/ 模块业务说明和验收标准
rules/ 项目开发规范
skills/ 高频任务标准流程

第三步:先写 rules,让 AI 不乱写

传统系统里,AI 最容易犯的第一个错误是"不符合项目写法"。

所以 rules 优先级很高。

rules/backend.md

markdown 复制代码
# 后端开发规则

## 分层规则
1. Controller 只负责参数接收和响应返回,不写业务逻辑。
2. Service 负责业务编排和事务控制。
3. Mapper 只负责数据库访问。
4. DTO/VO/Entity 不混用。

## 接口规则
1. 新增接口必须定义 Request 和 Response 对象。
2. 查询列表必须分页。
3. 不允许直接返回 Entity 给前端。
4. 参数校验使用 Bean Validation。

## 事务规则
1. 多表写入必须确认事务边界。
2. 支付、库存、订单状态变更必须考虑幂等。
3. 不允许在事务中调用慢外部接口。

## 安全规则
1. 禁止字符串拼接 SQL。
2. 禁止日志打印密码、token、身份证等敏感信息。
3. 权限校验必须走统一注解或统一拦截器。

## AI 修改规则
1. 不允许顺手重构无关代码。
2. 不允许删除已有逻辑,除非 spec 明确要求。
3. 修 bug 必须先说明根因。
4. 完成后必须说明验证方式。

rules/database.md

markdown 复制代码
# 数据库规则

1. 所有业务表必须有 id、created_at、updated_at。
2. 删除优先使用软删除字段 deleted。
3. 金额字段使用 decimal,不使用 float/double。
4. 状态字段必须有明确枚举说明。
5. 新增索引必须说明查询场景。
6. 涉及线上表结构变更必须提供 migration。
7. 不允许 AI 猜表名、字段名,必须从 schema 或代码中确认。

rules/frontend.md

markdown 复制代码
# 前端开发规则

1. 页面必须放在对应业务模块目录下。
2. 列表页必须使用项目统一表格组件。
3. 表单校验必须使用统一校验规则。
4. 接口请求必须走统一 request 封装。
5. 不允许绕过权限控制直接展示按钮。
6. 不允许直接渲染不可信 HTML。
7. 不允许为了当前功能重构公共组件。

Rules 写到这个程度,AI 的乱写概率会明显下降。


第四步:补核心模块 Spec,让 AI 不乱猜业务

不要一开始写全系统 spec。

先选最容易出错、最核心、最常维护的模块。

例如:

text 复制代码
specs/order.md
specs/payment.md
specs/inventory.md
specs/approval.md
specs/permission.md

模块 Spec 模板

markdown 复制代码
# XXX 模块 Spec

## 1. 模块职责
这个模块负责什么,不负责什么。

## 2. 核心实体/字段
关键表、字段、对象。

## 3. 核心业务规则
最不能被改错的规则。

## 4. 状态流转/关键流程
状态机、审批流、支付流、库存流等。

## 5. 常见坑
历史 bug、线上踩坑、容易漏的边界。

## 6. AI 修改注意事项
明确禁止猜字段、禁止绕过流程、禁止改无关模块。

订单模块示例

markdown 复制代码
# 订单模块 Spec

## 1. 模块职责
负责用户下单、支付、取消、发货、完成。

## 2. 核心实体/字段
- 订单:订单编号、用户、金额、状态、创建时间
- 订单明细:商品、数量、单价
- 支付记录:支付渠道、支付流水号、支付状态

## 3. 核心业务规则
1. 已支付订单不能直接取消。
2. 支付回调必须幂等。
3. 订单金额以后端计算为准,不能信任前端传入。

## 4. 状态流转
CREATED -> PAID -> SHIPPED -> FINISHED
CREATED -> CANCELLED

## 5. 常见坑
- 支付平台可能重复回调。
- 库存扣减和订单状态更新可能出现不一致。
- 用户刷新页面可能重复提交订单。

## 6. AI 修改注意事项
1. 不能绕过订单状态机。
2. 涉及金额必须使用 BigDecimal。
3. 涉及支付回调必须检查幂等逻辑。
4. 不允许顺手修改库存模块核心逻辑。

第五步:先沉淀一个 Debugging Skill

传统系统维护里最高频的 AI 任务通常不是新功能,而是修 bug。

所以第一个 skill 建议写:

text 复制代码
skills/systematic-debugging.md

内容:

markdown 复制代码
# Systematic Debugging Skill

## 适用场景
当用户要求修复 bug、排查异常、解决线上问题时使用。

## 输入要求
- 错误日志
- 复现步骤
- 相关接口或页面
- 最近变更
- 期望行为和实际行为

## 执行流程
1. 先复述问题现象。
2. 定位相关代码路径。
3. 阅读代码,不允许直接猜测。
4. 提出 1-3 个可能原因。
5. 用日志、代码、测试验证假设。
6. 确认根因后,只做最小修复。
7. 运行验证。
8. 输出根因、改动、验证结果。

## 禁止事项
1. 禁止未定位根因就改代码。
2. 禁止大范围重构。
3. 禁止用吞异常、加空判断掩盖问题。
4. 禁止没有验证就说修好了。

这个 skill 的价值非常高,因为它能阻止 AI 最常见的问题:猜测式修复。


第六步:以后给 AI 任务要用规范模板

不要再只说:

text 复制代码
帮我加个订单导出功能。

改成:

markdown 复制代码
## 任务
给订单管理模块新增 Excel 导出功能。

## 必读上下文
- CLAUDE.md
- specs/order.md
- rules/backend.md
- rules/frontend.md
- rules/database.md

## 要求
1. 导出字段与订单列表一致。
2. 支持按当前查询条件导出。
3. 只允许导出当前用户有权限的数据。
4. 不允许改动无关模块。
5. 完成后运行后端测试和前端构建。

## 交付
1. 改动文件列表。
2. 核心实现说明。
3. 验证结果。
4. 如果无法验证,说明原因。

这样 AI 才是在明确上下文和边界里做事。


第七步:每次维护后反哺资产

AI 维护传统系统,不是一次性建完规则就结束,而是每次任务后沉淀。

反哺规则:

text 复制代码
业务规则不清 → 更新 specs/
AI 写法不符合项目规范 → 更新 rules/
同类任务重复出现 → 更新 skills/
执行流程失控 → 更新 CLAUDE.md / AGENTS.md
验证方式不清 → 更新 testing rules 或 checklist

例如:

这次发现的问题 应该反哺到哪里
AI 不知道订单状态不能跳转 specs/order.md
AI 又忘了金额用 BigDecimal rules/backend.md
AI 修 bug 没找根因 skills/systematic-debugging.md
AI 修改前没读 spec CLAUDE.md
AI 不知道要跑什么测试 rules/testing.md

核心闭环:

text 复制代码
任务 → spec → rules → skill → 修改 → 验证 → 反哺

推荐成熟度路线

阶段 1:AI 能读懂项目

产物:

text 复制代码
CLAUDE.md

目标:

text 复制代码
让 AI 不迷路

阶段 2:AI 能按规范改代码

产物:

text 复制代码
rules/backend.md
rules/frontend.md
rules/database.md
rules/testing.md

目标:

text 复制代码
让 AI 不乱写

阶段 3:AI 能理解业务模块

产物:

text 复制代码
specs/order.md
specs/payment.md
specs/inventory.md
specs/approval.md

目标:

text 复制代码
让 AI 不乱猜业务

阶段 4:AI 能稳定做重复任务

产物:

text 复制代码
skills/systematic-debugging.md
skills/crud-module.md
skills/code-review.md
skills/test-generation.md

目标:

text 复制代码
让 AI 不重复低质量劳动

不要踩的坑

1. 不要一开始写全系统 Spec

太重,容易烂尾。

正确做法:

改哪个模块,补哪个模块。

2. 不要把 rules 写成一篇超长文档

AI 不容易抓重点。

正确做法:

text 复制代码
backend.md
frontend.md
database.md
testing.md
security.md

按任务加载。

3. 不要什么都封装成 skill

低频任务不用封装。

正确做法:

重复三次以上、流程固定、容易出错、价值高,再封装。

4. 不要让 AI 自己猜上下文

每次任务最好明确告诉它读哪些文件。

5. 不要相信"完成了"三个字

必须看验证证据。

text 复制代码
测试通过
构建通过
接口调用成功
页面操作成功
SQL migration 已执行
无法验证的原因说明

最小可执行清单

如果今天就要开始,可以只做这 5 件事:

text 复制代码
1. 写 CLAUDE.md
2. 写 rules/backend.md
3. 写 rules/database.md
4. 写 specs/core-business.md
5. 写 skills/systematic-debugging.md

这套最小资产已经能显著提升 AI 维护传统系统的稳定性。


结论

传统系统接入 AI 维护的关键不是"大模型有多聪明",而是项目有没有给 AI 提供足够清晰的上下文和边界。

最小落地路径:

text 复制代码
CLAUDE.md 让 AI 不迷路
rules 让 AI 不乱写
specs 让 AI 不乱猜业务
skills 让 AI 不重复低质量劳动
每次维护后反哺,让系统越来越适合 AI 维护

最终目标是:

让 AI 在有图纸、有规矩、有流程、有验证的环境里稳定维护传统系统。

相关推荐
shuoshuohaohao1 小时前
《HTTP协议》
java·web
早春的树长在理想三旬1 小时前
从LLM到Agent:ReAct推理模式的底层原理
人工智能·spring boot·springai·agent开发
段一凡-华北理工大学1 小时前
AI Agent 从入门到封神:24 讲打造你的超级智能体~系列文章23:从Demo到上线:Agent应用的架构设计、性能优化与成本控制实战
运维·网络·人工智能·性能优化·高炉炼铁·工业智能体
Axis tech1 小时前
MANUS手套为NVIDIA的DreamDojo机器人世界模型提供真实的手部运动数据
人工智能·深度学习·机器学习
早春的树长在理想三旬1 小时前
工具抽象的艺术:可插拔Skill系统的设计哲学
人工智能·agent·springai
IT_陈寒1 小时前
为什么我的React状态更新总是不按套路出牌?
前端·人工智能·后端
新知图书1 小时前
向量数据库集成(Chroma/Pinecone/Milvus)
人工智能·agent·多模态·ai agent·智能体
大鱼>1 小时前
宠物监控数据安全与隐私保护:端到端加密与合规实践
人工智能·深度学习·算法·iot·宠物
小二·1 小时前
WebGPU 浏览器端跑大模型:让AI在网页里跑起来(WebLLM/Transformers.js实战)
开发语言·javascript·人工智能