diff --git a/doc/test-plan/workbench-test.md b/doc/test-plan/workbench-test.md index 4cedb3b9..c5e98a28 100644 --- a/doc/test-plan/workbench-test.md +++ b/doc/test-plan/workbench-test.md @@ -364,7 +364,7 @@ pnpm test:update:e2e - What:同一持久子会话中断后新执行首次请求的前缀与真实缓存,以及子内部连续调用和父派发收口缓存。 - Why:SQLite 转录、恢复技能/checkpoint 和续接追加不能改写既有模型前缀。 - How:真实 UI 配置模型、派发两项任务,复制现有排期/口径/备注/财务跟进 fixture 到临时资料目录,待续接任务依次核对排期、主负责人和财务执行动作。一个完成,另一个读完后进入真实待加载网页;通过 UI 停止并要求查询、续接原子会话。相同模型/工作区短间隔续接,不填充提示或伪造输出/usage。真实本地页面只作输入,observer/只读 IPC 只取证。 -- Oracle:对齐 `WB-SUBAGENT-001-AC10`。同 agentId、不同 childRunId;原任务/历史事实保留,最终交付正确且输入不变,完成清理子日志。比较中断前末次带完整 usage 请求与续接首次请求的工具及已有消息前缀,实际 cachedInputTokens 超过该子会话首次请求的 inputTokens,证明复用包含新增历史;前缀变化、usage 缺失或仅公共前缀命中失败。复用率为续接 cachedInputTokens / 中断前 inputTokens,85%为评估参考,记录首轮/末轮输入规模区分公共前缀和历史复用,不要求所有短请求达 85%。保留请求差异、主子关联、截图、usage 和人工评估。重启持久性由恢复 E2E 验证。 +- Oracle:对齐 `WB-SUBAGENT-001-AC10`。同 agentId、不同 childRunId;原任务/历史事实保留,最终交付正确且输入不变,完成清理子日志。每个完成的子任务及续接主任务至少有一对连续请求,逐对核对已有消息与工具前缀,并确认实际缓存复用;允许一轮调用多个读取工具。比较中断前末次带完整 usage 请求与续接首次请求的工具及已有消息前缀,实际 cachedInputTokens 超过该子会话首次请求的 inputTokens,证明复用包含新增历史;前缀变化、usage 缺失或仅公共前缀命中失败。复用率为续接 cachedInputTokens / 中断前 inputTokens,85%为评估参考,记录首轮/末轮输入规模区分公共前缀和历史复用,不要求所有短请求达 85%。保留请求差异、主子关联、截图、usage 和人工评估。重启持久性由恢复 E2E 验证。 #### `subagent-approval-flow` diff --git a/tests/case/workbench/run/subagent/subagent-prefix-cache-retain-live.e2e.test.ts b/tests/case/workbench/run/subagent/subagent-prefix-cache-retain-live.e2e.test.ts index 12436114..230199ab 100644 --- a/tests/case/workbench/run/subagent/subagent-prefix-cache-retain-live.e2e.test.ts +++ b/tests/case/workbench/run/subagent/subagent-prefix-cache-retain-live.e2e.test.ts @@ -262,7 +262,6 @@ describe('workbench subagent prefix cache e2e', () => { record.caller === 'human.brain' && record.status === 'completed' ) - expect(calls.length).toBeGreaterThanOrEqual(3) expect( calls.every((call) => Boolean(call.ownerRunId && call.parentToolCallId && call.agentId)