Hermes Agent: プラグイン

最終更新:2026-08-31

プラグインはHermes Agentの拡張インターフェースです。組み込み機能が足りない?プラグインをインストールするだけ。Jira、Notion、Figmaに接続したい?既製のプラグインがあります。

💡 ヒント: プラグインはカスタムツールより高次の拡張方式です。1つのプラグインは複数のツール、スキル、さらには完全なサブシステムを含むことができます。Hermesプラグインマーケットには豊富なコミュニティプラグインがあります。

📋 前提知識: 第8課 ツールとツールセット

1. 学ぶ内容

# 内容
プラグインシステムアーキテクチャ
プラグインのインストールと管理
主要プラグインの紹介
カスタムプラグイン開発
プラグインのセキュリティと権限

2. ストーリー

(1) 課題:組み込みツールでは足りない

BobはJiraに接続してチケットを確認し、Notionでメモを取り、Figmaでデザインを見る必要がある。組み込みツールにはこれらの連携がない。

(2) 解決策:プラグインのインストール、ワンクリック拡張

BASH
# Jiraプラグインのインストール
hermes plugin install hermes-plugin-jira

# Notionプラグインのインストール
hermes plugin install hermes-plugin-notion

# そのまま会話で使用可能
me: PROJ-123のステータスを確認して
Agent: [Jira Plugin] PROJ-123: In Progress, 優先度 High

3. プラグインシステムアーキテクチャ

(1) プラグイン構造

hermes-plugin-jira/
├── manifest.yaml         # プラグインマニフェスト
├── tools/                # プラグインが提供するツール
│   ├── jira_search.py
│   ├── jira_create.py
│   └── jira_update.py
├── skills/               # プラグインが提供するスキル
│   └── sprint-review.yaml
├── templates/            # 出力テンプレート
└── config.yaml           # プラグイン設定

(2) プラグインマニフェスト

YAML
# manifest.yaml
name: "hermes-plugin-jira"
version: "1.2.0"
description: "Jira integration for Hermes Agent"
author: "community"
license: "MIT"

dependencies:
  hermes_version: ">=1.0.0"
  python_packages:
    - "jira>=3.5.0"

tools:
  - name: "jira_search"
    description: "Search Jira issues"
    category: "communication"
  - name: "jira_create"
    description: "Create Jira issue"
    category: "communication"
  - name: "jira_update"
    description: "Update Jira issue"
    category: "communication"

skills:
  - name: "sprint-review"
    description: "Generate sprint review report"

permissions:
  - network: ["*.atlassian.net"]
  - filesystem: []
  - env_vars: ["JIRA_URL", "JIRA_TOKEN"]

4. プラグインのインストールと管理

(1) プラグインのインストール

BASH
# プラグインマーケットからインストール
hermes plugin install hermes-plugin-jira

# Gitリポジトリからインストール
hermes plugin install git+https://github.com/user/hermes-plugin-jira

# ローカルパスからインストール
hermes plugin install ./my-plugin

# 特定バージョンのインストール
hermes plugin install hermes-plugin-jira@1.2.0

(2) 管理コマンド

BASH
# インストール済みプラグイン一覧
hermes plugin list

# 出力例:
# ┌─────────────────────┬─────────┬──────────┬─────────┐
# │ Plugin              │ Version │ Status   │ Tools   │
# ├─────────────────────┼─────────┼──────────┼─────────┤
# │ jira                │ 1.2.0   │ ✅ Active│ 3       │
# │ notion              │ 0.9.1   │ ✅ Active│ 4       │
# │ figma               │ 0.5.0   │ ⏸️ Paused│ 2       │
# └─────────────────────┴─────────┴──────────┴─────────┘

# プラグインの更新
hermes plugin update jira

# プラグインの無効化(アンインストールなし)
hermes plugin pause figma

# プラグインの有効化
hermes plugin resume figma

# プラグインのアンインストール
hermes plugin uninstall figma

5. 主要プラグイン

プラグイン 機能 ツール数
jira Jiraチケット管理 3
notion Notionページ/データベース操作 4
figma Figmaデザイン閲覧 2
github GitHub PR/Issue/Repo操作 6
gitlab GitLab CI/CD操作 5
aws AWSサービス操作 8
docker Dockerコンテナ管理 4
kubernetes K8sクラスタ操作 6
google-calendar Googleカレンダー 3
slack-advanced Slack高度機能 5
pandas データ分析拡張 4
database マルチデータベース対応 5

(1) GitHubプラグインの例

BASH
# インストール
hermes plugin install hermes-plugin-github

