Back to home@LiKanGame

dsh-custom-context-injector

dsh-custom-context-injector 提供「自定义上下文」设置页并注入到模型上下文,支持落盘持久化。

Stars
0
Language
JavaScript
Created
Sep 9, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

dsh-custom-context-injector

DeepSeek Harness(Cordis 运行时)插件:让你在设置里维护一段「自定义上下文」,并把它注入到每次模型调用的提示中。

它做什么

两个能力合在一起:

  • D — 「自定义上下文」设置页 在 GUI 的 设置(齿轮)→ 新增一页「自定义上下文」:一个「启用注入」开关 + 一个多行输入框 + 「保存」按钮。

  • B — 自动注入 启用状态下,保存的这段文字会作为一条 systemPrompt section 注入到每次模型装配。实测:开启后,当前会话以及之后通过「新对话」开出的新会话都会携带这段内容。

  • 持久化 保存会尝试把内容写入磁盘 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.sectiontext 是同步的。

运行环境依赖(重要)

本源码是经过实机验证的动态 Cordis Package 的可维护镜像。它依赖 DSH 动态运行时注入的全局/服务:

  • Host:harness 全局、ctx.get('systemPrompt')ctx.get('fs')(纯 JS,无 import/require)。
  • Client:React(仅 createElement)、hoststylesctx、插槽 settings.section(无 JSX/import)。

因此它当前不是可独立安装的 npm 包:客户端部分会依赖 Harness 内部包(@deepseek-ai/dsh-*),在那些包可被外部解析之前,无法用 dsh plugin add 直接装上。把它跑起来有两条现实途径:

  1. 作为动态插件:把 host.js/client.js 的插件函数体按 Cordis 动态插件流程 define + run 到当前运行实例。
  2. 接线成真正的 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