商业版 AI 二开指南
本指南面向 RuoYi Office 商业版用户,介绍如何借助 AI 编程工具(Cursor、Trae、Claude Code 等)快速二次开发,高效生成符合项目规范的代码,实现个性化业务需求。
适用对象
- 有基本编程基础、希望快速上手二开的商业版用户
- 对 AI 辅助开发感兴趣的技术负责人和开发者
- 希望降低定制开发成本、缩短交付周期的企业团队
一、为什么选择 AI 辅助二开
1.1 传统二开的痛点
在传统的二次开发模式下,即使是一个简单的 CRUD 功能,开发者通常需要:
- 理解项目结构 — 熟悉后端分层(Controller → Service → Mapper → DO)、前端目录(API → Views → Components)
- 遵循代码规范 — 命名规范、注解用法、VO 设计、权限标识、错误码分配
- 手动编写大量模板代码 — 建表 SQL、Java 实体类、Mapper 接口、Service 接口与实现、Controller、前端 API 文件、Vue 页面、表单配置、表格配置
- 配置菜单与权限 — 编写菜单 INSERT SQL、分配按钮权限
一个中等复杂度的功能模块,从建表到页面可用,通常需要 1-3 天的开发工作量。
1.2 AI 二开的优势
借助 AI 编程工具 + RuoYi Office 预置的项目规范和提示词体系,同样的功能可以做到:
| 对比项 | 传统方式 | AI 辅助方式 |
|---|---|---|
| 开发周期 | 1-3 天 | 10-30 分钟 |
| 规范一致性 | 依赖开发者经验 | AI 自动遵循规范 |
| 代码质量 | 参差不齐 | 统一标准 |
| 学习成本 | 需要深入理解框架 | 描述需求即可 |
| 出错概率 | 容易遗漏配置 | 自动补全 |
二、AI 编程工具选型
2.1 推荐工具对比
| 工具 | 特点 | 推荐场景 |
|---|---|---|
| Trae | 字节跳动出品,中文体验好,免费额度充足 | 轻量级修改、国内网络友好 |
| Cursor | IDE 级集成,上下文理解最强 | 复杂功能开发、需注意有些模型国内网络无法访问 |
| Claude Code | 命令行工具,适合自动化脚本式开发 | 复杂功能开发且习惯CLI(命令行)方式开发 |
| GitHub Copilot | VS Code / JetBrains 插件,实时补全 | 日常编码辅助 |
2.2 Cursor 使用建议(推荐)
Cursor 是目前与 RuoYi Office 配合最好的 AI 编程工具:
@引用能力:可直接引用项目中的文件、目录作为上下文,AI 能精确理解项目结构- Agent 模式:可以自动分析项目、创建文件、修改代码、执行命令
- Rules 规则:通过
.cursorrules和.cursor/rules/预设项目规范,AI 自动遵守 - 多文件编辑:一次对话可同时生成后端 + 前端 + SQL 全部代码
三、项目规范体系
RuoYi Office 商业版提供了完整的规范文件,帮助 AI 生成符合标准的代码:
3.1 规范文件清单
| 文件 | 作用 | 位置 |
|---|---|---|
.cursorrules | 全局项目规范(自动加载) | 项目根目录 |
project-overview.mdc | 项目结构和技术栈概览 | .cursor/rules/ |
date-time-convention.mdc | 日期时间字段前后端规范 | .cursor/rules/ |
3.2 提示词模板(ruoyi-office-prompt/)
商业版配套了一套提示词模板仓库,用于指导 AI 生成不同类型的代码:
| 提示词文件 | 适用场景 |
|---|---|
全局代码规范.md | 后端/前端通用编码规范,所有二开的基础参考 |
流程表单-代码生成规范.md | 带审批流程的业务单据开发(请假、用车等) |
流程表单提示词.md | 流程表单需求描述模板 |
代码生成提示词模板.md | 快速/详细/超简洁三种提示词模板 |
| 各业务提示词 | 具体业务的需求描述(转正、调动、请假等) |
3.3 如何使用
在 Cursor 中,你只需在对话中使用 @ 引用这些文件:
请参考 @全局代码规范.md ,在 ERP 模块下新增物料分类管理功能...AI 会自动读取规范内容并严格遵守,生成的代码在命名、分层、注解、权限等方面保持完全一致。
四、实战案例:物料分类管理
以下是一个真实的二开案例 — 在 ERP 模块中新增「物料分类管理」功能。从需求描述到功能上线,全程通过 AI 辅助完成。
4.1 需求描述
业务背景:企业需要一个物料分类字典,用于新增物料时按编码规则分类管理。
功能要求:
- 建立物料分类数据库表,支持层级结构(一级分类 → 二级分类 → 存货大类)
- 前端实现树形列表展示(参考组织机构树效果)
- 支持数据管理:增删改查、导入导出、批量删除
需求示意图:

