Skip to content

[人格]在dsh的极简模式下人格定义功能并不生效 #514

Closed

Description

@zingreqe

现象 / What happened

如果dsh使用极简模式,人格定义不会注入到上下文中,但是相关的功能设置中并没有说明这点。

复现步骤 / Steps to reproduce

开启人格定义开关并设置一个角色卡,使用标准模式时人格定义可以正常注入上下文,但是如果换成极简模式,人格定义变不会注入上下文,导致人格定义失效。

期望行为 / Expected behavior

在极简模式下人格定义功能依旧可以正常注入上下文

环境 / Environment

  • dsh-mneme 版本 / plugin version: 0.9.4
  • DSH 桌面端版本与通道(stable / Beta / NEXT)/ DSH version & channel: 0.2.1-rc.4 NEXT
  • 操作系统 / OS: Ubuntu 26.04.1 LTS
  • Node 版本 / Node version: 24.22.1
  • 安装方式 / install method (npm / dsh-market): pnpm
  • 相关路由模型(巩固/蒸馏/实体抽取用的是什么模型)/ relevant model routes: deepseek-flash

日志 / Logs

极简模式下的上下文:Current runtime context. This snapshot supersedes earlier runtime-context snapshots.

Current working directory: "/home/jiangli/.dsh/im".

终端日志:dsh web: opening the default browser; pass --no-open to disable
[llm-deepseek-account] model listing from https://api.deepseek.com/models loaded 2 model(s), skipped 0 row(s)

披露 / Disclosure

  • 本报告由 AI 辅助整理(人工审核后提交)/ Drafted with AI assistance, reviewed by a human

Activity

  1. added
    bug功能异常、崩溃、数据错误(agent 诊断 → 人工确认)
    on Oct 28, 2026
  2. changed the title [-]在dsh的极简模式下人格定义功能并不生效[/-] [+][人格]在dsh的极简模式下人格定义功能并不生效[/+] on Oct 28, 2026
  3. self-assigned this
    on Oct 28, 2026
  4. modusensus commented on Oct 29, 2026

    @modusensus
    Member

    谢谢反馈,也谢谢 @zingreqe 把版本和预设写得这么清楚,问题定位得很快。

    结论:这是宿主设计的边界,插件侧改不动

    极简模式(agentPreset: "minimal")在宿主侧就是「系统提示词被完整接管」的形态:它的预设组合文件带 complete: true + includeRuntimeContext: false,结果是整条 system prompt 被钉死、所有 runtime context 快照被压制。人格段是拼在注入块里的,所以它和记忆注入、用户画像、热记忆一样在极简模式会话里一律不送达模型——宿主内置的那份 runtime context 同样消失,不是插件单方面丢了人格。

    你贴的日志正好是这个指纹:极简模式下的上下文里,只剩 Current runtime context... 和 Current working directory 两行,宿主自己的 runtime context 快照整段没了。

    发送权在宿主手里,插件只能「不发」,没法「硬塞」。所以「极简模式下人格依旧注入」这条期望我们给不了,这一点如实说抱歉。

    顺带澄清一处容易混淆的地方

    容易混淆的是两样东西,其实不是一回事:

    是什么 会不会影响人格
    插件设置页的运行模式:轻量 / 标准 只把 LIGHT_MODE_OFF 里那批重型能力置关(巩固、实体抽取、语义搜索、重排等) 不影响。personaEnabled 刻意不在那张表里,理由写在源码注释:人格段是用户自写的一小段轻量常驻文本,不引入重型后台路径,轻量档用户显式勾选仍然赢
    宿主的 minimal / 极简模式 整合 system prompt 的 complete: true + runtime context 全压制 影响,且是全量压制

    你在插件设置页把运行模式切到「轻量」不会让人格失效,只有在宿主会话里用极简模式才会。这两个中文词在界面上有点撞车,这部分是我的文案责任,见下。

    现在就能用的两条出路

    1. 切回标准模式——会话级切换,或在 ~/.dsh/settings.yaml 设 agent-presets.default: standard。注意 --dump-config 显示的是 bundle 默认值,会被用户层覆盖,不能反映实际生效值。
    2. 过渡方案:把人设写进 AGENTS.md——agent-instructions 走 section 路径,不受 complete: true 压制,这是目前唯一能在极简模式下送达模型的通道。

    关于「设置里没说明这点」

    这条有一半是对的:说明是有的,但写错了地方。极简模式的告示卡(#182)目前只在状态页、且只在 inject-status 返回 suppressed: true 时才渲染;而用户是在设置 → 个性化 → 人格定义里开关人格的,那一页当时一个字都没提。

    我会补一个小改动:把「极简模式」的告示从状态页搬一份到设置页的运行模式卡下方,并在文案里把「极简(宿主 minimal 预设)」和插件自己的「轻量」明确区分开,顺带在人格卡加一句「当前会话若是极简模式,人格段不会送达模型」。这条留在本 issue 跟踪,完成后会在这里回帖。

    谢谢你把复现路径整理得这么干净,省了我大半的定位时间 🙏

  5. moved this from 📋 Backlog to 🔨 In Progress in dsh-mneme 任务看板on Oct 29, 2026
  6. modusensus commented on Oct 29, 2026

    @modusensus
    Member

    更新一下:上面说的「设置里没说明」那半个问题,补丁已经提了 → #519。

    具体做了三件事:

    1. 告示搬到设置页。极简预设的说明以前只在状态页有([Feature] 面板标注「极简模式下注入按宿主设计关闭」 #182 那张卡),而你是在设置页开关人格的——两边隔着一个 tab,等于没有。现在运行模式卡和人格卡各有一份。
    2. 两个词分开说。「轻量 / 标准」是插件的记忆引擎档位,「极简模式(minimal 预设)」是宿主的会话预设,同一个屏幕上出现两个都像在说「简化」的词,不点破就一定会混。顺带确认一次结论:轻量档不会关闭人格定义,personaEnabled 刻意不在 LIGHT_MODE_OFF 里。
    3. 取数合成一份。状态页和设置页现在共用同一个 useInjectStatus(),不会再出现「一边说被压制、另一边装没事」的情况。

    告示只在 suppressed 为真时出现——也就是自动注入开着 且 宿主确实报了 minimal 的时候。你要是自己主动关掉注入,或者宿主没报 preset,它一个字都不会弹。

    但要说明白:这个 PR 不改变行为。宿主的压制是设计边界,插件这边动不了,所以极简模式下人格依然不会注入。想让它生效还是那两条路——切标准模式,或者把画像/规则写进 AGENTS.md(走指令路径,不受压制)。

    测试:2477 pass / 0 fail,check-sync 一致。

  7. added a commit that references this issue on Oct 29, 2026
  8. moved this from 🔨 In Progress to ✅ Done in dsh-mneme 任务看板on Oct 29, 2026
  9. added a commit that references this issue on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bug功能异常、崩溃、数据错误(agent 诊断 → 人工确认)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions