メタデータの重要性
ChatGPT と Codex は、提供されたメタデータに基づいてツールを呼び出すタイミングを判断します。名前、説明、パラメーターのドキュメントを適切に記述すると、関連するプロンプトに対する再現率が高まり、意図しない呼び出しが減ります。メタデータも製品の文言と同様に、継続的な改善、テスト、分析が必要です。
評価基準となるプロンプトセットの準備
メタデータを調整する前に、ラベル付きのデータセットを用意します。
- 直接的なプロンプト: ユーザーが製品名やデータソースを明示するケース
- 間接的なプロンプト: ユーザーがツール名を挙げずに、求める結果を説明するケース
- ネガティブプロンプト: 組み込みツールや他のツールでリクエストに対応すべきケース
各プロンプトで期待する動作(自分のツールを呼び出す、何もしない、別のツールを使う)を記録します。このセットは回帰テストでも再利用します。
モデルの判断を導くメタデータの作成
各ツールについて、次の項目を記述します。
- 名前: ドメインとアクションを組み合わせます(
calendar.create_event)。 - 説明: 「…の場合に使用します」で始め、使用してはいけないケースも明記します(「リマインダーには使用しないでください」など)。
- パラメーターのドキュメント: 各引数を説明し、例を含めます。入力に制約がある場合は、許可された値を使用します。
- 読み取り専用のヒント: 情報の取得や計算のみを行い、
会話の外部でデータを作成、更新、削除したり、外部へ送信したりすることのないツールには、
readOnlyHint: trueを付与します。 - 破壊的操作のヒント: ユーザーデータを削除または上書きしないツールには、
destructiveHint: falseを付与します。 - オープンワールドのヒント: 公開インターネットや範囲が限定されない外部の対象にアクセスするツールには、
openWorldHint: trueを付与します。ウェブ検索などの読み取り専用ツールも含まれます。 アクセス先が特定の非公開アカウントやワークスペース内に限られるツールには、 サービスが外部でホストされていてもfalseを使用します。
開発者モードでの評価
- ChatGPT の 設定 → セキュリティとログインで開発者モードを有効にします。 続いて、ChatGPT プラグインで MCP サーバーを登録します。
- 評価基準となるプロンプトセットを一通り実行し、選択されたツール、渡された引数、コンポーネントがレンダリングされたかどうかを記録します。
- 各プロンプトについて、適合率(正しいツールが実行されたか)と再現率(実行すべきときにツールが実行されたか)を追跡します。
モデルが誤ったツールを選択した場合は、想定する利用場面を強調するよう説明を修正するか、ツールの適用範囲を絞ります。
段階的な改善
- どの変更が改善につながったかを把握できるよう、メタデータのフィールドは一度に 1 つずつ変更します。
- 修正内容を、タイムスタンプとテスト結果とともに記録します。
- デプロイ前に曖昧な表現を見つけられるよう、レビュー担当者と差分を共有します。
修正するたびに評価を繰り返します。再現率のわずかな改善を追求する前に、ネガティブプロンプトで高い適合率を確保することを目指します。
本番環境の監視
MCP サーバーの運用を開始したら、次のことを行います。
- ツール呼び出しの分析結果を毎週確認します。「誤ったツール」と確認されたケースが急増した場合は、通常、メタデータと実際の利用状況にずれが生じている兆候です。
- ユーザーのフィードバックを収集し、よくある誤解を解消できるよう説明を更新します。
- プロンプトを定期的に再実行する予定を組みます。特に、新しいツールの追加後や構造化フィールドの変更後には実施してください。
メタデータは継続的に育てる資産として扱います。文言と評価を丁寧に工夫するほど、ツールが見つかりやすくなり、呼び出しも円滑になります。