上下文按卡片切换,会话记忆按账号共享

**侧栏式 Agent 里,「记得什么」(session 记忆)和「当前在看什么」(context)是两个独立维度:默认只做后者按卡片切换、前者按账号固定。代价是——换了卡片,之前的对话记录还在,记忆会跨卡片串味。**

机制

固定 chatId(每用户一个默认 Session)
  + 当前卡片的 type / id / title
  + 本轮用户消息
  • 打开笔记 A、切到笔记 B、打开剪藏或订阅文章 → 都是同一个 Session;关闭再打开侧栏,恢复同一会话与全部历史消息。不同用户之间才隔离。
  • 每张卡片变化的只是本轮注入的 context,Agent 因此知道「当前在看哪张卡片」,但对话记忆不随卡片重置。

两条可迁移判断

  1. 共享历史 ≠ 重置上下文。 想让每个卡片/每个文档各自一段对话,必须显式创建独立 chat,而不是靠「换了卡片」自动分家。
  2. 默认单会话是省掉 UI 的结果,不是设计结论。 产品里虽然 API 支持创建非默认 Chat,但侧栏没有「新建 / 切换 / 清空对话」入口,实际效果就是每账号一条长期会话 —— 记忆污染的代价由此而来。

相关

  • 短期记忆与长期记忆的边界 —— 会话记忆属于短期,但「跨卡片共享」说明它的作用域可以大于当前任务
  • 上下文按信任等级分层 —— 当前页面内容该放在哪一层(Reminder 每轮生成、不进历史)
  • 共享历史不等于共享活会话 —— 同属「共享」这个词的三个层级,别混为一谈