# DeepEval 步骤效率：任务虽然完成，也要找出 Agent 重复搜索和无效绕路

已用真实DeepEval ToolCall/LLMTestCase构造作者trace并审计重复，核对StepEfficiencyMetric接口；未执行评判模型。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 固定同一条检索任务

两段trace都要查A并给出处，direct用3步，loop用5步。不要把不同难度任务放一起比较效率。

## 2. 保存完整工具参数和返回

示例用search:A等作者标签表示步骤。真实trace应保存工具名、参数、响应、时间和失败，不能只留下最终答案。

## 3. 运行重复步骤基准

audit.py找出loop中两次完全重复search:A；它是确定性重复统计，不是DeepEval Step Efficiency分数，也不判断所有重试都无效。

## 4. 构造实际StepEfficiency测试案例

按当前DeepEval版本构造包含工具调用的测试案例与任务目标；先检查必需字段，再指定评判模型。不要让缺失trace变成“高效”。

## 5. 执行效率评判并保留理由

在授权评判环境分别评测两条trace，保存score、reason与版本。必要重试和新的查询参数应单独说明，不能一概扣分。

## 6. 把完成质量与步骤浪费并列

确认两条确实完成同一目标，再分析重复搜索是否提供新证据。少步骤但漏办任务也不能作为优化方案。

## 7. 交付可回放trace与差异

包内已执行作者精确重复检查，真实DeepEval模型评判未执行。接入实际Agent后用真实trace替换样例，并保留改造前后证据。

## 官方依据

- DeepEval 官方文档或源码：https://deepeval.com/docs/metrics-step-efficiency
