DSHACP:在 Zed 中把 DeepSeek 接入爲可交互代理

前言

DSHACP 是 DeepSeek Harness(DSH)的一個插件。它的目標是把 DeepSeek 接到 Zed 的外部代理體系裏,讓開發者可以在 Zed 面板中直接和 DeepSeek 對話,並讓 DeepSeek 執行讀文件、寫代碼、跑命令等操作。

如果 DSH 側已經具備 DeepSeek 的接入條件,DSHACP 主要補齊的是 Zed 側的交互鏈路:Zed 發起請求,DSHACP 在 DSH profile 中承接,再把 DeepSeek 的回答、工具調用和審批請求呈現到 Zed 界面。

下面介紹 DSHACP 的定位、核心能力、安裝啓用方式、更新方式和常見配置。

這是什麼

一句話概括:DSHACP 是 Zed 和 DeepSeek 之間的“翻譯官”。

已覈實的基礎信息如下:

  • 倉庫名:ECHOUniverse/dshacp
  • npm 包名:@hanxu131/dshacp
  • 許可證:MIT
  • Node 要求:>=22
  • 使用方式:僅配合 Zed 使用
  • 依賴前提:需要已安裝 DSH,可通過 dsh --version 檢查
  • DeepSeek API Key:需要在 DSH 側配置
  • 插件 profile:使用獨立的 dshacp profile,不要與官方 acp profile 混裝

核心功能

DSHACP 提供以下已覈實的能力:

1、在 Zed 中直接和 DeepSeek 對話,回答逐字流式輸出。

2、讓 DeepSeek 讀文件、寫代碼、跑命令,並能在界面查看每一步操作。

3、對有風險的操作,例如改文件,先彈出允許請求。審批支持 request_permission,可選擇 allow oncealways

4、對話自動保存,下次打開可繼續。

5、支持 token 級 assistant/chunkreasoning、工具輸入輸出。

6、支持會話生命週期操作,包括 listloadresumedeleteclose

7、Zed 面板中可選 modelthinkingpermissionmode

8、支持 slash 命令、planask_user_question(elicitation)、HTTP MCP 轉發。

9、支持可選 hybrid 寫文件模式,文件改動可以 diff 形式呈現。

10、會話默認保存到當前項目目錄的 .sessions,也可以通過 DSH_SESSIONS_ROOT 修改保存目錄。

11、可以安裝爲獨立 dshacp 命令使用。

安裝與啓用

下面介紹兩種啓用方式:插件方式和獨立命令方式。

前提檢查

先確認 DSH 已安裝:

dsh --version

確認 Zed 編輯器可用。DSHACP 僅配合 Zed 使用。

確認 Node 環境滿足要求:

node --version

DSHACP 要求 Node >=22

確認 DeepSeek API Key 已在 DSH 側配置。這個密鑰不在 DSHACP 插件中配置。

方式一:作爲 DSH 插件安裝

在終端執行安裝命令:

dsh plugin --profile dshacp add @hanxu131/dshacp

這一步會把 @hanxu131/dshacp 安裝到 DSH 的 dshacp profile 中。

然後在 Zed 的 AI -> External Agents 中添加自定義代理。根據已覈實事實,commanddshargs--profile dshacp。配置示例如下:

{
  "agent_servers": {
    "DSH": {
      "type": "custom",
      "command": "dsh",
      "args": ["--profile", "dshacp"],
      "env": {}
    }
  }
}

這一步的作用是讓 Zed 通過 dsh --profile dshacp 啓動 DSHACP。

完成後,打開 Zed 的代理面板,選擇 DSH,然後輸入問題開始對話。

方式二:安裝爲獨立 dshacp 命令

如果不想走 DSH profile 安裝,也可以把包安裝成獨立命令:

npm install -g @hanxu131/dshacp

然後在 Zed 的自定義代理配置中,把 command 改爲 dshacpargs 留空。

這種方式的功能定位與插件方式一致,但啓動入口從 dsh --profile dshacp 變爲直接執行 dshacp

更新與常見配置

更新插件

add 可能會因爲 pnpm lock 或 minimum release age 導致不升級到新版本。已覈實的推薦做法是:先關閉發佈年齡門控,再使用 update

先編輯 profile 目錄下的 pnpm workspace 文件:

~/.dsh/profiles/dshacp/pnpm-workspace.yaml

在其中加入:

minimumReleaseAge: 0

然後執行更新命令:

dsh plugin --profile dshacp update @hanxu131/dshacp

升級完成後,需要重啓 Zed 裏的 DSH 會話,或重啓 dsh --profile dshacp 進程,新代碼纔會被加載。

會話保存目錄

會話默認保存到當前項目目錄的 .sessions 文件夾。

如果要統一修改會話保存目錄,可以設置環境變量 DSH_SESSIONS_ROOT。例如:

export DSH_SESSIONS_ROOT=/path/to/dshacp-sessions

這一步用於把會話數據從當前項目目錄遷移到指定目錄。

權限模式

可以設置環境變量 DSH_PERMISSION_MODE,可選值爲 workspace-writedanger-full-access

已覈實行爲如下:

  • workspace-write:默認權限,會彈確認框。
  • danger-full-access:無沙箱限制,且不彈確認框。

配置示例:

export DSH_PERMISSION_MODE=workspace-write

或:

export DSH_PERMISSION_MODE=danger-full-access

danger-full-access 會跳過確認彈窗,只應在可信環境中使用。

Hybrid 寫文件模式

可以設置環境變量 DSHACP_HYBRID=1 開啓混合模式。開啓後,文件改動會以 diff 形式呈現。

export DSHACP_HYBRID=1

這個模式適合在 Zed 中審查 DeepSeek 對文件產生的改動。

適用場景與注意

DSHACP 適合在 Zed 中使用 DeepSeek,並且需要以下能力的場景:

  • 需要在 Zed 代理面板中直接對話
  • 需要看 token 級流式輸出
  • 需要 DeepSeek 調用工具並展示操作過程
  • 需要審批風險操作
  • 需要會話保存、恢復和生命週期管理
  • 需要在 Zed 面板中選擇 modelthinkingpermissionmode

使用前需要注意:

1、DSHACP 僅配合 Zed 使用。

2、需要先安裝 DSH,並在 DSH 側配置 DeepSeek API Key。

3、使用獨立 dshacp profile,不要與官方 acp profile 混裝。

4、DSHACP 會作爲你啓動的 DSH 插件或獨立命令運行,具備對應本地進程權限。安裝前請檢查源碼、依賴和 MIT 許可證。

5、開啓 danger-full-access 後不會彈確認框,風險更高,應只在可信環境使用。

結尾

DSHACP 的價值在於把 DeepSeek 接到 Zed 的外部代理鏈路中,同時保留流式輸出、工具調用、審批、會話管理這些交互能力。它適合需要把 DSH 中的 DeepSeek 能力用於 Zed 內交互式開發的場景。

相關鏈接:

  • GitHub 倉庫:https://github.com/ECHOUniverse/dshacp
  • 插件目錄線索:https://www.skillhub.cn/plugins/ECHOUniverse/dshacp(該 URL 來自線索,未獨立覈實)
羽毛球分组比赛记分
小程序二维码

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

小夜