Some checks failed
CI / test (push) Failing after 38s
- 新增 release-notes-v0.4.md(事故排查 + 功能总结 + v0.5 候选方向) - AGENT.md 里程碑表更新至 v0.4 + 鉴权配置说明 - README / plan-v0.4 状态同步
4.9 KiB
4.9 KiB
AgentEvalTool v0.4 版本发布说明
版本: v0.4.0-dev 日期: 2026-07-27 ~ 2026-07-28 状态: 已发布(t480 开发线) 代号: 「联」(Integration milestone) 作者: AgentEval Team
一、版本定位
v0.4 的主题是打通 AI 助手与平台的标准化联动,并完成生产化前的最后两块拼图:访问控制与运营视图。起因是一次真实事故:用户通过 AI 助手触发的评测(run 95ee8738)在页面上"消失"。
v0.1 (2026-07-09) MVP 闭环
v0.2 (2026-07-14) 「稳」async 引擎 + 安全基线 + 部署规范化
v0.3 (2026-07-17) 「拓」多通道 + 规则扩展 + 模型配置中心
v0.4 (2026-07-28) ← 你在这里:「联」AI 助手标准化 + 登录 + 仪表盘重构
二、事故排查:run 95ee8738 "消失"
| 检查项 | 结果 |
|---|---|
| t480 数据库 / API | ✅ run 存在、completed、列表第一条 |
| OpenClaw skill 调用链 | ✅ 走标准 POST /api/runs |
| 前端展示 | ❌ 根因 |
根因:keep-alive 标签页架构下页面永不重新挂载,Runs / Reports 只在首次挂载时加载列表,切回标签页不刷新;叠加 Runs 页默认"今天"时间过滤、Reports 页只显示 completed。纯前端展示层问题,数据无损。
修复:新增 useOnTabActive hook — 标签页重新激活时自动刷新,已接入仪表盘 / Runs / Reports 三页。
三、主要功能
3.1 触发来源标记(triggered_by)
EvalRun.triggered_by枚举(manual / ai_assistant / cli)全链路:模型 → DB(迁移b7d4e6f81c22,存量回填 manual)→ API → CLI → 引擎POST /api/runs接受可选triggered_by,非法值 422- 前端 Runs 列表、Reports 下拉、仪表盘显示来源 Tag(AI 助手=紫 / CLI=蓝)
3.2 AI 助手链路标准化
- 标准 skill
backend/plugins/openclaw/skills/agenteval-run/SKILL.md纳入版本管理,deploy 脚本自动同步到 openclaw 工作区 - skill 自动从
~/.openclaw/agenteval-api-key读取 API Key(deploy 脚本从远端 .env 提取生成),启用鉴权后 AI 助手不受影响 plugins/openclaw/README.md废除 CLI subprocess 模式(CLI 直写本地 SQLite 孤立库,是"记录消失"类事故的高危路径)
3.3 评测报告页体验重做
GET /api/runs返回冗余scenario_name/target_name- 两行表头(模式+场景筛选+重置/刷新 | 报告选择+操作),对比模式不再换行
- 场景筛选器(含计数)、富选项下拉(场景·对象·时间·通过率·来源)、全下拉 allowClear、一键重置
- 对比报告限同场景:后端 400 + generate 层双保险 + 前端 B 下拉只列同场景;顺带修复空 results 被
all([])误判通过
3.4 简单登录(访问控制)
.env配AGENTEVAL_ADMIN_PASSWORD即启用;未配置零打扰POST /api/auth/login换取无状态 HMAC 会话 token(sessionStorage,关浏览器失效);401 自动踢回登录页;菜单头部图标退出require_api_key升级require_auth:X-API-Key(机器)与 X-Auth-Token(浏览器)双凭据并行
3.5 仪表盘全面重构
/api/stats/dashboard扩展:模型配置数、今日执行、运行中、触发来源分布、场景聚合统计、富化最近记录- 三行布局:6 指标卡 / 趋势图+场景表现排行 / 最近记录+快捷操作+来源分布
- 页面请求从 3 个全量列表收敛为 2 个聚合接口
3.6 UI 与工程优化
- 模型配置页 12 列 → 6 列合并,取消横向滚动(Endpoint/完整 Token 数移入悬浮提示)
- 仪表盘滚动修复(flex:1 在非 flex 父容器失效 → height:100%)
- vite
chunkSizeWarningLimit: 2200:注释记录 vendor 2.12MB 不可拆分原因(@antv 强拆触发 TDZ 崩溃、rollup 拒绝 async 归并的实测结论),阈值仅在真实回归时报警
四、测试与质量
| 指标 | v0.3 | v0.4 |
|---|---|---|
| 测试数量 | 218 | 232 |
| 新增 | — | triggered_by×4、compare 场景限制×2、auth×5、stats×3 |
CI 三件套(v0.3 收尾时补齐)在本版本首次实战:pre-push hook 拦截推送前跑版本一致性 + ruff + pytest。
五、部署与配置变更
- t480
.env新增(需手动维护,陷阱 #5):AGENTEVAL_ADMIN_PASSWORD、AGENTEVAL_API_KEY - deploy-t480.sh 新增:SKILL.md 同步 + API Key 文件注入 openclaw 工作区
- t480 验证:登录门 401/200 全链路、AI 助手带 key 调用 200、仪表盘聚合数据正确
六、已知问题
- t480 访问密码为临时值,需自行更换
- 前端仍无自动化测试(仅 tsc)
.env远端手动维护未根治(陷阱 #5)- volcengine-102 生产线尚未同步 v0.4(含登录配置)
七、v0.5 候选方向
- 前端测试基线(vitest)
- 报告趋势分析 / 多 run 聚合看板
- OpenClaw 深度集成二期(插件双向调用)
- 多模态评测用例
- 配置同步自动化(消灭陷阱 #5)