Skip to content

Commit f25e087

Browse files
committed
feat: integrate all optimized code into parent repo
1 parent e4584fe commit f25e087

360 files changed

Lines changed: 81996 additions & 2 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Agent Loop 智能演化检查清单
2+
3+
- [x] AgentMetrics 数据类定义完整(执行时间、token消耗、成功率、错误类型)
4+
- [x] 指标收集集成到 agent_loop.py,每轮执行数据被记录
5+
- [x] 指标持久化模块工作正常,历史指标可保存和加载
6+
- [x] ToolScheduler 类实现完成,基于历史成功率排序工具调用
7+
- [x] 动态并发控制实现,工具冲突历史影响并发度
8+
- [x] 智能调度器集成到并发执行逻辑
9+
- [x] ErrorClassifier 类实现,自动分类错误类型
10+
- [x] RecoveryStrategy 枚举和策略选择逻辑实现
11+
- [x] 指数退避重试策略实现
12+
- [x] 降级执行策略实现
13+
- [x] 用户请求授权策略实现
14+
- [x] 错误恢复集成到工具执行流程
15+
- [x] MemoryInjector 类实现,Agent Loop 开始时自动检索记忆
16+
- [x] 基于任务内容的记忆搜索和筛选逻辑实现
17+
- [x] 记忆注入到系统提示词的格式化逻辑实现
18+
- [x] 失败时相似解决方案检索实现
19+
- [x] NudgeGenerator 类实现,根据失败原因生成针对性提示
20+
- [x] 常见失败场景的 Nudge 模板定义
21+
- [x] 智能 Nudge 集成到重试逻辑
22+
- [x] Agent Loop 端到端集成测试通过
23+
- [x] 错误恢复集成测试通过
24+
- [x] 记忆注入集成测试通过
25+
- [x] 所有现有测试仍然通过(无回归)
26+
- [x] pytest 运行所有测试无错误
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Agent Loop 智能演化规范
2+
3+
## Why
4+
5+
Agent Loop 是 MiniCode 的核心中枢,当前实现虽然稳定但缺乏"智能"——它机械地执行工具调用,不会在失败时学习,不会根据历史表现调整策略,也不会利用新优化的记忆系统来改进决策。上一轮优化使记忆系统具备了更好的搜索和分类能力,但 Agent Loop 尚未充分利用这些能力。
6+
7+
本轮优化的目标是让 Agent Loop 从"执行器"进化为"智能调度器":
8+
1. 利用记忆系统学习历史执行模式
9+
2. 根据上下文自适应调整执行策略
10+
3. 在失败时智能恢复而非简单重试
11+
4. 收集性能指标用于持续优化
12+
13+
## What Changes
14+
15+
- **智能工具调度**: 基于历史成功率动态调整工具执行顺序和并发策略
16+
- **自适应错误恢复**: 根据错误类型自动选择重试/替代/降级策略
17+
- **记忆驱动的上下文注入**: 在 Agent Loop 中自动注入相关记忆到上下文
18+
- **执行模式自适应**: 根据任务类型自动切换串行/并行执行模式
19+
- **性能指标收集**: 收集每轮执行时间、token 消耗、成功率等指标
20+
- **智能 Nudge 生成**: 根据失败原因生成针对性的继续提示
21+
22+
## Impact
23+
24+
- Affected specs: Agent Loop, Memory System, Context Management, Tool System
25+
- Affected code: `py-src/minicode/agent_loop.py`, `py-src/minicode/memory.py`, `py-src/minicode/context_manager.py`, `py-src/minicode/state.py`
26+
27+
## ADDED Requirements
28+
29+
### Requirement: 智能工具调度
30+
系统 SHALL 根据工具历史表现动态调整执行策略。
31+
32+
#### Scenario: 高成功率工具优先
33+
- **WHEN** 多个工具可以并行执行
34+
- **THEN** 历史成功率高的工具优先执行,失败率高的工具延后或改为串行
35+
36+
#### Scenario: 动态并发控制
37+
- **WHEN** 工具执行历史显示某类工具经常相互干扰
38+
- **THEN** 系统自动降低这些工具的并发度
39+
40+
### Requirement: 自适应错误恢复
41+
系统 SHALL 根据错误类型和上下文自动选择恢复策略。
42+
43+
#### Scenario: 网络错误自动重试
44+
- **WHEN** 工具执行因网络问题失败
45+
- **THEN** 系统自动重试,使用指数退避策略
46+
47+
#### Scenario: 权限错误降级
48+
- **WHEN** 工具因权限不足失败
49+
- **THEN** 系统尝试使用低权限替代方案或请求用户授权
50+
51+
#### Scenario: 资源不足等待
52+
- **WHEN** 工具因资源不足(内存/磁盘)失败
53+
- **THEN** 系统等待后重试,或建议清理资源
54+
55+
### Requirement: 记忆驱动的上下文注入
56+
系统 SHALL 在 Agent Loop 执行前自动检索和注入相关记忆。
57+
58+
#### Scenario: 任务开始时注入记忆
59+
- **WHEN** Agent Loop 开始新一轮执行
60+
- **THEN** 系统自动搜索与当前任务相关的记忆并注入上下文
61+
62+
#### Scenario: 失败时检索相似解决方案
63+
- **WHEN** 工具执行失败
64+
- **THEN** 系统搜索记忆中是否有类似问题的解决方案
65+
66+
### Requirement: 性能指标收集
67+
系统 SHALL 收集和分析 Agent Loop 的执行指标。
68+
69+
#### Scenario: 执行时间追踪
70+
- **WHEN** 每轮 Agent Loop 执行完成
71+
- **THEN** 系统记录执行时间、工具调用次数、token 消耗
72+
73+
#### Scenario: 成功率统计
74+
- **WHEN** 工具执行完成
75+
- **THEN** 系统更新该工具的成功率统计
76+
77+
## MODIFIED Requirements
78+
79+
### Requirement: 工具并发执行
80+
**Reason**: 需要在现有并发基础上增加智能调度
81+
**Migration**: 向后兼容,现有并发逻辑保留,增加智能层
82+
83+
### Requirement: 错误处理
84+
**Reason**: 现有错误处理是固定的,需要自适应能力
85+
**Migration**: 保留现有错误处理作为 fallback,新增智能恢复层
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Agent Loop 智能演化任务清单
2+
3+
- [x] Task 1: 实现性能指标收集系统
4+
- [x] SubTask 1.1: 创建 AgentMetrics 数据类,定义指标结构(执行时间、token消耗、成功率、错误类型)
5+
- [x] SubTask 1.2: 在 agent_loop.py 中集成指标收集,记录每轮执行数据
6+
- [x] SubTask 1.3: 创建指标持久化模块,将历史指标保存到本地文件
7+
- [x] SubTask 1.4: 编写指标收集的单元测试
8+
9+
- [x] Task 2: 实现智能工具调度器
10+
- [x] SubTask 2.1: 创建 ToolScheduler 类,基于历史成功率排序工具调用
11+
- [x] SubTask 2.2: 实现动态并发控制,根据工具冲突历史调整并发度
12+
- [x] SubTask 2.3: 集成调度器到 agent_loop.py 的并发执行逻辑
13+
- [x] SubTask 2.4: 编写调度器单元测试
14+
15+
- [x] Task 3: 实现自适应错误恢复
16+
- [x] SubTask 3.1: 创建 ErrorClassifier 类,自动分类错误类型(网络/权限/资源/逻辑)
17+
- [x] SubTask 3.2: 实现 RecoveryStrategy 枚举和策略选择逻辑
18+
- [x] SubTask 3.3: 实现指数退避重试、降级执行、用户请求等恢复策略
19+
- [x] SubTask 3.4: 集成错误恢复到 agent_loop.py 的工具执行流程
20+
- [x] SubTask 3.5: 编写错误恢复单元测试
21+
22+
- [x] Task 4: 实现记忆驱动的上下文注入
23+
- [x] SubTask 4.1: 创建 MemoryInjector 类,在 Agent Loop 开始时检索相关记忆
24+
- [x] SubTask 4.2: 实现基于任务内容的记忆搜索和筛选逻辑
25+
- [x] SubTask 4.3: 实现记忆注入到系统提示词的格式化逻辑
26+
- [x] SubTask 4.4: 实现失败时的相似解决方案检索
27+
- [x] SubTask 4.5: 编写记忆注入单元测试
28+
29+
- [x] Task 5: 实现智能 Nudge 生成
30+
- [x] SubTask 5.1: 创建 NudgeGenerator 类,根据失败原因生成针对性提示
31+
- [x] SubTask 5.2: 定义常见失败场景的 Nudge 模板
32+
- [x] SubTask 5.3: 集成 Nudge 生成到 agent_loop.py 的重试逻辑
33+
- [x] SubTask 5.4: 编写 Nudge 生成单元测试
34+
35+
- [x] Task 6: 集成测试与验证
36+
- [x] SubTask 6.1: 编写 Agent Loop 端到端集成测试(含智能调度)
37+
- [x] SubTask 6.2: 编写错误恢复集成测试
38+
- [x] SubTask 6.3: 编写记忆注入集成测试
39+
- [x] SubTask 6.4: 运行所有现有测试,确保无回归
40+
41+
# Task Dependencies
42+
43+
- [Task 2] depends on [Task 1] - 智能调度需要历史指标数据
44+
- [Task 3] depends on [Task 1] - 错误恢复需要错误类型统计
45+
- [Task 4] depends on [Task 2] - 记忆注入在调度之后执行
46+
- [Task 5] depends on [Task 3] - 智能 Nudge 基于错误分类
47+
- [Task 6] depends on [Task 1, Task 2, Task 3, Task 4, Task 5] - 集成测试需要所有组件
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# 记忆体系与集成测试优化检查清单
2+
3+
- [x] TF-IDF 搜索算法优化后,中文查询准确率提升
4+
- [x] TF-IDF 搜索算法优化后,英文查询准确率保持或提升
5+
- [x] TF-IDF 搜索算法优化后,多关键词查询返回结果按相关性正确排序
6+
- [x] 记忆条目支持自动分类功能
7+
- [x] 记忆条目支持手动添加和删除标签
8+
- [x] 通过标签可以成功搜索和过滤记忆条目
9+
- [x] 记忆文件写入使用原子操作,防止数据损坏
10+
- [x] 损坏的记忆文件可以自动检测和恢复
11+
- [x] 记忆数据支持压缩和清理机制
12+
- [x] 创建 test_memory_integration.py 测试文件
13+
- [x] 记忆与上下文管理器集成测试通过
14+
- [x] 记忆与会话系统集成测试通过
15+
- [x] 记忆与权限系统集成测试通过
16+
- [x] 端到端测试框架和夹具创建完成
17+
- [x] 完整 Agent 循环工作流测试(包含记忆检索)通过
18+
- [x] 多轮对话记忆累积和检索测试通过
19+
- [x] 跨会话记忆恢复和连续性测试通过
20+
- [x] conftest.py 扩展了记忆相关夹具
21+
- [x] 测试工具函数库创建完成
22+
- [x] 记忆搜索性能基准测试通过
23+
- [x] 内存使用监控和限制测试通过
24+
- [ ] 所有现有测试仍然通过(无回归)
25+
- [ ] pytest 运行所有测试无错误
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# 记忆体系与集成测试优化规范
2+
3+
## Why
4+
5+
当前 MiniCode 的记忆系统(Memory System)和集成测试存在以下问题需要优化:
6+
7+
1. **记忆系统**:多层记忆(user/project/local)的 TF-IDF 搜索算法需要优化精度和性能;记忆条目管理缺少更好的分类和标签系统;跨会话记忆恢复需要更可靠的机制
8+
2. **集成测试**:测试覆盖率不足,特别是记忆系统与上下文管理器、会话系统的集成场景;缺少端到端的完整工作流测试;测试夹具(fixtures)不够完善
9+
10+
## What Changes
11+
12+
- 优化 TF-IDF 搜索算法,提升记忆检索精度
13+
- 增加记忆条目分类系统和标签管理
14+
- 改进跨会话记忆恢复机制
15+
- 扩展集成测试覆盖记忆相关场景
16+
- 新增端到端工作流测试
17+
- 完善测试夹具和工具函数
18+
19+
## Impact
20+
21+
- Affected specs: Memory System, Integration Testing, Context Management
22+
- Affected code: `py-src/minicode/memory.py`, `py-src/minicode/context_manager.py`, `py-src/tests/`
23+
24+
## ADDED Requirements
25+
26+
### Requirement: 记忆检索优化
27+
系统 SHALL 提供优化的 TF-IDF 搜索算法,支持多语言(英文和中文)分词和更精确的相关性计算。
28+
29+
#### Scenario: 中文代码查询
30+
- **WHEN** 用户输入中文查询包含代码相关术语
31+
- **THEN** 系统能够正确分词并返回相关记忆条目
32+
33+
#### Scenario: 多关键词查询
34+
- **WHEN** 用户使用多个关键词进行查询
35+
- **THEN** 系统返回按相关性排序的记忆条目
36+
37+
### Requirement: 记忆分类与标签系统
38+
系统 SHALL 支持记忆条目的自动分类和手动标签管理。
39+
40+
#### Scenario: 自动分类
41+
- **WHEN** 添加新记忆条目
42+
- **THEN** 系统根据内容自动分配分类标签
43+
44+
#### Scenario: 标签搜索
45+
- **WHEN** 用户通过标签搜索记忆
46+
- **THEN** 系统返回该标签下的所有记忆条目
47+
48+
### Requirement: 集成测试扩展
49+
系统 SHALL 提供全面的集成测试覆盖记忆系统和相关组件的交互。
50+
51+
#### Scenario: 记忆与上下文集成
52+
- **WHEN** 运行记忆相关集成测试
53+
- **THEN** 验证记忆系统与上下文管理器的正确集成
54+
55+
#### Scenario: 端到端工作流
56+
- **WHEN** 运行端到端测试
57+
- **THEN** 验证完整的工作流(用户输入 → 记忆检索 → 上下文构建 → 模型调用 → 结果返回)
58+
59+
## MODIFIED Requirements
60+
61+
### Requirement: TF-IDF 实现
62+
**Reason**: 现有 TF-IDF 实现需要支持更好的中文分词和更平滑的 IDF 计算
63+
**Migration**: 向后兼容,现有记忆数据格式不变
64+
65+
### Requirement: 集成测试结构
66+
**Reason**: 需要重组测试结构,增加专门的记忆集成测试文件
67+
**Migration**: 新增测试文件,不影响现有测试
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# 记忆体系与集成测试优化任务清单
2+
3+
- [x] Task 1: 优化 TF-IDF 搜索算法
4+
- [x] SubTask 1.1: 实现改进的分词器,支持中文 CJK 字符更好处理
5+
- [x] SubTask 1.2: 优化 IDF 计算,使用更平滑的对数缩放
6+
- [x] SubTask 1.3: 添加查询扩展支持,处理同义词和相关术语
7+
- [x] SubTask 1.4: 编写 TF-IDF 优化的单元测试
8+
9+
- [x] Task 2: 实现记忆分类与标签系统
10+
- [x] SubTask 2.1: 扩展 MemoryEntry 数据结构,添加分类和标签字段
11+
- [x] SubTask 2.2: 实现自动分类逻辑(基于关键词匹配)
12+
- [x] SubTask 2.3: 添加标签管理 API(添加/删除/搜索标签)
13+
- [x] SubTask 2.4: 编写分类和标签系统的单元测试
14+
15+
- [x] Task 3: 改进记忆持久化和恢复机制
16+
- [x] SubTask 3.1: 优化记忆文件的原子写入,确保数据一致性
17+
- [x] SubTask 3.2: 添加记忆数据校验和恢复逻辑
18+
- [x] SubTask 3.3: 实现记忆压缩和清理机制
19+
- [x] SubTask 3.4: 编写持久化和恢复的测试
20+
21+
- [x] Task 4: 扩展集成测试覆盖
22+
- [x] SubTask 4.1: 创建专门的记忆集成测试文件 test_memory_integration.py
23+
- [x] SubTask 4.2: 编写记忆与上下文管理器集成测试
24+
- [x] SubTask 4.3: 编写记忆与会话系统集成测试
25+
- [x] SubTask 4.4: 编写记忆与权限系统集成测试
26+
27+
- [x] Task 5: 实现端到端工作流测试
28+
- [x] SubTask 5.1: 创建端到端测试框架和夹具
29+
- [x] SubTask 5.2: 编写完整 Agent 循环工作流测试(包含记忆检索)
30+
- [x] SubTask 5.3: 编写多轮对话记忆累积和检索测试
31+
- [x] SubTask 5.4: 编写跨会话记忆恢复和连续性测试
32+
33+
- [x] Task 6: 完善测试基础设施
34+
- [x] SubTask 6.1: 扩展 conftest.py,添加记忆相关夹具
35+
- [x] SubTask 6.2: 创建测试工具函数库(记忆数据生成、验证等)
36+
- [x] SubTask 6.3: 添加性能基准测试(记忆搜索性能)
37+
- [x] SubTask 6.4: 添加内存使用监控和限制测试
38+
39+
# Task Dependencies
40+
41+
- [Task 2] depends on [Task 1] - 分类系统需要优化的搜索算法支持
42+
- [Task 3] depends on [Task 2] - 持久化需要完整的数据结构
43+
- [Task 4] depends on [Task 1, Task 2, Task 3] - 集成测试需要所有记忆组件
44+
- [Task 5] depends on [Task 4] - 端到端测试需要集成测试基础
45+
- [Task 6] can run in parallel with [Task 1, Task 2, Task 3] - 测试基础设施可并行开发

0 commit comments

Comments
 (0)