dsh-custom-context-injector
dsh-custom-context-injector 提供「自定义上下文」设置页并注入到模型上下文,支持落盘持久化。
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 9, 2026
- Updated
- Sep 9, 2026
Introduction
dsh-custom-context-injector
DeepSeek Harness(Cordis 运行时)插件:让你在设置里维护一段「自定义上下文」,并把它注入到每次模型调用的提示中。
它做什么
两个能力合在一起:
-
D — 「自定义上下文」设置页 在 GUI 的 设置(齿轮)→ 新增一页「自定义上下文」:一个「启用注入」开关 + 一个多行输入框 + 「保存」按钮。
-
B — 自动注入 启用状态下,保存的这段文字会作为一条
systemPromptsection 注入到每次模型装配。实测:开启后,当前会话以及之后通过「新对话」开出的新会话都会携带这段内容。 -
持久化 保存会尝试把内容写入磁盘 JSON,跨重启保留;若磁盘写入不可用则如实降级为“仅内存”并在设置页提示。
结构
src/
host.js Host 半区:fs 持久化、get/set RPC、systemPrompt section 注入
client.js Client 半区:settings.section 插槽里的设置页 UI
package.json
两侧通过 Package-private RPC 通信:Client 用 host.call('extra-context/get'|'extra-context/set'),Host 用 harness.handle(...) 应答。Host 的注入读取内存缓存(由启动时的磁盘加载与保存时写入共同维护),因为 systemPrompt.section 的 text 是同步的。
运行环境依赖(重要)
本源码是经过实机验证的动态 Cordis Package 的可维护镜像。它依赖 DSH 动态运行时注入的全局/服务:
- Host:
harness全局、ctx.get('systemPrompt')、ctx.get('fs')(纯 JS,无 import/require)。 - Client:
React(仅 createElement)、host、styles、ctx、插槽settings.section(无 JSX/import)。
因此它当前不是可独立安装的 npm 包:客户端部分会依赖 Harness 内部包(@deepseek-ai/dsh-*),在那些包可被外部解析之前,无法用 dsh plugin add 直接装上。把它跑起来有两条现实途径:
- 作为动态插件:把
host.js/client.js的插件函数体按 Cordis 动态插件流程define+run到当前运行实例。 - 接线成真正的 DSH feature:待能解析内部依赖后,把它并入某个 composition / feature 目录并加一行加载。
行为与边界(如实说明)
- 进程内缓存 + 磁盘文件:内容存一份在内存(供同步注入),保存时落盘。
- 持久文件实际落点:在本机实测中,
fs服务的默认 base 是 DSH 宿主进程工作目录(如E:\deepseek-harness),所以文件落在E:\deepseek-harness\.dsh-custom-context.json。若要改到别处,需要显式 resolve 一个绝对路径(并确认fs允许写该位置)。.dsh-custom-context.json已加入本仓.gitignore,不会被提交。 - 注入作用域:作用于加载该插件的 realm 的后续提示装配,不等于对全 Harness 的历史会话做持久写入。
- 动态插件为临时形态:正式化需迁到持久 settings namespace 或 composition。
License
MIT