DeepSeek Harness: コミュニティプラグイン
最終更新:2026-08-31
DSH の「すべてはプラグイン」は技術アーキテクチャだけでなく——エコシステムのビジョンです。公式チームがコアツールを提供し、コミュニティが無限の可能性を提供します。データベース操作から API 統合、コード分析から自動デプロイまで、コミュニティプラグインは DSH の能力の境界を継続的に拡張しています。
📋 前提知識:06-tools.md の完了、ツールとプラグインの基礎に精通していること
1. 学習内容
- プラグインマーケットプレイスと dsh-plugin GitHub トピック
- コミュニティプラグインのインストールと管理
- 推奨コミュニティプラグイン
- プラグインセキュリティ評価方法
- プラグイン開発と公開フロー
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) プラグイン命名規約
コミュニティプラグインは統一された命名規約に従います:
npm パッケージ名:@dsh-plugin/plugin-name
GitHub リポジトリ名:dsh-plugin-name
設定参照名:plugin-name
例:
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 でプラグイン検索
# dsh-plugin トピックのリポジトリを検索
gh repo list --topic dsh-plugin --limit 20
# スター数でソート
gh search repos "dsh-plugin" --sort stars --limit 20
▶ サンプル 2:npm でプラグイン検索
# dsh プラグインパッケージを検索
npm search @dsh-plugin
# 特定のプラグインの詳細を表示
npm info @dsh-plugin/database
3. コミュニティプラグインのインストール
(1) インストール方法
DSH は3つのプラグインインストール方法をサポートしています:
| 方法 | コマンド | 説明 |
|---|---|---|
| npm インストール | dsh plugin add @dsh-plugin/name |
npm から自動ダウンロード |
| GitHub インストール | dsh plugin add github:user/repo |
GitHub からインストール |
| ローカルパス | dsh plugin add ./path/to/plugin |
ローカル開発プラグインをインストール |
▶ サンプル 3:データベースプラグインのインストール
# 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) ソースからのインストール
# 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:プラグイン管理コマンド
# インストール済みプラグインの一覧
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) 設定ファイルによるプラグイン管理
プラグインは設定ファイルでも管理できます:
# 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) データベースカテゴリ
| プラグイン | 機能 | Stars | ステータス |
|---|---|---|---|
| @dsh-plugin/database | SQL クエリ、マイグレーション、Schema 検査 | 2.1k | ✅ Active |
| @dsh-plugin/redis | Redis 操作、キャッシュ管理 | 890 | ✅ Active |
| @dsh-plugin/mongodb | MongoDB ドキュメント操作 | 650 | ✅ Active |
| @dsh-plugin/prisma | Prisma ORM 統合 | 430 | ⚠️ Experimental |
▶ サンプル 5:データベースプラグインの使用
# dsh.config.yaml
plugins:
- name: "@dsh-plugin/database"
config:
connections:
main: "postgresql://localhost/myapp"
analytics: "postgresql://localhost/analytics"
Agent がデータベースを直接クエリできます:
👤 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 カテゴリ
| プラグイン | 機能 | Stars | ステータス |
|---|---|---|---|
| @dsh-plugin/docker | Docker コンテナ管理 | 1.5k | ✅ Active |
| @dsh-plugin/k8s | Kubernetes リソース操作 | 980 | ✅ Active |
| @dsh-plugin/ci | CI/CD パイプライン管理 | 560 | ✅ Active |
| @dsh-plugin/terraform | IaC インフラ管理 | 340 | ⚠️ Experimental |
(3) コード品質カテゴリ
| プラグイン | 機能 | Stars | ステータス |
|---|---|---|---|
| @dsh-plugin/linter | ESLint/Pylint 統合 | 1.8k | ✅ Active |
| @dsh-plugin/test-runner | テスト実行とカバレッジ | 1.2k | ✅ Active |
| @dsh-plugin/code-metrics | コード複雑度分析 | 780 | ✅ Active |
| @dsh-plugin/deps-audit | 依存関係セキュリティ監査 | 920 | ✅ Active |
▶ サンプル 6:Linter プラグインの使用
👤 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 統合カテゴリ
| プラグイン | 機能 | Stars | ステータス |
|---|---|---|---|
| @dsh-plugin/github | GitHub API 操作 | 2.3k | ✅ Active |
| @dsh-plugin/jira | JIRA タスク管理 | 560 | ✅ Active |
| @dsh-plugin/slack | Slack メッセージ送信 | 890 | ✅ Active |
| @dsh-plugin/notion | Notion ページ操作 | 450 | ✅ Active |
5. プラグインセキュリティ評価
(1) 評価フレームワーク
コミュニティプラグインをインストールする前に、必ずセキュリティ評価を実施してください:
graph TD
A[Discover Plugin] --> B[Review Source Code]
B --> C[Check Dependencies]
C --> D[Review Permissions]
D --> E[Evaluate Maintenance Status]
E --> F{Security Evaluation Passed?}
F -->|Yes| G[Install and Use]
F -->|No| H[Abandon or Fix Before Using]
(2) 評価チェックリスト
| チェック項目 | 説明 | リスクレベル |
|---|---|---|
| ソースコードレビュー | メインコードを読んで悪意のあるロジックがないことを確認 | 🔴 Critical |
| 依存関係チェック | package.json の依存関係が信頼できることを確認 | 🔴 Critical |
| 権限レビュー | プラグインが要求するファイル/ネットワーク/システム権限 | 🟡 Important |
| メンテナンス状況 | 最終更新日時、Issue の対応速度 | 🟡 Important |
| コミュニティ評価 | GitHub Stars、ダウンロード数、ユーザーフィードバック | 🟢 Reference |
| ライセンス | オープンソースライセンスタイプと制限 | 🟢 Reference |
(3) ソースコードレビューの要点
▶ サンプル 7:プラグインソースコードのレビュー
# プラグインリポジトリをクローンしてレビュー
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/
(4) プラグイン権限システム
DSH プラグインは必要な権限を宣言する必要があります:
// Plugin permission declaration
export default definePlugin({
name: 'dsh-plugin-example',
permissions: [
'fs.read', // Read files
'fs.write', // Write files
'network.outbound', // Outbound network requests
'shell.execute', // Execute Shell commands
'env.read' // Read environment variables
],
// ...
});
インストール時に、DSH は権限リクエストを表示します:
📦 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:テンプレートを使ったプラグイン作成
# 公式テンプレートを使用
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) プラグインプロジェクト構造
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 への公開
# ビルド
npm run build
# 公開
npm publish --access public
# GitHub Topic の追加
# GitHub リポジトリ設定で topic: dsh-plugin を追加
(4) dsh-plugin.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"
❓ よくある質問
dsh plugin disable)し、エラーログを確認してください。互換性の問題の場合、互換バージョンのインストールを試すか、プラグイン作者に連絡してください。priority フィールドで読み込み順序を制御できます。dsh plugin add ./path/to/plugin でローカルプラグインをインストールするか、内部 npm レジストリを設定してください。dsh plugin update <name> で単一プラグインを更新、または dsh plugin update --all ですべてのプラグインを更新できます。更新前にワークスペースのバックアップを推奨します。📖 まとめ
- コミュニティプラグインは GitHub トピック
dsh-pluginと npm@dsh-plugin/プレフィックスで発見 - 3つのインストール方法:npm、GitHub、ローカルパス
- 一般的なプラグインカテゴリ:データベース、DevOps、コード品質、API 統合
- セキュリティ評価の6つの要素:ソースコード、依存関係、権限、メンテナンス状況、コミュニティ評価、ライセンス
- プラグインは必要な権限を宣言する必要があり;インストール時に権限リクエストが表示される
create-dsh-pluginテンプレートでプラグイン開発;npm + GitHub に公開
📝 練習問題
1. ⭐ 基礎:GitHub で dsh-plugin トピックを検索し、最も興味のあるプラグインを3つ挙げ、その機能と使用したい理由を説明してください。
2. ⭐⭐ 応用:コミュニティプラグイン(例:@dsh-plugin/database)をインストールし、接続情報を設定して、Agent にプラグインを通じてデータをクエリさせてください。インストールと設定のプロセスを記録すること。
3. ⭐⭐⭐ チャレンジ:シンプルな DSH プラグイン(例:「現在時刻クエリ」ツール)を開発し、create-dsh-plugin テンプレートでプロジェクトを作成し、ツールロジックを書き、ローカルにインストールして、Agent に正常に呼び出させること。