参考交互:组织机构树形列表

4.2 给 AI 的提示词
在 Cursor Agent 模式下,输入以下提示词: 
ERP模块新增物料分类字典管理,需求:
1、此表用于新增物料的分类,按企业物料编码规则录入
2、建立一张物料分类数据库表,字段包含:分类名称、分类短码、
父级分类ID,支持多级层级结构
3、前端可进行数据管理(列表展示),具有导入和导出、
单条记录修改删除、批量删除、字段查询等功能
4、字典是层级结构,前端参考组织机构树实现层级列表效果
@ruoyi-office-vben/apps/web-antd/src/views/system/dept
请结合项目代码规范和习惯,生成完整的数据结构sql、
前后端代码、菜单目录sql等信息。
代码相关生成到 @ruoyi-office/yudao-module-erp
@ruoyi-office-vben/apps/web-antd/src/views/erp提示词要点
- 明确业务需求 — 告诉 AI 要做什么、字段有哪些
- 指定参考模板 — 用
@引用已有的相似功能代码作为参照 - 指定输出目录 — 用
@引用目标模块,AI 会自动按项目规范放置文件 - 提及规范 — "结合项目代码规范和习惯"让 AI 加载
.cursorrules
4.3 AI 自动生成的内容
AI 在一次对话中自动完成了以下全部工作:
后端代码(8 个文件)
| 生成文件 | 说明 |
|---|---|
ErpMaterialCategoryDO.java | 数据对象,parentId 支持树形结构 |
ErpMaterialCategoryMapper.java | Mapper 接口 |
ErpMaterialCategoryListReqVO.java | 列表查询请求 |
ErpMaterialCategorySaveReqVO.java | 新增/修改请求 |
ErpMaterialCategoryRespVO.java | 响应 VO(含 Excel 导出注解) |
ErpMaterialCategoryService.java | Service 接口 |
ErpMaterialCategoryServiceImpl.java | Service 实现(含树形校验) |
ErpMaterialCategoryController.java | REST 接口(含导入导出) |
前端代码(4 个文件)
| 生成文件 | 说明 |
|---|---|
api/erp/product/materialCategory/index.ts | API 层定义 |
views/erp/product/materialCategory/data.ts | 表单/表格配置 |
views/erp/product/materialCategory/index.vue | 主页面(树形列表) |
views/erp/product/materialCategory/modules/form.vue | 弹窗表单 |
SQL 脚本(3 个文件)
| 生成文件 | 说明 |
|---|---|
create_erp_material_category.sql | 建表 DDL |
init_erp_material_category_menu.sql | 菜单与权限 SQL |
init_erp_material_category_data.sql | 示例数据 |
错误码分配
AI 自动在 ErrorCodeConstants.java 中新增了 MATERIAL_CATEGORY_* 错误码段(1-030-503-000),与现有编码规则保持一致。
4.4 上线步骤
AI 生成全部代码后,只需 3 步即可上线:
第一步:执行 SQL
-- 1. 创建数据表
source create_erp_material_category.sql;
-- 2. 初始化菜单和权限
source init_erp_material_category_menu.sql;
-- 3. 导入示例数据(可选)
source init_erp_material_category_data.sql;第二步:分配权限
在系统管理 → 角色管理中,给目标角色分配「物料分类」相关权限按钮。
第三步:重启验证
重启后端服务,刷新前端页面,即可看到物料分类管理功能。
4.5 最终效果

