前言¶
在使用 DeepSeek Harness (DSH) 進行 Web 會話開發時,長對話場景下定位歷史提問或上下文切換點需要頻繁手動滾動。這種方式效率低下且容易迷失。dsh-anchor-rail 插件通過左側固定導軌,提供全局會話導航能力。
插件簡介¶
dsh-anchor-rail 是一個客戶端插件,由開發者 lyfZhixing 維護。它解決的核心問題是:如何在長會話中快速定位用戶提問,並處理上下文壓縮帶來的歷史數據展示問題。
核心功能¶
- 左側導軌展示:在會話聊天區左側展示全部用戶問題的錨點,不隨頁面滾動移動。
- 壓縮段聚合:連續的已壓縮問題摺疊爲一個虛線分組錨點(如
▸ 已壓縮 · N 個問題),避免導軌因壓縮內容過多而擁擠。 - 懸浮交互:鼠標懸浮在導軌或任意錨點上時,右側展開對應的錨點名稱列表(
#序號 + 問題文本)。 - 分組展開:懸浮虛線分組錨點時,切換爲該段已壓縮問題的子列表;懸浮普通錨點僅顯示未壓縮列表。
- 密集兜底:當錨點間距小於 24px 時,名稱面板自動變爲緊湊滾動列表,防止文字重疊。
- 高亮與跳轉:當前閱讀的問題對應錨點/名稱高亮加長。點擊錨點或名稱可快速跳轉至對應問題。
- 保留歷史:上下文壓縮後的歷史錨點會被保留(聚合進虛線分組或單獨顯示),不會因壓縮而丟失。
安裝與啓用¶
推薦使用 DSH 官方插件命令進行安裝:
dsh plugin --profile web add dsh-anchor-rail
若需本地調試或自定義,可將倉庫放置於 ~/.dsh/profiles/web/plugins/dsh-anchor-rail/,並在 package.json 中配置依賴與 bundle。
工作原理¶
該插件分爲 Host 和 Client 兩半:
* Host 半:通過 sessionQuery.readSession 讀取完整原始日誌,提取用戶提問事件,利用壓縮檢查點標記已壓縮歷史,並通過路由 /dsh-anchor-rail/anchors 提供數據。
* Client 半:處理導軌渲染、懸浮列表邏輯及滾動跳轉。當跳轉目標在當前窗口外時,會自動調用 loadOlder() 逐頁加載歷史數據。
典型用法¶
- 打開 DSH Web 會話頁面。
- 導軌會自動出現在左側(僅當問題數大於 2 且內容可滾動時顯示)。
- 懸浮導軌查看全部錨點名稱,點擊任意名稱跳轉。
- 懸浮虛線分組查看已壓縮問題的子列表。
注意事項¶
- 自動隱藏:問題少於 2 個或內容無需滾動時,導軌自動隱藏。
- 滾動列表:錨點間距小於 24px 時,名稱面板自動變爲緊湊滾動列表。
- 許可證:MIT。
總結¶
dsh-anchor-rail 通過左側導軌和懸浮交互,解決了長會話中快速定位歷史提問的問題。它正確處理了上下文壓縮後的數據展示,適合需要在複雜會話中快速回溯的開發者。