# プラグインとスキル ## プラグイン ### プラグインとは何ですか? プラグインはNeotaskの機能をランタイムで拡張するTypeScriptモジュールです。新しいメッセージングチャンネル、エージェントツール、RPCメソッド、CLIコマンド、バックグラウンドサービス、スキルを追加できます。 ### 公式プラグイン **メッセージングチャンネル:** - Microsoft Teams、Matrix、Nostr、Zalo、Feishu/Lark、LINE、Nextcloud Talk、Mattermost、Tlon、Twitch **機能:** - **音声通話**, 受発信音声通話のためのSIPテレフォニーサポート - **メモリ(LanceDB)**, ベクター類似検索による長期記憶 - **MCP Native**, 外部ツールのブリッジングのためのModel Context Protocolサーバー統合 **認証プロバイダー:** - Google Antigravity OAuth、Gemini CLI OAuth、Qwen OAuth、Minimax OAuth、VS Code Copilot Proxy ### プラグイン機能 プラグインが登録できるもの: - **RPCメソッド**, クライアントが呼び出すためのカスタムWebSocketメソッド - **HTTPハンドラー**, GatewayのカスタムHTTPエンドポイント - **エージェントツール**, エージェントが呼び出せる型付きスキーマを持つ新しいツール - **CLIコマンド**, 追加のコマンドラインコマンド - **バックグラウンドサービス**, Gatewayが管理する長期実行プロセス - **スキル**, プラグインにバンドルされたスキルディレクトリ - **自動返信コマンド**, AIエージェントの関与なしで実行されるコマンド ### プラグインセキュリティ Neotask は、プラグインが実行される前に複数の段階でチェックします。 - **署名と検証。** 公開 Construct カタログのパッケージは Neotask が公開し、リリース前に自動検査され、Neotask のリリース鍵で署名されています。インストール前に、Neotask は Neotask に組み込まれた鍵で署名を確認し、ダウンロードの SHA-256 ハッシュを検証します。 - **インストールスクリプトなし。** Construct パッケージは依存関係を同梱しているため、インストール時にパッケージマネージャーやインストールスクリプトが実行されることはありません。ほかのプラグインのインストールで npm を使う場合も、インストールスクリプトは無効になっています。 - **インストール時のスキャン。** Construct 以外からインストールするプラグインは危険なコードがないかスキャンされ、重大な検出があるとインストールはブロックされます。 - **リリースごとのライセンス。** Construct プラグインは、アカウントがそのリリースに対する有効な許可を持っている間だけ読み込まれます。取り消されたリリースは読み込まれません。 - **エージェントの操作には承認。** エージェントのツール呼び出し(プラグインが追加したツールを含む)は承認ポリシーに照らしてチェックされ、承認が必要な操作は承認を待ちます。Neotask 同梱のインストール手順以外でエージェントがソフトウェアをインストールする場合は、必ず正確なコマンドが表示され、承認を待ちます。 - **任意のサンドボックス。** エージェントのツールを、コンピューター上で直接ではなく、隔離された Docker コンテナー内で実行できます。サンドボックスは既定ではオフです。有効にする方法は[セキュリティ](security.md)を参照してください。 ネイティブプラグインは Gateway のプロセス内で実行されるため、Construct 以外からインストールしたプラグインは、ご自身が実行を選んだコードです。読み込みを許可するプラグインは `plugins.allow` で指定できます。 --- ## スキル ### スキルとは何ですか? スキルはエージェントに新しいワークフローを教えるモジュール型の機能です。各スキルはmarkdownファイル(`SKILL.md`)で、関連する場合にエージェントのコンテキストに注入される指示が含まれています。 ### スキルの場所(優先順) 1. **ワークスペーススキル**, `/skills/`(最高優先度) 2. **マネージドスキル**, `~/.neotask/skills/` 3. **バンドルスキル**, Neotaskと一緒に出荷 4. **プラグインスキル**, インストールされたプラグインにパッケージされたスキル 5. **追加ディレクトリ**, 設定された追加パス(最低優先度) 複数のスキルが同じ名前を共有する場合、最高優先度の場所が優先されます。 ### スキル機能 - **ユーザー呼び出し可能**, スラッシュコマンドでスキルを直接トリガー(例:`/docker-build`) - **モデル呼び出し可能**, 関連する場合にエージェントが自律的に呼び出せるスキル - **コマンドディスパッチ**, 特定のツールにマッピングされるスキル - **要件ゲーティング**, スキルは要件が満たされたときのみ読み込まれる(必要なバイナリ、設定キー、環境変数、プラグイン) ### スキルの作成 スキルのメタデータと指示を定義するYAMLフロントマターを含む`SKILL.md`ファイルを作成します: **フロントマターフィールド:** - `name`, スキル識別子 - `description`, スキルの機能 - `homepage`, ドキュメントへのリンク - `user-invocable`, ユーザーが直接トリガーできるかどうか - `disable-model-invocation`, エージェントが自律的に呼び出すことを防ぐ - `command-dispatch`, ディスパッチ先のツール - `metadata.neotask.requires`, 前提条件(bins、config、env、plugins) **本文:** スキルの使い方をエージェントに教えるmarkdown指示(例とガイドラインを含む)。 ### スキルカタログ 利用可能なスキルは[スキルカタログ](/skills)で閲覧できます。 ### スキルカテゴリ スキルは幅広い機能をカバーしています: | カテゴリ | 例 | |----------|---------| | **生産性** | メール管理、カレンダー、ドキュメント生成 | | **開発** | Git操作、CI/CD、Docker、コードレビュー | | **コミュニケーション** | メッセージング、通知、アナウンス | | **メディア** | 画像処理、動画編集、音声文字起こし | | **AIとモデル** | モデル切り替え、プロンプト管理、RAG | | **スマートホーム** | IoTデバイス制御、自動化トリガー | | **ユーティリティ** | ファイル変換、データ変換、Webスクレイピング |