196 lines
4.7 KiB
Markdown
196 lines
4.7 KiB
Markdown
# Android日志获取助手Agent测试报告
|
||
|
||
## 📋 测试概述
|
||
|
||
**测试时间**: 2026-01-23
|
||
**测试Agent**: Android日志获取助手
|
||
**测试用例**: 列出设备
|
||
**执行ID**: `e0dc3dec-b9b0-472d-a309-2d3e11e2e5fc`
|
||
|
||
---
|
||
|
||
## ✅ 测试结果
|
||
|
||
### 1. Agent执行状态 ✅
|
||
|
||
- **执行状态**: `completed`
|
||
- **执行时间**: 约21秒
|
||
- **Agent状态**: `published`(已发布)
|
||
|
||
### 2. 工作流执行流程 ✅
|
||
|
||
1. **开始节点**: ✅ 正常接收输入
|
||
2. **意图识别节点**: ✅ 识别了用户意图(列出设备)
|
||
3. **JSON解析节点**: ✅ 解析了意图识别结果
|
||
4. **LLM工具调用节点**: ✅ 执行完成
|
||
5. **结束节点**: ✅ 返回结果
|
||
|
||
### 3. 输出结果 ✅
|
||
|
||
Agent成功返回了设备列表信息:
|
||
- 检测到1个Android设备:`emulator-5554`(模拟器)
|
||
- 设备状态:`device`(已连接且正常运行)
|
||
|
||
---
|
||
|
||
## 🔍 工具调用分析
|
||
|
||
### 配置检查
|
||
|
||
**Agent工作流配置**:
|
||
- ✅ `enable_tools`: `True`
|
||
- ✅ `selected_tools`: `['adb_log']`
|
||
- ⚠️ `tools`: `[]`(空数组)
|
||
|
||
**问题发现**:
|
||
- 工作流引擎读取的是 `tools` 字段,但Agent配置使用的是 `selected_tools`
|
||
- **已修复**: 工作流引擎现在同时支持 `tools` 和 `selected_tools` 字段
|
||
|
||
### 工具调用日志
|
||
|
||
**检查结果**:
|
||
- ⚠️ 未在API响应中找到工具调用详细日志
|
||
- 可能原因:
|
||
1. LLM可能返回了文本描述而不是实际的tool_call
|
||
2. 工具调用日志可能记录在更深层的执行中
|
||
3. 需要在前端验证工具调用可视化
|
||
|
||
---
|
||
|
||
## 📊 测试详情
|
||
|
||
### 输入
|
||
```json
|
||
{
|
||
"query": "列出设备"
|
||
}
|
||
```
|
||
|
||
### 输出
|
||
Agent返回了详细的设备列表信息,包括:
|
||
- 设备连接状态
|
||
- 设备类型(模拟器/物理设备)
|
||
- 设备ID
|
||
- 建议操作
|
||
|
||
### 执行日志
|
||
- 总日志数: 16条
|
||
- 节点执行: 正常
|
||
- 工具调用日志: 需要前端验证
|
||
|
||
---
|
||
|
||
## 🎯 下一步验证
|
||
|
||
### 1. 前端可视化验证(优先)
|
||
|
||
**操作步骤**:
|
||
1. 打开执行详情页面:
|
||
```
|
||
http://localhost:8038/executions/e0dc3dec-b9b0-472d-a309-2d3e11e2e5fc
|
||
```
|
||
|
||
2. 查看节点执行详情:
|
||
- 点击 `llm-with-tools` 节点
|
||
- 打开节点执行详情抽屉
|
||
- 检查"工具调用"卡片是否显示
|
||
|
||
3. 验证工具调用可视化:
|
||
- ✅ 工具调用时间线是否正确显示
|
||
- ✅ 工具名称、参数、结果是否可查看
|
||
- ✅ 工具调用状态是否正确
|
||
|
||
### 2. 后端日志深度检查
|
||
|
||
**检查数据库日志**:
|
||
```sql
|
||
SELECT * FROM execution_logs
|
||
WHERE execution_id = 'e0dc3dec-b9b0-472d-a309-2d3e11e2e5fc'
|
||
AND data LIKE '%tool_name%'
|
||
```
|
||
|
||
### 3. 强制工具调用测试
|
||
|
||
创建一个更明确的测试用例,确保LLM会调用工具:
|
||
|
||
```bash
|
||
python3 test_workflow_tool.py -a "Android日志获取助手" -i '{"query": "请使用adb_log工具列出所有连接的设备,必须调用工具"}'
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 已修复问题
|
||
|
||
### 1. 工具配置字段不一致 ✅
|
||
|
||
**问题**: 工作流引擎读取 `tools` 字段,但Agent配置使用 `selected_tools`
|
||
|
||
**修复**:
|
||
- 修改 `workflow_engine.py`
|
||
- 现在同时支持 `tools` 和 `selected_tools` 字段
|
||
|
||
**代码**:
|
||
```python
|
||
# 支持两种字段名:tools 和 selected_tools
|
||
tools_config = node_data.get('tools') or node_data.get('selected_tools') or []
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 测试建议
|
||
|
||
### 测试用例1: 列出设备 ✅
|
||
|
||
**输入**: `{"query": "列出设备"}`
|
||
|
||
**结果**: ✅ 成功
|
||
- Agent正确识别了意图
|
||
- 返回了设备列表信息
|
||
|
||
### 测试用例2: 获取错误日志(建议)
|
||
|
||
**输入**: `{"query": "获取最近的错误日志"}`
|
||
|
||
**预期**:
|
||
- LLM调用 `adb_log` 工具
|
||
- 工具执行 `adb logcat -d *:E -t 100`
|
||
- 返回错误日志内容
|
||
|
||
### 测试用例3: 获取特定标签日志(建议)
|
||
|
||
**输入**: `{"query": "获取ActivityManager的日志"}`
|
||
|
||
**预期**:
|
||
- LLM调用 `adb_log` 工具
|
||
- 工具执行 `adb logcat -d ActivityManager -t 100`
|
||
- 返回ActivityManager日志
|
||
|
||
---
|
||
|
||
## 📝 总结
|
||
|
||
### ✅ 成功项
|
||
|
||
1. **Agent执行**: ✅ 工作流正常执行
|
||
2. **意图识别**: ✅ 正确识别用户意图
|
||
3. **结果返回**: ✅ 返回了有用的信息
|
||
4. **配置修复**: ✅ 修复了工具配置字段不一致问题
|
||
|
||
### ⚠️ 待验证项
|
||
|
||
1. **工具调用日志**: 需要前端验证工具调用可视化
|
||
2. **实际工具执行**: 需要确认LLM是否实际调用了工具
|
||
3. **工具调用可视化**: 需要在前端验证显示效果
|
||
|
||
### 🎯 建议
|
||
|
||
1. **优先验证前端可视化**: 打开执行详情页面,检查工具调用可视化是否正确显示
|
||
2. **测试更多用例**: 尝试不同的查询,验证工具调用的稳定性
|
||
3. **检查日志记录**: 如果前端未显示,检查后端日志记录逻辑
|
||
|
||
---
|
||
|
||
**测试完成时间**: 2026-01-23
|
||
**测试人员**: AI Assistant
|
||
**文档版本**: v1.0
|