
我是在一次给团队搭共享开发环境时开始研究 DeepSeek Harness 和它的插件市场组件 dsh-market 的。最初图省事直接装在本地笔记本上结果发现团队协作要共用一套智能体配置、插件和模型密钥本机方案根本没法搞。于是我把整套环境挪到了腾讯云服务器上过程中把选型、安装、插件市场接入、离线包加载这些环节都过了一遍也踩了不少坑。这篇就完整记录我在腾讯云上从零搭起 DeepSeek Harness 和 dsh-market 插件市场的全过程包括服务器配置建议、每一步操作的动机、最终跑通的步骤以及几个非常典型的排障过程给想在云端搭一套 AI 智能体插件环境的朋友做个参考。1. 为什么我要把 dsh-market 部署在腾讯云而不是本地跑1.1 dsh-market 到底解决了什么问题先搞清楚 dsh-market 是干嘛的。DeepSeek Harness 本身是一个面向多智能体编排和模型调用的运行底座可以用命令行操作也有桌面版界面。它支持连接各种模型推理服务包括远程 API 和本地部署的模型还能配置思考模式让模型在回答前先做内部推理。但这套底座真正用起来之后你会发现光有运行环境还不够——智能体要干活离不开各种各样的插件有的负责联网检索有的负责解析文档有的专门对接外部工具。插件从哪来、怎么安装、怎么管理版本就成了一个绕不开的问题。dsh-market 就是干这个的。它本质上是一个插件市场的服务端类似 VS Code 的插件市场或者你手机上的应用商店。它收集、索引、分发各种 Harness 插件并提供一套统一的安装和升级流程。你在 Harness 里配置好 dsh-market 的地址后就能像逛应用商店一样浏览插件列表、一键安装、检查更新。1.2 云服务器部署和本机部署的真正差别刚开始我图省事直接在自己电脑上装。装完发现至少四个痛点电脑不能关机关了团队其他成员就访问不了插件配置、模型 API Key 全留在我本地协作和交接都麻烦本地网络环境变化大换了 WiFi 或出差服务地址就变了一些插件需要长时间运行和稳定网络个人电脑根本扛不住。放到腾讯云上之后这些问题一次解决服务器 7x24 小时在线外网 IP 固定多智能体编排也可以一直跑。更重要的是模型 API Key 和插件配置都集中存在服务器上团队按需访问权限可控。我还测试过用轻量应用服务器和云服务器 CVM 两种产品形态。结论是如果只是自己和几个同事用选轻量应用服务器就够了价格低自带防火墙管理界面如果要跑重负载的多智能体编排任务或者可能要横向扩展计算资源就选 CVM。下面我的安装过程以轻量应用服务器为例但命令在 CVM 上完全通用。2. 腾讯云买机器与基础环境准备这步没做好后面全是坑2.1 实例规格怎么选别一上来就买最贵的在选配置这件事上我吃过亏。第一次直接买了台 1 核 2G 的最低配结果装完 Harness 本体和插件市场服务之后内存还剩不到 300M一跑多智能体编排就卡死。后来换了 2 核 4G才算够用。插一句DeepSeek Harness 的资源占用大头一般有三个Node.js 相关的服务进程、Python 运行时、以及插件市场服务本身的常驻进程。如果你只在本机简单测试2G 内存勉强能动但放到腾讯云上长期跑我建议直接从 2 核 4G 起步。如果你还打算在服务器上跑本地模型那就不是 4G 能解决的事情了至少 16G 内存加一块支持 CUDA 的显卡甚至得上 GPU 实例这个不在本文讨论范围。系统镜像我建议选 Ubuntu 22.04 LTS 或者 Debian 12。我习惯用 Ubuntu软件源里的包比较全遇到问题也好搜到解决方案。选系统时腾讯云会问你是否要配置安全组或防火墙先默认放行 SSH 端口22其他端口后面用到再放。2.2 登录服务器网页终端还是本地 SSH腾讯云控制台自带 OrcaTerm网页版终端如果你只是临时操作用它最方便打开浏览器就能进服务器。但安装插件、传文件这种重复劳动比较多我还是建议在本地电脑上用 SSH 客户端登录。Windows 上我推荐直接用 Windows Terminal 里的 OpenSSH或者用 MobaXterm 这种带文件管理功能的工具Mac 和 Linux 直接用系统自带的终端就行。连接命令很简单ssh root你的服务器公网IP登录之后先做一个常规更新apt update apt upgrade -y然后安装后续要用的基础包apt install -y curl wget git unzip zip python3 python3-pip python3-venv这里我特别提醒一句不要直接用系统的 python3 跑全局 pip install。Python 项目依赖隔离很重要后面各种插件之间很容易出现依赖冲突所以我全程用虚拟环境venv来装 Harness 和 dsh-market这是我从一开始就定下的规矩。2.3 安全组和防火墙端口放行这一步最容易漏很多人在腾讯云上部署服务软件装好了本地却访问不了九成是端口没放行。这里涉及两层轻量应用服务器要在控制台的防火墙页面加规则CVM 要在安全组里添加入站规则。以我的轻量应用服务器为例Harness 的 Web 管理界面默认监听 17860 端口dsh-market 插件市场服务我用的是 8899 端口端口可以自己改但建议避开 8080、8888 这类常见端口防止和其他服务冲突。我在防火墙里加了两条 TCP 入站规则17860 和 8899来源填 0.0.0.0/0如果团队固定 IP可以填具体 IP 段更安全。端口放行之后本地 SSH 和浏览器访问都要测试。测端口是否有响应可以用ss -tlnp | grep -E 17860|8899看到 LISTEN 状态就说明服务端口正常剩下的问题基本都在腾讯云控制台的防火墙规则上。3. 先把 DeepSeek Harness 本体装好并跑起来3.1 本体安装源码方式更适合二次开发早期我在自己电脑上装 Harness 时图省事直接用包管理器安装后面发现两个问题一是默认版本可能不是最新的二是插件配置文件的位置和我想的不一样。这次在腾讯云上我改用源码安装git clone 指定版本可控性高很多。当然如果你只是临时体验直接按官方文档用包管理器装也行。我这里讲源码方式因为后面接入 dsh-market 时很多路径和配置项你需要知道它们在哪。先确认环境里有 Node.js因为 dsh-market 服务端依赖 Nodecurl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt install -y nodejs然后用 git 拉取 Harness 源码mkdir -p /opt/deepseek-harness cd /opt/deepseek-harness git clone https://github.com/deepseek-ai/DeepSeek-Harness.git .我拉取时习惯加--depth1只拉最新提交省时间省流量git clone --depth1 https://github.com/deepseek-ai/DeepSeek-Harness.git .3.2 初始化 Python 虚拟环境和依赖安装进入项目目录后创建虚拟环境并安装依赖cd /opt/deepseek-harness python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt这一步的时间取决于服务器网络状况耐心等就行。装完之后验证 Harness 的 CLI 是否正常dsh --version如果你看到版本号输出就说明本体已经装好了。3.3 配置模型连接和思考模式这一步很关键但也最容易忽略。Harness 本体装好只是第一步它还要连上模型才能真正干活。你需要编辑 Harness 的配置文件把你使用的模型服务配好。我用的模型配置分两类远程 API 类比如 DeepSeek 官方 API需要在配置文件里填 API Key、模型名称、接口地址本地模型类比如你通过 Ollama 或 vLLM 在另一台机器上部署的模型需要在配置里指定本地服务的地址。配置完成后先跑一个最简单的测试命令确认 Harness 能正常和模型对话dsh chat --message 你好简单介绍一下你自己如果模型能正常回话说明 Harness 本体已经跑通了。这时再去装 dsh-market就不会出现市场装好了但没法用的尴尬情况。我记得第一次没验证模型连接就直接去装插件市场装好之后插件里有两个需要模型推理的功能怎么调都报错排查了半天才发现是模型 API Key 填错了。这个顺序希望大家吸取教训。4. dsh-market 插件市场的安装与接入全流程4.1 从仓库拉取 dsh-market 源码Harness 本体跑通之后接下来装 dsh-market。我的做法是把 dsh-market 单独放在一个目录里和 Harness 源码分开管理这样更新互不影响。mkdir -p /opt/dsh-market cd /opt/dsh-market git clone --depth1 https://github.com/deepseek-ai/dsh-market.git .目录创建好之后用ls -la看一下项目结构你会看到几个核心目录server插件市场服务端、registry插件注册表、plugins插件包目录、docs文档。理解了这个结构后面遇到问题才知道在哪个目录里找原因。如果你在云服务器上拉取 GitHub 仓库时网络不顺畅有一个替代方案先在本地电脑上下载源码压缩包然后用scp或腾讯云控制台的文件上传功能传到服务器再解压效果完全一样而且不依赖服务器到 GitHub 的链路质量。4.2 理解插件市场的注册表机制dsh-market 设计和代码仓库的插件索引机制很像它有一个注册表文件记录所有可用插件的名称、版本、描述、下载地址和依赖关系。安装插件时市场服务端会根据注册表信息到指定位置拉取插件包再交给 Harness 去加载。具体来说dsh-market 使用目录中的marketplace.json作为注册表入口。这个文件里的每个条目对应一个插件的基本信息。默认仓库自带的 marketplace.json 已经内置了一批官方插件你可以直接使用如果你有自己开发的插件也要往这个文件里加条目dsh-market 才能识别它。建议你先把默认注册表备份一份方便后面改坏时快速恢复cp marketplace.json marketplace.json.bak4.3 安装 dsh-market 服务端依赖并配置接入dsh-market 的服务端代码在server目录下。进入目录安装依赖并启动cd /opt/dsh-market/server npm installnpm 安装依赖的时候如果某些包拉取较慢可以考虑使用国内 npm 镜像源设置方式如下npm config set registry https://registry.npmmirror.com设置完之后重新npm install速度会明显提升。依赖装好后需要配置 dsh-market 和 Harness 的对接。打开 dsh-market 服务端的配置文件找到 Harness 管理端口或插件目录路径的相关配置项改成你实际 Harness 的地址。我把插件市场的监听端口设置为 8899插件包存储路径设置为/opt/dsh-market/pluginscp .env.example .env vim .env.env里重点确认这几个参数PORT8899插件市场服务监听端口HARNESS_URLhttp://127.0.0.1:17860Harness 本体的地址和端口PLUGIN_DIR/opt/dsh-market/plugins插件包存放目录。4.4 启动插件市场服务配置完成后用 Node 启动市场服务cd /opt/dsh-market/server node server.js如果你看到类似plugin registry server started on port 8899的日志说明服务已经起来了。为了让它常驻后台运行我用的是 nohupnohup node server.js dsh-market.log 21 然后用 curl 验证本地服务是否响应curl http://127.0.0.1:8899/api/plugins能返回 JSON 数据说明插件市场的 API 正常。这时再从本地浏览器访问http://你的服务器公网IP:8899应该能看到插件市场的管理界面。如果打不开检查我之前说的腾讯云防火墙和安全组规则。到这里插件市场就算正式跑起来了。最后还要一步在 Harness 的配置里把 dsh-market 设为插件源。打开 Harness 的配置文件找到一个叫插件源或者 marketplace 的配置段把地址http://127.0.0.1:8899填进去。这样 Harness 才能识别 dsh-market 上架的插件。5. 插件安装、离线包上传与腾讯云场景下的排障实录5.1 插件商店的一键安装与依赖问题dsh-market 跑通之后最爽的一个操作就是逛插件市场。打开 Web 界面能看到插件列表点安装按钮Harness 会自动从注册表拉取插件包并完成部署。一键安装的原理很简单市场服务端把插件包下载到PLUGIN_DIR然后通知 Harness 重新扫描插件目录。但这个环节有个典型问题插件本身可能依赖 Python 或 Node 的第三方库一键安装只负责装插件本体不负责装这些依赖。所以装完插件之后一定要看插件的说明文档把依赖补上。我装一个文档解析插件时发现需要额外装pypdf和docx两个库否则插件启用即报错。你可以在 Harness 的虚拟环境里执行source /opt/deepseek-harness/.venv/bin/activate pip install pypdf docx5.2 腾讯云上传插件包时的实用姿势云环境和本机不同你不能直接把本地文件拖进服务器。上传插件包我试过三种方法按推荐程度排序一是scp命令。包不大、数量不多时最方便scp my-plugin.zip root你的服务器IP:/opt/dsh-market/plugins/二是腾讯云控制台的文件上传功能。轻量应用服务器自带这个入口适合不会用命令行的人群。上传完成后在控制台里把文件移动到插件目录即可。三是先上传到对象存储 COS再从服务器拉取。插件包特别大超过几百 MB时用这个方式更稳。上传之后需要在 dsh-market 后台执行重新扫描或安装本地插件的操作我把上传的 zip 包放在/opt/dsh-market/plugins下然后调用市场的 APIcurl -X POST http://127.0.0.1:8899/api/plugins/install-local \ -H Content-Type: application/json \ -d {name:my-plugin, path:/opt/dsh-market/plugins/my-plugin.zip}5.3 离线包下载与手动加载有些情况下服务器网络条件不好或者插件源在国外在线安装根本拉不下来。我的应对方案是离线包加载。具体流程是先在本地电脑上下载好插件包zip 格式然后按上一节的方法上传到服务器。上传完成后手动解压到插件目录调整目录结构让 Harness 能找到它cd /opt/dsh-market/plugins unzip my-plugin.zip -d my-plugin解压后检查目录里是否有plugin.json或类似格式的插件描述文件。只要有这个文件Harness 扫描插件目录时就能识别它。如果没有就要看插件说明确认它要求的目录格式。这个手动解压 配置文件引导的方式在服务器网络不理想时是最可靠的兜底方案。5.4 真实踩过的坑版本回退、拉取超时、端口冲突最后分享一下我在这个项目里遇到的几个比较有代表性的问题。第一个坑是版本回退问题。最新版的 dsh-market 某个版本存在插件列表加载缓慢的 bug插件一多就转圈。我一开始不知道可以回退版本折腾了很久。后来查文档发现 dsh-market 支持指定版本安装在 git 仓库里直接切到历史 tag 就行cd /opt/dsh-market git fetch --tags git checkout v0.1.5-rc.2切到旧版本后重新启动服务问题就解决了。所以如果你在最新版上遇到问题不要急着怀疑网络或配置先试试回退到近期稳定 tag。第二个坑是npm install拉取依赖超时。腾讯云服务器默认连接国际网络质量一般Node 依赖经常拉到一半失败。设置国内 npm 镜像源是立竿见影的办法。Python 侧同理pip 如果慢可以临时换用国内 PyPI 镜像pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple第三个坑是端口冲突。我一开始图方便把 dsh-market 的端口设成了 8080结果和服务器上另一个监控服务冲突服务反复重启。建议部署前先用ss -tlnp检查端口占用选一个冷门端口。dsh-market 和 Harness 的端口都建议固定下来方便后续在 Nginx 里做域名转发。第四个坑是插件配置字段冲突。有些插件在安装时默认生成配置文件字段可能与 Harness 全局配置里已有字段同名导致后加载的插件覆盖先加载的配置。排查方法是逐个检查插件目录下的 *.yaml 或 config 文件确认没有重复定义相同字段。这个问题不好定位建议一开始就规范命名或者直接在插件说明里标注与全局配置的关系。整个部署过程走下来最核心的经验其实是三条一是先把 Harness 本体跑通再去装插件市场避免重复排障二是云服务器的防火墙和安全组一定要提前放行端口三是网络拉取失败时别硬等换镜像源或离线包都是成熟方案。这套流程不只适用于腾讯云你在阿里云、华为云甚至公司内网服务器上部署思路完全一致需要改的只是防火墙操作入口不同而已。如果有人按这篇在部署时卡在哪个环节我建议先看日志dsh-market 的日志在启动时指定的dsh-market.log里Harness 的日志一般在项目目录下的logs文件夹错误信息比猜要快得多。