Skip to content

如何做到临时关闭记忆模式? #47

Open

Description

@kmyqchy

临时有个无关的想法测试,但又不想进入记忆如何做?—— 类似浏览器【无痕浏览】类似逻辑
A 在dsh-market 停用插件?
B 正常使用后,另起对话memory_delete?

希望可以在对话栏或右上角直接有个无痕选项,参考ChatGPT

Activity

  1. Anans-Ivresse commented on Sep 2, 2026

    @Anans-Ivresse
    Collaborator

    感谢反馈,这个方向我们很认可,先同步下现状和判断:

    1. 目前确实没有会话级"无痕"
    正常聊天会进记忆,主要来自两处:自动摘要(每轮 turn/end 自动提炼 2-3 条入库,默认开启)+ 显式的 memory_save。而现有的开关(autoInject / autoSummarize / autoDream 等)都是进程级配置,做不到"本次会话不记录"。

    2. 你提的两个临时方案,实测都有坑

    • A|停用插件:影响面最大——工具全消失、注入和摘要全停,会殃及所有正常对话,不适合"临时"场景;
    • B|事后 memory_delete:因为自动摘要每轮会写 2-3 条,而 memory_delete 按 query 只命中最佳的一条,很容易漏删;同类同标题还会 merge 进既有长期记忆(旧内容 + 时间戳追加),删不干净、还污染原条目;后续 autoDream / 睡眠巩固还可能把内容扩散进 summary / pattern。它更适合"彻底清空",不适合临时测试。

    3. 无痕会话(参考 ChatGPT)——已列入路线图评估
    设计思路对齐 ChatGPT:在对话层提供"无痕 / 临时对话"开关,开启后该会话既不写入也不参与注入——模型不读到、系统也不记,会话结束不留痕。
    底层写入有单收口(saveWithDedupe)且各调用都已携带 session_id,加会话级闸门成本可控;同时会与现有的会话生命周期(session dispose 软隐藏 + 可恢复)打通。具体版本待定,暂不承诺——会和 scope 隔离等会话维度的工作一并设计,届时在此 issue 同步进展。

    4. 眼下想临时用的兜底
    最省事的临时方案:把配置里的 autoSummarize 设为 false(进程级配置,改后重载生效),测试内容手动不调 memory_save——自动入库的路径就断了,风险最低。

  2. pinned this issue on Sep 9, 2026
  3. Anans-Ivresse commented on Sep 9, 2026

    @Anans-Ivresse
    Collaborator

    已将此 issue 置顶,作为无痕模式的集中讨论帖 📌 欢迎大家来聊设计。

    想收集的输入:

    • 你会在什么场景用无痕/临时会话?(隐私敏感对话、临时实验、测试……)
    • 期望的开关粒度:全局按钮 / 单会话开关 / 命令式(如 /incognito)?
    • 开启时的表现:完全不写入 + 不注入?还是写入但标记为不可检索?
    • 会话结束后要不要一键清理该会话产生的记录?

    现有基线(供参考):目前是进程级开关(autoSummarize 等),没有会话级无痕;方向对齐 ChatGPT 式对话层开关,并与会话生命周期、scope 隔离(#17)一并设计,具体版本待定。

    大家的想法都会纳入评估,欢迎拍砖 👇

  4. NaughtDZ commented on Sep 15, 2026

    @NaughtDZ

    已将此 issue 置顶,作为无痕模式的集中讨论帖 📌 欢迎大家来聊设计。

    想收集的输入:

    • 你会在什么场景用无痕/临时会话?(隐私敏感对话、临时实验、测试……)
    • 期望的开关粒度:全局按钮 / 单会话开关 / 命令式(如 /incognito)?
    • 开启时的表现:完全不写入 + 不注入?还是写入但标记为不可检索?
    • 会话结束后要不要一键清理该会话产生的记录?

    现有基线(供参考):目前是进程级开关(autoSummarize 等),没有会话级无痕;方向对齐 ChatGPT 式对话层开关,并与会话生命周期、scope 隔离(#17)一并设计,具体版本待定。

    大家的想法都会纳入评估,欢迎拍砖 👇

    别说,如果能做到单对话记忆或单工作区记忆,也是对话与对话之间或者工作区与工作区之间隔离就好了。现在插件本身就是记忆的时候带着session的,应该是能分的开的

  5. modusensus commented on Sep 15, 2026

    @modusensus
    Collaborator

    这个直觉完全正确,而且比你想的更近一步:会话/工作区维度的隔离在 v0.8.0 已经落地了一半。

    现状:记忆写入时本来就会带载体标注(来源会话/工作区的 scope 标签,自动打、不靠用户操作);注入路径的 scope 解析也已接上——开启 strictScope 后,注入会按当前会话的 scope 做硬过滤,「对话与对话、工作区与工作区之间互不串记忆」的主体行为已经在运行了。

    还缺的正是「能做到单对话/单工作区」里人工可控的那半:目前标签是自动判定的,还没有顺手的人工入口——比如手动把某条记忆钉死在某个会话/工作区,或反向把它「提升」为全局(哪些内容允许跨边界、哪些永远不出去)。这条已经在 #170 立项(scope 标注的人工入口与提升回路),欢迎去那边一起聊。

    至于无痕(本 issue)和 scope 隔离其实是同一根轴的两端:无痕 = 这个会话什么都不进不出;scope 隔离 = 进出的范围由会话/工作区圈定。两者会和会话生命周期(#17)放在同一批设计里,定案后在这里同步进展。

    另外也谢谢你在 #174 回填版本——「安装时钉死旧版本导致升级一直没生效」这个坑很常见,我们记下来评估在状态页加一个运行版本与市场最新版的偏差提示。

  6. unpinned this issue on Sep 19, 2026
  7. modusensus commented on Oct 20, 2026

    @modusensus
    Collaborator

    现状(2026-10-21 对照 main 实测)

    这不是一条待办,是一条长期讨论帖(置顶),我不建议关。

    已经能做的部分

    与提问的差距(关键)

    问的是「临时关闭记忆模式」,即用户视角的「这一次对话别记我」。现在的 scopeState 是:

    • 维度只有 agent / workspace(scope_state 工具的参数是 dimension: "agent" | "workspace"),没有会话级;
    • 默认关(enabled=false、enforce=false),开了才有用;
    • 定位是「作用域通不通」,不是「这次聊天别留痕」。

    另外 issue 里当年讨论的「手动把某条记忆钉死在某个会话」那条,维护者当时指向了 #170(scope 标注的人工入口与提升回路),不在本 issue。

    建议

    1. 这条改成**「已部分解决:scopeState([feature] 作用域级可逆闸门:让单路记忆能被单独按下与松开,而不必改配置重启 #471)+ autoInject 总闸」的说明帖,写清「会话级无痕仍未支持**」;
    2. 真正的会话级无痕另立 issue(需要新的 dimension,或一个 per-session 的临时 gate);
    3. 保留置顶,因为它仍是用户最常问的问题之一。

    接手建议

    不要在这条上继续堆讨论。把「能做什么 / 不能做什么」写成一段结论贴在正文顶部,剩下的另立。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions