前言¶
DeepSeek Harness (DSH) 将模型可见的上下文视为会话或代理生命周期的一部分。一个仓库上下文插件应当是可检查和有边界的,而不是静默地将整个仓库倾入每个提示中。dsh-context-pack 旨在解决这个问题,提供确定性、隐私感知的仓库上下文包。
定位¶
这是一个由 MkaliezZ 维护的插件,提供确定性、隐私感知的仓库上下文包功能。它通过 DSH 原生命令和 API 将仓库上下文转化为结构化的、有边界的数据包,供模型步骤消费。
核心功能¶
插件提供以下核心能力:
- 命令行扫描:提供
/context-pack [repository path]命令,执行显式、只读的扫描。 - 边界控制:支持基于文件数、总字节数、单文件字节数以及注入字节数的预算控制。
- 隐私保护:采用“失败关闭”策略排除敏感路径(如
.env、常见凭证/密钥名),并支持文本扩展白名单。 - 可验证性:为每文件和整包生成 SHA-256 哈希,确保上下文内容的可追溯性。
- 安全约束:插件运行时无网络请求,且不修改源代码。
配置与使用¶
插件通过 DSH 的 bundle 机制加载。在配置文件中指定包名与参数:
- id: dsh-context-pack
name: '@mkaliezz/dsh-context-pack'
config:
maxFiles: 60
maxTotalBytes: 120000
maxFileBytes: 30000
maxInjectedBytes: 120000
命令行调用¶
在 DSH 环境中执行命令:
/context-pack .
命令返回一个紧凑的收据,包含包哈希、包含文件数、源字节数和排除数。模型可见的包通过 DSH 的 agent.inject() 接口单独注入,而非直接回显在命令结果中。
API 调用¶
插件导出 buildContextPack 函数:
const pack = await buildContextPack('/path/to/repo', {
maxFiles: 60,
maxTotalBytes: 120_000,
maxFileBytes: 30_000,
})
注意事项¶
在使用该插件时,请注意以下限制:
- 非安全工具:它不是秘密扫描器或 DLP 系统,也不是沙箱。
- Git 忽略兼容性:目前没有完整的
.gitignore兼容性。 - 语义排序:不提供语义相关性排名。
- 敏感文件名覆盖:不能保证覆盖所有敏感文件名模式。
- 持久化限制:v0.1 版本不持久化独立的上下文包生命周期记录(仅依赖 DSH 自身的命令/收件箱/会话事实)。