AI 従業員プラグイン開発

NocoBase では、プラグイン独自の業務機能を AI 従業員に提供できます。3 つの拡張ポイントは、それぞれ異なるレイヤーを担当します:

  • Tool(ツール) — データの検索、API の呼び出し、レコードの変更など、具体的な操作を実行する
  • Skill(スキル) — Tool をいつ使用し、どのような手順でタスクを完了するかをモデルに指示する
  • 組み込み AI 従業員(Built-in AI Employee) — ロールプロフィール、システムプロンプト、Skill、Tool を組み合わせ、すぐに利用できる従業員を構成する

通常、登録 API を手動で呼び出す必要はありません。ファイルをプラグインの src/ai 規約ディレクトリに配置すると、NocoBase がプラグインのロード時に自動的にスキャンして登録します。Tool にカスタムカード、モーダル、またはブラウザ側の実行ロジックが必要な場合にのみ、プラグインの src/client-v2/plugin.tsx で対応するフロントエンドコンポーネントまたは実行ロジックを登録します。

開始する前に、アプリケーションに @nocobase/plugin-ai がインストールされ、有効になっていることを確認してください。プラグインコードでは、@nocobase/ai@nocobase/actions が提供する型および定義関数を使用できます。

事前に読むドキュメント
  • 最初のプラグインを作成する — プラグイン開発の経験がない場合は、まずプラグインのディレクトリ、ビルド、有効化の流れを確認してください
  • AI 従業員 — AI 従業員の設定と基本的な使用方法を確認してください

クイックインデックス

実現したいこと参照先
AI にサーバーサイドの操作を呼び出させるサーバーサイド Tool の定義
複数の Tool の呼び出しフローを規定するSkill の定義
プラグインと共に固定の AI ロールを提供する組み込み AI 従業員の定義
Tool、Skill、従業員の完全な組み合わせを確認する完全な例:組み込み AI 従業員の作成
Tool に確認、選択、編集インターフェースを追加するTool にフロントエンドインタラクションを追加する
Tool と Skill の管理画面に翻訳を追加するAI 従業員プラグインの国際化
登録、バインド、実行に関する問題を解決するよくある問題

どのレイヤーを拡張するかを決める

Tool、Skill、組み込み AI 従業員は、互いに独立した 3 つの機能ではなく、下位から上位へ段階的に組み合わせる機能です。すべてのプラグインで 3 つのレイヤーを実装する必要はありません。

Tool:AI が具体的な操作を実行できるようにする

Skill:AI が決められた方法で一連のタスクを完了できるようにする

組み込み AI 従業員:これらの機能を固定のロールと利用エントリにまとめる

要件に応じて、どのレイヤーから開始するかを判断できます:

  • AI にデータの検索、API の呼び出し、レコードの変更のみを行わせる場合は、Tool の定義だけで十分です
  • Tool の呼び出し順序、確認手順、出力形式を規定する必要がある場合は、それらの Tool に Skill を定義します
  • プラグインの有効化後に固定のロールを直接提供したい場合は、組み込み AI 従業員を作成し、対応する Skill と Tool をバインドします

3 つのレイヤーをすべて使用する場合、1 回のタスクは次の順序で実行されます:

  1. ユーザーが AI 従業員にタスクを依頼する
  2. AI 従業員がシステムプロンプトに基づいて、使用する Skill を判断する
  3. Skill が、呼び出す Tool とその順序をモデルに指示する
  4. Tool が検索、書き込み、または外部リクエストを実行し、結果を返す
  5. AI 従業員が Tool の結果に基づいて最終回答をまとめる

Tool のフロントエンドカードは、第 4 の機能レイヤーではありません。Tool でユーザーによる確認、オプションの選択、またはパラメータの編集が必要な場合に、ToolCall にインタラクション用の UI を追加するものです。

AI リソースを src/ai に配置する

NocoBase はディレクトリ規約に従って、プラグイン内の AI リソースを検出します。標準のプラグインディレクトリを使用する場合は、Tool、Skill、組み込み AI 従業員を src/ai に配置するだけで、src/server/plugin.tsload() で個別に登録する必要はありません。

完全なディレクトリは、次のように構成できます:

src/ai/
├── tools/
│   └── searchDocs.ts
├── skills/
│   └── document-search/
│       ├── SKILLS.md
│       └── tools/
│           └── readDocument.ts
└── ai-employees/
    ├── translator.ts
    └── developer/
        ├── index.ts
        ├── prompt.md
        ├── skills/
        └── tools/

配置場所ごとに、登録方法が異なります:

ファイルまたはディレクトリNocoBase の処理方法
src/ai/tools/<name>.ts独立した Tool を登録する
src/ai/skills/<name>/SKILLS.mdSkill を登録する
Skill ディレクトリ配下の tools/Tool を登録し、現在の Skill に自動的にバインドする
src/ai/ai-employees/<name>.ts単一ファイル形式の組み込み AI 従業員を登録する
src/ai/ai-employees/<name>/index.tsディレクトリ形式の組み込み AI 従業員を登録する
AI 従業員ディレクトリ配下の prompt.mdその従業員のデフォルトシステムプロンプトとして使用する
AI 従業員ディレクトリ配下の skills/tools/リソースを登録し、現在の従業員に自動的にバインドする

プラグインのロード時、NocoBase はプラグイン自身の load() を実行する前に、次の処理を順番に完了します:

  1. Tool をスキャンして登録する
  2. SKILLS.md を解析し、Skill ディレクトリ内の Tool を対応する Skill にバインドする
  3. 組み込み AI 従業員をロードし、従業員ディレクトリ内の prompt.md、Skill、Tool を統合する

src/client-v2 は、この自動スキャンの対象ディレクトリではありません。Tool にフロントエンドカード、モーダル、またはブラウザ側の実行ロジックが必要な場合にのみ、src/client-v2/plugin.tsx で追加登録します。

拡張ポイントとディレクトリのクイックリファレンス

拡張ポイント役割デフォルトの配置場所
Tool検索、書き込み、外部リクエストなどの具体的な操作を実行するsrc/ai/**/tools/
Skill処理フロー、Tool の呼び出し順序、出力制約を規定するsrc/ai/**/skills/<name>/SKILLS.md
組み込み AI 従業員固定のロールを定義し、システムプロンプト、Skill、Tool を構成するsrc/ai/ai-employees/
Tool のフロントエンドカードToolCall を表示し、確認、編集、拒否の操作を受け付けるsrc/client-v2/

デフォルトでは、まず Tool を実装します。固定のワークフローが必要な場合は Skill を追加し、固定のロールを提供する場合は組み込み AI 従業員を作成します。Tool にブラウザ上のインタラクションが必要な場合にのみ、フロントエンドカードを追加します。

関連リンク