前言¶
在多智能體協作場景中,版本控制往往成爲瓶頸。傳統 Git 工作流中,多個智能體同時操作同一個倉庫時,容易出現衝突、分支混亂或權限邊界不清的問題。DeepSeek Harness (DSH) 通過插件化架構支持擴展,dsh-jj-vcs 插件正是爲此設計。它將 Jujutsu 的版本控制能力引入 DSH 智能體團隊,通過獨立的變更(change)和清晰的歸屬管理,爲多智能體協作提供更健壯的版本控制方案。
插件簡介¶
dsh-jj-vcs 是一個爲 DeepSeek Harness 智能體團隊提供的 Jujutsu 版本控制插件。該插件由社區開發者 bingfengaaaaa 維護,採用 MIT 許可證。它旨在解決多智能體並行開發時的版本管理難題,通過將智能體任務映射爲獨立的 Jujutsu 變更,實現清晰的歸屬審計和操作追蹤。
核心能力¶
該插件主要提供以下功能:
- 獨立的智能體工作區:爲每個智能體創建一個外部 JJ 工作區和獨立的變更。
- 明確的歸屬權:在變更描述中記錄任務和智能體信息,並在交接時驗證兩者。
- 可審計的變更:記錄任務設置前後的操作 ID,確保變更可追溯。
- 受控的發佈:將本地編輯、共享歷史變更和遠程可見操作分開管理。
- 併發安全:拒絕衝突、分歧的變更、共享變更所有權以及意外的工區。
- Windows 兼容性:檢測可能導致誤報文件變更的 Git 符號鏈接和工作區別名。
安裝與啓用¶
使用以下命令將插件添加到指定的 Profile 中(推薦使用具體的版本標籤以保持穩定):
dsh plugin --profile <profile> add github:bingfengaaaaa/dsh-jj-vcs#v0.1.1
dsh --profile <profile> --dump-config
典型用法¶
在使用插件前,需要確認 JJ 版本。插件維護的命令規則基於 jj 0.44.0。首先檢查版本:
jj --version
jj help
node <skill-dir>/scripts/verify-jj-compat.mjs --repo <repository>
在實際任務流程中,協調者(coordinator)需要啓動任務並創建智能體的工作區:
node <skill-dir>/scripts/jj-task.mjs start \
--repo <coordinator-workspace> \
--destination <external-worker-directory> \
--workspace <task-agent-name> \
--agent <agent-id> \
--task <task-id> \
--base <explicit-revset>
智能體完成編輯後,在交接前需要執行完成驗證:
node <skill-dir>/scripts/jj-task.mjs finish \
--workspace-root <external-worker-directory> \
--workspace <task-agent-name> \
--agent <agent-id> \
--task <task-id> \
--expected-change <change-id>
開發者可以通過以下命令進行本地驗證:
npm run verify
npm test
npm pack --dry-run --json
適用場景與注意事項¶
該插件適用於需要精細化管理多智能體協作版本控制、關注操作審計和併發安全的團隊。它依賴於 Jujutsu (jj) 作爲底層版本控制工具,具體版本需鎖定爲 0.44.0。
需要注意以下幾點:
- 獨立社區項目:這是一個獨立的社區項目,並非 DeepSeek 官方發佈。
- 安裝不包含依賴:安裝插件不會自動安裝 JJ、初始化倉庫、更改 Git 遠程地址或處理憑據。倉庫初始化和遠程可見操作仍需單獨授權。
- 權限分級:插件支持將權限分爲四級:只讀檢查、任務本地變更、共享本地歷史和遠程可見操作。
- Windows 正確性:插件針對 Windows 環境進行了正確性修正,以避免 Git 符號鏈接和別名導致的誤報。
總結¶
dsh-jj-vcs 通過引入 Jujutsu 的變更模型,爲 DSH 多智能體協作提供了更清晰的版本控制邊界和操作審計能力。對於需要嚴格版本管理的企業級或多智能體項目,這是一個值得嘗試的社區方案。
插件詳情與源碼可參考:
- GitHub 倉庫
- SkillHub 目錄