dsh-btw-command:運行中旁註提問或注入補充信息

前言

在 DeepSeek Harness(DSH)裏跑長任務時,主 Agent 往往已經佔住驅動:你想問一句「這一步爲什麼慢」,或者突然記起「某個文件剛改過、別再動」,若用 steer 發成普通用戶消息,模型容易把它當成新任務,打斷手頭工作或重複已完成的步驟。

liufeicc/dsh-btw-command 提供 /btw 斜槓命令,面向正在運行的會話:旁註式提問得到獨立回答,或把補充事實投進下一步上下文,而不喚醒正在跑的 driver。下面按功能、用法、配置和界面說明如何理解和使用它。

這是什麼

  • 名稱:dsh-btw-command(npm 包名 @local/dsh-btw-command,版本 1.0.0)
  • 維護者:liufeicc
  • 分類:客戶端(Web 端注入 @deepseek-ai/dsh-client-ui-conversation,immediately: true)
  • 許可證:MIT
  • 來源:GitHub、SkillHub 目錄頁

官方簡介:/btw slash command for DSH: ask a side question or inject information into a running agent session。

SkillHub 是社區插件目錄站點,與 DeepSeek / 幻方無官方從屬關係;DSH 側插件通常從社區或源碼按各自說明安裝,並非內置應用商店條目。

核心功能

兩種行爲,自動判定

用戶不必加 ? 前綴;旁註助手根據語義二選一:

用戶說的話 判定 實際發生什麼
提問題(進度 / 原因 / 某個數值) question 起一次獨立的模型請求,回答作爲命令結果返回
補充事實 / 決定 / 約束 / 偏好 info 整理成一條記憶條目,經 agent.inject() 投到 next-step

提問:獨立請求,不進主 Agent 上下文

steer 會把用戶輸入當新指令,主 Agent 可能丟活或重做。旁註要求「只回答、不改變」,因此提問路徑爲:

  1. session.deriveMessages() 取當前會話真正送給模型的歷史;
  2. 保留原 system prompt,末尾追加「旁註助手,只回答、不動手」;
  3. ctx.llm.stream() 發請求,模型路由用 session.requestHeader().config(與主線同模型);
  4. 回答作爲命令結果返回。command/run / command/done 爲 log-only,不進模型上下文。

補充信息:inject 且不打斷 driver

agent.inject() 把內容排到下一步 pre-step 收件箱,不喚醒正在跑的 driver;下一段模型請求可讀。注入消息帶 [補充信息 · 用戶插話] 前綴及「不要當成新任務」說明,避免 user 角色被誤解爲新指令。

判錯時的安全策略

  • 解析不出 JSON ⇒ 一律退化爲「回答原文」(當提問),不注入記憶;
  • info 但 memory 爲空 ⇒ 同樣退化;
  • 設計刻意不對稱:避免髒數據寫入記憶。

安裝與啓用

README 與 GitHub 倉庫頁未給出可逐字複製的一行 shell 安裝命令。安裝步驟請以 SkillHub 目錄頁 上「發送給 DeepSeek Harness 安裝」段落爲準(頁面表述爲安裝插件 liufeicc/dsh-btw-command)。

安裝前建議:

  1. 在 GitHub 閱讀源碼與 cordis.patch.yml,確認行爲符合預期;
  2. 確認許可證爲 MIT(見 package.json);
  3. 記住插件在當前 DSH 進程權限下運行,與主 Agent 共用環境與配置。

安裝後,客戶端配置項默認可用;總開關 enabled 默認爲 true。

典型用法

在輸入框直接輸入,或在工具行氣泡入口發送相同內容:

/btw 爲什麼這一步這麼慢
/btw 記住 MEMORY.md 已經改過,別再改

第一句趨向 question,得到旁註回答;第二句趨向 info,在下一步被主 Agent 讀到約束。

配置

插件 config 字段均可省略:

鍵 默認 說明
enabled true 總開關
historyMessages 40 餵給旁註助手的歷史條數上限
maxHistoryChars 120000 歷史字符上限
maxAnswerChars 4000 回答最大字符數
timeoutMs 120000 單次旁註請求超時(毫秒)

界面與交互

兩個入口共用同一份命令數據:

入口 行爲
輸入框工具行氣泡按鈕(+ 右側) 浮層提問,回車發送
輸入框 /btw … 同一命令節點,浮層自動彈出並顯示答案

Agent 運行、對話行折進「運行過程」時,浮層仍可讀最新 btw 命令節點(useChat 讀 snapshot.nodes.values(),含摺疊節點)。時間線裏另有 conversation.chat.commandview 的 btw 卡片;空閒時更易瀏覽,運行中可展開「運行過程」查看。

浮層按當前窗格與 composer 實時矩形定位(貼在 composer 上方 8px,寬度不超出窗格,過高時內部滾動),經 portal 掛到 document.body,隨 resize / scroll 更新。

爲讓輸入框立刻清空,handler 先返回佔位並完成 commands.execute 結算,後臺完成後用同一 commandId 追加 command/done,客戶端原地刷新答案,不新增事件類型。

已知邊界

  • 旁註只看模型可見歷史;長時間構建等「進程狀態」未必在歷史裏,只能從工具結果推斷(未來可讀會話日誌或 job 表,README 標爲 P2)。
  • 歷史從最近一條 user 消息切開,以滿足 tool 調用與結果的協議對齊。
  • 旁註回答爲一次性返回,非流式(P2)。

維護者本地測試命令(README):

node --test test/*.test.mjs

README 寫明 25 條用例,覆蓋「提問不注入」「補充才注入」「解析失敗絕不注入」及浮層幾何等場景。

適用場景與注意

適合:長 Agent 任務中偶爾追問進度或原因,或臨時追加約束/偏好而不 steer 主線。

注意:

  • 旁註準確性受歷史裁剪與模型判定影響;敏感操作仍以明確 steer 或人工複覈爲準;
  • 插件修改 Web 客戶端與會話注入路徑,升級 DSH 或插件後應迴歸測試 /btw 兩種分支;
  • 星標等社區指標以目錄頁爲準(當前 GitHub 顯示 0 stars),不代表功能完備度。

結尾

dsh-btw-command 把「旁註」拆成兩條技術路徑:提問走獨立 LLM 請求且不動主上下文,補充信息走 inject 且不喚醒 driver。對需要在運行中插一句話的 DSH 用戶,它是客戶端側的可選插件。

  • 目錄頁:https://www.skillhub.cn/plugins/liufeicc/dsh-btw-command
  • 源碼與詳細設計:https://github.com/liufeicc/dsh-btw-command
羽毛球分组比赛记分
小程序二维码

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

小夜