完全な例:組み込み AI 従業員の作成
ここでは、プラグイン開発を案内する組み込み AI 従業員を完全な例として作成します。この例では従業員を Dev Helper と名付け、Tool、Skill、システムプロンプトを設定します。ユーザーが「Alice に挨拶して」と言うと、従業員は welcome-developer Skill を読み込み、greetDeveloper Tool で名前を確認してから、ユーザーが使用している言語で挨拶を生成します。
- サーバーサイド Tool の定義 —
defineTools()と Tool の基本構造を確認する - Skill の定義 —
SKILLS.mdと Tool のバインドを確認する - 組み込み AI 従業員の定義 —
defineAIEmployee()と従業員ディレクト リを確認する
完成後の動作
完了後、このプラグインは以下の機能を提供します:
Dev Helperという名前の組み込み AI 従業員の作成- 従業員に
welcome-developerSkill を自動的にバインド - Skill を介して
greetDeveloperTool を呼び出し、開発者の名前を確認 - ユーザーが現在使用している言語に基づいた挨拶と、その後の質問を生成
完成時のディレクトリ構造
この例ではフロントエンドのコードは不要であり、src/server/plugin.ts で手動で登録する必要もありません。
ステップ 1:Tool を定義する
src/ai/ai-employees/dev-helper/skills/welcome-developer/tools/greetDeveloper.ts を作成します:
ステップ 2:Skill を定義する
src/ai/ai-employees/dev-helper/skills/welcome-developer/SKILLS.md を作成します:
greetDeveloper.ts は現在の Skill の tools/ ディレクトリにあるため、改めて tools: [greetDeveloper] と記述する必要はありません。
ステップ 3:AI 従業員のプロフィールを定義する
src/ai/ai-employees/dev-helper/index.ts を作成します:
username はデータベース内の一意の識別子です。リリース後に不用意に変更しないでください。変更すると、NocoBase は新しい値を別の組み込み AI 従業員として認識します。
username は安定させるだけでなく、他のプラグインや既存の AI 従業員との重複を避ける必要があります。データベースに同じ username が既に存在する場合、プラグインのロード時に対応するレコードが更新され、隔離された新しい従業員は作成されません。
プラグインをリロードすると、コード内の category、nickname、position、avatar、bio、greeting、デフォルトのシステムプロンプト、Skill および Tool のバインド、chatSettings、および sort がデータベースに再書き込みされる可能性があります。正式なプラグインでは、developer-helper-dev-assistant のようにプラグインのプレフィックスを付けた名称を使用することを推奨します。
ステップ 4:システムプロンプトを定義する
src/ai/ai-employees/dev-helper/prompt.md を作成します:
これで、ディレクトリ関係による自動バインドが完了しました:
ステップ 5:有効化して確認する
再ビルドまたは開発サーバーを再起動し、これらのファイルを含むプラグインが有効になっていることを確認してください。その後、AI 従業員管理ページで以下を確認します:
Dev Helperが表示されていること- 従業員が組み込み従業員としてマークされていること
- 従業員専用の Skill に
welcome-developerが含まれていること - Skill 読み込み後に
greetDeveloperが使用可能であること
対話の中で以下を入力してください:
期待されるフローは以下の通りです:
Tool を呼び出すたびにユーザーの確認を求められたくない場合は、defaultPermission: 'ALLOW' に設定してください。削除、一括変更、または外部への副作用を伴う Tool の場合は、デフォルトの ASK を保持するのが適切です。
まとめ
関連リンク
- AI 従業員プラグイン開発 — Tool、Skill と組み込み AI 従業員のリレーションについて
- サーバーサイド Tool の定義 —
defineTools()の完全な設定について - Skill の定義 —
SKILLS.mdのフィールドと書き方について - 組み込み AI 従業員の定義 —
defineAIEmployee()とディレクトリバインドについて - AI 従業員プラグインの国際化 — 例にある管理インターフェースの文言に翻訳を追加する方法

