dsh-btw:在主對話外安全詢問上下文問題的命令

在 DeepSeek Harness (dsh) 的使用過程中,經常需要在執行主任務時穿插一個“側邊問題”(例如:“剛纔那個函數名是什麼來着?”)。如果在主對話中直接提問,模型會處理這條消息,消耗 token,並污染上下文窗口。

dsh-btw 插件提供了一個 /btw 命令,用於在不干擾主對話的情況下,詢問具備上下文感知能力的問題,答案直接渲染在 UI 中,且不消耗主會話的 token 和前綴緩存。

核心功能

  • /btw 側邊命令:提供 /btw 斜槓命令,專用於非核心對話的提問。
  • 隔離執行:提問和回答不會成爲主會話中的模型消息,主會話的日誌僅記錄 command/run 和 command/done 對,token 使用量爲 0。
  • 上下文感知:默認使用 fork 提供者作爲一次性子代理,繼承主會話已完成輪次的上下文。
  • UI 直接渲染:子代理的可見文本塊直接返回並顯示在用戶界面。
  • 資源保護:主會話的前綴緩存保持 untouched 狀態。

安裝與啓用

安裝前需確保已安裝 DeepSeek Harness (npx @deepseek-ai/dsh),並運行環境滿足 Node.js >= 20。

通過 NPM 安裝(推薦)

NPM 提供預構建版本,無需構建權限即可安裝:

dsh plugin --profile web add dsh-btw

通過 GitHub 安裝

從 GitHub 安裝需要運行包的 prepare 構建腳本。對於 pnpm >= 10,需要在配置文件中允許構建:

  1. 在 pnpm-workspace.yaml 中添加:
    allowBuilds:
      dsh-btw: true
  1. 重新運行安裝命令:
    dsh plugin --profile web add github:<your-github-name>/dsh-btw

配置要求

安裝後,cordis.patch.yml 文件中必須包含該插件的配置塊,否則插件加載會因未知鍵而中止。

典型用法

在主對話中輸入 /btw,後接問題:

/btw what's the difference between Drop and DropImpl again?

插件會啓動一個一次性子代理來回答該問題,結果直接顯示在界面上,主對話流保持原狀。

配置項

在 cordis.patch.yml 的插件行中添加 config 塊:

- insert:
    - id: btw
      name: dsh-btw
      config:
        provider: fork   # fork (默認) | spawn
        persona: terse   # 可選的子代理人設
配置項 默認值 說明
provider fork fork 會將主會話已完成輪次的 prefix 注入子代理,實現上下文感知回答;spawn 啓動完全隔離的子代理。
persona — 應用於子代理的可選人設(需由 fork/spawn 提供者支持)。

注意事項

  • 運行權限:插件以當前 dsh 進程權限運行。從 GitHub 安裝前,請檢查源碼與許可證。
  • Node 版本:必須使用 Node.js >= 20。
  • 預構建依賴:通過 NPM 安裝預構建版本不需要構建權限。

總結

dsh-btw 解決了開發者在 DSH 中處理側邊查詢時的上下文污染和 token 浪費問題。它通過一次性子代理機制,確保主會話的純淨與高效。

  • 插件目錄: https://www.skillhub.cn/plugins/136155330/dsh-btw
  • 源碼地址: https://github.com/136155330/dsh-btw
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