Files
chill_notes/AI工程/概念/核心Loop.md
2026-06-22 11:30:51 +08:00

178 lines
4.3 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 核心Loop
> 相关:[[Loop工程]]、[[超级Loop]]、[[Harness工程]]、[[测试策略金字塔]]
## 定义
**核心Loop**是AI编程中AI自治运行的开发循环通过Plan → TDD → 验证的流程,实现半自动有人值守的开发。
**核心思想**Plan阶段人机协作执行阶段AI自治。
## 核心流程
```
开始进入循环
[Chat] 进入Plan模式
装载需求规格给出指令进行Plan
[Chat] 符合要求退出Plan模式开始执行
↓ 是
[模型] 读取Plan
创建API测试实现代码
[模型] 运行测试/浏览器调试,是否成功?
↓ 否 → 重复多次/白天持续很久/夜间
↓ 是
[模型] 退出循环
给予ByPass权限
```
## 三个阶段
### 阶段1Plan规划
- **输入**:需求规格、技术规格
- **输出**:实现方案、任务列表
- **关键**:关闭所有开放性问题
- **人工介入**确认Plan是否合理
**Plan模版**
```markdown
# 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自治**:无需人工介入
**步骤**
1. 编写API测试
2. 运行测试(断言失败)
3. 编写实现代码
4. 运行测试(通过)
### 阶段3验证Verification
- **输入**API测试、实现代码
- **输出**:测试结果、修复建议
- **关键**:所有测试通过
- **AI自治**:自动运行测试,自动修复
## Loop规则
### 1. Plan等待确认
在docs/plans下根据模版创建Plan等待人工确认。
### 2. 编写API测试
根据Plan实现API测试运行成功并断言失败。
```java
@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. 编写实现
编写单元测试 + 实现代码,通过编译。
```java
@PostMapping("/users")
public Response<UserResponse> createUser(@RequestBody CreateUserRequest request) {
return Response.success(userAppService.create(request));
}
```
### 4. 运行API测试
运行测试,并修复失败的测试和其他错误。
```bash
mvn test -Dtest=UserApiTest
```
## 退出条件
1. 所有API测试通过
2. 所有单元测试通过
3. 代码符合规范Lint通过
4. 没有编译错误
## ByPass权限
AI在某些情况下可以跳过某些步骤
- 测试环境不可用
- 第三方服务不可用
- 紧急修复
在AGENTS.md中定义ByPass规则。
## 适用场景
- **后端开发**API开发、业务逻辑实现
- **中等复杂度**需要TDD驱动的开发
- **团队协作**:需要统一开发流程
## 优势
- **质量可控**TDD驱动代码质量有保障
- **可追溯**Plan记录了实现过程
- **AI自治**:执行阶段无需人工介入
- **持续迭代**:可以快速修复问题
## 挑战
- **Plan质量**Plan阶段需要充分沟通
- **测试覆盖**:需要编写全面的测试
- **运行时间**Loop可能需要较长时间
## 最佳实践
1. **Plan阶段充分沟通**:关闭所有开放性问题
2. **TDD驱动**:先写测试再写代码
3. **记录状态**:方便复盘和优化
4. **ByPass控制**:紧急情况可以跳过步骤
## 相关概念
- [[Loop工程]]核心Loop是Loop工程的具体实现
- [[超级Loop]]核心Loop的扩展增加E2E测试
- [[Harness工程]]核心Loop是Harness的组成部分
- [[测试策略金字塔]]核心Loop使用的测试策略