前言¶
DeepSeek Harness(dsh)通常以插件和進程的形式承載智能體能力。對已經在用 dsh 的開發者來說,常見需求不是另起一個 agent,而是把已有的 dsh agent 接到外部客戶端裏,例如 Zed,或其他支持 Agent Client Protocol(ACP)的客戶端。
dsh-acp-server 解決的就是這個問題:它讓 dsh 以 ACP server 的方式運行,外部客戶端可以創建會話、發送 prompt、接收流式輸出、查看計劃更新、工具調用和審批請求。下面介紹它的能力、安裝方式和幾種典型用法。
這是什麼¶
dsh-acp-server 是一個 DSH 插件,由 dushaobindoudou 維護,許可證爲 MIT。
它把 DSH agent 暴露爲 ACP server,可以從 Zed 和任意 ACP 客戶端驅動 dsh agent。它既可以作爲獨立進程運行,也可以和 dsh web 在同一個進程、同一個端口上同時提供 GUI 與 ACP 接口。
核心能力¶
下面列出的能力來自插件描述和已覈實的 ACP 方法支持情況。
會話與消息¶
常用 ACP 方法包括:
initialize
session/new
session/prompt
session/list
session/resume
session/load
session/set_mode
available_commands_update
session/request_permission
session/cancel
session/close
對應能力如下:
initialize:聲明完整能力,包括loadSession、promptCapabilities.image、sessionCapabilities.list/resume/close。session/new:創建一個 durabledshagent,並通告 modes 和 slash commands。session/prompt:支持流式agent_message_chunk/agent_thought_chunk、plan更新、完整 tool-call 生命週期、image blocks,以及/commandrouting。session/list、session/resume、session/load:處理 persisted 和 live sessions。session/set_mode:在default和plan模式之間切換,並推送current_mode_update。available_commands_update:按 session 通告dshcommand registry,並在每一輪刷新。session/request_permission:把dsh的 approval decision 橋接到客戶端。session/cancel:中止當前 turn,prompt 以cancelled結束。session/close:取消、flush 並 dispose agent。
運行形態¶
dsh-acp-server 支持兩種常見形態:
dsh-acp-server
dsh web
dsh-acp-server:可以作爲 standalone ACP server 運行在 stdio 上,也可以通過serve提供 remote HTTP+SSE。dsh web:可以在一個進程、一個端口上同時提供 GUI 和 ACP。
此外,dsh/* vendor methods 會暴露只讀的 sessions、jobs、goals、skills 和 agent tree 數據。
安裝與啓用¶
運行環境需要 Node.js >= 22,並安裝 dsh CLI。
先安裝 dsh:
npm i -g @deepseek-ai/dsh
然後把插件安裝到 acp profile:
dsh plugin --profile acp add dsh-acp-server
如果從源碼安裝,可能會觸發 prepare 腳本構建 lib/。在使用 pnpm >= 10 的環境中,需要先允許構建,再重新執行 add。配置項如下:
allowBuilds:
dsh-acp-server: true
爲了避免構建授權,可以優先使用 prebuilt npm package 或 tarball 安裝。
在 Zed 中使用¶
dsh-acp-server 可以作爲 stdio ACP server 啓動:
dsh-acp-server
在 Zed 的 Settings 中配置 agent_servers,示例如下:
{
"agent_servers": {
"dsh": {
"type": "custom",
"command": "dsh-acp-server",
"args": []
}
}
}
配置後,Zed 可以通過 ACP 驅動這個 dsh agent。
用 dsh web 同時提供 GUI 與 ACP¶
如果希望 GUI 和 ACP 在同一個進程裏啓動,可以使用 dsh web。
先執行 setup 腳本:
node bin/setup-webacp.mjs
然後啓動:
dsh web
dsh web 會在 http://127.0.0.1:3080 提供 GUI,並在 /acp 提供 ACP 接口。
可以用下面的示例腳本訪問這個 ACP 端點:
node bin/acp-chat.mjs --url http://127.0.0.1:3080
用 serve 提供遠程 ACP¶
如果希望從遠程機器、共享 agent 場景或通過 HTTP 客戶端訪問,可以使用 serve 啓動 long-lived HTTP+SSE endpoint。
本地啓動:
dsh --profile acp serve --port 7800
serve 默認綁定到 127.0.0.1。如果需要遠程訪問,需要顯式配置 host 和 token:
dsh --profile acp serve --host 0.0.0.0 --port 7800 --token s3cret
HTTP 路由包括:
POST /acp
GET /acp/stream
DELETE /acp
GET /acp/healthz
dsh/* 只讀擴展¶
ACP 標準主要描述一次會話的協議能力。圍繞會話的主機側數據,例如 sessions、jobs、goals、skills 和 agent tree,可以通過 dsh/* vendor methods 暴露。
這些方法是隻讀的,適合用於查看當前 DSH 宿主側的會話、任務、目標、技能和 agent 樹數據。
適用場景與注意¶
這個插件適合以下情況:
- 你已經在用
dsh,希望從 Zed 或其他 ACP 客戶端驅動dshagent。 - 你希望編輯器裏能接收流式輸出、計劃更新、工具調用和審批請求。
- 你希望把
dsh web的 GUI 和 ACP 放在同一個進程、同一個端口。 - 你需要一個遠程 HTTP+SSE ACP endpoint。
使用前需要注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。 - 需要 Node.js
>= 22和dshCLI。 serve默認綁定本地地址,遠程訪問必須顯式配置 host 和 token。session/fork和 elicitation 目前屬於 roadmap,並且在 ACP SDK 中仍爲 UNSTABLE。dsh/*vendor methods 是隻讀接口。
鏈接¶
目錄頁:
https://www.skillhub.cn/plugins/dushaobindoudou/dsh-acp
GitHub:
https://github.com/dushaobindoudou/dsh-acp