DeepSeek Harness: コミュニティプラグイン

最終更新:2026-08-31

DSH の「すべてはプラグイン」は技術アーキテクチャだけでなく——エコシステムのビジョンです。公式チームがコアツールを提供し、コミュニティが無限の可能性を提供します。データベース操作から API 統合、コード分析から自動デプロイまで、コミュニティプラグインは DSH の能力の境界を継続的に拡張しています。

💡 ヒント:コミュニティプラグインの品質にはばらつきがあります。インストール前に必ずセキュリティ評価を行ってください——ソースコードの確認、メンテナンス状況のチェック、依存関係の審査。レビューなしのインストールは、見知らぬ人に家の鍵を渡すようなものです。

📋 前提知識06-tools.md の完了、ツールとプラグインの基礎に精通していること

1. 学習内容

DSH vs 従来フレームワーク


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 トピックのリポジトリを検索
gh repo list --topic dsh-plugin --limit 20

# スター数でソート
gh search repos "dsh-plugin" --sort stars --limit 20

▶ サンプル 2:npm でプラグイン検索

BASH
# 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:データベースプラグインのインストール

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) データベースカテゴリ

プラグイン 機能 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:データベースプラグインの使用

YAML
# dsh.config.yaml
plugins:
  - name: "@dsh-plugin/database"
    config:
      connections:
        main: "postgresql://localhost/myapp"
        analytics: "postgresql://localhost/analytics"

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 カテゴリ

プラグイン 機能 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 プラグインの使用

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 統合カテゴリ

プラグイン 機能 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) 評価フレームワーク

コミュニティプラグインをインストールする前に、必ずセキュリティ評価を実施してください:

100%
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:プラグインソースコードのレビュー

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/

(4) プラグイン権限システム

DSH プラグインは必要な権限を宣言する必要があります:

TYPESCRIPT
// 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 は権限リクエストを表示します:

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 を追加

(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"

❓ よくある質問

Q コミュニティプラグインは公式レビューを受けていますか?
A いいえ。DSH コミュニティプラグインは開発者によって独立して公開され、公式レビューは受けていません。インストール前に必ず自身でセキュリティ評価を行ってください。
Q プラグインインストール後にエラーが発生した場合は?
A まずプラグインを無効化(dsh plugin disable)し、エラーログを確認してください。互換性の問題の場合、互換バージョンのインストールを試すか、プラグイン作者に連絡してください。
Q 複数のプラグインが競合することはありますか?
A 可能性があります。2つのプラグインが同じ名前のツールを登録した場合、DSH は先に読み込まれたものを使用します。設定の priority フィールドで読み込み順序を制御できます。
Q 社内でプライベートプラグインを使用できますか?
A はい。dsh plugin add ./path/to/plugin でローカルプラグインをインストールするか、内部 npm レジストリを設定してください。
Q プラグインの更新方法は?
A dsh plugin update <name> で単一プラグインを更新、または dsh plugin update --all ですべてのプラグインを更新できます。更新前にワークスペースのバックアップを推奨します。
Q プラグインがまだメンテナンスされているか確認するには?
A GitHub リポジトリの最新コミット日付、Issue の対応速度、npm の公開頻度を確認してください。6ヶ月以上更新がないプラグインは慎重に使用してください。

📖 まとめ


📝 練習問題

1. ⭐ 基礎:GitHub で dsh-plugin トピックを検索し、最も興味のあるプラグインを3つ挙げ、その機能と使用したい理由を説明してください。

2. ⭐⭐ 応用:コミュニティプラグイン(例:@dsh-plugin/database)をインストールし、接続情報を設定して、Agent にプラグインを通じてデータをクエリさせてください。インストールと設定のプロセスを記録すること。

3. ⭐⭐⭐ チャレンジ:シンプルな DSH プラグイン(例:「現在時刻クエリ」ツール)を開発し、create-dsh-plugin テンプレートでプロジェクトを作成し、ツールロジックを書き、ローカルにインストールして、Agent に正常に呼び出させること。

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%