前言¶
在 DeepSeek Harness (DSH) 的開發流程中,開發者通常通過 system prompt 定義模型的行爲,通過工具定義能力。但模型在執行任務時,往往缺乏對當前運行環境的感知。例如,模型不知道當前是運行在 Ubuntu 還是 Windows,不知道 CPU 型號或內存佔用。dsh-where-am-i 插件通過注入類似 neofetch 的設備信息塊,解決了這一問題。
插件介紹¶
這是一個由 gausszhou 維護的客戶端插件。它的核心功能是向每個新建的會話注入包含主機名、操作系統、內核版本、架構、CPU 型號、內存使用情況、運行時間、時區、語言環境、終端 Shell 以及 Node 版本的設備信息塊。
核心功能¶
- 注入時機:僅在會話的第一個步驟注入一次,隨後持久化到該會話的歷史記錄中,後續步驟不再重複。
- 不影響現有會話:安裝後,已有的會話或系統提示詞保持字節級一致,不會觸發 KV 緩存失效。
- 子代理支持:默認跳過子代理會話(避免重複),可通過配置開啓
includeSubagents。 - 零子進程:使用 Node.js 原生 API 獲取系統信息,不依賴外部命令(如
uname或sw_vers)。
安裝與啓用¶
使用官方命令安裝:
dsh plugin --profile web add "@gausszhou/dsh-where-am-i"
安裝完成後需要重啓 dsh web 服務使配置生效:
systemctl --user restart dsh-web
配置¶
所有配置項均爲可選,默認開啓所有字段。配置文件位於 ~/.dsh/profiles/web/cordis.patch.yml。
# ~/.dsh/profiles/web/cordis.patch.yml
- id: where-am-i
config:
fields: [os, kernel, arch, cpu, memory, timezone]
includeSubagents: true
注意事項¶
- Node.js 版本:要求 Node.js >= 20.3。
- 子代理默認關閉:默認不向子代理會話注入信息,避免重複,需手動開啓。
- 無系統提示詞修改:插件通過
agent/pre-step水聽器機制工作,不修改共享的系統提示詞,因此不會破壞現有會話的上下文。
總結¶
該插件通過在會話歷史中插入一次性的設備信息快照,幫助模型更好地感知運行環境,無需配置即可使用。更多細節請查看 GitHub 倉庫。