From fca3d642703880998fc75f512a38f4f94dd58092 Mon Sep 17 00:00:00 2001 From: sinohqb Date: Mon, 3 Aug 2026 02:42:47 +0800 Subject: [PATCH] =?UTF-8?q?docs(release):=20freeze=20v0.6=E3=80=8C?= =?UTF-8?q?=E5=B7=A1=E3=80=8D/=20v0.7=E3=80=8C=E6=9E=90=E3=80=8Dmilestone?= =?UTF-8?q?=20as=200.7.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- docs/release-notes-v0.6.md | 105 +++++++++++++++++++++++++++++++++ docs/release-notes-v0.7.md | 87 +++++++++++++++++++++++++++ frontend/web/package-lock.json | 4 +- frontend/web/package.json | 2 +- pyproject.toml | 2 +- 5 files changed, 196 insertions(+), 4 deletions(-) create mode 100644 docs/release-notes-v0.6.md create mode 100644 docs/release-notes-v0.7.md diff --git a/docs/release-notes-v0.6.md b/docs/release-notes-v0.6.md new file mode 100644 index 0000000..5050dbe --- /dev/null +++ b/docs/release-notes-v0.6.md @@ -0,0 +1,105 @@ +# 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) diff --git a/docs/release-notes-v0.7.md b/docs/release-notes-v0.7.md new file mode 100644 index 0000000..d756e63 --- /dev/null +++ b/docs/release-notes-v0.7.md @@ -0,0 +1,87 @@ +# AgentEvalTool v0.7 版本发布说明 + +**版本**: v0.7.0 +**日期**: 2026-08-03 +**状态**: 已发布(t480 开发线) +**代号**: 「析」(Campaign intelligence milestone) +**作者**: AgentEval Team + +--- + +## 一、版本定位 + +v0.7 的主题是**让周期报告"会说话"**。v0.6 的活动报告回答了"通过率多少、哪里掉了",但读报告的人还要自己把数字翻译成结论与行动。本版本在终态活动之上加**智能分析**:由 LLM 对整窗表现产出结构化的总体结论、问题诊断、分场景叙述与改善建议,证据可下钻到具体子运行。 + +``` +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) 「巡」评估活动 + 周期报告 +v0.7 (2026-08-03) ← 你在这里:「析」活动智能分析 +``` + +## 二、关键设计决策 + +- **触发**:正式线(time_scale == 1)活动完成后自动生成;加速调试线按需手动 + 结果缓存 +- **形态**:结构化 JSON 区块(非自由文本),证据 chip 跳 `/reports?run={id}` 下钻;Markdown 导出拼装同一份数据 +- **Agent**:两阶段——每场景并行诊断(产场景叙述 + 问题草稿)→ 综合研判(产总体结论 + 跨场景问题 + 优先级建议) +- **模型**:模型配置中心的 chat 配置可加「分析默认」标记(全局唯一),活动级可空覆盖 +- **时机**:仅终态(completed/failed/cancelled)可生成;进行中/计划中禁用(API 400 + 前端禁用提示) +- **可信度**:模型引用的 run_id/场景 id 落库前过白名单,虚构引用剔除;非法严重度归一为"中" + +## 三、主要功能(5 张 tracer-bullet 票) + +### 3.1 模型配置中心「分析默认」(ticket 01) +- chat 配置可加「分析默认」标记,全局唯一(设置新的自动清旧的);停用或非 chat 配置拒绝设为分析默认 +- 配置列表紫色「分析默认」标签 + +### 3.2 活动级分析模型覆盖(ticket 02) +- `campaigns.analysis_model_config_id` 可空覆盖;创建表单「分析模型」下拉默认跟随全局分析默认 +- 模型解析顺序:活动覆盖 ?? 全局分析默认;两者皆无 → 自动触发静默跳过 / 手动触发 400 引导 + +### 3.3 两阶段分析 Agent + 存储 + API(ticket 03) +- `campaign_analyses` 表:每活动一行 upsert(generating/completed/failed + result JSON + 模型快照 + 错误 + 触发来源) +- 输入复用 `generate_campaign_report` 聚合结果(不重算,ADR-0002/0004 口径)+ 每场景最多 3 条截断的代表性失败对话 +- `GET /api/campaigns/{id}/analysis`(空态 `{"status":"none"}`)、`POST` 触发/重跑;后台 asyncio 任务,失败落 error +- 测试 seam:可注入 ChatClient,单测用假客户端覆盖编排/解析失败/白名单/无模型分支 + +### 3.4 报告抽屉「智能分析」区块(ticket 04) +- 状态行:生成中(5s 轮询)、失败(错误原因 + 重试)、未生成(生成按钮 + 无模型引导文案) +- 已生成:总体结论 callout → 问题诊断(严重度配色 + 场景名 + 证据 chip 跳转)→ 分场景叙述 → 改善建议(按优先级排序) +- 生成/重新生成仅终态可用;展示所用分析模型名与生成时间 + +### 3.5 正式线自动触发 + Markdown 导出纳入(ticket 05) +- 调度循环写入 COMPLETED 的同一处自动 enqueue(`triggered_by=auto`);加速线/取消/无模型全部静默跳过,不阻塞活动完成 +- 活动 Markdown 导出在存在 completed 分析时追加「智能分析」四区块;无分析时导出与旧版一致 + +## 四、测试与质量 + +| 指标 | v0.6 | v0.7 | +|---|---|---| +| 测试数量 | 402 | **443** | +| 新增 | — | 分析编排×9、分析 API×9、自动触发×4、Markdown 区块×3、迁移×2、模型校验等 | + +流程沿用 `/grill-with-docs → /to-spec → /to-tickets → /implement(×5, TDD + 内联双轴评审)`,spec 与票据在 `.scratch/v0.7/`。 + +## 五、部署与配置变更 + +- 三个新迁移:`a3f9c2e71b48`(is_analysis_default)、`b7e4d3a92c15`(campaigns.analysis_model_config_id)、`c8f5e4b13d26`(campaign_analyses 表),容器启动自动应用 +- 无新增环境变量 +- **使用前提**:模型配置中心需有一个启用的 chat 配置被设为「分析默认」,否则自动触发静默跳过、手动触发 400 +- t480 验证:健康检查 version/commit 一致、alembic 到 `c8f5e4b13d26 (head)`、分析端点鉴权后 404 正常 + +## 六、已知问题 + +1. volcengine-102 生产线停留在 v0.4 之前 +2. 前端仍无自动化测试(仅 tsc) +3. 分析质量依赖分析模型能力;失败样例每场景仅 3 条截断样本,长对话可能被截断 +4. 分析生成期间刷新抽屉不丢状态,但跨设备/会话不共享"生成中"进度提示(以轮询为准) + +## 七、下一版候选方向 + +- 分析结果周期性对比(相邻两个活动的结论 diff) +- ADR-0003 v2:OpenClaw 自适应重规划进入调度热回路 +- volcengine-102 同步 +- 前端测试基线(vitest) diff --git a/frontend/web/package-lock.json b/frontend/web/package-lock.json index 3a26697..b833271 100644 --- a/frontend/web/package-lock.json +++ b/frontend/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "agenteval-web", - "version": "0.5.0-dev", + "version": "0.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agenteval-web", - "version": "0.5.0-dev", + "version": "0.7.0", "dependencies": { "@ant-design/charts": "^2.6.7", "@ant-design/icons": "^6.3.2", diff --git a/frontend/web/package.json b/frontend/web/package.json index d98067c..1e3318c 100644 --- a/frontend/web/package.json +++ b/frontend/web/package.json @@ -1,6 +1,6 @@ { "name": "agenteval-web", - "version": "0.5.0-dev", + "version": "0.7.0", "private": true, "type": "module", "scripts": { diff --git a/pyproject.toml b/pyproject.toml index 8e6f449..13648ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "agenteval" -version = "0.5.0-dev" +version = "0.7.0" description = "智能体质量评估工具集平台" readme = "README.md" requires-python = ">=3.10"