dsh-acp:DSH 的 ACP 服務器,用於 Zed 等 IDE

前言

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 的計劃清單 (plan update),在回合開始時自動清除。
  • 圖像理解:支持 ACP image prompt 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 和終端交互等增強體驗。

羽毛球分组比赛记分
小程序二维码

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

小夜