### 现象 / 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
[-]在dsh的极简模式下人格定义功能并不生效[/-][+][人格]在dsh的极简模式下人格定义功能并不生效[/+]modusensus commentedon Oct 29, 2026
谢谢反馈,也谢谢 @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刻意不在那张表里,理由写在源码注释:人格段是用户自写的一小段轻量常驻文本,不引入重型后台路径,轻量档用户显式勾选仍然赢complete: true+ runtime context 全压制你在插件设置页把运行模式切到「轻量」不会让人格失效,只有在宿主会话里用极简模式才会。这两个中文词在界面上有点撞车,这部分是我的文案责任,见下。
现在就能用的两条出路
~/.dsh/settings.yaml设agent-presets.default: standard。注意--dump-config显示的是 bundle 默认值,会被用户层覆盖,不能反映实际生效值。AGENTS.md——agent-instructions走 section 路径,不受complete: true压制,这是目前唯一能在极简模式下送达模型的通道。关于「设置里没说明这点」
这条有一半是对的:说明是有的,但写错了地方。极简模式的告示卡(#182)目前只在状态页、且只在
inject-status返回suppressed: true时才渲染;而用户是在设置 → 个性化 → 人格定义里开关人格的,那一页当时一个字都没提。我会补一个小改动:把「极简模式」的告示从状态页搬一份到设置页的运行模式卡下方,并在文案里把「极简(宿主 minimal 预设)」和插件自己的「轻量」明确区分开,顺带在人格卡加一句「当前会话若是极简模式,人格段不会送达模型」。这条留在本 issue 跟踪,完成后会在这里回帖。
谢谢你把复现路径整理得这么干净,省了我大半的定位时间 🙏
modusensus commentedon Oct 29, 2026
更新一下:上面说的「设置里没说明」那半个问题,补丁已经提了 → #519。
具体做了三件事:
personaEnabled刻意不在LIGHT_MODE_OFF里。useInjectStatus(),不会再出现「一边说被压制、另一边装没事」的情况。告示只在
suppressed为真时出现——也就是自动注入开着 且 宿主确实报了 minimal 的时候。你要是自己主动关掉注入,或者宿主没报 preset,它一个字都不会弹。但要说明白:这个 PR 不改变行为。宿主的压制是设计边界,插件这边动不了,所以极简模式下人格依然不会注入。想让它生效还是那两条路——切标准模式,或者把画像/规则写进
AGENTS.md(走指令路径,不受压制)。测试:2477 pass / 0 fail,check-sync 一致。
Merge pull request #519 from slow-stack/fix/514-minimal-preset-hint
settings: show the host minimal preset notice where persona is toggled (
docs(changelog): 补上 #507 / #508 / #513 三条外部 PR 的条目与贡献者小节
docs(changelog): 把 v0.9.4 之后攒的东西写进 Unreleased(v0.9.5 发版前)
settings: declare minimalWarn inside SettingsContent (#514)