前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在 IDE 中直接控制 dsh 智能体通常需要编写适配器或修改源码。dsh-acp 通过提供 Agent Client Protocol (ACP) 服务器,利用 JSON-RPC 2.0 stdio 机制,让 Zed 等编辑器能够直接驱动 dsh 智能体。它挂载在 dsh 的 stdin/stdout 上,无需修改 DSH 本身即可工作。
是什么¶
dsh-acp 是由 cnctem 维护的一个 DSH 插件。它基于官方 @deepseek-ai/dsh-acp 骨架,作为 dsh-base 的 profile bundle 运行,并参考了 pi-acp 的编辑器体验设计。插件采用 MIT 许可证。
核心功能¶
通过 JSON-RPC 2.0 stdio 通信,dsh-acp 将 DSH 的能力映射到编辑器界面。
- Token 与思考流式传输:通过
agent_message_chunk和agent_thought_chunk事件,实时展示模型输出和思维过程。 - 工具调用卡片:提供
tool_call和tool_call_update事件,展示工具类型、文件位置和行号。 - 结构化 Diff:展示 edit/write hunks 以及修改前后的快照。
- 会话管理:支持
session/list、session/load、session/delete,并提供会话选择器(写入权限 3、模型、思考强度)。 - 终端模拟:将 Bash 命令输出渲染为终端内容,并附带退出代码。
- 上下文使用环:通过
usage_update(used / size) 更新,反馈给 IDE 的上下文指示器。 - 待办清单:将 DSH 的
todo_write快照渲染为 IDE 的计划清单 (planupdate),在回合开始时自动清除。 - 图像理解:支持 ACP
imageprompt blocks(如截图)。通过 dsh 0.1.1 的dsh-attachment接缝,将图像作为ImageBlock传入模型。 - 斜杠命令:通过
available_commands_update广告 DSH 的/命令,并在命令平面执行(图像可传递给支持图像的命令)。 - 用户提问:通过 ACP 表单引导回答
ask_user_question工具,对于不支持表单的客户端提供解释性回退。
安装与启用¶
安装前需满足 Node.js ≥ 20、dsh (建议 0.1.1-rc.2) 和 pnpm。
dsh plugin --profile acp add github:cnctem/dsh-acp
配置与用法¶
插件默认使用 DSH 的默认模型。通过环境变量可覆盖。
- 模型覆盖:使用
DSH_ACP_PROVIDER或DSH_ACP_MODEL环境变量。 - 预设选择:使用
DSH_ACP_PRESET环境变量。该值直接对应预设 ID。未设置或空值使用standard;未知 ID 会导致会话创建失败。有效 ID 包括内置的standard/minimal,以及用户在$DSH_HOME/.agent-presets/下创建的自定义预设。 - Zed 集成:在 Zed 的
settings.json中添加自定义服务器配置。
{
"agent_servers": {
"dsh": {
"type": "custom",
"command": "dsh",
"args": ["--profile", "acp"],
"env": {}
}
}
}
- 多预设共存:Zed 支持配置多条记录,不同预设可作为独立选项出现在 “+” 菜单中。
注意事项¶
- API Key:插件复用 DSH 的凭证,即
$DSH_HOME/.credentials.yaml或DEEPSEEK_API_KEY。 - 特殊预设依赖:
code和cordis预设需要安装全局插件code-runtime和cordis-host-runner才能使用。 - 权限:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
结尾¶
dsh-acp 提供了一套完整的编辑器集成方案,通过 ACP 协议将 DSH 的智能体能力可视化。配合 Zed 等编辑器,开发者可以获得流式输出、结构化 Diff 和终端交互等增强体验。