dsh-git:爲 DeepSeek Harness 提供的 Git 風格對話管理

前言

DeepSeek Harness (DSH) 採用插件化架構。在開發或調試智能體對話時,開發者常需要複用歷史對話片段、對比不同分支的上下文,或從任意歷史節點繼續提問。dsh-git 插件通過引入 Git 的核心概念,將對話過程轉化爲 DAG(有向無環圖),提供了對話分支管理、節點選擇與上下文重組的能力。

dsh-git 是什麼

dsh-git 是 DeepSeek Harness Web 的一個客戶端插件,由 ZicanC 維護。它不包含 dsh 可執行文件,僅提供插件模塊。其核心價值在於將對話中的每個 Prompt + Answer 輪次視爲一個不可變的 PA 節點,支持跨分支選擇、有序上下文托盤以及多父 DAG 節點的生成。

核心功能

  • 對話的 Git 風格管理:每個完成的 Prompt + Answer 輪次是一個 PA 節點。這些節點是原子、可尋址且不可原地重寫。
  • 會話對話圖:每個 Session 都有一個對話圖,顯示分支、合併邊和當前 HEAD。
  • 工作區項目圖:顯示工作區中所有已完成的 PA,支持摺疊重複歷史。
  • 有序上下文托盤:允許從任何分支選擇 PA 節點,並拖拽排序。排序後的順序將決定發給主機的連續歷史。
  • 跨分支選擇:支持自由跨分支選擇節點。
  • 主機端持久化:圖形數據存儲在主機端,遵循 DSH 配置文件,不依賴當前瀏覽器。

安裝

該插件僅提供插件代碼,不包含 dsh 可執行文件。如果使用 DeepSeek Harness 的源碼檢出,請在檢出目錄中調用 CLI。以下命令假設插件目錄與 deepseek-harness 目錄同級:

pnpm --dir ../deepseek-harness dsh plugin --profile web add "$PWD"
pnpm --dir ../deepseek-harness dsh --profile web

如果 dsh 已全局安裝,可使用簡寫命令。注意不要在插件倉庫目錄內運行 pnpm dsh。

典型用法

  1. 在 DSH 中完成一個或多個普通輪次。
  2. 打開 Branches 標籤頁。當前主線路爲實線,活動節點標記爲 HEAD。
  3. 選擇任意 PA 節點,它們將按創建順序進入 Context Tray。
  4. 拖動 Context Tray 中的卡片,設置發給模型的精確順序。
  5. 輸入下一個問題,選擇 Create merge branch and ask。
  6. 插件創建一個新的 Session,使用選定的輪次作爲其有序歷史,並打開該會話發送問題。當回答完成時,HEAD 移動到新節點。

Git 概念映射

Git 操作 dsh-git 操作
commit 每個 Prompt + Answer 輪次是一個 PA 節點。
log --graph 會話對話圖與工作區項目圖。
HEAD 活動節點。
checkout 使用 Switch to this branch 打開 DSH Session。
cherry-pick 從任何分支選擇 PA 節點並添加到有序的 Context Tray。
rebase 主機按托盤中的順序將選定的輪次重新編號爲連續的歷史。
branch 從托盤提問會創建一個新的主機端 Session。
merge 下一個 Prompt 和 Answer 成爲記錄所有源的多父 DAG 節點。

注意事項

  • 預覽行爲:點擊節點僅預覽其內容,不更改上下文或當前 Session。
  • 只讀視圖:工作區項目圖是隻讀的。點擊 PA 可打開詳情檢查器,點擊“Open source Session”可跳轉回原會話。
  • 自包含:構建的插件除了 React 外是自包含的瀏覽器包。
  • 數據模型:數據模型基於 TurnNode 接口,包含 id、sessionId、turn、parentIds 等。

總結

dsh-git 爲 DeepSeek Harness 提供了對話分支管理能力,允許開發者像管理代碼一樣管理對話歷史。通過有序的 Context Tray 和多父 DAG 節點,它支持從任意歷史片段繼續對話,適用於需要精細控制上下文和分支的智能體開發場景。

GitHub | 插件目錄

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

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

小夜