乐于分享
好东西不私藏

AI从需求到代码:Harness Engineering在金融系统中的实战

AI从需求到代码:Harness Engineering在金融系统中的实战

一、如何用 AI 开发大型金融系统

AI 写代码很强,但做不了“工程化的大型系统开发”


二、核心解决方案

AI 驾驭工程 = 方法论 + 架构底座 + 知识库

方法论:采用Superpowers AI技能包(解决“流程问题”)

核心一句话:让 AI 按软件工程流程工作,而不是直接写代码

做了什么:

  • • 强制流程:Brainstorm → Plan → Execute → Review
  • • 强制产物:SPEC / PLAN / CODE
  • • 强制人机协同:每一步都可人工确认

本质:把 AI 变成“按流程执行的工程师”


架构底座:采用Biz-SIP技术框架(解决“架构漂移问题”)

核心一句话:不给 AI 自由设计架构,而是“在既定架构中开发”

Biz-SIP 是一套基于领域驱动设计(DDD),用于快速构建金融级云原生架构的服务整合中间件,包含了在金融场景里锤炼出来的最佳实践。

关键设计:

  • • 三层模型:
    • • Source(接入层)
    • • App(编排层)
    • • Sink(能力层)
  • • 核心交易集中在 App
  • • Sink 做原子能力

本质:用架构约束 AI 的“想象力”


知识库:技能沉淀(解决“重复踩坑问题”)

核心一句话:把经验变成 AI 可复用的“技能”

包括:

  • • 业务知识(如交易规则)
  • • 技术规范(如DAO、错误码)
  • • 历史问题及解决方案

本质:让 AI 具备“组织记忆”


三、整体架构总结

AI 驾驭工程可以抽象为:

一句话总结:流程管AI,架构控AI,知识喂AI


四、落地实施

整个 AI 驾驭工程的落地流程其实只要6步:

阶段一:系统设计(Design)

核心目标:把“模糊需求”变成“结构化设计文档”

数据建模

定义:

  • • 存什么数据
  • • 数据关系是什么

产出:

  • • 表结构
  • • ER图
  • • 数据字典

本质:静态模型——系统的“骨架”


业务建模

定义:

  • • 数据怎么流动
  • • 业务怎么处理

产出:

  • • 时序图
  • • 流程图
  • • 状态机
  • • 业务规则

本质:动态模型——系统的“行为”


AI 如何参与设计?

用两个 Skills 完成设计自动化

Skill
作用
bizsip-gen-db-req
生成数据模型
bizsip-gen-service-req
拆分 Source/App/Sink

本质:AI 不直接写代码,而是先写“设计文档”

1、bizsip-gen-db-req 技能文件

功能: 根据用户描述的实体信息,生成符合AI 驾驭工程要求的数据模型设计文档。

docs/req/├── database/│   ├── _template.md           # 数据表需求文档模板│   ├── index.md               # 数据表索引│   ├── t_customer.md          # 客户表 - 网银客户基本信息│   ├── t_account.md           # 账户主表 - 客户资金账户及余额│   ├── t_account_detail.md    # 账户明细表 - 账户交易流水明细│   ├── t_transfer_out_ledger.md   # 转账出金台账│   ├── t_transfer_in_ledger.md    # 转账入金台账│   └── t_payment_ledger.md    # 第三方缴费台账

触发方式: 用户使用 /bizsip-gen-db-req 命令。


执行流程:

  1. 1. 加载领域知识 — 读取业务技能知识库,按需加载业务知识子文档
  2. 2. 加载已有数据模型 — 读取现有数据模型索引文件,避免重复定义
  3. 3. 澄清需求 — 逐个向用户确认:实体含义、字段、主键定义、校验规则、表间关系
  4. 4. 命名建议 — 提供表名/字段名建议(用户可自行决定是否采纳)
  5. 5. 生成需求文档 — 按数据模型模板格式生成设计文档
  6. 6. 更新索引文件 — 生成或更新数据模型索引文件
  7. 7. 交付确认 — 展示文档,支持用户迭代修改

2、bizsip-gen-service-req 技能文件

功能: 根据产品经理提供的时序图(或业务流程描述),解析业务流程,拆分生成 Source(服务接入)、App(核心交易处理)、Sink(服务调用)三层服务的设计文档。