功能包含:
- ✅ 树形层级列表展示(支持展开/收缩)
- ✅ 新增/编辑/删除(含新增下级)
- ✅ 批量删除
- ✅ Excel 导入/导出
- ✅ 下载导入模板
- ✅ 按名称/短码/状态查询
- ✅ 权限控制
4.6 AI 自动遵守的规范项
通过这个案例可以看到,AI 自动做到了以下规范要求:
| 规范项 | AI 的处理 |
|---|---|
| 后端分层 | Controller → Service → Mapper → DO,严格分层 |
| VO 设计 | SaveReqVO + ListReqVO + RespVO 三件套 |
| 权限标识 | erp:material-category:create/update/delete/query/export |
| 错误码 | 按模块编号段分配(1_030_503_xxx) |
| 树形校验 | 父节点存在性、环路检测、同级名称唯一 |
| 前端组件 | VxeGrid + treeConfig + useVbenModal |
| Excel 注解 | @ExcelProperty + @DictFormat |
| 菜单 SQL | 按现有格式生成 INSERT 语句 |
五、实战案例:业务流程单据(ERP 集中采购单)
5.1 需求背景
企业采购业务中存在"一采多销"场景:一个采购单采购的商品需要分配到多个客户的销售订单中。此需求需要:
- 独立于现有采购订单,创建一套全新的数据结构和代码逻辑
- 集成工作流审批,支持草稿保存、提交发起流程、审批通过/拒绝/撤回
- 主子表结构,包含采购明细(产品清单)和销售分配(按客户订单分配数量)
- 附件管理,支持上传和管理相关采购凭证
5.2 参考提示词
需求:
当前系统不支持一个采购单为多个客户订单做采购的业务场景,需要新增此功能支持
场景描述
一采多销:一个采购单采购的商品,会分配到多个客户的销售订单中
独立于当前采购订单,重新根据需求创建一套数据结构、代码逻辑。
代码生成位置
@ruoyi-office-vben/apps/web-antd/src/views/erp
@ruoyi-office/yudao-module-erp/yudao-module-erp-server
要求使用业务流程单据实现,参考@ruoyi-office-prompt/流程表单-代码生成规范.md
同时需要生成流程节点,方便我后面定义流程模型5.3 AI 生成的开发计划
建议使用 Plan 模式
对于复杂的流程表单功能,建议先在 Cursor 的 Plan 模式下让 AI 生成开发计划,评审确认后再切换到 Agent 模式执行。这样可以在动手前就发现潜在问题。

