diff --git a/CONTEXT.md b/CONTEXT.md index b57adab..f0471ab 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -56,6 +56,20 @@ _Avoid_: 消息、回合(round 仅作代码内索引名) 通过用例数 ÷ 全部用例数。刻意采用服务视角:通道故障、超时等执行失败同样计为不通过——用户视角里"没回复"就是质量问题,不从分母中剔除。(决策见 ADR-0002) _Avoid_: 成功率、达标率 +## 周期评估 + +**评估活动(Campaign)**: +针对**单个评测对象**、跨一个服务周期窗口的评估聚合,模拟该智能体在完整服务周期内面对的真实用户行为。活动是 Run 之上的聚合:按计划在窗口内派生多个普通 Run(每个 Run 仍是"一个对象 × 一个场景"的单次执行),最终聚合成周期评估报告(时间趋势 + 能力汇总双主轴)。活动状态入库、抗重启。多对象通过并行多个活动 + 跨活动对比实现。 +_Avoid_: 批量任务、计划任务、24小时任务(窗口长度可配,不特指 24h) + +**服务周期窗口(Service-Cycle Window)**: +活动的时间跨度,模拟被评智能体一个完整的持续服务周期。长度可自定义(如 6 / 12 / 24 / 48 / 72 小时),24 小时为"一天"的默认代表。 +_Avoid_: 时长、周期(周期单指这个窗口) + +**活动计划(Campaign Plan)**: +活动在窗口内"何时、对哪个对象、跑哪个场景、多大强度、以何种用户人设"的时间编排。由 OpenClaw 作为"虚拟用户大脑"在活动层生成,并在窗口内的决策点依据已完成时段的结果**自适应调整**后续编排;平台调度器负责耐久执行(派生 Run、重启后续跑、决策点唤醒 OpenClaw)。计划编排已有场景,时段内的具体对话仍由动态用例生成器产出。 +_Avoid_: 排程、日程表 + ## 模型配置 **模型能力(Capability)**: diff --git a/docs/adr/0003-campaign-phased-static-then-adaptive.md b/docs/adr/0003-campaign-phased-static-then-adaptive.md new file mode 100644 index 0000000..3c9c3d0 --- /dev/null +++ b/docs/adr/0003-campaign-phased-static-then-adaptive.md @@ -0,0 +1,19 @@ +# 评估活动分期:v1 静态地基,v2 自适应回路 + +在现有单次 Run 之上引入「评估活动(Campaign)」——单对象、跨服务周期窗口、聚合多个 Run 的周期评估。核心争议不在聚合本身,而在**由谁、以何种耦合度驱动窗口内的编排**。决定分两期,并把 OpenClaw 的自适应重规划推迟到 v2。 + +- **v1(静态地基)**:平台新建耐久调度器(活动状态入库、按计划派生 Run、重启从 DB 恢复)+ 活动聚合 + 静态活动计划(手工定义或 OpenClaw 启动时一次性生成)+ 时间趋势/能力汇总双主轴报告。计划一旦确定,窗口执行期间不依赖 OpenClaw 存活。 +- **v2(自适应)**:OpenClaw 作为活动层「虚拟用户大脑」,在窗口内的决策点依据已完成时段结果自适应重规划后续编排——AI 进入调度热回路。 + +## Considered Options + +- **v1 直接做完整自适应回路** — 被否:把数天窗口的可靠性与 AI 决策热回路一次性耦合,风险集中且难以定位问题;地基未稳先上活参与者,故障归因困难。 +- **完全不用 OpenClaw,平台自建人设生成器** — 被否:放弃平台已嵌入的 AI 助手能力,"模拟真实用户行为"的智能重复造轮子。 +- **OpenClaw 全程自主驱动整个活动** — 被否:把 24–72h 的耐久性押在交互式助手会话上,容器重启或会话断开即停摆;耐久调度应归平台。 + +## Consequences + +- 调度器是 Run 之上的独立耐久子系统(活动状态与 child Run 均入库),不是进程内一次性任务——这是 v1 就要建重的原因,勿按"临时脚本"理解。 +- v1 的活动计划是静态的:OpenClaw 至多在启动时生成一次,执行期不参与;因此 v1 报告反映的是"预设编排下的周期表现",尚不含 AI 依结果调整的闭环。 +- v2 把 OpenClaw 放进调度热回路,其可靠性边界是"决策点可用"(非全程存活);决策点不可用时该时段应可跳过/重试而不拖垮整个活动。 +- 活动是**单对象**聚合;多对象对比通过并行活动 + 跨活动对比实现,不在活动内部横向编排(与 ADR-0001「同场景同版本才可比」一致)。