AgentEvalTool/README.md
sinohqb a77cd83e6a v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复
## 新增功能
- 文件管理模块:分类树 + 文件上传/下载/删除
- 文件上传支持拖拽(Dragger)+ 手动上传(customRequest 模式)

## 页面布局统一(参照评测执行页)
- 仪表盘/评测对象/评测场景/评测报告 全部改为全高 flex 布局
- 统一内联页头样式(h2 + 竖线分隔 + 描述)
- 表格撑满高度、overflow 处理
- 每页添加刷新按钮

## Bug 修复
- 分类树操作按钮 hover 不可见(CSS 规则缺失)
- 文件上传失败(multipart boundary 缺失)
- LLM API 响应 content blocks 数组格式支持(_extract_content_from_api_response)
- response_time_max_ms 被静默忽略(隐式规则传空 params)
- 空 messages 导致 IndexError 崩溃
- poll_reply 异常中止整个 run(缺 try/catch)
- engine finally 未关闭 session
- 3 个页面 UTC 时间戳解析偏差 8 小时

## 后端
- EvalEngine: poll_reply 异常保护、空 dialog 保护、session 关闭
- LLM API 响应解析支持 content-block-array 格式
- 隐式 response_time 规则正确传递 max_ms 参数

## 前端
- api.ts: 移除手动 Content-Type(让浏览器自动添加 boundary)
- Files.tsx: customRequest 替代 beforeUpload、布局优化
- index.css: 分类树 hover 规则
- Targets/Scenarios/Home/Reports: 全高布局改造
- 3 个页面时间戳改用 formatDateTime()(修复 UTC 偏差)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 15:25:22 +08:00

131 lines
4.3 KiB
Markdown
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.

# AgentEvalTool
> **当前版本**: v0.2.0 「稳」(2026-07-14) · 里程碑路线图见 [docs/release-notes-v0.2.md](docs/release-notes-v0.2.md)
智能体质量评估工具集平台。
## 功能
- 评测对象管理AI 数字员工 / AI 助手)
- 评测场景管理YAML/JSON 配置)
- **异步评测执行引擎**(v0.2:真并发/真取消/可配置超时)
- 评估规则关键词匹配、响应时间、LLM 评分)
- 基础报告生成JSON / HTML
- OpenClaw 插件示例 + 免登录 iframe 集成
- Web 管理后台FastAPI + React
## v0.2 亮点
- **async EvalEngine** + `asyncio.Task` 注册表,支持真取消与并发执行
- **安全基线**:Pydantic Settings + `.env` + APIKey 鉴权 + CORS 收紧
- **测试基线**:24 个测试,57% 覆盖率(engine 61%, runs.py 86%)
- **部署规范化**:`scripts/deploy-t480.sh` 一键部署 + 镜像版本 tag + `/api/health` 验证
- **Alembic 迁移**:容器启动自动 `alembic upgrade head`
## 快速开始
### 安装
```bash
pip install -e ".[dev]"
```
### CLI 使用
```bash
# 查看帮助
agenteval --help
# 添加评测对象
agenteval target add --name "社区医院AI客服" --config config/config.json
# 导入评测场景
agenteval scenario import data/scenarios/health_basic.yaml
# 执行评测
agenteval run start --target <target-id> --scenario <scenario-id>
# 查看报告
agenteval report show <run-id> --format json
agenteval report generate <run-id> --format html
```
### 启动 Web 后台
```bash
agenteval server start --host 0.0.0.0 --port 8000
```
### 启动 Web 前端
```bash
cd frontend/web
npm install
npm run dev
```
## 文档
完整的文档集位于 `docs/` 目录:
- **[文档索引](docs/README.md)** - 文档导航和快速查找
- **[需求分析](docs/requirements-v1.0.md)** - 项目背景、功能需求、验证标准
- **[架构设计](docs/architecture-v1.0.md)** - 系统架构、核心抽象、项目结构
- **[数据模型](docs/data-models-v1.0.md)** - 数据库表结构、模型关系
- **[API 参考](docs/api-reference/)** - CLI 命令和 Web API 文档
- **[部署文档](docs/deployment/)** - 部署指南和运维说明
- **[使用指南](docs/guides/)** - 快速开始和详细使用指南
- **[外部参考](docs/external-references/)** - tutu-api 等外部文档
## 项目结构
```
AgentEvalTool/
├── backend/ # Python 后端代码
│ ├── agenteval/ # 核心 Python 库
│ │ ├── channels/ # 消息通道适配器
│ │ ├── agents/ # 评测智能体适配器
│ │ ├── scenarios/ # 评测场景模型和加载
│ │ ├── evaluation/ # 评估引擎和规则
│ │ ├── storage/ # 数据持久化SQLite
│ │ └── web/ # FastAPI Web 后台
│ ├── cli/ # CLI 命令入口
│ └── plugins/ # 外部平台插件
│ └── openclaw/ # OpenClaw 插件示例
├── frontend/ # React 前端
│ └── web/ # Web 管理界面
├── config/ # 配置文件
│ └── config.json # tutu-api 配置
├── scripts/ # 工具脚本
│ └── mock_call.py # API 测试脚本
├── docs/ # 完整文档集
│ ├── requirements-v1.0.md
│ ├── architecture-v1.0.md
│ ├── data-models-v1.0.md
│ ├── api-reference/
│ ├── deployment/
│ ├── guides/
│ └── external-references/
├── deploy/ # 部署配置
│ └── t480/ # t480 服务器部署
├── data/ # 本地数据和报告
│ ├── scenarios/ # 场景 YAML 文件
│ ├── reports/ # 生成的 HTML/JSON 报告
│ └── agenteval.db # SQLite 数据库
└── tests/ # 测试
├── unit/
└── integration/
```
## 架构说明
AgentEvalTool 采用"CLI 工具集 + Web 后台"的交付方式:
- CLI 是核心能力入口OpenClaw 可通过插件调用 CLI 完成评测自闭环。
- Web 后台提供可视化的对象、场景、执行、报告管理。
- 消息通道、评测智能体、评估规则均通过抽象接口定义,便于后续扩展。
## 许可证
MIT