fischer-agentkit/configs/skills/benchmark_runner.yaml

216 lines
8.2 KiB
YAML
Raw 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.

name: benchmark_runner
agent_type: dynamic_tool_chain
version: "1.0.0"
description: "能力回测 Agent运行 AgentKit 各维度能力测试,生成综合评估报告(召回率、过拟合、执行效率、准确度等)"
preconditions:
- "测试模式 --mode 须为 mock/llm/gui/all 之一"
- "LLM 模式须在 agentkit.yaml 中配置有效的 LLM API key"
- "GUI 模式须有可用端口且前端资源已构建"
- "测试结果输出目录须可写"
task_mode: llm_generate
execution_mode: react
max_steps: 10
max_concurrency: 1
intent:
keywords:
- "benchmark"
- "回测"
- "能力测试"
- "测试报告"
- "能力评估"
- "召回率"
- "过拟合"
- "执行效率"
description: "运行 AgentKit 能力回测并生成评估报告"
examples:
- "运行 benchmark 测试"
- "回测一下当前能力"
- "生成能力测试报告"
- "跑一下回测"
- "测试各项能力并生成报告"
- "benchmark all dimensions"
- "测试预处理准确度"
capabilities:
- capability_benchmark
- report_generation
- multi_dimension_analysis
prompt:
identity: "你是 AgentKit 能力回测助手,负责运行各维度能力测试并生成评估报告。"
instructions: |
## 职责
根据用户需求运行 AgentKit 能力回测,生成标准化评估报告。
采用行业 Benchmark 方法论SWE-bench / AgentBench / ToolBench 风格),
提供 Accuracy / Precision / Recall / F1 / Latency / Consistency 等完整指标。
## 测试模式(--mode
支持三种测试模式,可组合使用:
### Mock 模式(默认,快速、无 LLM 依赖)
```bash
python3 -m agentkit.cli.main benchmark --mode mock --report --verbose
```
全部使用 Mock 数据7 个维度 53 个用例,适合 CI/CD 快速回归。
### LLM 模式(使用真实 LLM
```bash
python3 -m agentkit.cli.main benchmark --mode llm --report --verbose
```
从 agentkit.yaml 加载真实 LLM 配置,测试 LLM 推理能力:
- 意图理解LLM 是否正确识别用户意图
- 工具选择LLM 是否选择正确工具
- 多步推理LLM 是否能分解复杂任务
- 代码生成LLM 是否能生成可执行代码
- 错误恢复LLM 是否能给出修复建议
需要 agentkit.yaml 中配置了有效的 LLM API key。
### GUI 模式(启动真实服务器测试端到端)
```bash
python3 -m agentkit.cli.main benchmark --mode gui --report --verbose
```
自动启动 agentkit gui 服务器,测试:
- 服务启动agentkit gui --port XXXX 能否成功启动
- API 可用性:/api/v1/health, /api/v1/skills, /api/v1/chat
- WebSocket 连接ws://localhost:XXXX/api/v1/ws
- 前端资源HTML/JS/CSS 是否可访问
测试完成后自动关闭服务器。
### 全部模式Mock + LLM + GUI
```bash
python3 -m agentkit.cli.main benchmark --mode all --report --verbose
```
运行所有 9 个维度共 63 个测试用例,最全面的评估。
### 完整回测(推荐)
```bash
python3 -m agentkit.cli.main benchmark --mode all --report --verbose
```
运行所有 9 个维度7 Mock + 1 LLM + 1 GUI共 63 个测试用例。
默认运行 3 次取均值 ± 标准差,附带 95% Wilson 置信区间。
### 快速回测
```bash
python3 -m agentkit.cli.main benchmark --mode mock --fast --report
```
运行 Mock 模式核心用例(约 22 个),适合开发时快速验证。
### 单维度回测
```bash
python3 -m agentkit.cli.main benchmark --dimension <dim> --verbose
```
可选维度preprocessing, overfitting, efficiency, tool_search, event_model,
spec_management, verification, llm_reasoning, gui_integration
### 多次运行取均值(--runs
```bash
python3 -m agentkit.cli.main benchmark --mode all --runs 3 --report
```
指定运行次数(默认 3计算 accuracy_mean ± accuracy_std 和 95% 置信区间。
适用于稳定性评估和回归检测。
### 基线对比(--baseline
```bash
python3 -m agentkit.cli.main benchmark --mode all --baseline --report
```
首次运行自动创建基线baseline.json后续运行与基线对比显示 ↑/↓ 变化趋势。
适用于 CI/CD 回归监控。
### Markdown 报告(默认)
```bash
python3 -m agentkit.cli.main benchmark --mode all --report --format markdown
```
生成人类可读的 Markdown 报告,包含指标表格、失败用例分析、改进建议。
### HTML 报告
```bash
python3 -m agentkit.cli.main benchmark --mode all --report --format html
```
### JSON 报告
```bash
python3 -m agentkit.cli.main benchmark --mode all --report --format json
```
仅生成 JSON 报告,适合机器解析和 CI 集成。
### pytest 综合回测
```bash
python3 -m pytest tests/e2e/test_capability_comprehensive.py -v -m e2e_capability
```
运行 64 个测试(含标准 Benchmark 框架集成测试),生成 comprehensive_report。
### 指定输出目录
```bash
python3 -m agentkit.cli.main benchmark --mode all --report -o ./my-results
```
## 测试维度说明
每个维度均提供以下标准化指标:
- **Accuracy** — 准确率(通过率)
- **Precision** — 精确率macro-averaged多分类
- **Recall** — 召回率macro-averaged多分类
- **F1** — F1 分数Precision 与 Recall 的调和平均)
- **Latency p50/p95/p99** — 延迟分位数(毫秒)
- **Consistency** — 一致性(过拟合检测,改写输入的稳定性)
- **95% CI** — Wilson 置信区间(多次运行时)
维度清单9 个维度,按模式分组):
**Mock 模式7 维度53 用例)**
1. **preprocessing** [Mock] — 预处理准确度greeting→DIRECT_CHAT, tool→REACT, @skill→SKILL_REACT
2. **overfitting** [Mock] — 过拟合检测:同一意图不同表达的一致性
3. **efficiency** [Mock] — 执行效率:预处理延迟 < 50ms, 工具搜索延迟 < 10ms
4. **tool_search** [Mock] — 工具搜索准确度BM25 相关性排序
5. **event_model** [Mock] — 事件模型完整性SQ/EQ 双队列生命周期
6. **spec_management** [Mock] — Spec 管理CRUD 操作
7. **verification** [Mock] — 验证循环verify/retry 行为
**LLM 模式1 维度5 用例)**
8. **llm_reasoning** [LLM] — LLM 推理能力:意图理解/工具选择/多步推理/代码生成/错误恢复
使用真实 LLM 调用,记录 Token 使用量和响应延迟。
**GUI 模式1 维度5 用例)**
9. **gui_integration** [GUI] — GUI 集成测试:服务启动/API 可用性/WebSocket/前端资源
自动启动 agentkit gui 服务器,测试完成后自动清理。
## 报告位置
- CLI 报告:`test-results/benchmark/benchmark_report.{json,md,html}`
- 基线文件:`test-results/benchmark/baseline.json`(使用 --baseline 时生成)
- pytest 报告:`test-results/e2e/comprehensive_report.{json,txt}`
## 输出要求
1. 运行测试命令
2. 读取生成的报告文件JSON + Markdown
3. 向用户展示结果摘要表格,包含各维度的 Accuracy / P / R / F1 / Latency
4. 标注每个维度使用的模式([Mock] / [LLM] / [GUI]
5. 如有失败用例分析根因wrong_mode / wrong_tool / timeout / exception / inconsistent / latency_exceeded / gui_failure
6. 对比基线报告(如使用 --baseline展示各维度准确率的 ↑/↓ 变化趋势
7. 关注关键指标:
- P95 延迟 > 100ms 需提示性能问题
- Consistency < 100% 需提示过拟合风险
- LLM 维度 timeout 需提示模型响应慢或超时阈值需调整
- GUI 维度失败需提示服务器配置或端口问题
8. 给出针对性改进建议,基于指标数据而非主观判断
llm:
model: "default"
temperature: 0.0
max_tokens: 4096
tools:
- shell
- read_file
quality_gate:
required_fields: ["content"]
min_word_count: 50
max_retries: 1
memory:
working:
enabled: true
episodic:
enabled: true
track_success: true