AgentEvalTool/docs/release-notes-v0.3.md
sinohqb 92f98c3af7
Some checks failed
CI / test (push) Failing after 2m59s
docs(release): add v0.3 release notes and minimal CI baseline
- 补齐 release-notes-v0.3.md,更新 AGENT.md 里程碑表与 README 至 v0.3 现状
- 新增 scripts/ci-check.sh(版本一致性 + ruff + pytest + tsc)
- 新增 .gitea/workflows/ci.yml 与本地 pre-push hook 约定
2026-07-27 16:51:45 +08:00

137 lines
5.9 KiB
Markdown
Raw Permalink 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.3 版本发布说明
**版本**: v0.3.0-dev
**日期**: 2026-07-17发布至 t480/ 2026-07-27文档补齐
**状态**: 已发布(t480 开发线, commit `affbf60`)
**代号**: 「拓」(Expansion milestone)
**作者**: AgentEval Team
---
## 一、版本定位
v0.3 是「先稳后拓」战略的第二步。在 v0.2 打好的异步引擎、安全基线和测试基线之上,本版本完成两条主线:
1. **滚动迭代**v0.2 发布后至 v0.3 基线,任务号 v0.3-s1~s4 / v0.4-t1~t4多通道、规则扩展、报告增强、文件管理等平台能力。
2. **模型配置中心**v0.3 核心主线,见 [plan-v0.3.md](plan-v0.3.md)):统一管理工程内所有外部大模型连接,消除凭据分散与明文泄露风险。
```
v0.1 (2026-07-09) MVP 闭环跑通
├── v0.2 (2026-07-14) 「稳」async 引擎 + 安全基线 + 部署规范化
├── v0.3 (2026-07-17) ← 你在这里:「拓」多通道 + 规则扩展 + 模型配置中心
└── v0.4 (规划中) 待规划
```
---
## 二、滚动迭代能力v0.2 → v0.3 基线)
| 任务 | 内容 | 提交 |
|---|---|---|
| s1 | 规则层异步化 + 工具函数去重 + **HTTP 通道** | `12481cd` |
| s2 | 3 个新规则(`semantic_similarity` / `json_schema` / `safety`+ **all/any/weighted 组合逻辑** | `c7f1dca` |
| s3 | **Webhook 通知** + OpenClaw HTTP Skill + Markdown / 对比报告 | `349200e` |
| s4 | 场景模板库 + WebSocket 自动重连 + PageWrapper 复用 | `17aeba8` |
| t1/t2 | 测试覆盖率 62%→77% + **UTC 时区根本修复**(后端序列化带时区) | `e0b69fa` |
| t3/t4 | **OpenClaw 评测通道** + 前端 bundle 优化(懒加载 + chunk 拆分) | `12c1732` |
| — | 文件管理模块(分类树 + 上传下载 + 级联删除)| `a77cd83` `d7514f4` `9293f9e` |
至此通道达到 3 种(`tutu` / `http` / `openclaw`),规则达到 6 种,均通过注册表/工厂支持插件式扩展。
---
## 三、核心功能:模型配置中心
### 3.1 问题背景
此前模型连接信息分散在 `Scenario.llm_config` 和各规则 `params`API Key 明文存储、随 API 响应泄露,且三处模型调用各自实现 httpx 请求,无统一的认证、超时、错误处理。
### 3.2 架构
```
模型配置页面 (/models)
/api/model-configs → ModelConfigService → model_configs 表
→ Fernet 密钥加密/解密
→ 引用检查(被绑定禁止删除)
ModelGateway ── chat() → 动态用例生成 / LLM 评分
├─ embed() → 语义相似度
└─ moderate() → 安全检测
协议适配器: openai / anthropic / dashscope / gemini
```
### 3.3 关键设计
- **场景只引用配置 ID**`scenario_model_bindings` 表按用途generator/judge/embedding/moderation绑定`(scenario_id, purpose)` 唯一。
- **凭据零泄露**GET 响应只返回 `has_api_key`PUT 不传 key 则保留原值;`cryptography` Fernet 加密落库。
- **能力匹配强约束**chat 配置不能用于 embedding / moderation。
- **运行快照**run 启动时保存不含密钥的模型快照,运行期间配置变更不影响进行中的评测。
- **协议与元数据分离**`cc79d3a` / `affbf60``provider` 表示调用协议,`capability` 表示评测用途,`input/output_modalities` 表示模型自身模态;厂商、区域、上下文窗口等为描述性元数据,写入运行快照但不改变网关请求参数。
### 3.4 数据迁移
- 新迁移: `8e91c70a5d3b_add_model_config_center` + `a64b2f8c9d10_add_model_metadata`
- `scripts/migrate_model_configs.py` 将存量 `llm_config` / 规则内嵌凭据迁移为配置引用(含单测覆盖)。
---
## 四、关键 Bug 修复
| 问题 | 根因 | 修复 |
|---|---|---|
| 多轮用例 LLM 评分普遍 0 分 | `llm_score` 的 question 提取按 turn 索引错位 | `c4962dd` |
| 前端运行时崩溃(白屏) | `vendor-charts` chunk 循环依赖 | `f765bee` |
| 动态用例生成失败无痕迹 | 失败原因未持久化 | 写入 `run.summary.case_errors``867d4e3` |
| `--skip-build` 部署后代码未生效 | 容器未重启 + commit 校验误报 | 自动重启 + 校验降级(`69100c3` |
| 场景页残留旧模型引用 | 模型配置迁移后前端未刷新 | `457dfed` |
---
## 五、测试与质量
| 指标 | v0.2 | v0.3 |
|---|---|---|
| 测试数量 | 24 | **218** |
| 覆盖率 | 57% | **82%** |
| 测试代码量 | ~800 行 | 3,746 行 |
新增测试模块规则组合逻辑、HTTP/OpenClaw 通道、报告生成、webhook、场景模板、文件管理repository/service/API、模型配置service/gateway/迁移/运行时集成)。
---
## 六、部署验证
```
$ curl http://192.168.8.145:8001/api/health
{"status":"ok","version":"0.3.0-dev","commit":"affbf60","built_at":"2026-07-17T15:00:21Z"}
```
- commit SHA 已随镜像注入v0.2 遗留的 `no-git` 问题随 git 仓库建立自愈)。
- 远端仓库: 自建 Giteagit.solahqb22.cn
---
## 七、已知问题与风险
1. **无 CI**218 个测试仅靠手动执行依赖漂移无法自动发现2026-07-27 已补pre-push hook + Gitea Actions 工作流)。
2. **t480 `.env` 手动维护**:新增环境变量需 SSH 手动补全(陷阱 #5,未根治)。
3. **`moderation` 能力覆盖有限**safety 规则的 moderation 路径依赖外部审核端点可用性。
4. **前端无自动化测试**:仍只有 `tsc --noEmit` 类型检查。
---
## 八、下一版本v0.4)候选方向
- 前端测试基线vitest + 组件冒烟测试)
- 评测报告增强:趋势分析、多 run 聚合看板
- OpenClaw 深度集成第二阶段(插件双向调用)
- 多模态评测用例(依托模型配置中心的 modality 元数据)
- `.env` 配置同步自动化
待与团队确认后另行制定 plan-v0.4.md。