ps~ 基本符合我开发这个框架的过程,本来是学习使用这几个工具的,后发现生成的代码就是有问题,"幻觉"是无法跨越的,所以开始写规则文件,限制条件,脚本检查,甚至是模型调用(额外的调用节省花钱的模型调用次数).还有几篇其他的文章(AI水文),也可以看看
写在前面
这篇长文是我在过去一整年里,把一个似乎“遥不可及”的理想——让AI真正成为开发者的搭档——一点点落在地上的复盘与总结。它不是论文,也不是教程;它更像是一个开发者的心路历程:我如何把自己从“用AI生成几段代码”的阶段,走到“用一套规则让AI参与完整的软件开发流程”,以及这些过程中我悟到的、人和工具之间微妙的协作之道。
我把这套做法称为“AIdevflow”。它不是一个库,也不是一款软件;它是一整套规则、工作流、边界和协作方式的集合。它让我在不同模型之间保持一致性,让开发不再被“随机输出”所困;让我在迭代和上线时,知道每一次变化在哪里,能否被刚性验证,并对团队里的每个人都是透明的。
本文不会出现Java代码;会以个人视角出发,讲清“为什么这样做”、是怎样走到今天、以及我认为值得保留与继续优化的部分。你会读到很多故事、很多直觉、很多方法论,也会看到一些伪代码和脚本式的思维片段——它们只是携带思路,而不是要你去复制粘贴。更重要的是,你会看到我在这套体系里,怎样把“AI的创造性”变成“工程的可预测性”。
如果你正在探索“把AI融入开发”的道路,愿这篇文章不仅能让你收获做法,更能让你收获信心。
从混乱到秩序:我为什么要做AIdevflow
- 起因并不浪漫。最初我只是想用AI“加速开发”,却很快陷入“输出质量不稳定”的泥沼:同一个需求,不同模型给出迥异的风格;同一个模型,不同时间生成的代码差异巨大;在团队环境里,协作成本被放大,代码审查沦为“找风格不一致”的体力活。
- 我尝试用“更长的提示词”解决稳定性,效果不显著;我尝试靠“人工复核”兜底,效率和质量都不理想。问题的本质不是“AI不够聪明”,而是“AI没有边界”。
- 转折发生在我把“规则”引入AI的工作过程:不是让AI自由发挥,而是在它动手之前,明确系统边界、架构分层、事务边界、日志标准、映射方式、质量门禁,甚至模型路由和工作流的选择。换句话说,是先构建“AI的工作合约”,再让AI参与任务。
- 一旦引入规则,不确定性开始被消除。我不再问“AI会不会生成错误”,而是问“AI是否遵守规则”;我不再纠结“模型差异”,而是根据任务特征选择更匹配的模型档案;我不再担心“团队风格分裂”,因为所有人都在同一条“规则主干”上进行协作。
我最终把这套做法系统化,命名为AIdevflow。它的目标是把AI的能力注入到软件工程的轨道上,让创造性在边界内发挥,且所有成果都可验证、可复制、可审计。
我的核心理念:规则不是限制,而是生产力的放大器
- 在AI参与开发时,“规则”最大的价值,是提供确定性。没有规则,AI是一个变幻莫测的合作者;有了规则,AI是一个可靠的执行者。
- 我把规则分层组织:必须遵守(Must-follow)、推荐遵守(Should-follow)、可选遵守(Could-follow)、历史遗留(Legacy)。当不同规则出现冲突时,优先级体系让决策变得有序。
- 规则不是静态文件,而是可演进的契约。它们会被主动扫描与注入;会在不同任务下动态裁剪;会通过门禁脚本强制校验;会基于团队表现进行强度调整。
- 最重要的认识:好的规则,会释放创造力。它减少无意义的选择,避免返工和争议,让开发者把精力放在真正有创造性的挑战上。
这就是我构建AIdevflow时坚持的第一准则:以规则为边界,以流程为轨道,以质量门禁为底线,让AI的创造力可控且高效。
从“提示词”到“工作合约”:AIdevflow的骨架
在这套骨架里,我为AI定义了一个工作形态:每次参与开发,都要经过“路由→规则注入→执行→验证”的完整环节。这不是打勾清单,而是一条流水线。
- 模型路由:不是“谁最强用谁”,而是“谁最适合用谁”。我根据任务特征(复杂度、文件数、分支类型、风险等级、上下文长度)选择不同的模型档案(比如快速修复、重构规划、文档生成、发布守护)。这一步能把“成本与质量”平衡到更现实的水平。
- 规则注入:根据任务类型和模型档案,向AI注入对应规则集。基础规则总是存在(注入规范、日志规范、分层约束);任务相关规则按需启用(事务边界、映射策略、文档同步、事件发布);冗余信息被抑制,关键约束被高亮。
- 执行工作流:AI不是单次“生成代码”,而是有两套完整工作流可选——FAST(快速合成)与ITERATIVE(迭代优化)。FAST适合低复杂度任务;ITERATIVE适合跨文件与架构级任务。工作流是规则的动态载体,把执行方式跟任务复杂度绑定。
- 质量门禁:在提交前,强制执行编译门禁、架构约束检查、事务注解校验、跨模型一致性验证、文档同步核查。AI的输出不是“可参考的建议”,而是要通过最基本的工程验证。
这条流水线,是我把“AI创作”转化为“工程产物”的关键过程。它机关算尽,但在使用时却非常简单:每次把任务放进来,就一定会得到「符合规则的输出」或「明确失败的原因」。这比“生成得漂不漂亮”更重要。
我眼里的分层架构:不是为了漂亮,而是为了协作
我一直坚持一个简单的分层:入口路由(Controller)、应用门面(Facade)、领域服务(Service)、仓储与数据适配(Repository/Dao)。这套结构,是AIdevflow规则里最核心的一层。
- 为什么要门面(Facade):因为“用例即事务”。门面层统一获取登录态,统一编排跨服务流程,统一管理事务边界(读是只读,写明确回滚策略),统一发布领域事件。它是“流程的主人”,不是“逻辑的执行者”。
- 为什么分层调用严格:是为了消除耦合和混乱。Controller只路由到Facade;Facade调用Service;Service调用Repository。任何反向依赖与跨层直连,都被自动化规则阻断。
- 为什么要事件化后置动作:重要链路同步,非关键后置异步。比如通知、记录推荐结果、审计日志,这些在事务提交后发布领域事件,让关键链路保持原子性,让协作更自然。
- 为什么仓储面向领域:仓储是领域语言,而不是数据库语言。方法命名与返回约定都体现领域语义,复杂查询要么走原生SQL配合构造器,要么走规范化的条件构建器,禁止拼接字符串。它让你的“数据访问”不会侵入“业务表达”。
这些规则对AI的约束非常有效。它让我不需要在每次生成时“提醒AI别乱跨层”,因为架构约束脚本会自动检查,违规就不让过。这种底层确定性,是AI能参与协作的基础。
事务与一致性:我把风险前置在边界上
围绕数据一致性,我有三个不可退让的决定:
- 用例即事务:所有写用例,都在门面层开启事务,明确“异常必回滚”的策略;所有读用例,都标注只读事务,既体现意图,也让数据库可以优化执行路径。只读不是“能不能写”的约定,而是“不会写”的承诺。
- 异常策略要清晰:不是等到抛出错误再回滚;而是在策略层面确保任何异常都被视为“要回滚”的状态。我不接受“某些检查异常不回滚”的默认行为,因为那是把风险交给了未来。
- 事件发布要在事务后:如果存在事务,那么事件发布必须在提交后进行。如果没有事务,就立即发布。这条原则我说了很多次,也被脚本强制检查。它看似简单,却消除了大量潜在的不一致与“双写”问题。
AI在生成时不会“自己懂这些”,但规则会告诉它这就是边界。这些边界背后,是我踩坑时的痛点、也是真实项目里“最容易翻车”的地方。只有把它们写成规则,AI和人才能在这件事上保持一致。
我如何管理对象映射:显式、类型安全、文档化
当一个系统逐渐复杂,DTO/VO/Entity之间的转换成了“隐蔽风险”的来源。我的做法是三件事:
- 显式映射:禁止“靠名称猜测”,强制声明字段映射关系,如名称差异要在映射定义里明确指出;日期、枚举、嵌套对象也要有清晰的转换策略。AI不会“理解业务含义”,但可以“遵循映射约定”。
- 类型安全:编译期检查未映射字段、类型不匹配、空值可能性、敏感字段忽略策略。这是规避“静默失败”的唯一方式。AI生成时可能遗漏,但编译期会阻断它,促使补全。
- 文档化:模块的README里必须维护字段映射文档,声明“谁→谁,如何转换,哪种情况被忽略”。这份文档不是可有可无,而是团队协作的说明书:任何人读了就知道转换在发生什么。
这三件事让“数据转换”这条线,从脆弱变得可靠。每一次字段调整与版本演进,都被显式记录与强制检查。AI也能跟得上变化,因为它生成的是“受规则保护的代码”,不是“猜出来的代码”。
质量门禁:我把“编译”和“架构”当第一防线
在AIdevflow里,质量门禁是硬的。
- 编译门禁:任何生成、任何提交,都要通过编译门禁;不跑完整测试也没关系,但语法与基本结构不能有问题。编译门禁让我放心地说:“AI生成的东西,至少能跑。”
- 架构约束:自动化规则检查依赖方向、分层调用、命名约定、注入规范、循环依赖。它们是“把抽象落地”的工具。很多时候,规则不是只写在文档里,而是被编码成静态检查,违规就失败。
- 事务注解校验:专门的脚本检查读写用例的事务注解是否正确;写用例是否包含“异常回滚”的策略;读用例是否标注为只读。这类脚本只做一件事:不让疏漏溜过。
- 跨模型一致性验证:当不同模型参与同一项目开发,风格和规则遵循度要保持稳定。不是“同质化”,是“可协作”。验证维度包括架构模式、注释风格、事务策略、映射规则、文档同步等。
这套门禁不是“为了严谨而严谨”,而是“为了效率而严谨”。它让返工成本极低,让协作边界清晰,让AI的输出可控。更关键的是,它把判断“好坏”的标准,从“主观审美”转到“客观规则”。这对团队而言,是决定性的。
两套工作流:让我在速度与稳健之间切换
我在AIdevflow里设置了两套工作流:FAST与ITERATIVE。它们是我“任务选择策略”的工程化表达。
- FAST(快速合成):一次性给出最小改动,适合低复杂度任务(单文件或少量文件、明确需求、简单bug修复、样式与重构微调)。降低工具调用,缩小上下文,强调稳定性与效率。核心追求是“尽快给出可落地结果”。
- ITERATIVE(迭代优化):分阶段执行与持续验证,适合高复杂度任务(架构调整、跨文件重构、复杂业务实现、跨模块协作)。启用完整工具链,分步修改,每步验证;失败时制定回溯修复计划。核心追求是“降低失败风险”。
很多时候,选择哪套工作流不是凭直觉,而是基于任务复杂度与风险等级、文件数量与依赖关系、分支类型与发布周期。FAST让我保持快速响应;ITERATIVE让我在复杂场景下有稳健的过程。
我的模型路由:不是崇拜,而是适配
我坚信“模型选择不是信仰,而是策略”。在AIdevflow里,我根据任务描述与上下文需求,选择不同的模型档案:
- 快速修复(fast-coder):用于低复杂度、小范围变更、成本敏感场景。规则注入以核心规则为主,上下文尽量精简,强调最小改动与风格一致。
- 重构规划(planner-refactor):用于中高复杂度任务,强调深度分析与严格遵循。注入完整规则集,保证设计决策与架构调整有稳定的约束。
- 文档编写(doc-writer):用于文档、注释、变更说明与操作指南。注重表达质量与结构一致性,让团队在知识层面也保持统一。
- 发布守护(release-guardian):用于发布前的严格检查与守护。它不是生成,而是审查——强制门禁,零容忍策略,确保发布质量。
我不是“模型迷信者”。模型只是工具,重点是能否在任务栈里与规则合拍。如果任务需要“稳”,我就选择更适合“稳”的档案;如果任务需要“快”,我就选择更适合“快”的档案。AIdevflow的模型路由不是为了“用最强”,而是为了“最适配”。
上下文管理:把关键约束留在记忆里
有一次,我在一个上下文极长的任务里,让AI处理多个并行需求,结果AI把“事务回滚策略”给忘了。我意识到:它不是不懂事务,而是在海量信息里忘了优先级。于是我设计了分层上下文管理:
- 核心上下文:必须保留的约束(架构分层、事务边界、注入规范、命名约定、事件发布原则、权限验证要求)。它们不被替换、不被压缩,是“系统的底层宪法”。
- 工作上下文:当前任务相关的文件与规则摘要(目标模块、变更文件、影响范围、当前需求)。它只服务当前任务,随任务切换而变化。
- 参考上下文:历史文档、类似案例、可选规则片段。它们作为“辅助记忆”,在上下文紧张时优先被压缩,不影响核心约束。
这套上下文管理不是为了更酷,而是为了更稳。在我的实践里,它极大减少了“漏掉关键注解”“跨层调用失误”的概率。AI不需要“懂所有文件”,它只需要“明确边界与当前任务相关信息”。
插件化规则生态:把规则变成可协作的模块
AIdevflow的一个重要设计是“规则插件”。与代码插件不同,它是规则的集合,包含触发条件、执行逻辑、注入方式、以及与其他插件的协作方式。
- 每个插件是一个独立的规则模块:它描述在什么条件下启动、做哪些事情、如何注入到其他插件步骤。比如“专家推荐插件”会在“问卷提交事件”后,注入“预筛选推荐流程”,并要求记录日志与降级方案。
- 插件可以跨插件协作:通过规则注入机制,某个插件可以把自己的一段执行规则注入到另一个插件的关键步骤之前或之后。比如在“专家匹配”之前插入“预筛选推荐”,并设置高优先级覆盖默认策略。
- 我称之为“Webhook式规则协作”。这不是逻辑拼接,而是规则编排。它对AI非常友好,因为它用自然语言表达了“在何时、以何种优先级、做什么”。
这套插件生态让我在规则层面获得“动态协作”的能力,既保持模块化,又允许按需扩展。AI在这个生态里不需要“创造新的动作”,它只需要“把动作放到正确的时序里”。这也极大减少了跨模块改动引发的冲突。
跨模块互调:我只允许通过门面走
我从一开始就限定:跨模块只能通过门面(Facade)互调,禁止直接依赖对方的服务或仓储。原因很简单:
- 门面暴露的是用例级能力,语义明确、契约稳定;在未来拆分服务时,它很容易过渡到RPC或HTTP。
- 直接依赖对方服务,会让系统很快掉进循环依赖与耦合地狱。尤其是AI在生成时,跨模块直连很容易“图省事”,结果是不可维护。
- 当协作是异步时,优先采用领域事件;当协作需要同步时,确立明确的事务边界与编排顺序。
这条约束有点“硬”,但它救了我无数次。系统在复杂演进时,最需要的是“强语义契约”。门面层就是那个契约的载体。
我的“一致性”哲学:让风格凝成制度
当团队里有人偏向长注释,有人偏向函数式表达,有人热爱设计模式、有人喜欢最小表达,AI会忠实放大这种差异。于是我建立了“跨模型一致性验证”,它的目的不是统一风格,而是统一制度。
- 统一的架构模式:分层约束、注入规范、事务策略、事件发布。它们不是“偏好”,而是“制度”。任何输出都必须遵守。
- 统一的文档同步:变更必须同步文档;接口必须更新说明;映射必须更新字段文档;每个模块要有清晰的README入口。它避免“文档滞后”成为协作瓶颈。
- 统一的质量门禁:编译、架构、事务、映射、文档同步以及关键脚本检查。不是为了惩罚,而是为了保护。它让迭代有底线。
这套一致性体系让我不再纠结“谁更优雅”,只要“谁更合规”。在工程团队里,这才是决定“能不能协作”的关键标准。
我如何看待学习曲线:把复杂问题交给流程
有人会问:这么多规则与门禁,会不会“限制创造力”?我看法是相反的。在AIdevflow里,规则是“给AI的”,也是“给流程的”,不是“给人的”。人的创造力在架构、拆解、策略与权衡上,而不是在“注解有没有写错”上。
- 对资深开发者:规则让你不必操心基础约束,专注于架构与模型选择;你可以参与规则优化与演进,把系统的边界不断打磨得更好。这是把经验变成制度的过程。
- 对中级开发者:规则是清晰的道路,你可以很快融入团队的节奏;你会被门禁保护,不会因为疏忽造成破坏。这是把协作变得可靠的过程。
- 对初级开发者:规则是学习的梯子,你可以看到每一层边界如何工作;你不必理解所有细节,也能完成质量可控的任务。这是把成长变得有序的过程。
学习曲线的问题,从来不会因为“少规则”而变得轻松;它只会把复杂性转移到代码审查与返工。AIdevflow把复杂性放在流程里,让人参与创造性的环节,让AI承担重复性的环节。这就是最合理的分工。
我的开发工作流:从需求到交付
当我把一个需求投入AIdevflow里,基本路径是这样的:
- 把任务说明归档为可读对象:信息尽可能完整,但不冗长;明确模块、目的、输入输出、验收标准、风险等级。任务描述是模型路由的依据,也是规则注入的入口。
- 选择模型档案:根据复杂度与分支类型、文件数量与风险等级,选择FAST或ITERATIVE。不是拍脑袋,是数据化的决定。经验告诉我:在高风险任务里用FAST,往往是在赌运气。
- 注入规则:基础规则永远存在;任务相关规则按需启用;上下文管理会保留关键约束。此时AI已经被放进边界里。
- 执行与验证:FAST强调一次性最小改动,ITERATIVE强调分步验证与失败时回溯计划。质量门禁不会放水,任何不合规都会被挡住。
- 文档与交付:更新文档、说明变更、记录影响范围与验证结果。交付不是“代码合并”,而是“完整信息闭环”。
这套工作流让我在反复迭代中保持节奏。不必每次重新拿捏“怎么做”,而是在规则与流程里稳定演进。AI成为了这条生产线上的参与者,而不是“灵感来源”。这对工程而言,是正确的姿势。
系统演进与规则生命周期:我如何做取舍
规则不是一成不变。我的经验告诉我:
- 有三成的规则在实践中ROI为负:它们要么过于理想化,要么执行成本过高。这样的规则要么简化、要么淘汰。规则不是越多越好,越适合越好。
- 规则的强度要基于团队表现调整:质量高且速度快,规则可以适当放宽;质量低、返工多,规则必须加强。这个调整不是拍脑袋,而是基于数据的动态配置。
- 规则的升级要有迁移路径:不是今天启用一个强迫性约束,明天全部失败;而是逐步启用、可回滚、可临时豁免(有审计与时限)。过渡期是为了保护生产力,而不是妥协。
这让AIdevflow保持“弹性秩序”。它不是一堵墙,而是一个生态;不是一声令下,而是一套自我演进机制。它让我在推进“规范化”的同时,保留“灵活性”的空间。
我对“文档与知识”的态度:同步是第一性原则
我对文档的要求很简单:不是“漂亮”,是“同步”。
- 代码变更必须同步文档:包括接口说明、字段映射、架构调整、质量门禁结果。文档不是附属品,它是协作协议,是可审计的记录。
- 文档必须可检索、可索引:不仅仅是存档,而是服务于开发;它要支撑上下文管理与模型路由,要在任务切换时提供历史信息。
- 文档要服务回归:在变更后,文档成为回归测试的输入与验证依据。它不是“讲故事”,它是“指导执行”。
AI在文档编写上有天然优势,但我从不把它当作“写作者”;它只是一个“格式化与同步”的工具。真正的知识沉淀在规则与流程里,而不是在漂亮的语句里。
风险缓解:我做过、也正在做的防线
我把防线做成了策略:
- 多模型备份:关键路径不依赖单一模型,出现模型不稳定或策略变更时可切换档案或降级到更保守模式。尽量把“不可控”留在“可控的范围里”。
- 模块化规则管理:把规则拆成模块,避免“大而全”的高耦合;让升级与替换有更小的爆炸半径。复杂系统的演进,不能一次全或无。
- 分布式处理与异步化:把能异步的先异步,把能分批的先分批;把关键路径从耗时操作中剥离。稳定性优先级高于优雅性。
- 人机协作兜底:关键发布节点必须有人参与审查;AI负责自动化质量检查、人负责风险评估与决策。对于关键系统,这是不可替代的。
这些防线让我在把AI融入工程时没有“盲信”,也没有“偏见”。它们是理性审慎的产物,也是工程师的底色。
我的失败与修正:几件值得记录的事情
- 我曾尝试把所有规则一次性侵入整条流水线,结果使团队无法快速适应,生产力骤降。教训是:规则启用要分阶段、要有迁移策略;质量最优先,速度第二优先;规则不是为了证明自己“严格”,而是为了提升协作。
- 我曾试图用“更多提示词”解决一致性问题,最终证明是徒劳。提示词是表达,不是制度;制度需要硬规则与自动化检查,不是靠语言风格约束。
- 我曾把“对象映射”当成小事,直到一次字段变更让多个合作方的数据错位。这件事彻底改变了我对映射的态度:它必须显式、类型安全、文档化,不容商量。
- 我曾把“文档”的工作压到最后,结果导致回归与复盘困难。文档不是可选项,它是协作的前提。如果文档作废,规则也会随之作废。
这些失败让我确信:AIdevflow不是一个“选项”,而是一条“路线”。从混乱到秩序,这不是靠天赋的事,是靠方法的事。
未来的方向:我在做、也想做的事情
- 领域特定模型:用企业特定知识和约束进行微调,让模型更懂你所在的业务与工程语境。它会把“规则理解”与“领域语言”融合到更高一层。
- 规则的自然语言界面:用自然语言增删改查规则;让规则的管理不再是“写文件”,而是“对话”。这是为了降低维护成本,让团队更容易参与。
- 热加载与A/B测试:把规则当作可运行的配置,在线调整与实验,选择更优的策略推广到生产。规则不是写死的,它应该像服务一样可灰度。
- 预测性规则推荐:基于历史趋势与质量数据推荐新的规则或调整现有规则强度。让规则系统具备预见性,先发现问题趋势,再优化防线。
我相信这条路值得走,且必然会走向更成熟的生态:把AI从“工具”变成“工程系统里的角色”;把规则从“约束”变成“协作协议”;把流程从“方法”变成“生产线”。当这些完成,AI驱动开发的从业者会越来越多,也会越来越踏实。
我希望你带走的东西
- 规则的价值:不是为了规范,而是为了确定性。确定性是工程协作的生命线。
- 分工的智慧:让AI专注于可自动化的、高重复性的、可验证的环节;让人专注于架构、策略、权衡与责任。
- 流程的意义:每一次开发不是“写代码”,而是“走一条有边界的生产线”。这不是消灭创造力,而是保护创造力。
- 协作的底线:质量门禁与文档同步,是任何团队都不该妥协的底线。只要坚守它们,AI就能成为可靠的伙伴。
AIdevflow不是完美的,它每天都在演进;但它已经让我在复杂项目里,能够稳定地把AI融入开发,让每一次变化都可见、可证、可回滚。对于我这样一个偏爱秩序的开发者,这已经是巨大的胜利。
如果你读到了这里,愿你在自己的环境里,找到适合的边界与流程,让AI在你的规则里,成为真正的生产力。