{
  "meta": {
    "scenario_id": "group_chat_stream_memory_benchmark_hard",
    "description": "第二套更长、更刁钻的群聊聊天流长期记忆量化评估数据，刻意加入跨话题重叠词、自然句检索、长时段触发流以及更容易被群聊摘要淹没的人物事实。",
    "designed_for": [
      "group_chat",
      "topic_batching",
      "bot_participation_gate",
      "runtime_trigger",
      "search_mode",
      "time_mode",
      "episode_mode",
      "aggregate_mode",
      "person_fact_writeback",
      "negative_control",
      "cross_topic_overlap",
      "hard_mode"
    ],
    "quantitative_targets": {
      "search": {
        "accuracy_at_1": 0.4,
        "recall_at_5": 0.75,
        "keyword_recall_at_5": 0.85
      },
      "knowledge_fetcher": {
        "success_rate": 0.75,
        "keyword_recall": 0.8
      },
      "profile": {
        "success_rate": 0.67,
        "evidence_rate": 1.0
      },
      "writeback": {
        "success_rate": 0.67,
        "keyword_recall": 0.8
      },
      "episode": {
        "success_rate": 0.75,
        "keyword_recall": 0.8
      },
      "negative_control": {
        "zero_hit_rate": 1.0
      },
      "runtime_trigger": {
        "positive_trigger_rate": 1.0,
        "negative_discard_rate": 1.0
      }
    }
  },
  "session": {
    "session_id": "qq_group_535353",
    "platform": "qq",
    "user_id": "10010",
    "group_id": "535353",
    "display_name": "岚桥夜航协作群"
  },
  "import_payload": {
    "paragraphs": [
      {
        "content": "北塔夹层药箱抽屉通常固定放铜牌备用钥匙、银色保温毯、薄荷膏和黑色丁腈手套，夜间临时取用后需要在群里补报用途与归还时间。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "factual",
        "entities": [
          "北塔夹层药箱",
          "铜牌备用钥匙",
          "银色保温毯",
          "薄荷膏",
          "黑色丁腈手套"
        ]
      },
      {
        "content": "雨棚工具架附近的短波电台返潮时，大家通常会先把机身擦干，再把黑色盘线和备用听筒重新卷回灰色防潮箱，最后更换新的硅胶包。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "narrative",
        "entities": [
          "短波电台",
          "黑色盘线",
          "灰色防潮箱",
          "硅胶包",
          "备用听筒"
        ]
      },
      {
        "content": "晨雾采样结束后，蓝盖保温箱里的冷敷袋、编号试剂架和玻璃记号笔需要按固定顺序归位，避免交接时把样本编号和温控记录混在一起。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "factual",
        "entities": [
          "蓝盖保温箱",
          "冷敷袋",
          "编号试剂架",
          "玻璃记号笔",
          "样本编号"
        ]
      },
      {
        "content": "西廊风口观测前，迟雨会先校准气压计并核对湿度夹板，桌边常备温梨汤和风向丝带，避免记录员在长风口里来回找物件。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "factual",
        "entities": [
          "迟雨",
          "气压计",
          "湿度夹板",
          "温梨汤",
          "风向丝带"
        ]
      },
      {
        "content": "沈砚值夜时不喜欢冷白荧光灯直照，常把小风扇固定在三档，并且会自带盐渍梅子气泡水放在个人层架上。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "factual",
        "entities": [
          "沈砚",
          "冷白荧光灯",
          "小风扇三档",
          "盐渍梅子气泡水"
        ]
      },
      {
        "content": "贺岚平时看管北塔夹层药箱和铜牌备用钥匙，取用后会顺手补回黑色丁腈手套，并检查银色保温毯有没有被塞反。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "factual",
        "entities": [
          "贺岚",
          "北塔夹层药箱",
          "铜牌备用钥匙",
          "黑色丁腈手套",
          "银色保温毯"
        ]
      },
      {
        "content": "绘图室天窗边长桌常压着象牙描图纸、琥珀夹子和黄铜镇纸，白耳鸮闯入时最容易把这一角的纸页和夹具掀乱。",
        "source": "fixture:group_chat_stream_memory_benchmark_hard",
        "knowledge_type": "narrative",
        "entities": [
          "绘图室天窗边",
          "象牙描图纸",
          "琥珀夹子",
          "黄铜镇纸",
          "白耳鸮"
        ]
      }
    ],
    "relations": [
      {
        "subject": "贺岚",
        "predicate": "看管",
        "object": "北塔夹层药箱"
      },
      {
        "subject": "北塔夹层药箱",
        "predicate": "存放",
        "object": "铜牌备用钥匙"
      },
      {
        "subject": "北塔夹层药箱",
        "predicate": "存放",
        "object": "银色保温毯"
      },
      {
        "subject": "顾澄",
        "predicate": "维护",
        "object": "短波电台"
      },
      {
        "subject": "迟雨",
        "predicate": "负责",
        "object": "气压计校准"
      },
      {
        "subject": "迟雨",
        "predicate": "偏好",
        "object": "温梨汤"
      },
      {
        "subject": "沈砚",
        "predicate": "不喜欢",
        "object": "冷白荧光灯直照"
      },
      {
        "subject": "绘图室天窗边",
        "predicate": "摆放",
        "object": "象牙描图纸"
      }
    ]
  },
  "simulated_stream_batches": [
    {
      "batch_id": "mezzanine_first_aid_march_21",
      "topic": "北塔夹层药箱补位",
      "bot_participated": true,
      "expected_behavior": "should_be_summarized",
      "message_count": 12,
      "participants": [
        "Mai",
        "沈砚",
        "贺岚",
        "迟雨",
        "顾澄"
      ],
      "start_time": 1774095120.0,
      "end_time": 1774098180.0,
      "messages": [
        "[2026-03-21 20:12] 沈砚：北塔值夜的冷白灯又直打眼睛，我把小风扇拨回三档时顺手翻了一下夹层药箱，铜牌备用钥匙还在，但银色保温毯和薄荷膏的位置都乱了。",
        "[2026-03-21 20:14] 贺岚：黑色丁腈手套昨晚急救演练拿走了两副，我还没来得及补，药箱里左边那格现在确实空得很明显。",
        "[2026-03-21 20:18] 顾澄：旧清单上写的是铜牌备用钥匙、银色保温毯、薄荷膏、黑色丁腈手套和哨卡，但哨卡早改到门侧挂袋了。",
        "[2026-03-21 20:22] Mai：那今晚重新定一遍，夹层药箱只保留铜牌备用钥匙、银色保温毯、薄荷膏和黑色丁腈手套，谁临时拿走都在群里补报用途和预计归还时间。",
        "[2026-03-21 20:27] 迟雨：薄荷膏只剩底，保温毯边角也卷了，最好一并补新，不然真遇到低温处理时手忙脚乱。",
        "[2026-03-21 20:31] 沈砚：我半夜最怕一边被灯晃一边找物资，所以钥匙和保温毯的位置最好别再动来动去，我自己的盐渍梅子气泡水也不会放抽屉里。",
        "[2026-03-21 20:36] 贺岚：我待会儿带一盒新薄荷膏和两包丁腈手套过去，顺便把保温毯重新折成外翻口，黑里摸会更快。",
        "[2026-03-21 20:40] 顾澄：铜牌备用钥匙建议继续夹中间，别再和创伤贴挤在一起，上次取钥匙把整包小药片都带出来了。",
        "[2026-03-21 20:45] Mai：我记成新版摆放顺序了，左保温毯，中央铜牌备用钥匙，右边薄荷膏和丁腈手套；个人饮料和私人物件一律不进抽屉。",
        "[2026-03-21 20:49] 迟雨：如果临时取保温毯或手套，至少发“已取用+用途+归还时间”，不要只在走廊口头说一声。",
        "[2026-03-21 20:56] 贺岚：补完我会拍张抽屉照片，连折法和钥匙朝向一起拍进去，之后新值夜的人直接看图就行。",
        "[2026-03-21 21:03] Mai：就按这版执行，后面谁要改夹层药箱布局，先在群里说，不然下次夜班还是会翻半天。"
      ],
      "combined_text": "北塔夹层药箱这一轮群聊把铜牌备用钥匙、银色保温毯、薄荷膏、黑色丁腈手套的摆放与补位规则重新说得很细。大家先从沈砚值夜时被冷白荧光灯直照、顺手检查抽屉说起，接着确认旧清单、演练后没有补回的丁腈手套、卷边的银色保温毯和几乎见底的薄荷膏到底该放在哪一格。Mai 明确要求夹层药箱只保留四样公用物资，谁取用都要在群里补报用途与归还时间；贺岚负责补回手套和薄荷膏，并承诺拍清楚抽屉照片；顾澄补充钥匙不能再与小药片混放；沈砚再次提到自己值夜时会把小风扇固定在三档，个人带来的盐渍梅子气泡水不会放进公用抽屉里。后半段群聊又进一步确认了左保温毯、中间钥匙、右侧药品的最终布局，说明旧清单中的哨卡已经迁出，不应再占用抽屉空间，并强调夜里应急时谁先摸到物资、谁负责在群里补一句用途和归还时间。整段对话同时覆盖了物资补位、摆放顺序、夜间可见性、旧规则迁移和报备流程，是一段标准而冗长的群聊收束样本。",
      "expected_memory_targets": [
        "北塔夹层药箱",
        "铜牌备用钥匙",
        "银色保温毯",
        "薄荷膏",
        "黑色丁腈手套",
        "报备"
      ]
    },
    {
      "batch_id": "rain_shed_radio_march_23",
      "topic": "雨棚短波电台返潮排查",
      "bot_participated": true,
      "expected_behavior": "should_be_summarized",
      "message_count": 12,
      "participants": [
        "Mai",
        "顾澄",
        "贺岚",
        "迟雨",
        "沈砚"
      ],
      "start_time": 1774275240.0,
      "end_time": 1774278360.0,
      "messages": [
        "[2026-03-23 22:14] 顾澄：雨棚那台短波电台今晚一开机就有潮噪，灰色防潮箱外壳摸着也冷，黑色盘线有一截像是沾了雾水。",
        "[2026-03-23 22:16] 贺岚：备用听筒没事，主要是箱里那包硅胶已经发软了，估计这两天夜里返潮比想的更重。",
        "[2026-03-23 22:20] 沈砚：别直接通电硬顶，我先把台面上的小黄灯关掉再看接口，反光太重会误判，盘线最好先拆下来擦干。",
        "[2026-03-23 22:26] Mai：按顺序处理，顾澄先把机身外壳擦干，贺岚把黑色盘线和备用听筒摊开，迟雨看一下灰色防潮箱底部的吸水毡有没有饱和。",
        "[2026-03-23 22:31] 迟雨：吸水毡已经发黏，箱底还有一点冷凝水，硅胶包也该整包换新，不然把盘线卷回去还是会闷出潮气。",
        "[2026-03-23 22:35] 顾澄：机身擦干后杂音小了一半，问题大概不是主板，是存放时盘线缠得太紧，潮气都闷在接头这圈。",
        "[2026-03-23 22:40] 贺岚：我把黑色盘线全部放开了，备用听筒也擦过一遍，灰色防潮箱里原来的旧硅胶包先扔掉。",
        "[2026-03-23 22:45] Mai：之后统一改成机身先晾五分钟、盘线松卷、听筒单独装袋、灰色防潮箱最后再关盖，别再图快一股脑塞进去。",
        "[2026-03-23 22:50] 沈砚：雨棚边夜里冷风大，机身外壳要是还冒凉气就别急着合盖，明早又得重新返潮。",
        "[2026-03-23 22:56] 迟雨：新硅胶包已经放进去两袋，吸水毡我改成倒放在最底层，至少不会直接顶着电台外壳。",
        "[2026-03-23 23:01] 顾澄：我把黑色盘线重新分成两圈，接头朝上，短波电台和备用听筒都回箱了，现在基本没有潮噪。",
        "[2026-03-23 23:06] Mai：结论记一下，雨棚短波电台返潮时先擦机身、松黑色盘线、换硅胶包，再按灰色防潮箱的新顺序归位。"
      ],
      "combined_text": "雨棚短波电台这段对话比一般设备检修更刁钻，因为大家反复讨论的是返潮噪声、灰色防潮箱底部冷凝水、黑色盘线缠绕方式和硅胶包失效这些容易被混成同类词的细节。顾澄先发现短波电台有潮噪，贺岚确认备用听筒没坏而是防潮箱和硅胶包出了问题，沈砚提醒不要在反光和冷风里急着通电，Mai 则把处理顺序拆成机身擦干、盘线摊开、吸水毡检查和硅胶包更换。迟雨进一步指出灰色防潮箱底部的吸水毡已经发黏，需要调整放置方式。后面的讨论还涉及盘线要不要分成两圈、接头是否朝上、机身晾多久再合盖、备用听筒需不需要单独装袋，以及第二天谁来复查灰色防潮箱里的湿气状态。最后大家把短波电台、黑色盘线、备用听筒和灰色防潮箱的归位规则重新说清楚，让这一段既像设备维护，又像存放流程重整，天然适合测试跨话题重叠词下的检索稳定性。",
      "expected_memory_targets": [
        "短波电台",
        "灰色防潮箱",
        "黑色盘线",
        "硅胶包",
        "备用听筒"
      ]
    },
    {
      "batch_id": "fog_transfer_march_26",
      "topic": "晨雾采样蓝盖保温箱排序",
      "bot_participated": true,
      "expected_behavior": "should_be_summarized",
      "message_count": 12,
      "participants": [
        "Mai",
        "迟雨",
        "顾澄",
        "贺岚",
        "沈砚"
      ],
      "start_time": 1774475280.0,
      "end_time": 1774478520.0,
      "messages": [
        "[2026-03-26 05:48] 迟雨：晨雾采样刚收尾，蓝盖保温箱里冷敷袋、编号试剂架和玻璃记号笔被塞反了，后面交接的人可能一打开就拿错。",
        "[2026-03-26 05:52] 顾澄：我刚把样本管临时放回去时太赶了，冷敷袋压在编号试剂架上面了，玻璃记号笔也滑到最底层去了。",
        "[2026-03-26 05:57] 贺岚：吸水垫已经湿透一半，保温箱里要是再混着放，样本编号和温控记录很容易一起糊掉。",
        "[2026-03-26 06:02] Mai：先别再往里塞东西，按新版顺序来，最下层冷敷袋，中层编号试剂架，右侧槽放玻璃记号笔和封口贴，样本管最后再扣。",
        "[2026-03-26 06:08] 沈砚：我先把外侧工作灯压低一点，冷白灯映在箱盖上太亮，我看编号时总会反光，看错一位就麻烦。",
        "[2026-03-26 06:13] 迟雨：我把蓝盖保温箱里的冷敷袋重新平码了，编号试剂架按奇偶分左右，这样交接时一眼就能扫清楚。",
        "[2026-03-26 06:18] 顾澄：玻璃记号笔现在固定在右槽，不再横放，我顺手把备用封口贴也放在笔旁边了。",
        "[2026-03-26 06:24] 贺岚：样本管外壁的雾水有点重，我加了一层薄吸水纸，不然冷敷袋融水会一路蹭到标签。",
        "[2026-03-26 06:30] Mai：之后凌晨交接都照这个次序，谁要临时改动蓝盖保温箱内部顺序，也得在群里补一句，免得下一班以为还是旧布局。",
        "[2026-03-26 06:35] 迟雨：我已经把编号试剂架和样本位次对应关系写到箱盖内侧了，等会儿拍照发群文件。",
        "[2026-03-26 06:39] 沈砚：这样就算我半困着看，也不至于拿错玻璃记号笔或者把冷敷袋从最上层一把抽出来。",
        "[2026-03-26 06:42] Mai：确认一下，本次晨雾采样交接按蓝盖保温箱新顺序执行，冷敷袋、编号试剂架、玻璃记号笔和样本管都不要再混层。"
      ],
      "combined_text": "晨雾采样这一段专门压在“凌晨交接、低温、反光、编号顺序”这些容易让检索混淆的词上。大家围绕蓝盖保温箱里冷敷袋、编号试剂架、玻璃记号笔和样本管的归位顺序聊得很细，从顾澄一开始匆忙把冷敷袋压在试剂架上，到贺岚担心吸水垫、标签和融水互相污染，再到 Mai 明确规定最下层冷敷袋、中层编号试剂架、右槽玻璃记号笔和封口贴、样本管最后扣紧。沈砚额外提到冷白灯反光会影响编号辨认，迟雨把架位关系写到箱盖内侧并承诺拍照存档。随后大家又补充了吸水纸、备用封口贴、样本管雾水、奇偶编号左右分层和凌晨换班时必须按箱盖顺序复核这些细节，让这一段不仅仅是物品清单，而是包含低温保存、交接动作、标签保护和视觉干扰的完整操作窗口。整段话题兼有物品清单、流程顺序、交接规则和环境噪声，非常适合验证更长文本下的 search、time 和 episode 区分能力。",
      "expected_memory_targets": [
        "蓝盖保温箱",
        "冷敷袋",
        "编号试剂架",
        "玻璃记号笔",
        "样本管"
      ]
    },
    {
      "batch_id": "west_corridor_wind_march_29",
      "topic": "西廊风口观测准备",
      "bot_participated": true,
      "expected_behavior": "should_be_summarized",
      "message_count": 12,
      "participants": [
        "Mai",
        "迟雨",
        "沈砚",
        "许窈",
        "贺岚"
      ],
      "start_time": 1774779720.0,
      "end_time": 1774783080.0,
      "messages": [
        "[2026-03-29 18:22] 迟雨：今晚西廊风口比预想更急，我先把气压计拿出来校准，湿度夹板也得重新夹一张干纸，不然一小时后全卷边。",
        "[2026-03-29 18:25] 沈砚：工作台这边冷白灯太刺，我先换成侧边黄灯，再把小风扇关小一点，不然气流会把风向丝带吹得乱抖。",
        "[2026-03-29 18:29] 许窈：温梨汤我装到窄口保温壶里了，放在西廊门内侧靠墙的位置，别和公用记录板挤在一起。",
        "[2026-03-29 18:34] 贺岚：风向丝带刚整理过一遍，我把备用夹子和细线都放到记录板后面的小袋里，等会儿就不用来回摸。",
        "[2026-03-29 18:39] Mai：流程再说一遍，迟雨先报气压计校准完成，许窈确认温梨汤和备用夹子位置，沈砚负责灯光和风扇不要干扰风口读数。",
        "[2026-03-29 18:44] 迟雨：气压计现在回到零点附近了，湿度夹板也夹好了新纸，等第一轮风向记录时我再复核一次。",
        "[2026-03-29 18:48] 沈砚：黄灯角度调好了，这样不会直照读数盘面，我自己的盐渍梅子气泡水也还是放个人架，不会碰公用桌面。",
        "[2026-03-29 18:53] 许窈：温梨汤和备用杯已经摆好，门口风太直，我给壶套了防滑圈，谁喝完别顺手放回记录夹旁边。",
        "[2026-03-29 18:58] 贺岚：风向丝带试摆过了，夹点不动，细线也没打结，记录板后袋里还有两枚备用夹子。",
        "[2026-03-29 19:04] Mai：今晚西廊风口观测前的关键点就三件，气压计校准、湿度夹板换纸、温梨汤和夹具别混放，之后都照这版执行。",
        "[2026-03-29 19:11] 迟雨：收到，我把“先校准气压计再开记录”写到第一行了，后面换班的人也不用再问一次。",
        "[2026-03-29 19:18] Mai：这段我会记进观测前准备说明里，尤其是气压计、湿度夹板、风向丝带和温梨汤的位置别再临时换。"
      ],
      "combined_text": "西廊风口观测准备这段特意把人物偏好和观测流程混在一起，模拟真实群聊里“事实很容易被话题背景淹没”的情况。迟雨一直在谈气压计校准和湿度夹板换纸，许窈负责温梨汤和备用杯摆位，贺岚补充风向丝带、备用夹子和细线的位置，沈砚则反复抱怨冷白灯太刺眼、改用侧边黄灯并控制小风扇不要干扰读数。Mai 把整套流程收束成观测前三步，并强调温梨汤、夹具和记录板不能混放。后续大家又把保温壶的防滑圈、备用夹子分配、风向丝带试摆、个人饮料不能挤进公用桌面、以及第一轮记录前必须先报校准完成这些动作重复确认了一遍。这里既有人物稳定偏好，又有西廊风口这一特定场景和大量易重叠的工具名，还包含多轮确认与换班提示，是验证 person_fact 是否能真正压过群聊背景噪声的好素材。",
      "expected_memory_targets": [
        "西廊风口",
        "气压计",
        "湿度夹板",
        "温梨汤",
        "风向丝带"
      ]
    },
    {
      "batch_id": "skylight_owl_april_02",
      "topic": "绘图室天窗白耳鸮闯入",
      "bot_participated": true,
      "expected_behavior": "should_be_summarized",
      "message_count": 12,
      "participants": [
        "Mai",
        "许窈",
        "顾澄",
        "贺岚",
        "沈砚"
      ],
      "start_time": 1775133060.0,
      "end_time": 1775136540.0,
      "messages": [
        "[2026-04-02 20:31] 许窈：绘图室天窗缝刚被风顶开，一只白耳鸮直接扑到长桌上，把象牙描图纸掀起来一大片，琥珀夹子全滑到地上了。",
        "[2026-04-02 20:34] 顾澄：别先追鸟，我先把黄铜镇纸按回纸角，不然描图纸卷得更厉害，边上的玻璃尺也快掉了。",
        "[2026-04-02 20:38] 贺岚：折梯在门后，我去把天窗先拉上，琥珀夹子我捡回一半了，有两枚滑到东侧柜脚下。",
        "[2026-04-02 20:42] 沈砚：先别开顶灯，那盏冷白灯一亮鸟会更乱撞，我把侧边小灯压低，别让它再扑向纸架。",
        "[2026-04-02 20:47] Mai：处理顺序先固定，顾澄压纸，贺岚关天窗找夹子，许窈把卷起的象牙描图纸按编号重新叠回去，不要一边追鸟一边挪桌上工具。",
        "[2026-04-02 20:51] 许窈：最上面的两张描图纸已经有折痕了，但编号还在，我先用黄铜镇纸压住，再找少掉的琥珀夹子。",
        "[2026-04-02 20:56] 顾澄：白耳鸮现在站到东梁上了，暂时不碰桌子，玻璃尺和铅笔盒我已经移到靠墙这边，省得再被翅膀扫下去。",
        "[2026-04-02 21:00] 贺岚：天窗锁好了，东侧柜脚下捡回三枚琥珀夹子，另外一枚卡在桌脚和纸箱中间，我伸手就能拿到。",
        "[2026-04-02 21:05] 沈砚：侧灯角度够了，至少不会再直照到鸟和纸面，我这边风扇也先停了，免得象牙描图纸继续抖。",
        "[2026-04-02 21:10] Mai：等鸟自己往高处退，我们先把桌面恢复，象牙描图纸按编号叠好，琥珀夹子回左盒，黄铜镇纸继续压角，别因为一阵慌把原来的顺序全打散。",
        "[2026-04-02 21:18] 许窈：桌面基本恢复了，少掉的那枚夹子也找回来了，描图纸折痕部分我另放最上层，明天再单独压平。",
        "[2026-04-02 21:29] Mai：今晚的结论我记一下，绘图室天窗边长桌继续固定放象牙描图纸、琥珀夹子和黄铜镇纸，白耳鸮闯入时先稳纸再关窗。"
      ],
      "combined_text": "白耳鸮闯进绘图室这一段专门拿来压 episode query 的自然语言理解，因为话题里既有事件性描述，又有大量静物摆放细节。大家先处理的是天窗缝被顶开后，象牙描图纸、琥珀夹子和黄铜镇纸被掀乱的问题；随后又讨论冷白灯会刺激白耳鸮、侧灯角度、风扇是否需要停、折梯和玻璃尺的位置、以及描图纸折痕如何单独压平。Mai 没有只说‘把鸟赶出去’，而是明确总结成‘先稳纸再关窗’，并恢复了绘图室天窗边长桌的固定摆放规则。后半段群聊还补了夹子掉落点、东侧柜脚、桌脚纸箱缝、顶灯和侧灯的切换、以及第二天如何单独压平最上层折痕纸这些容易被普通检索忽略的细枝末节。这类又长又绕、既有事件又有物件的群聊，非常适合验证我们刚修过的中文自然句 episode 检索是否真的泛化。",
      "expected_memory_targets": [
        "白耳鸮",
        "象牙描图纸",
        "琥珀夹子",
        "黄铜镇纸",
        "天窗"
      ]
    },
    {
      "batch_id": "dessert_idle_april_04_negative",
      "topic": "夜宵甜点口味闲聊",
      "bot_participated": false,
      "expected_behavior": "ignored_by_summarizer_without_bot_message",
      "message_count": 10,
      "participants": [
        "许窈",
        "顾澄",
        "迟雨",
        "沈砚"
      ],
      "start_time": 1775301000.0,
      "end_time": 1775304120.0,
      "messages": [
        "[2026-04-04 19:10] 许窈：我刚在街口买到荔枝冻，里面还有一点桂花糖浆，冰得很夸张。",
        "[2026-04-04 19:14] 顾澄：我更想吃焦糖海盐脆片，那种一咬就掉屑的比糯口点心适合夜里配热水。",
        "[2026-04-04 19:19] 迟雨：乌龙奶酥我也喜欢，但甜得太快，还是百香果软糖更耐嚼。",
        "[2026-04-04 19:24] 沈砚：夜里我其实只想吃不黏手的，海盐脆片和柚子糖都比奶酥方便。",
        "[2026-04-04 19:31] 许窈：那我下次把荔枝冻换成常温的，不然冰箱味太重。",
        "[2026-04-04 19:37] 顾澄：要是有烤糯米团就好了，焦糖和海盐一起裹会很香。",
        "[2026-04-04 19:44] 迟雨：百香果软糖一定要选酸一点的，不然吃两颗就发腻。",
        "[2026-04-04 19:51] 沈砚：乌龙奶酥掉渣太厉害，我更想找一盒柠檬脆片。",
        "[2026-04-04 19:58] 许窈：行，那我下次夜宵就别买太黏的，省得桌上全是糖粉。",
        "[2026-04-04 20:02] 顾澄：决定了，下一轮就试荔枝冻、海盐脆片和百香果软糖三选二。"
      ],
      "combined_text": "这一批是刻意保留下来的负样本，整段只围绕荔枝冻、焦糖海盐脆片、乌龙奶酥、百香果软糖和柚子糖的口味闲聊，没有 Mai 参与，也没有任何需要被长期记忆化的群聊任务结论。它的设计目的不是构造一个完全短小的无聊片段，而是制造一段在词面上同样丰富、长度也足够的闲聊，以便验证 summarizer 的 Bot 参与门槛和检索层的误召回控制是否真的有效。",
      "expected_memory_targets": [
        "荔枝冻",
        "焦糖海盐脆片",
        "乌龙奶酥",
        "百香果软糖"
      ]
    }
  ],
  "runtime_trigger_streams": [
    {
      "stream_id": "runtime_west_corridor_trigger_april_07",
      "topic": "西廊风口准备长流触发样本",
      "trigger_mode": "time_threshold",
      "elapsed_since_last_check_hours": 8.8,
      "bot_participated": true,
      "expected_check_outcome": "should_trigger_topic_check_and_pass_bot_gate",
      "expected_next_stage": "topic_cache_should_update",
      "message_count": 22,
      "participants": [
        "Mai",
        "迟雨",
        "沈砚",
        "许窈",
        "贺岚"
      ],
      "start_time": 1775523960.0,
      "end_time": 1775555880.0,
      "messages": [
        "[2026-04-07 09:06] 迟雨：今早西廊风口比昨晚更急，气压计零点又飘了一点，我先不急着开记录。",
        "[2026-04-07 09:18] 沈砚：门边冷白灯太刺，我把黄灯转过去一点，不然表盘反光还是读不清。",
        "[2026-04-07 09:27] 许窈：温梨汤已经装进新壶了，先放在门内侧，不和记录板摆一排。",
        "[2026-04-07 09:41] 贺岚：备用夹子和风向丝带我都放进后袋了，细线也重新绕好了。",
        "[2026-04-07 10:03] Mai：今天沿用西廊风口旧流程，先校准气压计，再换湿度夹板的纸，最后确认温梨汤和夹具位置。",
        "[2026-04-07 10:17] 迟雨：气压计现在回稳了，但湿度夹板上的旧纸边角已经卷起来，最好直接重夹。",
        "[2026-04-07 10:33] 沈砚：我把风扇关小了，别让风向丝带被室内气流带偏。",
        "[2026-04-07 10:57] 许窈：保温壶外壁有点滑，我又套了防滑圈，省得一碰就滚到门口去。",
        "[2026-04-07 11:15] 贺岚：记录板后袋里的夹子还够，两枚大的留给风向丝带，细夹子给湿度纸。",
        "[2026-04-07 11:39] Mai：谁临时挪了气压计或湿度夹板，记得在群里说一声，别让下一班找不到。",
        "[2026-04-07 12:08] 迟雨：第一轮记录结束，我把气压计位置和校准时间写到夹板右上角了。",
        "[2026-04-07 12:44] 沈砚：黄灯角度再压低一点就够了，现在表盘基本没有白斑。",
        "[2026-04-07 13:11] 许窈：温梨汤还热，我又加了一个空杯，下午那班不用再回去找。",
        "[2026-04-07 13:43] 贺岚：风向丝带其中一根打了结，我已经拆开重绑，备用细线也补了一卷。",
        "[2026-04-07 14:06] Mai：下午继续按这版，不要把温梨汤放到公用记录夹旁边，也别让个人饮料挤进工作台。",
        "[2026-04-07 14:38] 迟雨：第二轮之前我再复核一次气压计，湿度夹板的纸目前还是干的。",
        "[2026-04-07 15:09] 沈砚：我自己的盐渍梅子气泡水还是放个人架，公用桌上只留气压计和夹板。",
        "[2026-04-07 15:37] 许窈：门口风更大了，保温壶我往里挪了半步，但还是在原来的内侧角落。",
        "[2026-04-07 16:03] 贺岚：备用夹子数量没变，风向丝带和细线现在都在后袋左边。",
        "[2026-04-07 16:41] Mai：我把“先校准气压计再开记录”的提示写到最上面了，换班的人照着做就行。",
        "[2026-04-07 17:12] 迟雨：第三轮读数也稳定，湿度夹板今天的纸还能撑到收工。",
        "[2026-04-07 17:58] Mai：今天西廊风口准备流程就按这版固化，气压计、湿度夹板、风向丝带和温梨汤都别再临时换位。"
      ],
      "expected_memory_targets": [
        "西廊风口",
        "气压计",
        "湿度夹板",
        "温梨汤",
        "风向丝带"
      ]
    },
    {
      "stream_id": "runtime_skylight_trigger_april_09",
      "topic": "白耳鸮闯入长流触发样本",
      "trigger_mode": "time_threshold",
      "elapsed_since_last_check_hours": 8.9,
      "bot_participated": true,
      "expected_check_outcome": "should_trigger_topic_check_and_pass_bot_gate",
      "expected_next_stage": "topic_cache_should_update",
      "message_count": 22,
      "participants": [
        "Mai",
        "许窈",
        "顾澄",
        "贺岚",
        "沈砚"
      ],
      "start_time": 1775707860.0,
      "end_time": 1775739780.0,
      "messages": [
        "[2026-04-09 12:11] 许窈：中午检窗时发现绘图室天窗锁没扣紧，我先把象牙描图纸压回去，免得下午又起风。",
        "[2026-04-09 12:25] 顾澄：琥珀夹子今天早上少了一枚，我怀疑还卡在桌脚边。",
        "[2026-04-09 12:42] 贺岚：折梯已经挪回门后，等会儿再顺手看一眼天窗扣件。",
        "[2026-04-09 13:06] 沈砚：侧灯现在正常，顶灯还是先别开，冷白光一照纸面就晃得厉害。",
        "[2026-04-09 13:31] Mai：先把桌面顺序恢复，象牙描图纸、琥珀夹子和黄铜镇纸都照旧摆，天窗问题下午统一处理。",
        "[2026-04-09 14:02] 许窈：刚刚那只白耳鸮又落回外沿了，好在没再扑进来，我先不惊它。",
        "[2026-04-09 14:29] 顾澄：少的那枚夹子找到了，果然卡在桌脚和纸箱中间。",
        "[2026-04-09 14:58] 贺岚：天窗扣件我试了一下，有一边发涩，合上时得多推半格。",
        "[2026-04-09 15:21] 沈砚：风扇先停吧，纸边已经有点抖，别把描图纸又吹翘了。",
        "[2026-04-09 15:46] Mai：如果白耳鸮再闯进来，还是按先稳纸、再关窗、最后收桌面工具的顺序来。",
        "[2026-04-09 16:03] 许窈：我把折痕最明显的两张描图纸单独压在最上面，明天再慢慢压平。",
        "[2026-04-09 16:24] 顾澄：黄铜镇纸这边够用，四角都压住了，玻璃尺也移到了靠墙那边。",
        "[2026-04-09 16:52] 贺岚：门后的折梯没再动，天窗如果晚上还发涩，我明早再上去调。",
        "[2026-04-09 17:15] 沈砚：侧灯角度现在刚好，不会直打鸟也不会晃到纸面。",
        "[2026-04-09 17:41] Mai：晚班别改桌面布局，尤其别把琥珀夹子和黄铜镇纸分开放，不然一慌又找不到。",
        "[2026-04-09 18:08] 许窈：描图纸编号已经重新核对完，缺页没有新增。",
        "[2026-04-09 18:39] 顾澄：桌脚周围也清出来了，之后夹子掉落会更容易捡。",
        "[2026-04-09 19:02] 贺岚：天窗锁现在能扣上，只是右边还是偏紧，先留个提醒。",
        "[2026-04-09 19:34] 沈砚：今晚继续用侧灯，冷白顶灯别开，省得纸面和鸟都受刺激。",
        "[2026-04-09 20:07] Mai：我把白耳鸮闯入时的桌面恢复顺序写进说明里了，谁值班都照着做。",
        "[2026-04-09 20:36] 许窈：象牙描图纸、琥珀夹子、黄铜镇纸都在固定位置，没有再乱。",
        "[2026-04-09 21:03] Mai：这波可以收尾了，绘图室天窗边长桌的固定摆放和应急顺序都不再改。"
      ],
      "expected_memory_targets": [
        "白耳鸮",
        "象牙描图纸",
        "琥珀夹子",
        "黄铜镇纸",
        "天窗"
      ]
    },
    {
      "stream_id": "runtime_dessert_negative_april_11",
      "topic": "甜点闲聊长流负样本",
      "trigger_mode": "time_threshold",
      "elapsed_since_last_check_hours": 8.6,
      "bot_participated": false,
      "expected_check_outcome": "should_trigger_topic_check_but_be_discarded_without_bot_message",
      "expected_next_stage": "topic_cache_should_remain_empty",
      "message_count": 21,
      "participants": [
        "许窈",
        "顾澄",
        "迟雨",
        "沈砚"
      ],
      "start_time": 1775884080.0,
      "end_time": 1775915160.0,
      "messages": [
        "[2026-04-11 13:08] 许窈：中午那盒荔枝冻居然还剩两块，桂花糖浆味道比昨天重，盒底那层糖水也比我记得更黏一些。",
        "[2026-04-11 13:22] 顾澄：我还是更想吃焦糖海盐脆片，起码不会晃一下就碎成汤。",
        "[2026-04-11 13:37] 迟雨：乌龙奶酥闻起来很香，但吃两口就太腻，百香果软糖反而更合适。",
        "[2026-04-11 13:55] 沈砚：软糖太黏了，我宁愿吃柚子脆片或者原味苏打。",
        "[2026-04-11 14:11] 许窈：荔枝冻如果不冰透其实不错，就是盒子一开就会流糖水。",
        "[2026-04-11 14:28] 顾澄：焦糖海盐和烤糯米片如果放一起，应该会比奶酥耐吃，至少不会一拆包装就满桌掉屑。",
        "[2026-04-11 14:46] 迟雨：百香果软糖最好选酸一点的，不然甜度太直白。",
        "[2026-04-11 15:02] 沈砚：乌龙奶酥掉渣太夸张，晚上值班根本不适合拿着吃。",
        "[2026-04-11 15:19] 许窈：那下次我换成荔枝冻和海盐脆片，至少不用到处拍碎屑。",
        "[2026-04-11 15:37] 顾澄：再加一包柠檬薄片吧，甜口之间吃一点会清爽很多。",
        "[2026-04-11 15:56] 迟雨：如果有酸梅软糖我也可以，和百香果轮着吃不会太腻。",
        "[2026-04-11 16:14] 沈砚：苏打饼和软糖混着吃也行，主要是别太黏手，不然摸完包装还得再找纸擦。",
        "[2026-04-11 16:33] 许窈：荔枝冻最好还是用浅盒，不然挖到后面全是糖浆。",
        "[2026-04-11 16:57] 顾澄：海盐脆片如果换成细砂糖版应该会更稳一点。",
        "[2026-04-11 17:21] 迟雨：百香果软糖配温水挺好，但跟奶酥一起就太重口了。",
        "[2026-04-11 17:49] 沈砚：我还是投原味苏打一票，夜里拿着方便。",
        "[2026-04-11 18:12] 许窈：那下轮夜宵我就不带太黏的点心了，省得桌上全是糖粉。",
        "[2026-04-11 18:43] 顾澄：焦糖海盐脆片和柠檬薄片暂时领先，看起来大家还是更偏爱不容易腻口的那种。",
        "[2026-04-11 19:18] 迟雨：百香果软糖至少还在前三，不算完全出局。",
        "[2026-04-11 20:06] 沈砚：乌龙奶酥还是留到白天吧，晚上收拾起来太麻烦。",
        "[2026-04-11 21:46] 许窈：行，那这轮夜宵就先定海盐脆片、柠檬薄片和百香果软糖，奶酥和荔枝冻留到白天再慢慢吃。"
      ],
      "expected_memory_targets": [
        "荔枝冻",
        "焦糖海盐脆片",
        "乌龙奶酥",
        "百香果软糖"
      ]
    }
  ],
  "chat_history_records": [
    {
      "record_id": 930001,
      "theme": "北塔夹层药箱补位",
      "summary": "群里重新确认北塔夹层药箱固定放铜牌备用钥匙、银色保温毯、薄荷膏和黑色丁腈手套，临时取用后必须在群里报备；沈砚再次提到值夜时怕冷白荧光灯直照，会把小风扇调到三档。",
      "participants": [
        "Mai",
        "沈砚",
        "贺岚",
        "迟雨",
        "顾澄"
      ],
      "start_time": 1774095120.0,
      "end_time": 1774098180.0,
      "original_text": "这段北塔夹层药箱的原始聊天记录围绕夜班抽屉补位展开。沈砚先从冷白荧光灯晃眼、自己值夜时会把小风扇调到三档说起，顺手发现铜牌备用钥匙还在，但银色保温毯和薄荷膏的位置已经乱了。贺岚补充黑色丁腈手套在演练后没补齐，顾澄提到旧清单已经与现实摆放不完全一致。Mai 把公用物资重新收束为铜牌备用钥匙、银色保温毯、薄荷膏和黑色丁腈手套四样，要求任何临时取用都在群里补报用途与归还时间，并且明确个人饮料与私人物件不进入抽屉。大家随后又讨论保温毯折法、钥匙居中、手套补回、拍照留档和夜间可见性，让整段群聊既有稳定事实，也有具体流程决议。"
    },
    {
      "record_id": 930002,
      "theme": "雨棚短波电台返潮排查",
      "summary": "雨棚那台短波电台返潮后，群里确认灰色防潮箱、黑色盘线和硅胶包的处理顺序需要重排：先擦干机身、松开盘线、替换硅胶包，再按新顺序归箱。",
      "participants": [
        "Mai",
        "顾澄",
        "贺岚",
        "迟雨",
        "沈砚"
      ],
      "start_time": 1774275240.0,
      "end_time": 1774278360.0,
      "original_text": "这段设备维护聊天从短波电台的潮噪开始，但真正讨论的核心很快扩展到灰色防潮箱、黑色盘线、备用听筒、吸水毡和硅胶包如何重新归位。顾澄一开始以为是电台本体故障，贺岚判断更像是防潮箱内环境失效，迟雨进一步指出箱底冷凝水和发软的硅胶包才是主因。Mai 将整个排查流程拆成擦干机身、摊开盘线、检查吸水毡、整包更换硅胶包、最后再按新顺序回箱几步。沈砚还补充了反光、冷风和合盖时机等环境细节。整段记录兼有设备名称、存放规则和操作顺序，能很好地区分“只是提到短波电台”和“真正形成可检索的返潮处理规则”。"
    },
    {
      "record_id": 930003,
      "theme": "晨雾采样蓝盖保温箱排序",
      "summary": "晨雾采样结束后，群里把蓝盖保温箱的新布局固定为冷敷袋最下层、编号试剂架居中、玻璃记号笔与封口贴放右槽，样本管最后扣入，避免交接时拿错顺序。",
      "participants": [
        "Mai",
        "迟雨",
        "顾澄",
        "贺岚",
        "沈砚"
      ],
      "start_time": 1774475280.0,
      "end_time": 1774478520.0,
      "original_text": "这段凌晨交接聊天聚焦蓝盖保温箱的内部顺序。大家从冷敷袋压住编号试剂架、玻璃记号笔滑到底层、样本管外壁水汽太重这些小问题谈起，最后把冷敷袋、编号试剂架、玻璃记号笔、封口贴和样本管的排布重新钉死。Mai 明确禁止谁忙就谁随手塞回去的旧习惯，迟雨把位次关系写到箱盖内侧并准备拍照存档，顾澄和贺岚则分别补充了封口贴、吸水纸和标签保护的细节。沈砚提到冷白灯反光会影响编号辨认，这又为后续人物画像提供了背景噪声。整段记录很长，而且既像物资整理又像样本交接，适合检验系统是否能从高重叠词背景里抓住真正的主结论。"
    },
    {
      "record_id": 930004,
      "theme": "西廊风口观测准备",
      "summary": "群里把西廊风口观测前准备固定成三步：先校准气压计，再换湿度夹板新纸，最后确认风向丝带、备用夹子和温梨汤的位置；迟雨负责开场前复核气压计。",
      "participants": [
        "Mai",
        "迟雨",
        "沈砚",
        "许窈",
        "贺岚"
      ],
      "start_time": 1774779720.0,
      "end_time": 1774783080.0,
      "original_text": "西廊风口这一段本身并不短，里面混杂着观测流程、环境噪声和人物习惯。迟雨一直在说气压计校准与湿度夹板换纸，许窈在安顿温梨汤和保温壶，贺岚在整理风向丝带、备用夹子和细线，而沈砚则不断从灯光太刺眼、小风扇可能扰动读数这些角度插话。Mai 最终把真正需要记住的主流程收束成三步，并提醒公用桌上不要混入私人物件。由于这一段既有流程结论，也有大量背景描述，它特别适合验证 profile 是否还能稳定抓住迟雨和沈砚各自的稳定事实，而不是被场景语句淹没。"
    },
    {
      "record_id": 930005,
      "theme": "绘图室天窗白耳鸮闯入",
      "summary": "白耳鸮闯进绘图室后，群里确认应急顺序是先稳住象牙描图纸，再关天窗，最后把琥珀夹子与黄铜镇纸按原位归回；绘图室天窗边长桌的固定摆放规则保持不变。",
      "participants": [
        "Mai",
        "许窈",
        "顾澄",
        "贺岚",
        "沈砚"
      ],
      "start_time": 1775133060.0,
      "end_time": 1775136540.0,
      "original_text": "这段聊天从白耳鸮扑进绘图室开始，话题里先后出现天窗缝、折梯、象牙描图纸、琥珀夹子、黄铜镇纸、玻璃尺、灯光角度和风扇停开等多个细节。许窈和顾澄一开始更关心压纸和找夹子，贺岚负责天窗和折梯，沈砚提醒冷白灯会刺激鸟并且让纸面反光，Mai 则把整件事稳定成先稳纸、再关窗、最后恢复桌面固定摆放的规则。因为里面既有明显的事件经过，又有不少可能误导检索的场景词，所以很适合当作自然语言 episode query 的压力样本。"
    }
  ],
  "person_writebacks": [
    {
      "person_id": "71aa50b4f4f34bdbb1a7a1c1e56c9011",
      "person_name": "沈砚",
      "memory_content": "沈砚值夜时不喜欢冷白荧光灯直照，通常把小风扇固定在三档，并且会自带盐渍梅子气泡水。",
      "expected_keywords": [
        "沈砚",
        "冷白荧光灯",
        "小风扇",
        "三档",
        "盐渍梅子气泡水"
      ]
    },
    {
      "person_id": "82bb79d4680849b5ac7e23a3f6f09122",
      "person_name": "迟雨",
      "memory_content": "迟雨每次西廊观测前都会先校准气压计并核对湿度夹板，而且只喝温梨汤。",
      "expected_keywords": [
        "迟雨",
        "气压计",
        "湿度夹板",
        "校准",
        "温梨汤"
      ]
    },
    {
      "person_id": "93cb73d41251472a8d229f1202df9333",
      "person_name": "贺岚",
      "memory_content": "贺岚平时看管北塔夹层药箱和铜牌备用钥匙，取用后会把黑色丁腈手套和银色保温毯补回原位。",
      "expected_keywords": [
        "贺岚",
        "北塔夹层药箱",
        "铜牌备用钥匙",
        "黑色丁腈手套",
        "银色保温毯"
      ]
    }
  ],
  "search_cases": [
    {
      "query": "北塔夹层 铜牌备用钥匙 银色保温毯 薄荷膏",
      "expected_keywords": [
        "北塔夹层",
        "铜牌备用钥匙",
        "银色保温毯",
        "薄荷膏"
      ],
      "minimum_keyword_hits": 2
    },
    {
      "query": "短波电台 灰色防潮箱 黑色盘线 硅胶包",
      "expected_keywords": [
        "短波电台",
        "灰色防潮箱",
        "黑色盘线",
        "硅胶包"
      ],
      "minimum_keyword_hits": 2
    },
    {
      "query": "蓝盖保温箱 编号试剂架 冷敷袋 玻璃记号笔",
      "expected_keywords": [
        "蓝盖保温箱",
        "编号试剂架",
        "冷敷袋",
        "玻璃记号笔"
      ],
      "minimum_keyword_hits": 2
    },
    {
      "query": "白耳鸮 琥珀夹子 象牙描图纸 黄铜镇纸",
      "expected_keywords": [
        "白耳鸮",
        "琥珀夹子",
        "象牙描图纸",
        "黄铜镇纸"
      ],
      "minimum_keyword_hits": 2
    }
  ],
  "time_cases": [
    {
      "query": "铜牌钥匙 保温毯",
      "time_expression": "2026/03/21",
      "expected_keywords": [
        "铜牌备用钥匙",
        "银色保温毯",
        "薄荷膏"
      ]
    },
    {
      "query": "气压计 梨汤",
      "time_expression": "2026/03/29",
      "expected_keywords": [
        "气压计",
        "温梨汤",
        "西廊风口"
      ]
    },
    {
      "query": "白耳鸮 描图纸",
      "time_expression": "2026/04/02",
      "expected_keywords": [
        "白耳鸮",
        "象牙描图纸",
        "琥珀夹子"
      ]
    }
  ],
  "episode_cases": [
    {
      "query": "那回半夜说北塔夹层抽屉里只剩铜牌钥匙，还得把银色保温毯和薄荷膏补回去的那整段经过",
      "expected_keywords": [
        "北塔夹层",
        "铜牌备用钥匙",
        "银色保温毯",
        "薄荷膏"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "query": "雨棚底下那回先把电台擦干，又讨论灰色防潮箱和黑色盘线怎么归位的来龙去脉",
      "expected_keywords": [
        "短波电台",
        "灰色防潮箱",
        "黑色盘线",
        "硅胶包"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "query": "黎明前重新排蓝盖保温箱、编号试剂架和冷敷袋顺序的那次交接",
      "expected_keywords": [
        "蓝盖保温箱",
        "编号试剂架",
        "冷敷袋",
        "玻璃记号笔"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "query": "天窗边那只白耳鸮冲进来，把琥珀夹子和象牙描图纸搅乱之后大家怎么收拾的",
      "expected_keywords": [
        "白耳鸮",
        "琥珀夹子",
        "象牙描图纸",
        "黄铜镇纸"
      ],
      "minimum_keyword_recall": 0.75
    }
  ],
  "knowledge_fetcher_cases": [
    {
      "query": "群里后来把北塔夹层药箱里固定放哪些东西？",
      "expected_keywords": [
        "北塔夹层药箱",
        "铜牌备用钥匙",
        "银色保温毯",
        "薄荷膏"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "query": "谁每次观测前都会先校准气压计，而且只喝温梨汤？",
      "expected_keywords": [
        "迟雨",
        "气压计",
        "校准",
        "温梨汤"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "query": "那次白耳鸮闯进绘图室后，大家把哪些东西重新压好固定？",
      "expected_keywords": [
        "白耳鸮",
        "琥珀夹子",
        "象牙描图纸",
        "黄铜镇纸"
      ],
      "minimum_keyword_recall": 0.75
    }
  ],
  "profile_cases": [
    {
      "person_id": "71aa50b4f4f34bdbb1a7a1c1e56c9011",
      "expected_keywords": [
        "沈砚",
        "冷白荧光灯",
        "三档",
        "盐渍梅子气泡水"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "person_id": "82bb79d4680849b5ac7e23a3f6f09122",
      "expected_keywords": [
        "迟雨",
        "气压计",
        "湿度夹板",
        "温梨汤"
      ],
      "minimum_keyword_recall": 0.75
    },
    {
      "person_id": "93cb73d41251472a8d229f1202df9333",
      "expected_keywords": [
        "贺岚",
        "北塔夹层药箱",
        "铜牌备用钥匙",
        "黑色丁腈手套"
      ],
      "minimum_keyword_recall": 0.75
    }
  ],
  "negative_control_cases": [
    {
      "query": "焦糖海盐脆片 荔枝冻 乌龙奶酥 百香果软糖",
      "source_batch_id": "dessert_idle_april_04_negative",
      "expected_behavior": "should_return_no_hits_if_only_positive_batches_are_ingested",
      "reason": "当前设计要求没有 Bot 发言的群聊批次不应进入长期记忆总结主路径；这条负样本还故意拉长并保留丰富词面，避免仅靠“太短”通过。"
    }
  ]
}