# 設定
hermes config set plugins.github.token "${GITHUB_TOKEN}"
hermes config set plugins.github.default_repo "myorg/myrepo"

# 使用
me: レビュー待ちのPRをリストアップ
Agent: [GitHub Plugin] レビュー待ちPR 3件:
  - #42: Fix auth flow (alice, 2h ago)
  - #43: Add rate limiting (bob, 5h ago)
  - #44: Update dependencies (carol, 1d ago)

6. カスタムプラグイン開発

(1) 最小プラグイン

PYTHON
# my_plugin/tools/hello.py
from hermes import Tool, ToolResult

class HelloTool(Tool):
    name = "hello"
    description = "Say hello to someone"
    category = "custom"
    
    parameters = {
        "name": {"type": "str", "required": True}
    }
    
    def execute(self, name: str) -> ToolResult:
        return ToolResult(
            success=True,
            data={"message": f"Hello, {name}!"},
            summary=f"Greeted {name}"
        )
YAML
# my_plugin/manifest.yaml
name: "my-plugin"
version: "0.1.0"
description: "My custom plugin"
author: "me"

tools:
  - name: "hello"
    description: "Say hello"
    category: "custom"

permissions:
  - network: []
  - filesystem: []

(2) 完全なプラグイン開発

PYTHON
# stock-plugin/tools/stock_query.py
from hermes import Tool, ToolResult
import httpx

class StockQueryTool(Tool):
    name = "stock_query"
    description = "Query stock price and metrics"
    category = "finance"
    
    parameters = {
        "symbol": {
            "type": "str",
            "required": True,
            "description": "Stock symbol (e.g., AAPL)"
        },
        "metric": {
            "type": "str",
            "required": False,
            "default": "price",
            "enum": ["price", "pe", "volume", "market_cap"]
        }
    }
    
    def execute(self, symbol: str, metric: str = "price") -> ToolResult:
        api_key = self.get_env("STOCK_API_KEY")
        response = httpx.get(
            f"https://api.stock.com/quote",
            params={"symbol": symbol, "apikey": api_key}
        )
        data = response.json()
        
        return ToolResult(
            success=True,
            data=data,
            summary=f"{symbol} {metric}: {data.get(metric, 'N/A')}"
        )

7. プラグインのセキュリティと権限

(1) 権限モデル

権限 説明
network アクセスを許可するドメイン ["*.atlassian.net"]
filesystem アクセスを許可するパス ["~/projects"]
env_vars 必要な環境変数 ["JIRA_TOKEN"]
tools 呼び出し可能な組み込みツール ["fs_read"]
subprocess コマンド実行を許可するか false

(2) セキュリティレビュー

BASH
# インストール前にプラグイン権限をレビュー
hermes plugin audit hermes-plugin-xxx

# 出力例:
# ⚠️ 権限レビュー:
# - network: *.example.com ✅
# - filesystem: /tmp ⚠️ (範囲制限を推奨)
# - subprocess: true ❌ (無効化またはコードレビューを推奨)
# - env_vars: API_KEY ✅

❓ よくある質問

Q プラグインマーケットには何個のプラグインがありますか?
A コミュニティが50以上のプラグインを保守しており、プロジェクト管理、クラウドサービス、データベース、デザインツールなどをカバー。
Q プラグインはパフォーマンスに影響しますか?
A インストール済みで未使用のプラグインは影響ゼロ。呼び出された時のみリソースを消費。
Q プラグインとカスタムツールの違いは?
A プラグインはパッケージ化された拡張パック(ツール+スキル+設定+テンプレート)。カスタムツールは単一ツール。プラグインの方が完全で共有可能。
Q 同種のプラグインを複数同時にインストールできますか?
A はい。ただしツール名の競合が発生する可能性があります。必要なもののみ有効にすることを推奨。
Q プラグインをマーケットに公開するには?
A プラグイン開発仕様に従い、hermes-pluginsリポジトリにPRを提出。レビュー通過後に公開。
Q プラグインの更新で既存設定が壊れますか?
A セマンティックバージョニングに従い、マイナーアップデートは後方互換。メジャーアップデートには破壊的変更がある可能性あり、事前に通知されます。

📖 まとめ


📝 練習問題

  1. 基本(⭐): コミュニティプラグイン(例:GitHub)をインストールし、基本操作を1回完了し、機能が正常であることを確認してください。
  2. 中級(⭐⭐): シンプルなカスタムプラグイン(1-2ツール)を開発し、Hermesにインストールしてテストしてください。
  3. 上級(⭐⭐⭐): 完全なプラグイン(ツール、スキル、設定込み)を開発し、チームに共有し、他の人がインストール後すぐに使えるようにしてください。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%