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 来自线索,未独立核实)
羽毛球分组比赛记分
小程序二维码

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

小夜