前言¶
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 自身的命令/收件箱/會話事實)。