dsh-quote:將選中文本作爲引用上下文注入對話

DSH(DeepSeek Harness)採用插件化架構,在智能體開發或日常使用中,區分“引用的歷史內容”與“用戶當前的意圖”是常見需求。dsh-quote 插件解決了這個問題,它是一個極簡工具,允許用戶在對話或側邊欄文件中選中文字,將其作爲“引用上下文”在發送下一條消息時自動注入,而不污染用戶的輸入正文。

核心功能

該插件主要實現以下邏輯:

  1. 選區捕獲與觸發
    支持對話中任意文字塊(assistant、自己或 tool 輸出),以及側邊欄打開文件的選段。觸發方式爲劃選後鬆手,在選區上方彈出膠囊菜單,提供“複製文本”和“添加到對話”兩個選項。

  2. 輸入框交互
    選擇“添加到對話”後,引文以附件卡片形式渲染在輸入框內(掛載點爲 conversation.input.overlay)。卡片顯示引文的有限預覽和來源行類型,支持移除。卡片在用戶發送消息後立即消失。

  3. 對話區展示
    引文不會僞裝成用戶消息,而是以插件私有的 source.kind 投遞,並在對話區渲染爲一條帶標籤的“引用上下文”摺疊行。摺疊時顯示摘要,展開可查看全文。

  4. 文件與長文處理
    支持從側邊欄文件中選段注入,卡片副標題顯示文件名,注入時附帶絕對路徑。單條引文上限爲 200000 字符,超出會拒絕並在輸入框提示。長引文在輸入框僅顯示有界預覽。

  5. 技術實現
    插件通過 POST /claim 聲明提交,並使用 quoteSummary、quotePreview、quoteFrame 等函數對文本進行整形,確保模型輸入的頭部說明和正文結構清晰。

安裝與啓用

安裝命令如下:

dsh plugin --profile <name> add <dsh-quote 本地路徑或包名>

安裝完成後需刷新瀏覽器。客戶端代碼支持熱加載,但宿主代碼改動需要重啓 dsh web 進程。

典型用法

  1. 在對話中選中一段 assistant 或 tool 的輸出,鬆手後點擊菜單中的“添加到對話”。
  2. 卡片會出現在輸入框中,確認無誤後發送消息。發送後卡片消失,引文會作爲“引用上下文”摺疊行出現在對話記錄中。
  3. 在右側側邊欄打開文件,選中內容後添加到對話,卡片副標題會顯示文件名,發送後引文會附帶文件絕對路徑出現在模型輸入中。

注意事項

  • 投遞機制:引文只在下一條真正帶用戶文字的回合投遞。如果 agent 卡在長工具循環中,引用會等待該回合開始。
  • 宿主摺疊:已知邊界是引文行在回合結束後會被宿主收進“回合過程”摺疊組,進行中可見,結束後需展開查看。
  • 版本兼容:本插件面向 @deepseek-ai/dsh 0.1.7-rc.2。
  • 依賴約束:宿主自帶的包只能是 peerDependencies,絕不能進入 dependencies,否則會導致插件靜默死掉。

總結

dsh-quote 提供了一種低侵入式的引用方式,通過 conversation.input.overlay 掛載點和私有 source.kind 區分引用內容與用戶輸入,適合需要頻繁引用上下文但不想手動拼接文本的開發場景。更多細節與源碼可參考其 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

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

小夜