4.3 KiB
Executable File
4.3 KiB
Executable File
核心Loop
定义
核心Loop是AI编程中AI自治运行的开发循环,通过Plan → TDD → 验证的流程,实现半自动有人值守的开发。
核心思想:Plan阶段人机协作,执行阶段AI自治。
核心流程
开始进入循环
↓
[Chat] 进入Plan模式
↓
装载需求规格,给出指令进行Plan
↓
[Chat] 符合要求,退出Plan模式,开始执行?
↓ 是
[模型] 读取Plan
↓
创建API测试,实现代码
↓
[模型] 运行测试/浏览器调试,是否成功?
↓ 否 → 重复多次/白天持续很久/夜间
↓ 是
[模型] 退出循环
↓
(给予ByPass权限)
三个阶段
阶段1:Plan(规划)
- 输入:需求规格、技术规格
- 输出:实现方案、任务列表
- 关键:关闭所有开放性问题
- 人工介入:确认Plan是否合理
Plan模版:
# Plan: 实现用户注册功能
## 目标
实现用户注册API,支持邮箱验证
## 任务列表
- [ ] 1. 创建数据库表users
- [ ] 2. 实现POST /api/v1/users API
- [ ] 3. 实现邮箱验证逻辑
- [ ] 4. 编写单元测试
- [ ] 5. 编写API测试
## 实现方案
1. 使用Flyway创建users表
2. Controller接收CreateUserCommand
3. AppService调用UserRepository保存
4. 发送验证邮件
## 验收标准
- 所有单元测试通过
- 所有API测试通过
- 代码符合阿里巴巴Java开发手册
## 状态
- 开始时间:2026-06-20 10:00
- 预计完成:2026-06-20 12:00
阶段2:执行(Implementation)
- 输入:Plan
- 输出:API测试、实现代码
- 关键:按照Plan逐步实现
- AI自治:无需人工介入
步骤:
- 编写API测试
- 运行测试(断言失败)
- 编写实现代码
- 运行测试(通过)
阶段3:验证(Verification)
- 输入:API测试、实现代码
- 输出:测试结果、修复建议
- 关键:所有测试通过
- AI自治:自动运行测试,自动修复
Loop规则
1. Plan等待确认
在docs/plans下根据模版创建Plan,等待人工确认。
2. 编写API测试
根据Plan实现API测试,运行成功并断言失败。
@Test
void testCreateUser() {
CreateUserRequest request = new CreateUserRequest();
request.setUsername("testuser");
request.setEmail("test@example.com");
request.setPassword("Password123");
Response<UserResponse> response = userClient.create(request);
assertEquals(201, response.getCode());
assertNotNull(response.getData().getId());
}
3. 编写实现
编写单元测试 + 实现代码,通过编译。
@PostMapping("/users")
public Response<UserResponse> createUser(@RequestBody CreateUserRequest request) {
return Response.success(userAppService.create(request));
}
4. 运行API测试
运行测试,并修复失败的测试和其他错误。
mvn test -Dtest=UserApiTest
退出条件
- 所有API测试通过
- 所有单元测试通过
- 代码符合规范(Lint通过)
- 没有编译错误
ByPass权限
AI在某些情况下可以跳过某些步骤:
- 测试环境不可用
- 第三方服务不可用
- 紧急修复
在AGENTS.md中定义ByPass规则。
适用场景
- 后端开发:API开发、业务逻辑实现
- 中等复杂度:需要TDD驱动的开发
- 团队协作:需要统一开发流程
优势
- 质量可控:TDD驱动,代码质量有保障
- 可追溯:Plan记录了实现过程
- AI自治:执行阶段无需人工介入
- 持续迭代:可以快速修复问题
挑战
- Plan质量:Plan阶段需要充分沟通
- 测试覆盖:需要编写全面的测试
- 运行时间:Loop可能需要较长时间
最佳实践
- Plan阶段充分沟通:关闭所有开放性问题
- TDD驱动:先写测试再写代码
- 记录状态:方便复盘和优化
- ByPass控制:紧急情况可以跳过步骤