DeepSeek Harness: 社区插件
最后更新:2026-08-31
DSH 的"一切皆插件"不只是技术架构,更是生态愿景——官方提供核心工具,社区贡献无限可能。从数据库操作到 API 集成,从代码分析到自动化部署,社区插件让 DSH 的能力边界不断扩展。
💡 提示:社区插件良莠不齐,安装前务必评估安全性——查看源码、关注维护状态、检查依赖项。不审查就安装,等于把家门钥匙交给陌生人。
📋 前置知识:已完成 06-tools.md,了解工具与插件基础
1. 你将学到
- 插件市场与 dsh-plugin GitHub topic
- 社区插件的安装与管理
- 常用社区插件推荐
- 插件安全性评估方法
- 插件开发与发布流程
2. 插件市场与发现
(1) 发现插件的途径
DSH 没有中心化插件市场,插件通过以下方式发现:
| 途径 | 说明 | URL |
|---|---|---|
| GitHub Topic | dsh-plugin 标签的仓库 |
github.com/topics/dsh-plugin |
| 官方文档 | 推荐插件列表 | docs.deepseek.com/dsh/plugins |
| 社区论坛 | 用户分享与讨论 | community.deepseek.com |
| npm 搜索 | @dsh-plugin/ 前缀的包 |
npmjs.com/search?q=@dsh-plugin |
(2) 插件命名规范
社区插件遵循统一的命名规范:
TEXT
📖 仅展示
npm 包名:@dsh-plugin/plugin-name
GitHub 仓库名:dsh-plugin-name
配置引用名:plugin-name
示例:
TEXT
📖 仅展示
npm: @dsh-plugin/database → GitHub: dsh-plugin-database
npm: @dsh-plugin/git-enhanced → GitHub: dsh-plugin-git-enhanced
npm: @dsh-plugin/docker → GitHub: dsh-plugin-docker
(3) 搜索社区插件
▶ 示例 1用 GitHub CLI 搜索插件
BASH
# 搜索 dsh-plugin topic 的仓库
gh repo list --topic dsh-plugin --limit 20
# 按星标排序
gh search repos "dsh-plugin" --sort stars --limit 20
输出:
TEXT 📖 仅展示alice/dsh-plugin-database ★ 2.1k SQL query, migration, schema bob/dsh-plugin-redis ★ 890 Redis operations, cache carol/dsh-plugin-docker ★ 1.5k Docker container management ...(更多结果)
▶ 示例 2用 npm 搜索插件
BASH
# 搜索 dsh 插件包
npm search @dsh-plugin
# 查看特定插件详情
npm info @dsh-plugin/database
输出:
TEXT 📖 仅展示@dsh-plugin/database 1.2.0 SQL query, migration, schema tools @dsh-plugin/redis 2.1.0 Redis operations and cache management @dsh-plugin/docker 0.9.0 Docker container management ...(更多结果)
3. 安装社区插件
(1) 安装方式
DSH 支持三种插件安装方式:
| 方式 | 命令 | 说明 |
|---|---|---|
| npm 安装 | dsh plugin add @dsh-plugin/name |
自动从 npm 下载 |
| GitHub 安装 | dsh plugin add github:user/repo |
从 GitHub 安装 |
| 本地路径 | dsh plugin add ./path/to/plugin |
安装本地开发中的插件 |
▶ 示例 3安装数据库插件
BASH
# 从 npm 安装
dsh plugin add @dsh-plugin/database
# 安装输出
📦 Installing @dsh-plugin/database@1.2.0...
✅ Plugin installed successfully!
Available tools:
- database.query: Execute SQL queries
- database.migrate: Run database migrations
- database.schema: Inspect database schema
(2) 从源码安装
BASH
# 从 GitHub 仓库安装
dsh plugin add github:alice/dsh-plugin-redis
# 安装特定分支
dsh plugin add github:alice/dsh-plugin-redis#feature/cluster-support
# 安装特定版本标签
dsh plugin add github:alice/dsh-plugin-redis#v2.1.0
(3) 管理已安装插件
▶ 示例 4插件管理命令
BASH
# 列出已安装插件
dsh plugin list
# 输出
📦 Installed Plugins:
@dsh-plugin/database v1.2.0 ✅ enabled
@dsh-plugin/redis v2.1.0 ✅ enabled
@dsh-plugin/git-enhanced v0.8.0 ⚠️ disabled
# 禁用插件(不卸载)
dsh plugin disable @dsh-plugin/redis
# 启用插件
dsh plugin enable @dsh-plugin/redis
# 卸载插件
dsh plugin remove @dsh-plugin/database
# 更新插件
dsh plugin update @dsh-plugin/database
(4) 配置文件管理插件
插件也可以通过配置文件管理:
YAML
# dsh.config.yaml
plugins:
# npm 插件
- name: "@dsh-plugin/database"
version: "^1.2.0"
enabled: true
config:
default_connection: "postgresql://localhost/mydb"
# GitHub 插件
- name: "@dsh-plugin/redis"
source: "github:alice/dsh-plugin-redis"
version: "v2.1.0"
enabled: true
config:
host: "localhost"
port: 6379
# 本地插件
- name: "my-custom-tool"
source: "./plugins/my-custom-tool"
enabled: true
4. 常用社区插件推荐
(1) 数据库类
| 插件 | 功能 | 星标 | 状态 |
|---|---|---|---|
| @dsh-plugin/database | SQL 查询、迁移、Schema 检查 | 2.1k | ✅ 活跃 |
| @dsh-plugin/redis | Redis 操作、缓存管理 | 890 | ✅ 活跃 |
| @dsh-plugin/mongodb | MongoDB 文档操作 | 650 | ✅ 活跃 |
| @dsh-plugin/prisma | Prisma ORM 集成 | 430 | ⚠️ 实验性 |
▶ 示例 5database 插件使用
YAML
# dsh.config.yaml
plugins:
- name: "@dsh-plugin/database"
config:
connections:
main: "postgresql://localhost/myapp"
analytics: "postgresql://localhost/analytics"
输出:
TEXT 📖 仅展示✅ dsh.config.yaml validated 🔌 Plugin: @dsh-plugin/database 🔗 Connections: main (postgresql), analytics (postgresql)
Agent 可以直接查询数据库:
TEXT
📖 仅展示
👤 Alice: 查询 users 表中最近注册的 10 个用户
🤖 Agent:
🔧 Using tool: database.query
→ Connection: main
→ Query: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
→ Results: 10 rows
(2) DevOps 类
| 插件 | 功能 | 星标 | 状态 |
|---|---|---|---|
| @dsh-plugin/docker | Docker 容器管理 | 1.5k | ✅ 活跃 |
| @dsh-plugin/k8s | Kubernetes 资源操作 | 980 | ✅ 活跃 |
| @dsh-plugin/ci | CI/CD 流水线管理 | 560 | ✅ 活跃 |
| @dsh-plugin/terraform | IaC 基础设施管理 | 340 | ⚠️ 实验性 |
(3) 代码质量类
| 插件 | 功能 | 星标 | 状态 |
|---|---|---|---|
| @dsh-plugin/linter | ESLint/Pylint 等集成 | 1.8k | ✅ 活跃 |
| @dsh-plugin/test-runner | 测试运行与覆盖率 | 1.2k | ✅ 活跃 |
| @dsh-plugin/code-metrics | 代码复杂度分析 | 780 | ✅ 活跃 |
| @dsh-plugin/deps-audit | 依赖安全审计 | 920 | ✅ 活跃 |
▶ 示例 6linter 插件使用
TEXT
📖 仅展示
👤 Bob: 检查 src/ 目录下的代码质量
🤖 Agent:
🔧 Using tool: linter.check
→ Directory: src/
→ Config: .eslintrc.json
→ Results: 12 warnings, 3 errors
Errors:
- src/utils/format.ts:45 — Unexpected any type
- src/routes/api.ts:128 — Missing return type
- src/models/user.ts:23 — Unused import
(4) API 集成类
| 插件 | 功能 | 星标 | 状态 |
|---|---|---|---|
| @dsh-plugin/github | GitHub API 操作 | 2.3k | ✅ 活跃 |
| @dsh-plugin/jira | JIRA 任务管理 | 560 | ✅ 活跃 |
| @dsh-plugin/slack | Slack 消息发送 | 890 | ✅ 活跃 |
| @dsh-plugin/notion | Notion 页面操作 | 450 | ✅ 活跃 |
5. 插件安全性评估
(1) 评估框架
安装任何社区插件前,务必进行安全评估:
graph TD
A[发现插件] --> B[查看源码]
B --> C[检查依赖]
C --> D[审查权限]
D --> E[评估维护状态]
E --> F{安全评估通过?}
F -->|是| G[安装使用]
F -->|否| H[放弃或修复后使用]
(2) 评估检查清单
| 检查项 | 说明 | 风险等级 |
|---|---|---|
| 源码审查 | 阅读主要代码,确认无恶意逻辑 | 🔴 关键 |
| 依赖检查 | 检查 package.json 中的依赖是否可信 | 🔴 关键 |
| 权限审查 | 插件请求了哪些文件/网络/系统权限 | 🟡 重要 |
| 维护状态 | 最后更新时间、Issue 响应速度 | 🟡 重要 |
| 社区评价 | GitHub Stars、下载量、用户反馈 | 🟢 参考 |
| 许可证 | 开源许可证类型和限制 | 🟢 参考 |
(3) 源码审查要点
▶ 示例 7审查插件源码
BASH
# 克隆插件仓库审查
git clone https://github.com/user/dsh-plugin-example.git
cd dsh-plugin-example
# 检查主入口文件
cat src/index.ts
# 检查依赖
cat package.json | grep -A 20 "dependencies"
# 检查是否有可疑的网络请求
grep -r "fetch\|http\|axios\|request" src/
# 检查是否有文件系统操作
grep -r "fs\.\|readFile\|writeFile\|exec\|spawn" src/
# 检查是否有环境变量访问
grep -r "process\.env" src/
输出:
TEXT 📖 仅展示# cat src/index.ts → 主入口文件内容 # package.json dependencies → 依赖列表 # grep fetch/http/axios → 3 matches(均为内部 API 调用) # grep fs./readFile/writeFile → 2 matches(配置文件读写) # grep process.env → 1 match(读取 DSH_API_KEY)
(4) 插件权限系统
DSH 插件需要声明所需权限:
TYPESCRIPT
// 插件的权限声明
export default definePlugin({
name: 'dsh-plugin-example',
permissions: [
'fs.read', // 读取文件
'fs.write', // 写入文件
'network.outbound', // 出站网络请求
'shell.execute', // 执行 Shell 命令
'env.read' // 读取环境变量
],
// ...
});
安装时 DSH 会展示权限请求:
TEXT
📖 仅展示
📦 Installing @dsh-plugin/example@1.0.0
⚠️ This plugin requests the following permissions:
✅ fs.read — Read files in workspace
⚠️ network.outbound — Make outbound HTTP requests
🔴 shell.execute — Execute shell commands
Continue installation? (y/n)
6. 插件开发与发布
(1) 插件开发模板
▶ 示例 8使用模板创建插件
BASH
# 使用官方模板
npx @deepseek-ai/create-dsh-plugin my-plugin
# 输出
📁 Creating plugin: my-plugin
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
└── README.md
✅ Plugin scaffolded! Run:
cd my-plugin
npm install
npm run dev
(2) 插件项目结构
TEXT
📖 仅展示
dsh-plugin-my-plugin/
├── src/
│ ├── index.ts # 插件主入口
│ ├── tools/ # 工具定义
│ │ └── my-tool.ts
│ └── services/ # 服务定义
│ └── my-service.ts
├── package.json
├── tsconfig.json
├── dsh-plugin.yaml # 插件元数据
└── README.md
(3) 发布到 npm
BASH
# 构建
npm run build
# 发布
npm publish --access public
# 添加 GitHub Topic
# 在 GitHub 仓库设置中添加 topic: dsh-plugin
输出:
TEXT 📖 仅展示✅ Build successful 📦 Published to npm as @dsh-plugin/my-plugin@1.0.0 🔗 Add topic 'dsh-plugin' on GitHub for discoverability
(4) dsh-plugin.yaml 元数据
YAML
name: dsh-plugin-my-plugin
version: 1.0.0
description: "A custom DSH plugin for database operations"
author: "Alice"
license: "MIT"
repository: "https://github.com/alice/dsh-plugin-my-plugin"
keywords:
- dsh-plugin
- database
- tools
permissions:
- fs.read
- network.outbound
compatibility:
dsh: ">=0.5.0"
输出:
TEXT 📖 仅展示✅ dsh-plugin.yaml validated 📦 Plugin: dsh-plugin-my-plugin v1.0.0 🔑 Permissions: fs.read, network.outbound 🔗 Compatibility: DSH >=0.5.0
❓ 常见问题
Q 社区插件是否经过官方审核?
A 否。DSH 社区插件由开发者自行发布,未经官方审核。安装前务必自行评估安全性。
Q 插件安装后出错怎么办?
A 先禁用插件(
dsh plugin disable),然后检查错误日志。如果是兼容性问题,尝试安装兼容版本或联系插件作者。Q 多个插件之间会冲突吗?
A 可能。如果两个插件注册了同名工具,DSH 会按加载顺序取第一个。配置中可以用
priority 字段控制加载顺序。Q 可以在公司内部使用私有插件吗?
A 可以。使用
dsh plugin add ./path/to/plugin 安装本地插件,或配置内部 npm registry。Q 插件如何更新?
A 运行
dsh plugin update <name> 更新单个插件,或 dsh plugin update --all 更新所有插件。建议更新前先备份工作区。Q 如何知道一个插件是否还在维护?
A 检查 GitHub 仓库的最近 commit 日期、Issue 响应速度、npm 发布频率。超过 6 个月无更新的插件需谨慎使用。 ---
📖 小节
- 社区插件通过 GitHub topic
dsh-plugin和 npm@dsh-plugin/前缀发现 - 三种安装方式:npm、GitHub、本地路径
- 常用插件类别:数据库、DevOps、代码质量、API 集成
- 安全评估六要素:源码、依赖、权限、维护状态、社区评价、许可证
- 插件必须声明所需权限,安装时展示权限请求
- 开发插件使用
create-dsh-plugin模板,发布到 npm + GitHub
📝 作业
1. ⭐ 基础题:在 GitHub 上搜索 dsh-plugin topic,列出 3 个你最感兴趣的插件,描述它们的功能和你想使用的原因。
2. ⭐⭐ 进阶题:安装一个社区插件(如 @dsh-plugin/database),配置好连接信息,让 Agent 通过插件查询一条数据。记录安装和配置过程。
3. ⭐⭐⭐ 挑战题:开发一个简单的 DSH 插件(如"当前时间查询"工具),使用 create-dsh-plugin 模板创建项目,编写工具逻辑,本地安装并让 Agent 成功调用。