DeepSeek Harness: 社区插件

最后更新:2026-08-31

DSH 的"一切皆插件"不只是技术架构,更是生态愿景——官方提供核心工具,社区贡献无限可能。从数据库操作到 API 集成,从代码分析到自动化部署,社区插件让 DSH 的能力边界不断扩展。

💡 提示:社区插件良莠不齐,安装前务必评估安全性——查看源码、关注维护状态、检查依赖项。不审查就安装,等于把家门钥匙交给陌生人。

📋 前置知识:已完成 06-tools.md,了解工具与插件基础

1. 你将学到


2. 插件市场与发现

DSH 与传统框架对比

(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) 评估框架

安装任何社区插件前,务必进行安全评估:

100%
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. 插件开发与发布

Agent Teams 架构

(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 个月无更新的插件需谨慎使用。 ---

📖 小节


📝 作业

1. ⭐ 基础题:在 GitHub 上搜索 dsh-plugin topic,列出 3 个你最感兴趣的插件,描述它们的功能和你想使用的原因。

2. ⭐⭐ 进阶题:安装一个社区插件(如 @dsh-plugin/database),配置好连接信息,让 Agent 通过插件查询一条数据。记录安装和配置过程。

3. ⭐⭐⭐ 挑战题:开发一个简单的 DSH 插件(如"当前时间查询"工具),使用 create-dsh-plugin 模板创建项目,编写工具逻辑,本地安装并让 Agent 成功调用。

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