DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在实际开发中,频繁引用大文件或网页内容容易导致上下文窗口溢出,消耗大量 token。dsh-context-mode 正是为了解决这一具体问题而生。它不做花哨的事,只专注于减少进入上下文的原始数据量,通过本地知识库、路由拦截和沙箱执行三方面实现这一目标。
功能说明¶
本地知识库索引¶
插件提供了一个基于 SQLite 的本地知识库索引系统,支持 FTS5(全文搜索)。
- ctx_index:将文件或整个目录切分成小块存入知识库。知识库默认位于 ~/.context-mode/content。
- ctx_search:检索知识库片段,默认每次最多返回 12000 字节,而非整本书。
- ctx_fetch_and_index:抓取网页并索引,原网页字节不会进入上下文。
路由拦截¶
插件在工具执行前进行路由拦截,防止大文件撑爆上下文。
- 硬拦:直接拒绝 curl、wget、inline-fetch 等确定会拉大文件的命令。
- 软引导:对于超过约 50KB 的文件,除非使用精确分段读取(如带 offset/limit),否则会被引导使用 ctx_index 或 ctx_search。
- 白名单:pwd、echo、ls、whoami 等无害命令直接放行。
沙箱执行¶
插件提供沙箱执行能力,原始数据留在沙箱,只返回结论。
- ctx_execute:在隔离沙箱中运行代码,只将 console.log 的结果带回。
- ctx_execute_file:将文件内容(通过 FILE_SRC 传入)作为输入数据进行分析,只返回结论。
- ctx_batch_execute:支持并行运行多段分析,结果可自动入库并检索。
注意:沙箱没有模块系统,代码中不能写 require('node:fs') 或 import。沙箱是资源隔离,不承诺程序绝对读不到宿主文件。
安装与启用¶
- 进入插件目录并克隆仓库(如果尚未克隆):
cd "$HOME/.dsh/plugins/dsh-context-mode"
git clone https://github.com/pharaohnie/dsh-context-mode.git .
- 添加插件并链接:
dsh plugin --profile web add "$HOME/.dsh/plugins/dsh-context-mode"
./relink-dsh-context-mode.sh
-
安装完成后重启 DSH(UI 重启或重启服务进程)。
-
验证状态:
运行ctx_doctor。关键项(tools、systemPrompt、FTS5、知识库、门禁)应显示为 ✓。会话记忆捕获(memoryCapture)和安全基线(securityEnabled)默认关闭,显示 ✗ 是正常的。
运行要求与配置¶
- 环境要求:Node.js 版本不低于 24,DSH 版本为 v0.1.1-rc.2。
- 知识库位置:默认位于
~/.context-mode/content。 - 配置说明:插件不会压缩已经在上下文里的内容,只在入口进行引导。沙箱执行时,
FILE_SRC已经是文件完整内容,直接处理即可,无需再次读取文件路径。
总结¶
dsh-context-mode 通过将文件索引化、拦截洪水工具和沙箱化执行,有效缓解了 DSH 的上下文窗口压力,让上下文窗口得到更高效的利用。