AI 首先会分析需求,探索现有代码结构,然后输出完整的开发计划:
数据模型:3 张表
erp_centralized_purchase_bill:集中采购单主表(流程字段 + 供应商 + 金额汇总)erp_centralized_purchase_item:采购明细子表(产品、数量、单价、税率)erp_centralized_purchase_alloc:销售分配子表(关联销售订单/客户、分配数量)
审批流程:发起人 → 部门负责人 → 采购主管 → 财务审批
代码文件清单:
| 层级 | 文件 | 说明 |
|---|---|---|
| 枚举 | SystemEnum.java | 新增 ERP("EP", "ERP系统") |
| 枚举 | ErpBillTypeEnum.java | 新建,定义集中采购单类型 |
| 错误码 | ErrorCodeConstants.java | 新增 CENTRALIZED_PURCHASE_* 段 |
| DO | ErpCentralizedPurchaseBillDO.java 等 3 个 | 主表 + 明细 + 分配 |
| Mapper | ErpCentralizedPurchaseBillMapper.java 等 3 个 | 数据访问 |
| VO | SaveReqVO / RespVO / PageReqVO | 请求/响应对象 |
| Service | ServiceImpl 实现 FlowBillService 接口 | 含 BPM 流程集成 |
| Controller | REST 接口(save/submit/CRUD/export) | 权限标识 erp:centralized-purchase-bill:* |
| 流程工厂 | ErpFlowBillServiceFactory | 注册 ERP 模块流程服务 |
| 监听器 | ErpLocalNotificationListener | BPM 事件回调 |
| 前端 API | api/erp/purchase/centralizedPurchase/ | 类型定义 + 接口函数 |
| 列表页 | list/index.vue + list/data.ts | VxeTable 分页列表 |
| 表单页 | info/index.vue + info/data.ts | BasicForm + 明细表格 + 分配表格 + 附件 |
| SQL | DDL + 菜单权限 SQL | 归档到 ruoyi-office-db/ |
5.4 关键代码说明
与简单 CRUD 模块的主要区别:
- 流程集成:ServiceImpl 实现
FlowBillService<ErpBillTypeEnum>接口,支持getSupportedBillType()、updateProcessStatus()、deleteBill()等流程回调方法 - 单据编号生成:使用
BillCodeUtils.generateBillCode(SystemEnum.ERP, ErpBillTypeEnum.ERP_CENTRALIZED_PURCHASE_BILL)自动生成唯一编号 - 流程提交:调用
BpmProcessInstanceApi.submitProcessInstance()发起审批,并将processInstanceId回写到业务表 - 流程变量:通过
BpmProcessVariableUtils.buildBillVariables()将单据信息传递给流程引擎,供审批节点条件判断使用 - 前端 list/info 分离:列表页使用 VxeTable 展示,详情页使用 BasicForm + CardContainer 组织表单和明细表格,支持草稿/提交/撤回/删除操作
5.5 后续步骤:从代码到上线全流程
AI 生成代码后,还需要完成以下步骤才能真正跑通完整业务流程。
第一步:执行 SQL、分配权限、启动服务
-- 1. 创建数据库表(3 张表)
source create_erp_centralized_purchase.sql;
-- 2. 初始化菜单和权限
source init_erp_centralized_purchase_menu.sql;执行后在系统管理 → 角色管理中给目标角色分配「集中采购单」相关权限按钮,然后重启后端服务、刷新前端页面。
第二步:创建流程模型
进入 流程中心 → 流程设置 → 流程模型,点击「新建模型」,填写基本信息:
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| 流程标识 | erp_centralized_purchase_bill | 必须与后端 ErpBillTypeEnum 中定义的 processDefinitionKey 一致 |
| 流程名称 | 集中采购单 | 显示名称 |
| 流程分类 | 按实际选择(如 OA协同办公) | 归类展示 |
| 流程类型 | BPMN 设计器 | 使用可视化设计器 |
| 是否可见 | 否 | 业务流程单据一般不在「发起流程」中展示,而是从业务页面发起 |

第三步:配置表单设计
切换到「表单设计」标签页,选择业务表单模式并配置路由:
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| 表单类型 | 业务表单 | 表示使用自定义的 Vue 页面而非流程表单设计器 |
| 表单提交路由 | /erp/purchase/centralized-purchase-info | 对应单据详情页的路由路径 |
| 表单查看组件 | /erp/purchase/centralizedPurchase/info/index.vue | 对应前端 info 页面的组件文件路径 |

路由与组件路径的对应关系
- 表单提交路由:对应菜单 SQL 中隐藏详情页的
path字段 - 表单查看组件:对应菜单 SQL 中隐藏详情页的
component字段(Vue 组件路径)
这两个值可以在菜单 SQL 文件中找到,或者在系统管理 → 菜单管理中查看详情页菜单的配置。
第四步:设计审批流程
切换到「流程设计」标签页,使用 BPMN 设计器配置审批链路。典型的审批节点配置:

