前言¶
在使用 DeepSeek Harness (DSH) 時,如果每次新會話都需要重新確認本地有哪些開發工具、哪些路徑是靠譜的、網絡延遲如何,會消耗大量 token 並拖慢對話節奏。dsh-env-profile 解決這個問題:它在後臺自動探測本地環境,將信息沉澱爲跨會話的全局檔案,並生成低開銷摘要注入每一輪的系統提示中。
插件簡介¶
dsh-env-profile 是一個 DSH 全局經驗插件。它負責自動探測本地環境(依賴工具、便捷路徑、網絡、磁盤),訂閱 session/event 摺疊每會話統計,沉澱爲跨會話的全局檔案,並把低開銷摘要注入每一輪系統提示。
- 維護者:Yvesgao
- 類別:記憶
- 許可證:MIT
- 當前狀態:骨架期 v0.1
核心功能¶
該插件提供以下核心能力:
- 自動探測本地環境:通過宿主探測(如
where.exe、TCP 建連、磁盤採樣)收集工具列表、路徑、網絡狀態和磁盤信息。 - 跨會話全局檔案沉澱:將探測結果和會話統計存儲在
$DSH_HOME/storages/env_profile.json中,形成持久化的環境記憶。 - 低開銷摘要注入:將環境摘要以
systemPrompt.section(order 500)的形式注入每輪對話,默認預算硬上限 600 字符。 - 按需查詢工具:提供
env_profile工具,支持通過scope參數(如summary/env/sessions/facts/all)查詢全量檔案。 - LLM 自動抽取:自動從會話歷史中抽取知識條目(如用戶偏好、項目約定),補充到檔案中。
- 關鍵工具版本探測:探測 git/node/npm/pnpm/python 等常用工具的版本和首個 PATH 路徑。
安裝與啓用¶
官方安裝¶
直接使用插件倉庫安裝:
dsh plugin --profile web add dsh-env-profile
安裝後重啓 dsh web 生效。
本地開發注意事項¶
本地開發時,由於 pnpm 默認建立 junction(符號鏈接)可能導致 ESM 解析失敗,需要使用物理拷貝方式安裝:
# 1) 登記依賴
dsh plugin --profile web add "E:\YourPath\dsh-env-profile"
# 2) 物理拷貝替換 junction(關鍵步驟)
$dst = "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-env-profile"
cmd /c rmdir "$dst"
Copy-Item -Recurse "E:\YourPath\dsh-env-profile" "$dst"
# 3) 重啓 dsh web
驗證安裝¶
- 檢查存儲目錄:
$DSH_HOME/storages/下出現env_profile.json。 - 檢查系統提示:在任意會話的系統提示尾部查看是否出現
## Environment profile段落。 - 測試工具:詢問“這臺機器裝了哪些常用工具?”,模型應直接回答,無需現場探測。
工作原理¶
插件構建了一個完整的閉環架構:
- 探測:
lib/probes.js定時或手動觸發探測(工具、路徑、網絡、磁盤),結果存入領域模型。 - 存儲:
lib/store.js負責內存鏡像與持久化,同步寫入 JSON 文件,並進行會話鏡像剪枝。 - 注入:
lib/injector.js將生成的摘要插入系統提示(order 500),控制注入預算。 - 查詢:
lib/tool.js提供env_profile工具,供 LLM 按需查詢全量或特定範圍數據。
省 Token 機制¶
- 前綴緩存穩定:摘要由
summarize()生成,排序和格式固定。當檔案狀態不變時,每輪注入的摘要逐字節相同,DeepSeek 的前綴緩存持續命中,只有尾部變化時才失效。 - 注入預算硬上限:默認 600 字符,超限會截斷並提示使用工具獲取全量,防止經驗注入成本反超收益。
- 探測零模型成本:所有探測操作(
where.exe、文件存在性檢查、TCP 建連、磁盤讀寫)均爲宿主側確定性操作,不佔用任何 token。
配置項¶
通過覆蓋 cordis.patch.yml 中的配置,可以調整插件行爲:
- id: env-profile
config:
injectMaxChars: 400 # 注入預算調小
probeIntervalHours: 24 # 探測更懶
networkHost: api.deepseek.com
trackSessions: true
learnEnabled: false # 關閉 LLM 自動抽取(有 token 成本)
learnIntervalTurns: 5 # 每 5 輪抽取一次
learnMaxInputChars: 4000 # 抽取輸入上限
典型用法¶
- 查詢摘要:在會話中調用工具。
env_profile scope=summary
- 查詢全量:
env_profile scope=env/sessions/facts/all
- 刷新探測:強制重新執行探測。
env_profile refresh
注意事項¶
- 僅支持 Windows:當前探測依賴
where.exe和 Windows 環境變量,POSIX 系統暫不支持。 - 單進程寫約束:JSON 後端不支持多進程併發寫,勿在多個 DSH 進程同時寫同一個
DSH_HOME。 - 骨架期狀態:目前爲 v0.1 骨架期,核心閉環可用,部分功能(如近義合併、Web 設置頁)在路線圖中。
結語¶
dsh-env-profile 通過“探測-沉澱-注入-查詢”的閉環,將環境信息從“每次解釋”變爲“開局即知”,有效減少了重複探測和重複解釋,降低了 token 消耗。對於需要頻繁切換環境或長時間運行會話的開發場景,這是一個實用的輔助工具。