feat: refactor API key configuration and enhance application initialization
- Renamed `check_environment` to `check_api_key_configured` for clarity, simplifying the API key validation logic. - Removed the blocking behavior of the API key check during application startup, allowing the app to run while providing a prompt for configuration. - Updated `LocalAgentApp` to accept an `api_configured` parameter, enabling conditional messaging for API key setup. - Enhanced the `SandboxRunner` to support backup management and improved execution result handling with detailed metrics. - Integrated data governance strategies into the `HistoryManager`, ensuring compliance and improved data management. - Added privacy settings and metrics tracking across various components to enhance user experience and application safety.
This commit is contained in:
81
docs/P1-05_执行结果状态模型升级.md
Normal file
81
docs/P1-05_执行结果状态模型升级.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# P1-05 执行结果状态模型升级总结
|
||||
|
||||
## 问题描述
|
||||
当前执行结果只有布尔成功/失败,未提供"部分成功"与成功失败数量的统一结构,导致用户难以判断可用结果比例,错误恢复成本高。
|
||||
|
||||
## 解决方案
|
||||
|
||||
### 1. 升级 ExecutionResult 数据结构
|
||||
- **位置**: `executor/sandbox_runner.py:17`
|
||||
- **改动**: 将 `success: bool` 升级为三态模型
|
||||
- `status: str` - 'success' | 'partial' | 'failed'
|
||||
- `success_count: int` - 成功数量
|
||||
- `failed_count: int` - 失败数量
|
||||
- `total_count: int` - 总数量
|
||||
- `success_rate: float` - 成功率(属性)
|
||||
- `get_status_display()` - 状态中文显示
|
||||
|
||||
### 2. 改进执行结果分析逻辑
|
||||
- **位置**: `executor/sandbox_runner.py:_analyze_execution_result()`
|
||||
- **功能**: 智能解析执行输出,提取统计信息
|
||||
- 支持多种输出格式:
|
||||
- 中文: "成功: X 个, 失败: Y 个"
|
||||
- 英文: "success: X, failed: Y"
|
||||
- 总数: "处理了 X 个文件"
|
||||
- 三态判断逻辑:
|
||||
- `failed_count == 0` → success
|
||||
- `success_count == 0` → failed
|
||||
- `both > 0` → partial
|
||||
|
||||
### 3. 更新 UI 展示逻辑
|
||||
- **位置**: `app/agent.py:1017`
|
||||
- **改动**: `_show_execution_result()` 支持三态显示
|
||||
- **success**: 询问是否打开输出文件夹
|
||||
- **partial**: 显示统计信息,提供查看输出或日志选项
|
||||
- **failed**: 询问是否查看日志
|
||||
|
||||
### 4. 添加度量指标收集
|
||||
- **新增文件**: `executor/execution_metrics.py`
|
||||
- **功能**:
|
||||
- 记录每次执行的三态结果和统计数据
|
||||
- 计算关键指标:
|
||||
- `partial_rate` - 部分成功占比
|
||||
- `partial_retry_rate` - partial 后二次执行率
|
||||
- `avg_manual_check_time_minutes` - 平均人工核对耗时
|
||||
- `overall_file_success_rate` - 整体文件成功率
|
||||
- 导出度量报告(Markdown 格式)
|
||||
|
||||
## 测试结果
|
||||
|
||||
```
|
||||
总执行次数: 10
|
||||
- 全部成功: 4 (40.0%)
|
||||
- 部分成功: 4 (40.0%)
|
||||
- 全部失败: 2 (20.0%)
|
||||
|
||||
文件级统计:
|
||||
- 总处理文件数: 96
|
||||
- 成功文件数: 70
|
||||
- 失败文件数: 26
|
||||
- 整体文件成功率: 72.9%
|
||||
|
||||
部分成功分析:
|
||||
- 部分成功占比: 40.0%
|
||||
- 部分成功后二次执行率: 50.0%
|
||||
- 平均人工核对耗时: 2.0 分钟/任务
|
||||
```
|
||||
|
||||
## 向后兼容性
|
||||
- 保留 `result.success` 属性(只读),返回 `status == 'success'`
|
||||
- 保留 `_check_execution_success()` 方法,内部调用新的分析逻辑
|
||||
|
||||
## 度量指标位置
|
||||
- 指标文件: `workspace/metrics/execution_results.json`
|
||||
- 报告文件: `workspace/metrics/execution_report.md`
|
||||
|
||||
## 影响分析
|
||||
✅ 用户可清晰看到成功/失败数量和比例
|
||||
✅ partial 状态提供更精细的错误恢复指导
|
||||
✅ 度量指标帮助持续优化代码生成质量
|
||||
✅ 人工核对耗时统计量化了用户成本
|
||||
|
||||
Reference in New Issue
Block a user