节点配置要点:
- 每个审批节点需设置审批人类型(如:指定岗位、部门负责人等)
- 点击节点打开配置面板,在「审批人」标签中设置审批人规则

常用审批人设置方式:
| 方式 | 适用场景 | 说明 |
|---|---|---|
| 发起人自选 | 发起人知道审批人是谁 | 提交时选择审批人 |
| 部门负责人 | 部门负责人审批 | 自动获取发起人所在部门的负责人 |
| 指定岗位 | 特定岗位人员审批 | 如「OA_用车申请审核岗」「采购主管」等 |
| 指定角色 | 特定角色人员审批 | 如「财务审核员」 |
第五步:发布流程
配置完成后点击「保存」,然后回到流程模型列表页,点击「发布」按钮:

发布后流程状态变为「已发布」,此时业务单据就可以提交发起审批了。
第六步:提交单据验证
回到集中采购单详情页,填写单据信息后点击「提交」按钮。提交成功后可以看到:
- 顶部状态变为「审批中」
- 单据编号自动生成(如
EP201-2026032440005)

切换到「审批信息」标签,可以查看完整的审批进度和审批记录:

至此,一个完整的业务流程单据从代码生成到流程审批的全链路已经打通。
5.6 经验总结
- 引用规范文件是关键:
@ruoyi-office-prompt/流程表单-代码生成规范.md确保 AI 知道流程表单的标准实现方式 - AI 会自动探索参考代码:通过分析现有的 OA 模块流程表单实现(如用印申请单),AI 能准确复制架构模式
- 复杂功能建议先出计划:让 AI 先生成开发计划进行评审,确认后再执行代码生成,避免返工
- 主子表 + 流程 + 附件 是企业级业务表单的典型组合,掌握此模式后可快速复制到其他业务场景
六、提示词编写技巧
6.1 高效提示词的核心要素
┌─────────────────────────────────────────┐
│ 1. 明确需求 — 做什么功能、有哪些字段 │
│ 2. 指定参考 — @引用已有的相似功能代码 │
│ 3. 指定规范 — @引用代码规范文件 │
│ 4. 指定位置 — @引用目标模块目录 │
│ 5. 补充约束 — 特殊交互、校验、权限要求 │
└─────────────────────────────────────────┘6.2 简单 CRUD 功能提示词模板
在 【模块名】 模块下新增 【功能名】 管理功能:
1. 数据库表设计:
- 表名:【表名】
- 字段:【字段1】、【字段2】、【字段3】...
2. 功能要求:
- 列表展示(分页/树形)
- 增删改查
- 导入导出
3. 参考实现:@【已有相似功能的目录】
请结合项目代码规范,生成完整的 SQL、后端代码、前端代码。
代码生成到 @【后端模块目录】 @【前端页面目录】6.3 流程表单提示词模板
对于带审批流程的业务单据,建议直接使用项目中的 流程表单提示词.md 模板。该模板覆盖了:
- 单据与业务背景
- 菜单与路由信息
- 数据库与字段设计
- 流程与状态设计
- 前端列表页需求
- 前端表单页需求
- 权限与数据范围
6.4 常见提示词用法
用法一:参考已有功能生成新功能
参照 @ruoyi-office-vben/apps/web-antd/src/views/erp/product/category 的完整实现,
在 ERP 模块下新增【设备分类】管理功能,字段包含:...用法二:引用规范文件
请遵守 @ruoyi-office-prompt/全局代码规范.md ,
参考 @ruoyi-office-prompt/流程表单-代码生成规范.md ,
完成【出差申请单】的代码实现。用法三:快速修改已有功能
在 @ruoyi-office-vben/apps/web-antd/src/views/erp/stock/warehouse/data.ts
的表格列中新增"仓库面积"字段,类型为 InputNumber,单位为"㎡"。
同时在后端 @WarehouseDO.java 中新增对应字段。七、最佳实践与注意事项
7.1 推荐工作流
需求分析 → 编写提示词 → AI 生成代码 → 审查代码 → 执行 SQL → 分配权限 → 测试验证重要提醒
AI 生成的代码需要人工审查! 尤其注意:
- 数据库字段类型和长度是否合理
- 业务校验逻辑是否完整
- 权限标识是否正确
- 前端交互是否符合预期
7.2 分步执行
对于复杂功能,建议分步让 AI 完成:
- 第一步:生成数据库表设计 SQL → 人工审查确认
- 第二步:生成后端代码(DO → Mapper → Service → Controller)
- 第三步:生成前端代码(API → 页面 → 表单)
- 第四步:生成菜单和权限 SQL
每一步都可以审查并调整后再继续,避免一次性生成过多代码导致难以排查问题。
7.3 上下文管理
- 保持对话连续:同一个功能的开发尽量在一个对话中完成
- 合理使用
@引用:引用参考代码而非复制粘贴,让 AI 理解完整上下文 - 先小后大:先从简单的 CRUD 开始练习,再尝试复杂的流程表单
7.4 常见陷阱
| 陷阱 | 建议 |
|---|---|
| 提示词过于简略 | 至少说明字段、功能点和参考模块 |
| 不指定输出位置 | 用 @ 明确告诉 AI 代码放在哪个目录 |
| 不引用规范 | 引用 .cursorrules 或提示词文件 |
| 忽略 SQL 执行 | 代码生成后一定要执行建表和菜单 SQL |
| 不分配权限 | 菜单出来后要在角色管理中分配权限 |
八、进阶:Cursor Rules 自定义
如果你的企业有特殊的编码规范或命名习惯,可以自定义 Cursor Rules:
8.1 修改全局规则
编辑项目根目录的 .cursorrules 文件,添加你的自定义规范:
# 企业自定义规范
- 所有表名必须以 `biz_` 为前缀
- 所有 API 路径必须以 `/api/v1/` 开头
- 前端组件命名统一使用 PascalCase8.2 添加模块级规则
在 .cursor/rules/ 目录下创建新的 .mdc 文件,可针对特定模块设置规则:
---
description: ERP 模块开发规范
globs: ["**/yudao-module-erp/**", "**/views/erp/**"]
---
# ERP 模块特殊规范
- 所有金额字段使用 BigDecimal
- 库存操作必须加锁九、FAQ
Q1:AI 生成的代码可以直接用吗?
大部分情况下可以直接编译运行,但强烈建议进行人工审查,特别是业务逻辑、安全校验和数据库索引方面。
Q2:不懂 Java/Vue 也能用吗?
建议至少有基本的编程概念理解。AI 可以生成代码,但你需要能看懂生成的内容、判断是否正确、以及在出问题时进行排查。
Q3:AI 生成的代码风格和现有代码一致吗?
是的。通过预置的 .cursorrules 和规范文件,AI 生成的代码在命名、分层、注解使用等方面都与现有代码保持一致。
Q4:可以用 AI 修改已有功能吗?
当然可以。用 @ 引用你想修改的文件,描述需要的变更,AI 会生成修改后的代码。
Q5:生成的 SQL 如何管理版本?
项目采用日期目录归档 SQL 的方式(如 ruoyi-office-db/20260324_update/),AI 也会自动遵循这个规则。
Q6:模型选择对代码生成效果影响大吗?
影响非常大。 不同模型在代码理解、上下文处理和指令遵循方面差异显著,直接决定了生成代码的质量和可用性。
模型能力分级
| 级别 | 适合场景 | 代表模型 |
|---|---|---|
| 旗舰级 | 复杂流程表单、多文件联动、架构设计 | Claude Opus 4、Claude Sonnet 4、Gemini 2.5 Pro |
| 主力级 | 日常 CRUD、中等复杂度功能 | Claude Sonnet 3.5/3.6、GPT-4o、DeepSeek V3 |
| 轻量级 | 简单修改、代码补全、快速问答 | Claude Haiku、GPT-4o mini、Gemini Flash |
推荐模型配置
Cursor 用户推荐配置:
| 任务类型 | 推荐模型 | 理由 |
|---|---|---|
| 复杂功能开发(流程表单、多表关联) | Claude Opus 4 或 Claude Sonnet 4 | 代码理解能力最强,遵循规范最准确,多文件生成一致性高 |
| 日常 CRUD 功能 | Claude Sonnet 3.5/3.6 | 性价比最高,速度快,简单功能质量已足够 |
| 代码补全和快速修改 | Claude Haiku 或 Gemini Flash | 响应快、成本低,适合小改动 |
| 需求分析和方案设计(Plan 模式) | Claude Opus 4 或 Gemini 2.5 Pro | 推理能力强,方案更全面 |
Trae 用户推荐配置:
- 主力模型:Claude Sonnet 3.5 或 DeepSeek V3(免费额度充足)
- 复杂任务:切换到 Claude Sonnet 3.6 或更高级模型
注意
- 不推荐使用纯推理模型(如 o1、o3、DeepSeek R1)做代码生成。这类模型擅长数学推理但在代码生成场景中往往过度思考、格式不规范
- 国内网络限制:部分模型(如 GPT 系列、Claude 直连)可能需要网络代理,Cursor 内置的 API 转发通常可正常使用
- 模型更新频繁:AI 模型迭代很快,建议关注各工具的模型更新公告,及时切换到更优的版本
Q7:上下文大小对生成质量有什么影响?
上下文是 AI 代码生成质量的关键因素之一,理解其工作原理有助于写出更高效的提示词。
什么是上下文
上下文是 AI 在一次对话中能"看到"的全部信息,包括:
- 你输入的提示词
- 用
@引用的文件内容 .cursorrules等自动加载的规范文件- 对话历史中 AI 之前的回复
- AI 在执行过程中读取的项目文件
每个模型有上下文窗口上限(如 128K~200K tokens),超出上限后早期内容会被截断丢失。
上下文不足的常见表现
| 现象 | 原因 | 解决方法 |
|---|---|---|
| 后半部分代码风格突变 | 规范文件被截断丢失 | 精简 @ 引用,只引用必要文件 |
| 前后文件命名不一致 | 早期生成的文件名从上下文中消失 | 分步生成,每步少量文件 |
| 重复询问已回答的问题 | 对话历史超出窗口 | 开新对话,重新提供关键上下文 |
| 忽略部分需求 | 提示词太长,AI 遗漏细节 | 分批提需求,每次聚焦一个方面 |
实用建议
- 精准引用:用
@引用具体文件而非整个目录,避免加载大量无关代码 - 及时开新对话:当一个对话已经很长(超过 20 轮),建议开新对话处理下一个独立任务
- 优先引用规范文件:
.cursorrules和代码生成规范应在对话早期被引用,确保不被截断 - 复杂任务分步执行:先生成后端代码并确认,再开新对话生成前端代码,避免一次性生成过多内容导致后半段质量下降
- 善用 Plan 模式:复杂功能先在 Plan 模式下生成方案(消耗上下文少),确认后再在 Agent 模式下执行
Q8:AI 生成代码出错了怎么办?
常见的处理方法:
- 编译错误:直接把错误信息贴给 AI,通常能一轮修复
- 运行时错误:查看后端日志(
C:\Users\{用户}\logs\yudao-server.log),把关键异常堆栈贴给 AI 分析 - 逻辑错误:描述预期行为和实际行为的差异,AI 会定位并修复
- 规范不符:引用正确的规范文件重新生成,或在提示词中明确指出需要遵循的规范点
TIP
遇到问题时,提供完整的错误信息比描述"报错了"有效得多。AI 需要看到具体的异常类型、堆栈信息或前端控制台错误才能精确定位问题。
本指南将持续更新,如有疑问请联系技术支持。