Files
HomeAgent/internal/agent/core
JianFeeeee 0f98f36e71 fix(memory): L1 恢复为"工作记忆区 = 时序对话",工具结果展开、仅超长折叠
用户裁定的 L1 契约(2026-10-27):
  · 保留 m 条(core.agent.max_context_size)、保护最新 n 条
    (core.agent.context.protected_count)、其余按相似度淘汰 → 我的上一版把
    m 写到了不存在的键(core.agent.context.max_context_size),运行时仍读
    core.agent.max_context_size=200 ⇒ L1 堆到 119 条,工作记忆退化成历史堆。
  · 送给模型的是**时序排列的对话** → 曾被渲染成"摘要 + 工具管道"
    ("—/ → 调用工具: a, b → 已回复…",助手回复还截 120 字),
    指代消解因此失效(用户回"新乡",接不上"帮我找一套月租<400…")。
  · 工具结果在 context 中**展开全文**,只有**超长**结果折叠成句柄
    (toolresult_store + toolresult_read 按区间读回)→ 曾额外加 160/400 字、
    每事件 3 条的截断,等于把已展开的结果又藏回去。

本次改动(仅渲染层,不动淘汰/归档/中断语义):
  · formatMergedTimeline 渲染 [ts] 用户: … / [ts] 助手: …(回复全文)
  · 中断轮的"用户原话"取自 qq_get_message/qq_get_history 的回执正文
    (Input 是注入样板,不是人话)
  · timelineToolLines:普通结果全文展开;ToolResultStores 命中的只给句柄
  · 预算估算按实际渲染内容计(用户行 + 助手全文 + 工具行)

判据:internal/agent/core/timeline_contract_test.go
(时序对话/原话来源/全文展开/仅超长折叠)
2026-10-27 16:24:09 +08:00
..