docs/req/├── app/│   ├── _template.md           # App 服务需求文档模板│   ├── index.md               # App 服务索引│   ├── customer-account/│   │   ├── transfer-out.md    # 转账出金 - 登记台账,调用Sink扣款│   │   └── transfer-in.md     # 转账入金 - 登记台账,调用Sink入账│   └── third-party-payment/│       └── payment.md         # 第三方缴费 - 登记台账,调用Sink扣款+对接第三方├── sink/│   ├── _template.md           # Sink 服务需求文档模板│   ├── index.md               # Sink 服务索引│   ├── customer-account/│   │   ├── transfer-out.md    # 转账出金 - 验证余额,扣减余额,登记明细│   │   ├── transfer-in.md     # 转账入金 - 验证账户,增加余额,登记明细│   │   └── payment-deduct.md  # 缴费扣款 - 验证余额,扣减余额,登记明细│   └── third-party-payment/│       └── payment.md         # 第三方缴费 - TCP/XML对接第三方,SAF重发└── source/    ├── _template.md           # Source 服务需求文档模板    ├── index.md               # Source 服务索引    ├── web-banking/    │   ├── open-customer.md       # 开户 - 直连模式    │   ├── verify-password.md     # 密码验证 - 直连模式    │   ├── query-accounts.md      # 账户查询 - 直连模式    │   ├── query-account-detail.md # 账户明细查询 - 直连模式    │   ├── transfer-out.md        # 转账出金 - 转发模式    │   └── payment.md             # 第三方缴费 - 转发模式    └── open-api/        └── transfer-in.md         # 转账入金 - 转发模式

触发方式: 用户使用 /bizsip-gen-service-req 命令。

执行流程:

  1. 1. 加载领域知识 — 加载业务知识索引、数据模型索引、错误码文档
  2. 2. 解析时序图 — 识别外部渠道、Source/App/Sink 服务、调用顺序和参数传递
  3. 3. 逐项澄清需求 — 确认每个服务的名称、入参、出参、返回码、处理逻辑、外部系统接口
  4. 4. 生成设计文档 — 按模板生成 Source/App/Sink 设计文档,更新各层索引文件和错误码文档
  5. 5. 交付确认 — 展示文档清单,支持用户迭代修改

阶段二:系统实施(Build)

核心目标:把设计文档自动转成代码


AI 技能(Superpowers)

Brainstorm → SPEC文档 → Writing-Plan → PLAN文件 → Executing-Plan → 代码

对应:

  • • 设计确认
  • • 实施计划
  • • 自动生成代码
  • • 人工校验

四类开发技能

采用了4 个Skills 来帮助开发人员来进行代码生成、配置文件生成以及相关开发文档生成:

1、 数据库开发

功能: 根据数据模型需求文档生成 POJO 实体类、MyBatis-Plus DAO Mapper 接口、技术设计文档和 SQL 脚本。

触发方式: 用户使用 /bizsip-db-dev 命令。

执行流程:

  1. 1. 前置检查 — 确认需求文档路径 docs/req/database/<table-name>.md
  2. 2. 知识注入 — 加载技术规范和业务知识文档
  3. 3. Brainstorm — 生成 SPEC文件(表结构、POJO/DAO 设计、SQL 方案),用户确认后继续
  4. 4. Write-Plan — 生成实施计划,用户确认后继续
  5. 5. 执行 — 生成 Java 代码、技术文档、索引文件、SQL 脚本

2、 Sink 服务开发

功能: 根据 Sink 需求文档生成独立部署的 Sink 服务类。

触发方式: 用户使用 /bizsip-sink-dev 命令。

执行流程:

  1. 1. 前置检查与知识注入 — 确认需求文档、数据表依赖、加载技能文档和错误码
  2. 2. Brainstorm — 生成SPEC(服务概述、入参/出参、处理流程、错误码、外部系统对接),用户确认后继续
  3. 3. Write-Plan — 生成实施计划(含代码模板、包名规则、sink.yml 配置),用户确认后继续
  4. 4. 执行 — 生成 Sink 服务类、API 接口文档
  5. 5. 更新API索引与错误码

3、 App 服务开发

功能: 根据 App 需求文档生成业务编排服务类

触发方式: 用户使用 /bizsip-app-dev 命令。

执行流程:

  1. 1. 前置检查与知识注入 — 确认需求文档、检查 Sink/数据表依赖、加载技能文档
  2. 2. Brainstorm — 生成SPEC(服务概述、入参/出参、处理流程、错误码、外部系统对接),用户确认后继续
  3. 3. Write-Plan — 生成实施计划(含代码模板、包名规则、sink.yml 配置),用户确认后继续
  4. 4. 执行 — 生成 Sink 服务类、API 接口文档
  5. 5. 更新API索引与错误码

4、 Source 服务开发

功能: 根据 Source 需求文档生成接入层实现类。

触发方式: 用户使用 /bizsip-source-dev 命令。

执行流程:

  1. 1. 前置检查与知识注入 — 确认需求文档、检查 App/数据表依赖、加载技能文档
  2. 2. Brainstorm — 生成 SPEC(含 Controller 设计方案、协议适配方案、App调用方案),用户确认后继续
  3. 3. Write-Plan — 生成实施计划(含 Source 独立部署规范、source.yml 配置),用户确认后继续 . 执行 — 生成 Controller 类、API 接口文档
  4. 4. 更新API索引与错误码

五、结语


AI 驾驭工程的本质,不是让 AI 更聪明,而是让 AI 更“可控”。

通过:

  • • Superpowers 规范开发流程
  • • Biz-SIP 固化系统架构
  • • Skills 知识库沉淀组织经验

最终实现:让 AI 能参与大型金融软件工程,而不仅仅是写代码