Record the Campaign milestone (v0.6: durable scheduler, dual-axis report, campaigns page) and the campaign-intelligence milestone (v0.7: two-phase analysis agent, analysis model default/override, drawer section, auto-trigger and markdown export). Bump the single-source version to 0.7.0.
106 lines
5.4 KiB
Markdown
106 lines
5.4 KiB
Markdown
# AgentEvalTool v0.6 版本发布说明
|
||
|
||
**版本**: v0.6
|
||
**日期**: 2026-07-29 ~ 2026-08-02
|
||
**状态**: 已发布(t480 开发线)
|
||
**代号**: 「巡」(Campaign milestone)
|
||
**作者**: AgentEval Team
|
||
|
||
---
|
||
|
||
## 一、版本定位
|
||
|
||
v0.6 的主题是**从"单次评测"走向"周期化持续评测"**。v0.5 之前,平台只能对某对象某场景跑一次性 Run;真实诉求是"在一个服务周期窗口内按计划持续考察同一对象,窗口结束后拿到周期报告"。本版本引入一等公民**评估活动(Campaign)**:持久化的窗口计划 + 耐久调度器 + 双主轴周期报告 + 全新的活动管理页。
|
||
|
||
```
|
||
v0.1 (2026-07-09) MVP 闭环
|
||
v0.2 (2026-07-14) 「稳」async 引擎 + 安全基线 + 部署规范化
|
||
v0.3 (2026-07-17) 「拓」多通道 + 规则扩展 + 模型配置中心
|
||
v0.4 (2026-07-28) 「联」AI 助手标准化 + 登录 + 仪表盘重构
|
||
v0.5 (2026-07-29) 「准」判定语义 + 场景版本化
|
||
v0.6 (2026-08-02) ← 你在这里:「巡」评估活动 + 周期报告
|
||
```
|
||
|
||
## 二、领域模型与决策(新增基线)
|
||
|
||
- **`CONTEXT.md`** 新增活动词汇:评估活动 / 服务周期窗口 / 活动计划 / 子运行 / 时间倍速 等
|
||
- **`docs/adr/0003`**:活动分两期——v1 静态地基(平台自持耐久调度,窗口内不依赖 OpenClaw 存活),v2 才让 AI 进入调度热回路自适应重规划
|
||
- **`docs/adr/0004`**:跨 Run 聚合统一口径——执行故障计 0.0、用户取消排除出分母,单一函数实现,所有跨 Run 读者共用
|
||
|
||
## 三、主要功能(10 张 tracer-bullet 票)
|
||
|
||
### 3.1 活动持久化与 API(ticket 01)
|
||
- `Campaign` 领域模型 + `campaigns` 表:窗口时长、时间倍速、计划条目(场景/偏移/次数)、状态机(planned/running/completed/failed/cancelled)
|
||
- 创建/列表/取消 API;创建即启动调度
|
||
|
||
### 3.2 调度决策与子运行派生(ticket 02)
|
||
- 纯函数调度器 `campaign_scheduler`:给时钟位置算到期条目;派生的子 Run 复用单次执行路径(`EvalEngine.run` + `campaign_id`)
|
||
- 已派生索引持久化在 `campaign.summary.scheduler`,同一时钟位置绝不重复派生
|
||
|
||
### 3.3 耐久调度循环(ticket 03)
|
||
- 每 tick 从 DB 重载权威状态,循环可随时拆建:**重启恢复**不丢进度、不重派;取消为协作式信号
|
||
- 启动时自动为遗留 RUNNING 活动重建循环
|
||
|
||
### 3.4 双主轴周期报告(ticket 04)
|
||
- **时间趋势**:窗口分桶,每桶运行数/通过率/可用性/时延
|
||
- **能力汇总**:按场景聚合,同口径(ADR-0004);取消的子运行不计入
|
||
|
||
### 3.5 活动管理页(ticket 05)
|
||
- 列表实时进度(轮询)、状态/通过率/时延列、行内展开、周期报告视图
|
||
|
||
### 3.6 过程时间轴端点(ticket 06)
|
||
- `/api/campaigns/{id}/timeline`:子运行拍平到窗口偏移上,前端时间轴的数据 seam
|
||
|
||
### 3.7 反推倍速输入(ticket 07)
|
||
- 创建表单不再手填 time_scale:选「目标运行时长」,由窗口时长反推倍速(正式线 = 1 倍速)
|
||
|
||
### 3.8 共享只读时间轴组件(ticket 08)
|
||
- `WindowTimeline`:窗口标尺 + 标记点,计划预览与过程时间轴共用
|
||
|
||
### 3.9 计划时间轴预览(ticket 09)
|
||
- 创建表单内实时预览计划落点;标记按场景分泳道、防重叠错位;计划起点封顶不超出窗口
|
||
|
||
### 3.10 行内过程时间轴(ticket 10)
|
||
- 列表展开行直接看子运行在窗口上的分布与状态,进行中活动持续生长
|
||
|
||
## 四、架构深化(同期 refactor 弧)
|
||
|
||
为让活动与后续分析落在好改的地基上,本周期做了一轮模块深化:
|
||
|
||
- **判定收口**:case 通过判定收敛为单一深模块;`case_outcomes` 成为各读路径的权威来源
|
||
- **报告分层**:生成(`evaluation/report`)与渲染(`report_render`,纯函数 dict→HTML/MD/JSON)分离
|
||
- **存储骨架**:`BaseRepository` 收敛各实体的 CRUD 骨架,子类只声明表与转换器
|
||
- **任务注册表**:`TaskRegistry` 统一 run/campaign 两类后台任务的注册与取消
|
||
- **前端共享 hook**:`useResource`(加载/轮询资源)与 `usePolling` 收敛各页重复模式
|
||
- **指标 VO**:`RunSummary`/`CampaignSummary` 类型化,跨 Run 聚合单一口径函数
|
||
|
||
## 五、体验迭代(3 轮)
|
||
|
||
- 创建活动改为 920px Drawer:基本信息 / 时间与速度 / 计划预览 / 计划条目分区
|
||
- 报告抽屉重建:StatCard 指标行 + 过程时间轴 + 时间趋势图 + 能力排行图 + 子运行表
|
||
|
||
## 六、测试与质量
|
||
|
||
| 指标 | v0.5 | v0.6 |
|
||
|---|---|---|
|
||
| 测试数量 | 259 | **402** |
|
||
| 新增 | — | 调度器纯函数×20+、耐久循环×4、双轴报告×7、时间轴×6、迁移×2、VO/仓储/注册表等 |
|
||
|
||
## 七、部署与配置变更
|
||
|
||
- 迁移 `e6c3d1a2f809`(campaigns 表),容器启动自动 `alembic upgrade head`
|
||
- 新增环境变量 `AGENTEVAL_POLL_REPLY_TIMEOUT`(引擎 poll_reply 超时可配)
|
||
- t480 验证:活动全生命周期(创建→派生→完成→报告)、重启恢复、取消、前端页面全流程
|
||
|
||
## 八、已知问题
|
||
|
||
1. volcengine-102 生产线停留在 v0.4 之前,差距继续扩大
|
||
2. 前端仍无自动化测试(仅 tsc)
|
||
3. 加速调试线(time_scale > 1)与正式线共用代码路径,仅靠输入约束区分
|
||
|
||
## 九、v0.7 候选方向
|
||
|
||
- **活动智能分析**:周期报告之上,用 LLM 对整窗表现产结构化诊断与建议(已在本周期末立项)
|
||
- volcengine-102 同步
|
||
- 前端测试基线(vitest)
|