shenkonghui/dsh-llm-acp 预览 preview

shenkonghui/dsh-llm-acp

DeepSeek Harness 的 ACP 客户端 LLM 适配器 + ACP 服务设置界面。通过外部 [Agent Client Protocol](https://agentclientprotocol.com) 服务器作为模型提供方接入 harness 的 LLM 层,并提供一个 Web 设置页面用于浏览 ACP 注册表和管理已配置的服务器。

Project Overview项目介绍

This is a native plugin for DeepSeek Harness (DSH) that adds an LLM adapter for the Agent Client Protocol (ACP), plus a built-in web UI for managing ACP servers. It enables DSH to connect to external ACP-compliant LLM agent servers as model providers, expanding the range of available models beyond DSH's built-in options. Users can add any agent listed on the official ACP registry, including popular options like Claude, Codex, Devin, and OpenCode. To install the plugin, run dsh plugin add github:shenkonghui/dsh-llm-acp via DSH CLI, no extra build steps are required.

The plugin is split into two separate components: a host-side component running on the DSH backend, and a client-side component running in the DSH web UI. The host component spawns a long-lived child process for each configured ACP server, establishes a JSON-RPC connection over stdin/stdout, and registers a matching LLM provider route in DSH's LLM layer. The client component adds a new "ACP Services" section to DSH's settings page, where users can browse the registry, add/remove servers, set API keys for authentication, and select which models to expose to DSH. Users can also manually configure servers directly in DSH's settings.yaml file if they prefer.

The plugin is released under the open source MIT license. There are some known limitations users should be aware of before use: it does not support DSH's native tool ecosystem, all tool calls are handled entirely by the connected ACP server, and DSH's tool configuration is ignored. Authentication is handled lazily: if no API key is configured, the plugin will only attempt authentication if the initial session/new request fails, and will only prompt for auth method selection when multiple options are available. You can enable debug logging for ACP interactions by setting the DSH_LLM_ACP_DEBUG_DIR environment variable.

这是DeepSeek Harness(DSH)的原生插件,实现了Agent Client Protocol(ACP)客户端的LLM适配器,同时附带ACP服务管理的Web设置界面。它可以让DSH接入符合ACP协议的外部LLM Agent服务器,为DSH扩展模型来源,支持从官方ACP注册表添加服务器,包括Claude、Codex、Devin、OpenCode等主流Agent服务。

插件分为宿主端和客户端两部分,宿主端负责为每个配置好的ACP服务器启动常驻子进程,通过标准输入输出建立JSON-RPC连接,并在DSH的LLM层注册对应路由。客户端则在DSH的Web设置界面添加「ACP服务」配置入口,支持浏览注册表、添加删除服务器、配置认证信息和选择需要启用的模型。

安装方式非常简单,可直接通过DSH CLI从GitHub仓库或本地目录安装,无需额外构建步骤。支持直接在Web UI配置,也可通过settings.yaml手动编写配置。插件采用MIT许可证开源,已知不支持DSH原生工具生态,所有工具调用都由ACP服务器自行处理。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 3 warnings3 项注意
  • No license declared - all rights reserved by default; ask the author before commercial use or redistribution未声明开源许可证 —— 默认「保留所有权利」,商用或再分发前先问作者
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
  • Desktop client: installation downloads an executable - verify the publisher and checksums桌面客户端:安装会下载可执行文件,请核对发布者与校验和
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile my-acp add github:shenkonghui/dsh-llm-acp

把 shenkonghui/dsh-llm-acp 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

@deepseek-ai/dsh-llm-acp

中文 | English

DeepSeek Harness 的 ACP 客户端 LLM 适配器 + ACP 服务设置界面。通过外部 Agent Client Protocol 服务器作为模型提供方接入 harness 的 LLM 层,并提供一个 Web 设置页面用于浏览 ACP 注册表和管理已配置的服务器。

本包是一个双面 dsh 插件:宿主端(lib/index.js)是传输适配器,在 ctx.llm 上注册 provider 路由;客户端(lib/client.js)是浏览器设置页面,让用户从 Web UI 浏览 ACP 注册表并添加/删除 ACP agent 服务器。

界面

ACP注册表添加acp-server

支持acp registry上的所有acp-server[https://agentclientprotocol.com/get-started/registry]

如claude,codex,opencode等 alt text

ACP服务管理

alt text

使用acp-server进行交互

alt text

安装

dsh plugin --profile my-acp add github:shenkonghui/dsh-llm-acp

或从本地目录安装:

dsh plugin --profile my-acp add ./dsh-llm-acp

构建产物(lib/)已提交到仓库,安装时无需运行任何构建脚本。

卸载

dsh plugin --profile my-acp remove @deepseek-ai/dsh-llm-acp

这会从 profile 中移除依赖和 bundle 层。

配置

安装后,在 Web UI 中打开 设置 → ACP 服务。浏览 ACP 注册表,在任意 agent(如 Devin、Codex、Claude Agent)上点击 添加,即可将其配置为 ACP 服务器。每个已配置的服务器会创建一个独立的 provider 路由 acp-<server-id>。

在 我的服务 标签页中,点击任意已配置服务器上的 编辑 按钮,可以:

  • 设置环境变量用于认证(如 DEEPSEEK_API_KEY、OPENAI_API_KEY)。每个服务器的环境变量会与插件级 env 合并,服务级优先。
  • 选择要启用的模型。从服务器发现的模型目录中多选要暴露的模型,不选则启用全部已发现的模型。

ACP server 不单独保存权限策略。它复用会话输入框中的权限列表:read-only 和 workspace-write 将敏感操作转发到 harness 审批界面,danger-full-access 自动允许。

也可以直接在 settings.yaml 中配置:

llm-acp:
  servers:
    devin:
      command: devin
      args:
        - acp
      name: Devin
      env:
        DEEPSEEK_API_KEY: sk-xxx
      models:
        - deepseek-chat
        - deepseek-reasoner

工作原理

整体流程

1. 插件加载阶段(apply(),src/index.ts)

dsh harness 启动
  └─ apply(ctx, config)
       ├─ 读取 llm-acp 设置命名空间 + 内联 config.servers,合并成服务器列表
       ├─ 对每个服务器 createServer():
       │    ├─ resolveNpxShortcut():npx -y <pkg> 若 bin 已在 PATH 则直接用 bin
       │    ├─ new AcpConnection():spawn 长生命周期子进程(stdin/stdout JSON-RPC)
       │    │    └─ initialize() 握手 → 仅配置了 API key 时才 authenticate()
       │    │       (无 key 直接走 env/缓存登录;session/new 失败才惰性补一次 authenticate;
       │    │         广告多种方式且未选 authMethod 时不猜、不起轮,交给 UI 选择)
       │    ├─ new AcpAdapter():构造时 discoverModels() 探测模型目录
       │    └─ ctx.llm.registerAdapter(['acp-<server-id>'], adapter)
       └─ reconcileDirectory():向设置页注册可配置 provider 目录

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-deepseek-billing 下一个 Next dsh-auto-update →