Wenchao An 1b76ab9060
feat: add opt-in task notes and compacted history recall (#5382)
* feat: add opt-in task notes and compacted history recall

* fix: validate task continuity state and preserve user answers

Honor explicit opt-out, preserve clarification replies and capture failure statuses, validate notebook writes, and clear branch archive references. Update the config version and audit optional LLM credentials, with regression and integration evidence.

* fix: align Helm config version with task continuity schema

* fix: preserve mixed task history and declare continuity policies

* fix: recover malformed history and evict archives atomically
2026-09-12 21:01:46 +08:00

60 lines
5.6 KiB
Markdown
Raw 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.

# 已核对的案例
这些说明只解释已保存的轨迹,不修改原评分,也不据此调整检索或提示词。
## 预算中断可以恢复
- `task-correction-01` 的 D 组找到了正确纠正记录。它最初多写了一个 `notes` 字段,校验失败;随后删掉多余字段,文件已经完全正确,却在下一次校验前触及原累计上下文预算。恢复原缓存轨迹后补上校验,验收通过。
- `task-units-02` 的 D 组得到正确单位和数值,多轮回查后写出正确文件,但没有预算再调用校验。续跑后验收通过。
- `task-failed_attempt-00` 的 C 组及 `known-task-failed_attempt-00` 的 D 组也通过了续跑验收。新增步骤单独计入成本,原成绩保留。
这些案例支持给有效进展留出收尾空间,不能算作向量检索丢失事实。
## 任务笔记确实保住过已验证的新结论
`known-task-failed_attempt-00` 中,目标从一开始就明确。最终摘要保留了失败方案的 `batch_size=64``unbounded` 重试却没有保住后来批准的全部参数。A 组把新策略与这些旧参数拼在一起,验收失败。笔记保留了来源记录 `r00043` 对应的批准方案:`isolated_cursor``batch_size=17``retry_policy=bounded_two`B 组写对并通过校验。
这是一例“目标明确、失败经验与新批准方案需要区分”的接续证据。不能由单例推断所有任务都需要额外笔记。
## 向量提高证据召回,也可能没有提高最终答案
公开样本 `32260d93` 要求推荐今晚观看的节目。标准期望是结合历史中的 Netflix 叙事型单口喜好提出推荐。
- 关键词组命中了正确 session但没有命中官方标注的用户偏好 turn。
- 混合检索命中了 `r00414`,原文明确提到 Netflix、单口喜剧和类似 *Kid Gorgeous* 的叙事方式。
- D 组仍以“没有今晚具体推荐记录”为由拒绝给出推荐,因此官方提示词评分为失败。提供完整正确来源 session 的阅读诊断则给出了个性化推荐并通过评分。
因此,这一例中“证据 turn 召回提升”没有转化为“最终回答提升”。模型如何使用偏好、是否过度拒答,也是影响质量的因素;不能把所有失败归到检索。
另一个偏好样本 `caf03d32`C/D 都找到了用户成功做过牛肉炖菜、想尝试酸奶的记录。两组回答均给出了具体的慢炖锅酸奶建议但没有结合牛肉炖菜经验且加入较多植物基饮食内容同模型官方提示词裁判判为失败。该例包含部分正确个性化内容不能简单描述成“完全没记住”或“拒答”。保留原判分并将偏好题的主观判分边界作为局限。B 组在本例触及回答长度上限C/D 均正常结束。
## 混合排序挤出关键原文
`gpt4_7ca326fa` 要求按毕业时间排列 Emma、Rachel、Alex。关键词组返回了三人的关键原始记录顺序回答正确。混合组仍命中了三个来源 session但没有返回包含 Rachel 毕业日期的 `r00190`,最终无法把 Rachel 放到正确位置。
这是一例在相同约 4,096 token 返回额度下,混合排序比关键词排序漏掉关键 turn 的可核对损失。不能仅凭“命中了正确 session”判断证据已经完整。
## 有正确原文仍读错日期;官方 turn 标签也存在缺口
`gpt4_68e94288` 的正确答案是 2023-03-15 参加的 `#PlankChallenge`。C/D 都返回了 `r00353`:日期明确为 2023-03-15用户说当天参加了该活动。C 回答正确D 却把活动归到 2023-03-06因而拒绝给出正确答案。这一差异属于上下文中的日期读取/使用错误,不能归类成 D 没有检索到活动原文。
该样本官方 `has_answer` 标注的 turn 是另一个谈 3 月 9 日 `#FoodieAdventures``r00321`,没有标记实际相关的 `r00353`。因此自动证据 turn 召回对 C/D 都记为 0尽管两组确实返回了正确证据。原标签与计算结果均保留召回指标仅作为诊断不能替代逐条证据和最终答案核对。
## 向量补回关键词完全没找到的年龄事实
`c18a7dc8` 问当前比大学毕业时大几岁。关键词返回中没有对应的两个来源C 拒答。混合组返回 `r00265` 的当前年龄 32 岁和 `r00341` 的毕业年龄 25 岁D 正确计算为 7 年。
这是一例明确的语义检索正收益,应与前面的损失同时报告。
## 自动裁判接受了前后矛盾的答案
`681a1674` 问重看过多少部漫威电影,参考答案为 2。C/D 都找到了两部电影的证据但都先回答“一部”。C 后面又说若合并两次记录则总数为 2因此被自动裁判判对D 没有明确写出总数 2被判错。
C 的首句与后文互相矛盾,不能将该自动得分描述成无争议的优质答案。主表保留官方提示词同模型评分;若以更严格的一致性要求把 C 也视为失败,这一条 C 胜 D 的差异会消失。它提醒我们:小样本上一个裁判边界就能改变百分点,不能过度解释净差值。
## 找齐了消费记录,仍弄错收礼人
`ef9cf60a` 的两个关键用户记录分别说明:已经给姐姐/妹妹买过约 200 美元的项链,以及上次送过 100 美元的 spa 礼卡。第一条同时还在为侄女规划另一份礼物,第二条同时讨论明年的计划。
C/D 都返回了这两条记录,但没有正确汇总为 300 美元。D 把已购买项链的收礼人误读成侄女C 则漏用了项链消费。这是实体关系、计划与已发生事件的阅读问题;继续扩大相同检索的召回不必然解决它。