系统概述与架构介绍
1.1 系统简介
本系统是基于 OpenClaw(开源爬虫框架)和 Claude Code(AI 编程助手)构建的端到端研发自动化平台。 它实现了从需求分析、PRD 设计、技术方案设计、API 协议定义、代码生成、测试验证到自动部署的全流程自动化, 并在关键节点支持人机协同,确保研发质量与效率的双重提升。
1.2 系统核心特性
- 全流程自动化:覆盖需求→设计→开发→测试→部署完整链路
- 多角色 Agents 协同:产品经理、架构师、开发工程师、测试工程师等角色 AI Agent 分工协作
- 人机协同机制:关键决策点支持人工审核与干预
- 智能文档生成:自动生成 PRD、技术方案、API 文档等标准化文档
- 代码质量保障:内置单元测试、集成测试、UI 自动化测试
- 云原生部署:支持 Docker + Kubernetes (KubeSphere) 一键部署
- 持续集成/持续部署:与 Jenkins 深度集成,实现 CI/CD 流水线
1.3 系统架构图
用户故事/需求描述
需求澄清与细化
产品需求文档
前后端技术方案
接口协议定义
代码自动生成
单元/集成/UI 测试
CI/CD+K8S 部署
1.4 技术栈组成
| 层级 | 技术组件 | 用途说明 |
|---|---|---|
| AI 引擎层 | Claude Code / OpenClaw | 核心 AI 推理与代码生成能力 |
| Agent 编排层 | LangChain / AutoGen | 多 Agent 协同与工作流编排 |
| 开发工具层 | VSCode / Git / Maven / npm | 代码编辑、版本控制、构建工具 |
| 测试框架层 | JUnit / pytest / Selenium / Cypress | 单元测试、集成测试、UI 自动化测试 |
| CI/CD 层 | Jenkins / GitLab CI | 持续集成与持续部署流水线 |
| 容器化层 | Docker / KubeSphere | 容器打包与 Kubernetes 集群管理 |
各研发角色 Agents 详解
本系统定义了以下核心研发角色 Agents,每个 Agent 都具备专业领域知识和特定职责:
职责:负责需求收集、分析、澄清和结构化
- 与用户对话,收集原始需求信息
- 识别需求中的模糊点和矛盾点
- 生成需求澄清问题列表
- 输出结构化的需求规格说明书
- 维护需求追踪矩阵 (RTM)
输入:用户原始需求描述、业务背景资料
输出:结构化需求文档、需求澄清报告
职责:负责 PRD 文档编写和产品功能设计
- 基于需求文档编写 PRD
- 定义产品功能清单和功能优先级
- 绘制产品原型和流程图
- 定义验收标准 (Acceptance Criteria)
- 维护产品路线图
输入:结构化需求文档、市场调研数据
输出:PRD 文档、产品原型、功能清单
职责:负责整体技术架构设计和关键技术选型
- 设计系统整体架构(微服务/单体)
- 技术栈选型与评估
- 数据库设计与数据模型定义
- 系统安全性设计
- 性能优化策略制定
- 输出架构设计文档 (ADD)
输入:PRD 文档、非功能性需求
输出:架构设计文档、技术选型报告、数据模型
职责:负责后端服务开发和 API 实现
- 基于 API 协议实现后端服务
- 数据库访问层开发
- 业务逻辑实现
- 单元测试编写
- 代码审查与优化
输入:API 接口协议、架构设计文档
输出:后端源代码、单元测试用例、API 实现
职责:负责前端界面开发和用户体验实现
- 基于原型实现前端页面
- 与后端 API 对接
- 状态管理和路由配置
- 响应式设计和适配
- 前端性能优化
输入:产品原型、API 接口协议
输出:前端源代码、组件库、页面实现
职责:负责前后端接口协议设计
- 定义 RESTful API 规范
- 编写 OpenAPI/Swagger 文档
- 设计请求/响应数据结构
- 定义错误码和异常处理
- API 版本管理策略
输入:PRD 功能清单、数据模型
输出:OpenAPI 规范文档、API 接口定义
职责:负责测试策略制定和测试执行
- 制定测试计划和测试策略
- 编写单元测试用例
- 执行集成测试
- UI 自动化测试脚本开发
- 缺陷跟踪和管理
- 输出测试报告
输入:PRD 验收标准、源代码
输出:测试用例、测试报告、缺陷报告
职责:负责 CI/CD 流水线配置和自动部署
- 配置 Jenkins 流水线
- 编写 Dockerfile 和 Docker Compose
- Kubernetes 部署配置文件编写
- 监控和日志系统集成
- 自动化部署脚本开发
输入:源代码、构建产物
输出:CI/CD 配置、容器镜像、部署脚本
2.1 Agent 间通信机制
各 Agents 通过以下方式进行协作通信:
- 共享工作区:所有 Agents 共享同一项目目录,通过文件进行数据交换
- 消息队列:使用 Redis/RabbitMQ 进行异步消息传递
- 事件总线:基于发布 - 订阅模式的事件驱动架构
- 人工审核点:关键节点设置人工审批环节
需求分析与 PRD 生成模块使用指南
3.1 模块概述
需求分析与 PRD 生成模块是研发流程的起点,负责将用户的原始需求转化为结构化的产品需求文档。 该模块由需求分析师 Agent 和产品经理 Agent 协同完成。
3.2 使用流程
需求输入
需求澄清
需求分析
PRD 生成
人工审核
3.3 详细操作步骤
1需求输入
用户可以通过以下方式输入需求:
# 方式 1: 命令行输入
python cli.py input-requirement --text "我需要一个在线商城系统,支持用户注册、商品浏览、购物车、下单支付等功能"
# 方式 2: 文件上传
python cli.py input-requirement --file requirement_draft.md
# 方式 3: Web 界面输入
# 访问 http://localhost:8080/requirement-input 填写需求表单
2需求澄清
需求分析师 Agent 会自动分析需求中的模糊点,并生成澄清问题列表:
# 查看需求澄清问题
python cli.py get-clarification-questions --req-id REQ-2026-001
# 示例输出:
# 1. 商城系统需要支持哪些支付方式?(微信支付/支付宝/银联)
# 2. 是否需要会员等级体系?
# 3. 商品分类层级是多少?
# 4. 是否需要评价系统?
# 5. 预期并发用户量是多少?
用户回答澄清问题后,系统会自动更新需求文档:
python cli.py answer-questions --req-id REQ-2026-001 --answers-file answers.json
3需求分析
需求分析师 Agent 基于澄清后的需求,生成结构化需求规格说明书:
# 执行需求分析
python cli.py analyze-requirements --req-id REQ-2026-001
# 查看分析结果
python cli.py view-requirement-spec --req-id REQ-2026-001
需求规格说明书包含以下内容:
- 功能性需求(Functional Requirements)
- 非功能性需求(Non-Functional Requirements)
- 用户故事(User Stories)
- 业务规则(Business Rules)
- 约束条件(Constraints)
4PRD 生成
产品经理 Agent 基于需求规格说明书,自动生成 PRD 文档:
# 生成 PRD
python cli.py generate-prd --req-id REQ-2026-001 --output-format markdown
# PRD 文档将保存到:output/prd/REQ-2026-001_prd.md
PRD 文档标准结构:
# 产品需求文档 (PRD)
## 1. 文档信息
- 产品名称:在线商城系统
- 版本号:v1.0
- 创建日期:2026-03-13
- 最后更新:2026-03-13
## 2. 产品概述
### 2.1 产品定位
### 2.2 目标用户
### 2.3 核心价值
## 3. 功能需求
### 3.1 用户管理模块
#### 3.1.1 用户注册
#### 3.1.2 用户登录
#### 3.1.3 个人信息管理
### 3.2 商品管理模块
...
## 4. 非功能性需求
### 4.1 性能要求
### 4.2 安全要求
### 4.3 可用性要求
## 5. 验收标准
### 5.1 功能验收标准
### 5.2 性能验收标准
## 6. 附录
### 6.1 术语表
### 6.2 参考资料
5人工审核
PRD 生成后,需要产品经理或项目负责人进行审核:
# 提交审核
python cli.py submit-for-review --doc-type prd --doc-id REQ-2026-001
# 审核人员收到通知后,可以:
# 批准
python cli.py approve-doc --doc-id REQ-2026-001 --reviewer "张三" --comment "PRD 内容完整,予以批准"
# 驳回修改
python cli.py reject-doc --doc-id REQ-2026-001 --reviewer "张三" --comment "需要补充支付流程的详细描述"
3.4 配置选项
可以在配置文件中自定义 PRD 生成参数:
# config/prd_config.yaml
prd_generation:
template: standard # standard/detailed/agile
include_wireframe: true # 是否包含原型图
include_user_story_map: true # 是否包含用户故事地图
acceptance_criteria_format: given_when_then # 验收标准格式
output_formats: # 输出格式
- markdown
- pdf
- html
auto_version: true # 自动版本号管理
3.5 常见问题
技术方案设计模块使用指南
4.1 模块概述
技术方案设计模块由系统架构师 Agent、后端开发工程师 Agent 和前端开发工程师 Agent 共同完成, 负责将 PRD 转化为可执行的技术方案,包括系统架构设计、数据库设计、前后端技术选型等。
4.2 后端技术方案设计
4.2.1 架构设计
# 生成后端架构设计方案
python cli.py design-backend-architecture --prd-id REQ-2026-001 --style microservices
# 可选架构风格:monolithic(单体)/ microservices(微服务)/ serverless(无服务器)
生成的架构设计文档包含:
- 系统分层架构(Controller/Service/Repository)
- 服务划分和边界定义
- 服务间通信机制(REST/gRPC/消息队列)
- 缓存策略设计
- 数据库选型和分库分表策略
4.2.2 数据库设计
# 生成数据库设计
python cli.py design-database --prd-id REQ-2026-001 --db-type mysql
# 查看 ER 图
python cli.py view-erd --prd-id REQ-2026-001 --format png
输出产物:
- 概念数据模型(CDM)
- 物理数据模型(PDM)
- ER 关系图
- DDL 建表脚本
- 索引优化建议
4.2.3 技术栈选型
# 获取技术栈推荐
python cli.py recommend-tech-stack --prd-id REQ-2026-001 --criteria "performance,maintainability,cost"
典型电商系统技术栈推荐:
| 层级 | 推荐技术 | 备选方案 |
|---|---|---|
| Web 框架 | Spring Boot 3.x | Quarkus / Micronaut |
| ORM 框架 | MyBatis Plus | JPA / jOOQ |
| 缓存 | Redis 7.x | Hazelcast / Caffeine |
| 消息队列 | RabbitMQ | Kafka / RocketMQ |
| 搜索引擎 | Elasticsearch 8.x | Solr |
4.3 前端技术方案设计
4.3.1 前端架构设计
# 生成前端架构方案
python cli.py design-frontend-architecture --prd-id REQ-2026-001 --framework react
# 可选框架:react / vue / angular / svelte
前端架构设计包含:
- 组件库选型(Ant Design / Material-UI / Element Plus)
- 状态管理方案(Redux / Zustand / Pinia)
- 路由策略(React Router / Vue Router)
- 构建工具配置(Vite / Webpack)
- 代码规范和 ESLint 配置
4.3.2 页面原型设计
# 基于 PRD 生成页面原型
python cli.py generate-wireframes --prd-id REQ-2026-001 --style modern
# 查看原型
python cli.py view-wireframes --prd-id REQ-2026-001 --browser
4.4 技术方案评审
# 组织技术方案评审会
python cli.py schedule-tech-review --prd-id REQ-2026-001 --participants "架构师,技术总监,安全专家"
# 收集评审意见
python cli.py collect-review-feedback --session-id TECH-REV-001
# 根据评审意见修改方案
python cli.py revise-tech-design --session-id TECH-REV-001 --incorporate-feedback
4.5 输出文档清单
- 《系统架构设计文档 (ADD)》
- 《数据库设计文档 (DBD)》
- 《前端技术方案文档》
- 《后端技术方案文档》
- 《技术选型评估报告》
- 《安全设计方案》
- 《性能优化方案》
API 接口开发协议设计模块
5.1 模块概述
API 设计师 Agent 负责定义前后端交互的标准接口协议,确保前后端开发可以并行进行。 采用 OpenAPI 3.0 (Swagger) 规范作为接口描述标准。
5.2 API 设计流程
识别资源
定义端点
设计 Schema
生成文档
Mock 服务
5.3 详细操作
5.3.1 自动生成 API 初稿
# 基于 PRD 和技术方案生成 API 初稿
python cli.py generate-api-draft --prd-id REQ-2026-001 --tech-design-id TD-2026-001
# 输出文件:output/api/openapi_draft.yaml
5.3.2 完善 API 定义
# 交互式完善 API 定义
python cli.py refine-api --draft-file output/api/openapi_draft.yaml
# 系统会逐项确认:
# - HTTP 方法是否正确 (GET/POST/PUT/DELETE)
# - 请求参数是否完整(path/query/body/header)
# - 响应数据结构是否合理
# - 错误码定义是否全面
# - 认证授权机制是否明确
5.3.3 API 文档示例
openapi: 3.0.3
info:
title: 在线商城系统 API
version: 1.0.0
description: 在线商城系统的 RESTful API 接口文档
servers:
- url: https://api.mall.example.com/v1
description: 生产环境
- url: https://staging-api.mall.example.com/v1
description: 预发布环境
paths:
/users/register:
post:
summary: 用户注册
tags: [用户管理]
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegisterRequest'
responses:
'201':
description: 注册成功
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegisterResponse'
'400':
description: 请求参数错误
'409':
description: 用户名已存在
components:
schemas:
UserRegisterRequest:
type: object
required:
- username
- password
- email
properties:
username:
type: string
minLength: 3
maxLength: 20
password:
type: string
minLength: 8
format: password
email:
type: string
format: email
UserRegisterResponse:
type: object
properties:
userId:
type: string
format: uuid
username:
type: string
createdAt:
type: string
format: date-time
5.3.4 API 评审与定稿
# 组织 API 评审
python cli.py review-api --api-file output/api/openapi.yaml --reviewers "后端负责人,前端负责人"
# 定稿并发布
python cli.py finalize-api --api-file output/api/openapi.yaml --version 1.0.0
5.3.5 启动 Mock 服务
# 基于 OpenAPI 规范启动 Mock 服务
python cli.py start-mock-server --api-file output/api/openapi.yaml --port 8080
# Mock 服务启动后,前端可以立即开始开发,无需等待后端实现
5.3.6 生成 API 客户端 SDK
# 生成 TypeScript 前端客户端
python cli.py generate-client-sdk --api-file output/api/openapi.yaml --language typescript --output ./frontend/src/api
# 生成 Java 后端客户端(用于服务间调用)
python cli.py generate-client-sdk --api-file output/api/openapi.yaml --language java --output ./services/common/client
5.4 API 版本管理
# 查看 API 版本历史
python cli.py api-version-history --api-name mall-api
# 创建新版本
python cli.py create-api-version --base-version 1.0.0 --new-version 1.1.0 --changes "新增优惠券功能"
# 版本兼容性检查
python cli.py check-api-compatibility --old-version 1.0.0 --new-version 1.1.0
AI Coding 与人机协同流程
6.1 模块概述
AI Coding 模块是整个系统的核心,由后端开发工程师 Agent 和前端开发工程师 Agent 基于 API 协议和技术方案自动生成高质量代码。系统支持全自动模式和人工辅助模式。
6.2 后端代码生成
6.2.1 项目初始化
# 初始化后端项目
python cli.py init-backend-project \
--api-file output/api/openapi.yaml \
--tech-stack spring-boot \
--package com.example.mall \
--output ./backend
# 生成的项目结构:
# backend/
# ├── pom.xml
# ├── src/main/java/com/example/mall/
# │ ├── controller/ # 控制器层
# │ ├── service/ # 服务层
# │ ├── repository/ # 数据访问层
# │ ├── entity/ # 实体类
# │ ├── dto/ # 数据传输对象
# │ └── config/ # 配置类
# └── src/main/resources/
# ├── application.yml
# └── mapper/ # MyBatis 映射文件
6.2.2 批量生成代码
# 生成所有实体类
python cli.py generate-entities --api-file output/api/openapi.yaml --output ./backend/src/main/java
# 生成所有 Repository 层
python cli.py generate-repositories --entities-dir ./backend/src/main/java/entity --output ./backend/src/main/java/repository
# 生成所有 Service 层
python cli.py generate-services --api-file output/api/openapi.yaml --output ./backend/src/main/java/service
# 生成所有 Controller 层
python cli.py generate-controllers --api-file output/api/openapi.yaml --output ./backend/src/main/java/controller
# 生成 MyBatis Mapper XML
python cli.py generate-mapper-xml --entities-dir ./backend/src/main/java/entity --output ./backend/src/main/resources/mapper
6.2.3 业务逻辑填充
# AI 自动填充复杂业务逻辑
python cli.py implement-business-logic \
--service-file ./backend/src/main/java/service/UserService.java \
--context "实现用户注册逻辑,包括密码加密、邮箱验证、默认角色分配"
# 系统会调用 Claude Code 分析上下文并生成符合业务需求的代码
6.2.4 代码审查与优化
# 自动代码审查
python cli.py code-review --project-dir ./backend --ruleset standard
# 查看审查报告
python cli.py view-code-review-report --report-id CR-2026-001
# 自动修复常见问题
python cli.py auto-fix-issues --report-id CR-2026-001 --fix-level safe
# 手动审查模式(推荐)
python cli.py interactive-code-review --project-dir ./backend
6.3 前端代码生成
6.3.1 项目初始化
# 初始化前端项目
python cli.py init-frontend-project \
--framework react \
--template ant-design-pro \
--api-file output/api/openapi.yaml \
--output ./frontend
# 生成的项目结构:
# frontend/
# ├── package.json
# ├── vite.config.ts
# ├── src/
# │ ├── pages/ # 页面组件
# │ ├── components/ # 通用组件
# │ ├── services/ # API 服务
# │ ├── models/ # 状态管理
# │ ├── utils/ # 工具函数
# │ └── styles/ # 样式文件
# └── public/
6.3.2 页面生成
# 根据 PRD 生成所有页面
python cli.py generate-pages --prd-id REQ-2026-001 --output ./frontend/src/pages
# 生成单个页面
python cli.py generate-page --page-name "用户登录" --wireframe-id WF-001 --output ./frontend/src/pages/Login
# 生成页面路由配置
python cli.py generate-routes --pages-dir ./frontend/src/pages --output ./frontend/src/router
6.3.3 组件生成
# 生成可复用组件
python cli.py generate-components --page-files ./frontend/src/pages/*.tsx --output ./frontend/src/components
# 生成表单组件
python cli.py generate-form-component --schema "UserForm" --fields "username,password,email" --output ./frontend/src/components
# 生成交互逻辑
python cli.py implement-interactions --component-file ./frontend/src/components/UserForm.tsx --interactions "表单验证,提交处理,错误提示"
6.3.4 API 对接
# 自动生成 API 调用服务
python cli.py generate-api-services --api-file output/api/openapi.yaml --output ./frontend/src/services
# 在页面中集成 API 调用
python cli.py integrate-api-calls --page-file ./frontend/src/pages/UserList.tsx --api-service ./frontend/src/services/userService.ts
6.4 人机协同模式
6.4.1 人工介入点配置
# 配置需要人工审核的节点
cat > config/human_in_the_loop.yaml << EOF
human_review_points:
- stage: prd_approval
reviewers: ["product_manager"]
mandatory: true
- stage: tech_design_review
reviewers: ["architect", "tech_lead"]
mandatory: true
- stage: api_design_approval
reviewers: ["backend_lead", "frontend_lead"]
mandatory: true
- stage: code_review
reviewers: ["senior_developer"]
mandatory: true
min_approvals: 2
- stage: security_audit
reviewers: ["security_expert"]
mandatory: false
threshold: "high_risk"
EOF
6.4.2 交互式代码开发
# 启动交互式开发模式
python cli.py interactive-coding --file ./backend/src/main/java/service/OrderService.java
# 开发者可以:
# 1. 描述需要实现的功能
# 2. AI 生成代码建议
# 3. 开发者选择接受/修改/拒绝
# 4. 迭代优化直到满意
6.4.3 代码解释与学习
# 让 AI 解释某段代码
python cli.py explain-code --file ./backend/src/main/java/service/PaymentService.java --line-range 45-89
# 询问如何改进
python cli.py suggest-improvements --file ./backend/src/main/java/controller/UserController.java --focus "performance,security"
# 生成代码注释
python cli.py generate-docstrings --file ./backend/src/main/java/service/*.java --style javadoc
6.5 代码质量保证
- 静态代码分析:集成 SonarQube 进行代码质量扫描
- 代码规范检查:CheckStyle / ESLint / Prettier
- 重复代码检测:识别并消除代码重复
- 安全漏洞扫描:Snyk / Dependabot 依赖安全检查
- 性能分析:识别性能瓶颈和优化点
测试自动化模块
7.1 模块概述
测试工程师 Agent 负责全流程的测试自动化,包括单元测试、集成测试和 UI 自动化测试。 系统采用测试驱动开发 (TDD) 理念,确保代码质量。
7.2 单元测试 (Unit Test)
7.2.1 自动生成单元测试
# 为后端代码生成单元测试
python cli.py generate-unit-tests \
--source-dir ./backend/src/main/java \
--test-framework junit5 \
--mock-framework mockito \
--output ./backend/src/test/java
# 为前端代码生成单元测试
python cli.py generate-unit-tests \
--source-dir ./frontend/src \
--test-framework jest \
--output ./frontend/src/__tests__
7.2.2 测试覆盖率分析
# 运行单元测试并生成覆盖率报告
python cli.py run-unit-tests --project-dir ./backend --coverage-report html
# 查看覆盖率报告
python cli.py view-coverage-report --report-id COV-2026-001
# 覆盖率阈值检查
python cli.py check-coverage-threshold --min-line-coverage 80 --min-branch-coverage 70
7.2.3 测试用例优化
# 识别冗余测试用例
python cli.py analyze-test-redundancy --test-dir ./backend/src/test/java
# 补充边界测试用例
python cli.py add-boundary-tests --source-file ./backend/src/main/java/service/DiscountCalculator.java
# 生成属性基测试 (Property-based Testing)
python cli.py generate-property-tests --source-file ./backend/src/main/java/util/PriceCalculator.java
7.3 集成测试 (Integration Test)
7.3.1 API 集成测试
# 生成 API 集成测试
python cli.py generate-integration-tests \
--api-file output/api/openapi.yaml \
--test-framework rest-assured \
--output ./backend/src/test/java/integration
# 运行集成测试(需要启动测试数据库)
python cli.py run-integration-tests --env test --profile integration
7.3.2 服务间集成测试
# 配置 Testcontainers 进行容器化集成测试
python cli.py setup-testcontainers \
--dependencies "mysql,redis,rabbitmq" \
--config-file ./backend/src/test/resources/testcontainers.properties
# 运行微服务集成测试
python cli.py run-microservice-tests --compose-file docker-compose.test.yml
7.3.3 契约测试 (Contract Testing)
# 使用 Pact 进行消费者驱动的契约测试
python cli.py generate-pact-contracts \
--consumer frontend \
--provider backend \
--api-file output/api/openapi.yaml \
--output ./pacts
# 验证契约兼容性
python cli.py verify-pact-contracts --pact-dir ./pacts --broker-url https://pact-broker.example.com
7.4 UI 自动化测试
7.4.1 测试脚本生成
# 基于页面生成 UI 测试脚本
python cli.py generate-ui-tests \
--pages-dir ./frontend/src/pages \
--test-framework cypress \
--output ./e2e/cypress/e2e
# 或使用 Playwright
python cli.py generate-ui-tests \
--pages-dir ./frontend/src/pages \
--test-framework playwright \
--output ./e2e/playwright/tests
7.4.2 端到端测试场景
# 生成典型用户旅程测试
python cli.py generate-user-journey-tests \
--user-stories ./prd/user_stories.json \
--output ./e2e/cypress/e2e/journeys
# 示例测试场景:
# - 用户注册 → 登录 → 浏览商品 → 加入购物车 → 下单 → 支付
# - 管理员登录 → 商品管理 → 上架商品 → 查看订单 → 发货
7.4.3 视觉回归测试
# 配置视觉回归测试
python cli.py setup-visual-testing \
--baseline-dir ./e2e/visual/baseline \
--threshold 0.05
# 运行视觉回归测试
python cli.py run-visual-tests --compare-dir ./e2e/visual/current
7.4.4 跨浏览器测试
# 配置多浏览器测试
python cli.py configure-cross-browser-tests \
--browsers "chrome,firefox,safari,edge" \
--platforms "windows,macos,linux"
# 在 BrowserStack 上运行测试
python cli.py run-on-browserstack \
--test-suite ./e2e/cypress/e2e \
--credentials-file ~/.browserstack/config.json
7.5 测试执行与报告
7.5.1 测试执行策略
# 全量测试
python cli.py run-all-tests --parallel --max-workers 8
# 增量测试(只测试变更影响的范围)
python cli.py run-impact-tests --commit-hash abc123def
# 冒烟测试
python cli.py run-smoke-tests --critical-only
# 夜间回归测试
python cli.py schedule-nightly-regression --time "02:00" --timezone "Asia/Shanghai"
7.5.2 测试报告生成
# 生成综合测试报告
python cli.py generate-test-report \
--unit-results ./reports/unit \
--integration-results ./reports/integration \
--e2e-results ./reports/e2e \
--output-format html \
--output-file reports/test_summary.html
# 发送到指定邮箱
python cli.py send-test-report --report-file reports/test_summary.html --recipients "team@example.com"
7.5.3 缺陷自动提单
# 配置缺陷自动提单
python cli.py configure-defect-auto-filing \
--jira-url https://jira.example.com \
--project-key MALL \
--auto-create true \
--severity-threshold high
# 失败测试自动创建 JIRA 问题
# 系统会根据测试失败信息自动生成缺陷工单并指派给相应开发人员
CI/CD 与自动部署模块
8.1 模块概述
DevOps 工程师 Agent 负责配置和维护持续集成/持续部署流水线,实现从代码提交到生产部署的全自动化。 系统支持 Jenkins + Docker + Kubernetes (KubeSphere) 的云原生部署方案。
8.2 Jenkins 流水线配置
8.2.1 自动生成 Jenkinsfile
# 生成后端 Jenkins 流水线
python cli.py generate-jenkinsfile \
--project-type backend \
--build-tool maven \
--test-frameworks "junit5,integration-test" \
--deploy-target kubernetes \
--output ./backend/Jenkinsfile
# 生成前端 Jenkins 流水线
python cli.py generate-jenkinsfile \
--project-type frontend \
--build-tool npm \
--test-frameworks "jest,cypress" \
--deploy-target cdn \
--output ./frontend/Jenkinsfile
8.2.2 Jenkinsfile 示例
pipeline {
agent {
kubernetes {
yaml '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.9-eclipse-temurin-17
command:
- cat
tty: true
- name: docker
image: docker:24-dind
securityContext:
privileged: true
'''
}
}
environment {
REGISTRY = 'registry.example.com'
IMAGE_NAME = 'mall-backend'
KUBECONFIG = credentials('kubeconfig')
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Code Quality') {
steps {
sh 'mvn -B sonar:sonar -Dsonar.projectKey=mall-backend'
}
}
stage('Unit Test') {
steps {
sh 'mvn -B test'
}
post {
always {
junit 'target/surefire-reports/*.xml'
}
}
}
stage('Integration Test') {
steps {
sh 'mvn -B verify -Pintegration-test'
}
}
stage('Build Docker Image') {
steps {
script {
docker.build("${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER}")
}
}
}
stage('Push Image') {
steps {
script {
docker.withRegistry("https://${REGISTRY}", 'docker-credentials') {
docker.image("${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER}").push()
docker.image("${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER}").push('latest')
}
}
}
}
stage('Deploy to Dev') {
when {
branch 'develop'
}
steps {
sh '''
kubectl set image deployment/mall-backend \
backend=${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} \
-n mall-dev
'''
}
}
stage('Deploy to Staging') {
when {
branch 'release/*'
}
steps {
input message: 'Deploy to staging?', ok: 'Deploy'
sh '''
kubectl set image deployment/mall-backend \
backend=${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} \
-n mall-staging
'''
}
}
stage('Deploy to Production') {
when {
branch 'main'
}
steps {
input message: 'Deploy to production?', ok: 'Deploy'
sh '''
kubectl set image deployment/mall-backend \
backend=${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} \
-n mall-prod
'''
}
}
}
post {
always {
cleanWs()
}
success {
echo 'Deployment successful!'
}
failure {
echo 'Deployment failed! Check logs for details.'
}
}
}
8.2.3 配置 Jenkins 任务
# 自动在 Jenkins 中创建任务
python cli.py create-jenkins-job \
--job-name mall-backend-ci \
--jenkinsfile ./backend/Jenkinsfile \
--repo-url https://github.com/example/mall-backend \
--branch-specifier "*/main,*/develop,*/release/*" \
--webhook-secret-file ~/.jenkins/webhook-secret
# 配置 Webhook 自动触发
python cli.py setup-github-webhook \
--repo example/mall-backend \
--jenkins-url https://jenkins.example.com \
--events "push,pull_request"
8.3 Docker 容器化
8.3.1 自动生成 Dockerfile
# 生成后端 Dockerfile(多阶段构建)
python cli.py generate-dockerfile \
--project-type spring-boot \
--jdk-version 17 \
--optimize-size true \
--output ./backend/Dockerfile
# 生成前端 Dockerfile
python cli.py generate-dockerfile \
--project-type react \
--node-version 20 \
--use-nginx true \
--output ./frontend/Dockerfile
8.3.2 Dockerfile 示例(后端)
# 构建阶段
FROM maven:3.9-eclipse-temurin-17 AS builder
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn -B package -DskipTests
# 运行阶段
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY --from=builder /app/target/*.jar app.jar
# JVM 优化参数
ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
# 健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
CMD wget -qO- http://localhost:8080/actuator/health || exit 1
EXPOSE 8080
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
8.3.3 Docker Compose 配置
# 生成本地开发环境的 Docker Compose
python cli.py generate-docker-compose \
--services "backend,frontend,mysql,redis,rabbitmq" \
--network mall-network \
--output docker-compose.dev.yml
# 生成测试环境的 Docker Compose
python cli.py generate-docker-compose \
--services "backend,mysql,redis" \
--profiles test \
--output docker-compose.test.yml
8.3.4 本地开发环境一键启动
# 启动完整开发环境
python cli.py start-dev-environment --compose-file docker-compose.dev.yml
# 仅启动依赖服务(数据库、缓存等)
python cli.py start-dependencies --services "mysql,redis,rabbitmq"
# 停止并清理
python cli.py stop-dev-environment --volumes
8.4 Kubernetes 部署
8.4.1 生成 K8s 资源配置
# 生成 Kubernetes 部署配置
python cli.py generate-k8s-manifests \
--app-name mall-backend \
--image registry.example.com/mall-backend:latest \
--replicas 3 \
--cpu-request 500m --cpu-limit 2000m \
--memory-request 512Mi --memory-limit 2Gi \
--port 8080 \
--output ./k8s/backend/
# 生成的文件:
# - deployment.yaml
# - service.yaml
# - configmap.yaml
# - secret.yaml
# - hpa.yaml (Horizontal Pod Autoscaler)
# - ingress.yaml
8.4.2 Deployment 配置示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: mall-backend
namespace: mall-prod
labels:
app: mall-backend
version: v1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: mall-backend
template:
metadata:
labels:
app: mall-backend
version: v1.0.0
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
spec:
containers:
- name: backend
image: registry.example.com/mall-backend:1.0.0
ports:
- containerPort: 8080
name: http
env:
- name: SPRING_PROFILES_ACTIVE
value: "prod"
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: mall-config
key: db.host
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: mall-secret
key: db.password
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 2000m
memory: 2Gi
livenessProbe:
httpGet:
path: /actuator/health/liveness
port: 8080
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: 8080
initialDelaySeconds: 30
periodSeconds: 5
volumeMounts:
- name: logs
mountPath: /app/logs
volumes:
- name: logs
emptyDir: {}
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchLabels:
app: mall-backend
topologyKey: kubernetes.io/hostname
8.4.3 使用 KubeSphere 进行部署
# 连接到 KubeSphere 集群
python cli.py connect-kubesphere \
--server https://kubesphere.example.com \
--token ${KS_TOKEN} \
--workspace mall-workspace
# 创建应用
python cli.py create-kubesphere-app \
--app-name mall-backend \
--image registry.example.com/mall-backend:1.0.0 \
--replicas 3 \
--cpu 2 --memory 2Gi \
--service-type ClusterIP \
--enable-monitoring true
# 查看部署状态
python cli.py get-deployment-status --app mall-backend --namespace mall-prod
# 滚动更新
python cli.py rolling-update \
--app mall-backend \
--new-image registry.example.com/mall-backend:1.1.0 \
--max-surge 1 \
--max-unavailable 0
# 回滚到上一版本
python cli.py rollback-deployment --app mall-backend --to-revision 5
8.4.4 配置 HPA 自动扩缩容
# 生成 HPA 配置
python cli.py generate-hpa \
--deployment mall-backend \
--min-replicas 3 \
--max-replicas 10 \
--cpu-threshold 70 \
--memory-threshold 80 \
--output ./k8s/backend/hpa.yaml
# 应用 HPA
kubectl apply -f ./k8s/backend/hpa.yaml -n mall-prod
8.4.5 配置 Ingress 和 TLS
# 生成 Ingress 配置
python cli.py generate-ingress \
--app-name mall-backend \
--host api.mall.example.com \
--tls-secret mall-tls-cert \
--rate-limit 1000 \
--output ./k8s/backend/ingress.yaml
# 申请 Let's Encrypt 证书
python cli.py request-letsencrypt-cert \
--domains "api.mall.example.com,www.mall.example.com" \
--email admin@mall.example.com \
--output ./certs/
8.5 监控与日志
8.5.1 集成 Prometheus + Grafana
# 部署 Prometheus 监控
python cli.py deploy-prometheus-monitoring \
--namespace monitoring \
--scrape-targets "mall-backend,mall-frontend" \
--retention 15d
# 导入 Grafana 仪表盘
python cli.py import-grafana-dashboard \
--dashboard-id spring-boot-statistics \
--datasource prometheus \
--folder mall-monitoring
8.5.2 配置日志收集 (ELK Stack)
# 部署 Filebeat 收集日志
python cli.py deploy-filebeat \
--log-source "/var/log/containers/mall-*.log" \
--elasticsearch-host elasticsearch.logging.svc \
--index-pattern mall-logs
# 创建 Kibana 可视化
python cli.py create-kibana-visualization \
--index-pattern mall-logs-* \
--dashboard-name "Mall System Logs"
8.5.3 配置告警规则
# 生成 Prometheus AlertManager 规则
python cli.py generate-alert-rules \
--alerts "high_cpu_usage,high_memory_usage,pod_crash_loop,error_rate_high" \
--notification-channel "slack,email" \
--output ./k8s/monitoring/alerts.yaml
# 示例告警规则:
# - CPU 使用率 > 80% 持续 5 分钟
# - 内存使用率 > 85% 持续 5 分钟
# - Pod 重启次数 > 3 次/小时
# - HTTP 5xx 错误率 > 1%
全流程实战案例演示
9.1 案例背景
本节通过一个完整的实战案例,演示如何使用本系统从零开始构建一个在线商城系统。 案例将覆盖从需求输入到生产部署的全部流程。
9.2 案例执行步骤
步骤 1: 需求输入与分析
# 创建项目目录
mkdir -p mall-project && cd mall-project
# 输入需求
python cli.py input-requirement \
--text "构建一个 B2C 在线商城系统,包含以下核心功能:
1. 用户端:用户注册登录、商品浏览搜索、购物车、订单管理、在线支付、评价系统
2. 管理端:商品管理、订单管理、用户管理、营销活动管理、数据统计
3. 性能要求:支持 10000 并发用户,页面响应时间<2 秒
4. 安全要求:HTTPS 加密、支付安全、防 SQL 注入、XSS 防护" \
--project-name online-mall \
--priority high
# 查看生成的澄清问题
python cli.py get-clarification-questions --project online-mall
# 回答澄清问题
python cli.py answer-questions \
--project online-mall \
--answers '{
"payment_methods": ["wechat_pay", "alipay", "union_pay"],
"membership_system": true,
"product_categories_depth": 3,
"review_system": true,
"expected_concurrent_users": 10000
}'
步骤 2: 生成 PRD 文档
# 生成 PRD
python cli.py generate-prd --project online-mall --template detailed
# 查看 PRD 文档
python cli.py view-document --type prd --project online-mall --browser
# 提交审核
python cli.py submit-for-review --doc-type prd --project online-mall --reviewers "产品总监,业务方"
# 模拟审核通过
python cli.py approve-doc --doc-type prd --project online-mall --reviewer "产品总监"
步骤 3: 技术方案设计
# 生成后端架构设计(微服务架构)
python cli.py design-backend-architecture \
--project online-mall \
--style microservices \
--services "user-service,product-service,order-service,payment-service,cart-service"
# 生成数据库设计
python cli.py design-database \
--project online-mall \
--db-type mysql \
--generate-erd true
# 生成前端架构设计
python cli.py design-frontend-architecture \
--project online-mall \
--framework react \
--ui-library ant-design \
--state-management redux
# 查看技术方案文档
python cli.py view-document --type tech-design --project online-mall
步骤 4: API 接口设计
# 生成 API 初稿
python cli.py generate-api-draft --project online-mall
# 完善并定稿 API
python cli.py refine-api --draft-file output/api/online-mall-draft.yaml --interactive
# 启动 Mock 服务供前端开发
python cli.py start-mock-server \
--api-file output/api/online-mall.yaml \
--port 8080 \
--background
# 生成前端 API 客户端
python cli.py generate-client-sdk \
--api-file output/api/online-mall.yaml \
--language typescript \
--output ./frontend/src/api
步骤 5: 代码生成
# 初始化后端项目
python cli.py init-backend-project \
--project online-mall \
--tech-stack spring-boot \
--package com.mall \
--output ./backend
# 批量生成后端代码
cd backend
python cli.py generate-entities --api-file ../output/api/online-mall.yaml
python cli.py generate-repositories --entities-dir src/main/java/com/mall/entity
python cli.py generate-services --api-file ../output/api/online-mall.yaml
python cli.py generate-controllers --api-file ../output/api/online-mall.yaml
python cli.py generate-mapper-xml --entities-dir src/main/java/com/mall/entity
# 初始化前端项目
cd ../frontend
python cli.py init-frontend-project \
--project online-mall \
--framework react \
--template ant-design-pro
# 生成页面和组件
python cli.py generate-pages --project online-mall
python cli.py generate-components --pages-dir src/pages
python cli.py generate-api-services --api-file ../output/api/online-mall.yaml
# 代码审查
cd ../backend
python cli.py code-review --project-dir . --ruleset standard
步骤 6: 测试自动化
# 生成并运行单元测试
python cli.py generate-unit-tests --source-dir src/main/java
python cli.py run-unit-tests --coverage-report html
# 生成并运行集成测试
python cli.py generate-integration-tests --api-file ../output/api/online-mall.yaml
python cli.py run-integration-tests --env test
# 生成并运行 UI 自动化测试
cd ../frontend
python cli.py generate-ui-tests --pages-dir src/pages --test-framework cypress
python cli.py run-ui-tests --headless --browser chrome
# 生成综合测试报告
python cli.py generate-test-report \
--unit-results backend/target/site/jacoco \
--integration-results backend/target/failsafe-reports \
--e2e-results frontend/cypress/reports \
--output-file reports/test_report.html
步骤 7: CI/CD 配置与部署
# 生成 Dockerfile
python cli.py generate-dockerfile --project online-mall --optimize-size true
# 生成 Kubernetes 配置
python cli.py generate-k8s-manifests \
--app-name mall-backend \
--replicas 3 \
--cpu 2 --memory 2Gi \
--output ./k8s
# 生成 Jenkins 流水线
python cli.py generate-jenkinsfile \
--project-type backend \
--deploy-target kubernetes
# 推送到 Git 仓库
git init
git add .
git commit -m "Initial commit from AI automation system"
git remote add origin https://github.com/example/online-mall.git
git push -u origin main
# 触发 Jenkins 构建(通过 Git Webhook 自动触发)
# 或者手动触发
python cli.py trigger-jenkins-build --job-name online-mall-ci
# 查看部署状态
python cli.py get-deployment-status --app mall-backend --namespace mall-prod
# 访问部署的应用
echo "应用已部署到:https://api.mall.example.com"
echo "前端页面:https://www.mall.example.com"
9.3 全流程时间线
| 阶段 | 任务 | 预计耗时 | 人工介入 |
|---|---|---|---|
| 需求分析 | 需求澄清、PRD 生成 | 30 分钟 | 需求确认、PRD 审核 |
| 技术设计 | 架构设计、数据库设计 | 20 分钟 | 技术方案评审 |
| API 设计 | 接口定义、Mock 服务 | 15 分钟 | API 评审 |
| 代码生成 | 前后端代码生成 | 40 分钟 | 代码审查 |
| 测试 | 单元/集成/UI 测试 | 30 分钟 | 缺陷修复确认 |
| 部署 | CI/CD、K8s 部署 | 15 分钟 | 发布审批 |
| 总计 | 端到端全流程 | 约 2.5 小时 | 5 个审核点 |
AI 自动化模式:2.5 小时(2-3 人审核)
效率提升:约 50-80 倍
附录:常见问题与最佳实践
A. 常见问题 FAQ
- 静态代码分析(SonarQube)
- 自动化代码审查
- 强制单元测试覆盖率要求(≥80%)
- 人工代码审查(至少 2 人批准)
- 安全漏洞扫描
- AI 生成基础框架和 CRUD 代码
- 开发人员专注于核心业务逻辑实现
- 使用交互式编码模式,AI 提供实时建议
- 利用 AI 的代码解释功能理解遗留代码
- 后端:Java (Spring Boot), Python (FastAPI/Django), Node.js (NestJS), Go (Gin)
- 前端:React, Vue, Angular, Svelte
- 移动端:React Native, Flutter(Beta)
- 未来将支持更多语言和技术栈
- OWASP Top 10 漏洞自动检测
- 依赖包安全扫描(Snyk/Dependabot)
- 安全编码规范强制执行
- 渗透测试自动化
- 安全专家人工审计(高危系统)
- 采用微服务架构拆分大项目
- 分批次生成代码,避免上下文超限
- 使用增量式开发和部署
- 建立代码复用机制和组件库
B. 最佳实践
B.1 需求阶段
- 尽可能详细地描述需求,包含业务背景、用户场景、验收标准
- 及时回答 AI 提出的澄清问题,避免歧义
- 使用用户故事地图梳理功能优先级
- PRD 评审时邀请多方利益相关者参与
B.2 设计阶段
- 优先选择成熟稳定的技术栈
- 架构设计要考虑可扩展性和可维护性
- 数据库设计遵循范式,同时考虑查询性能
- API 设计遵循 RESTful 规范,保持版本兼容性
B.3 开发阶段
- 采用小步快跑的迭代方式,频繁提交代码
- AI 生成代码后必须进行人工审查
- 保持代码简洁,遵循 DRY 原则
- 编写有意义的注释和文档
- 及时处理代码审查意见
B.4 测试阶段
- 遵循测试金字塔原则
- 单元测试要覆盖边界条件和异常情况
- 集成测试要模拟真实环境
- E2E 测试聚焦核心用户旅程
- 测试失败后立即修复,不积累技术债务
B.5 部署阶段
- 使用基础设施即代码 (IaC) 管理环境
- 实施蓝绿部署或金丝雀发布降低风险
- 配置完善的监控和告警
- 建立快速回滚机制
- 定期进行灾难恢复演练
C. 配置参考
C.1 系统配置文件模板
# config/system_config.yaml
system:
ai_provider: claude-code
model: claude-3-5-sonnet
max_tokens: 4096
temperature: 0.7
workflow:
auto_proceed: false # 是否自动进入下一阶段
require_human_approval: true # 关键节点是否需要人工审批
parallel_agents: true # 是否并行执行 Agents
quality_gates:
min_unit_test_coverage: 80
min_integration_test_coverage: 70
max_code_smells: 50
max_security_vulnerabilities: 0
require_code_review_approvals: 2
deployment:
default_namespace: mall-prod
enable_auto_scaling: true
min_replicas: 3
max_replicas: 10
rollback_on_failure: true
monitoring:
enable_prometheus: true
enable_grafana: true
enable_elk: true
alert_channels:
- type: slack
webhook: ${SLACK_WEBHOOK}
- type: email
recipients: ["devops@example.com"]
C.2 环境变量配置
# .env 文件
# AI 服务配置
CLAUDE_API_KEY=your_claude_api_key
CLAUDE_API_BASE_URL=https://api.anthropic.com
# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=mall_db
DB_USER=mall_user
DB_PASSWORD=secure_password
# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=redis_password
# Jenkins 配置
JENKINS_URL=https://jenkins.example.com
JENKINS_USER=admin
JENKINS_TOKEN=your_jenkins_token
# Kubernetes 配置
KUBECONFIG_PATH=~/.kube/config
KUBERNETES_NAMESPACE=mall-prod
# 镜像仓库配置
DOCKER_REGISTRY=registry.example.com
DOCKER_USER=docker_user
DOCKER_PASSWORD=docker_password
# 监控配置
PROMETHEUS_URL=http://prometheus:9090
GRAFANA_URL=http://grafana:3000
ELASTICSEARCH_URL=http://elasticsearch:9200
D. 命令速查表
| 类别 | 命令 | 说明 |
|---|---|---|
| 需求管理 | input-requirement |
输入需求 |
get-clarification-questions |
获取澄清问题 | |
answer-questions |
回答问题 | |
generate-prd |
生成 PRD | |
| 技术设计 | design-backend-architecture |
后端架构设计 |
design-database |
数据库设计 | |
design-frontend-architecture |
前端架构设计 | |
| API 设计 | generate-api-draft |
生成 API 初稿 |
refine-api |
完善 API | |
start-mock-server |
启动 Mock 服务 | |
| 代码生成 | init-backend-project |
初始化后端项目 |
init-frontend-project |
初始化前端项目 | |
generate-entities |
生成实体类 | |
generate-services |
生成服务层 | |
generate-controllers |
生成控制器 | |
| 测试 | generate-unit-tests |
生成单元测试 |
run-unit-tests |
运行单元测试 | |
generate-ui-tests |
生成 UI 测试 | |
run-ui-tests |
运行 UI 测试 | |
| 部署 | generate-dockerfile |
生成 Dockerfile |
generate-k8s-manifests |
生成 K8s 配置 | |
generate-jenkinsfile |
生成 Jenkins 流水线 | |
trigger-jenkins-build |
触发构建 |
E. 资源链接
- 官方文档:https://docs.openclaw-ai.com
- GitHub 仓库:https://github.com/openclaw/ai-code-agent
- 社区论坛:https://community.openclaw-ai.com
- 问题反馈:https://github.com/openclaw/ai-code-agent/issues
- Claude Code 文档:https://docs.anthropic.com/claude-code
- Kubernetes 文档:https://kubernetes.io/docs
- Jenkins 文档:https://www.jenkins.io/doc