前言¶
在 DeepSeek Harness(DSH)里做 Web 侧能力时,常见做法是手写路由或改宿主配置,改完还要猜插件是否被正确挂载、Cordis 层栈是否生效。社区插件 my-first-plugin 把范围压到最小:只注册 GET /_dsh/hello 并返回固定结构的 JSON,用来确认「安装 → patch 写入 → 重启 dsh web → 请求命中」整条路径是否打通。下面介绍它的定位、安装步骤和可复现的验证方式。
这是什么¶
my-first-plugin 由维护者 LWH13345412221 发布,在 SkillHub 目录中归类为模型推理相关插件;仓库自述为「一个最小的 DeepSeek Harness 插件示例」,当前包版本为 0.1.0,采用 MIT 许可证。
它不做模型推理本身,而是作为最小插件骨架:在 Web 服务上挂一条 /_dsh/hello,返回一行 JSON。适合作为你写第一个 DSH 插件时的对照模板,或在环境排查时快速确认插件运行时是否正常。
核心功能¶
经 README 与 package.json 核对,当前版本能力如下:
- 通过
dsh.bundle.patch指向自带的cordis.patch.yml,把 bundle 挂进 profile 层栈。 - 在宿主侧(
lib/index.js)的apply()中向 Web 服务器注册GET /_dsh/hello。 - 成功请求时返回 JSON,结构为
{"ok":true,"value":{"hello":"from my-first-plugin","time":"..."}}(time为运行时生成的时间字段)。
仓库未声明额外配置项;扩展方向在 README 中仅作说明(客户端注入、config 块、更多 webServer.register),不属于 0.1.0 的默认行为。
安装与启用¶
安装命令须带 --profile web,与 README 原文一致:
dsh plugin --profile web add github:LWH13345412221/my-first-plugin
安装后,在所用 profile 的 cordis.patch.yml 中插入插件条目(插件自带同名 patch,也可整段 insert 进你的层栈):
- insert:
- id: my-first-plugin
name: 'my-first-plugin'
保存后重启 dsh web,新 bundle 才会加载。
典型用法¶
本地 Web 端口以你当前 profile 为准,将 <web-port> 替换为实际端口后执行:
curl http://127.0.0.1:<web-port>/_dsh/hello
期望响应示例:
{"ok":true,"value":{"hello":"from my-first-plugin","time":"..."}}
若得不到上述结构,按顺序检查:插件是否 add 成功、cordis.patch.yml 是否包含 my-first-plugin 条目、dsh web 是否在修改后重启。
目录结构(便于对照源码)¶
my-first-plugin/
├── lib/index.js # 宿主半侧:注册 /_dsh/hello 路由
├── cordis.patch.yml # bundle 挂载声明
├── package.json # 包信息(声明 dsh.bundle)
└── assets/banner.svg # README 横幅
适用场景与注意¶
适合谁: 刚接触 DSH 插件开发的同行,需要一份可运行的最小示例;或在已有 dsh web 环境里做「插件是否加载」的冒烟测试。
权限与安全: 插件与当前 dsh 进程同权限运行;安装前请自行阅读 GitHub 仓库 源码与 MIT 许可证,勿在未审阅的情况下直接用于生产环境。
生态说明: DSH 强调「一切皆插件」;SkillHub(目录页)是社区插件索引,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
结尾¶
经过上面的步骤,你可以用一条 curl 确认 DSH Web 插件从安装到路由响应是否完整。若要继续扩展界面、配置或多路由,可直接在仓库 README「继续扩展」小节对照修改 package.json 与 lib/index.js。
- 目录页:https://www.skillhub.cn/plugins/LWH13345412221/my-first-plugin
- GitHub:https://github.com/LWH13345412221/my-first-plugin