> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/maiagent-user-guide/ja/build/hook/setup.md).

# Hook の追加と設定

標準テンプレートから Hook を作成し、パラメータ（禁止語リスト、判定モデル、検出サービス、ブロックメッセージなど）を調整して、Agent に関連付けます。

このページでは、標準テンプレートから Hook を作成し、パラメータを調整して Agent に関連付け、動作させる方法を説明します。

## <mark style="color:blue;">1. Hook の追加</mark> <a href="#create-hook" id="create-hook"></a>

### 1. Hook リストを開く <a href="#hook-list" id="hook-list"></a>

左側のメニューから <mark style="color:blue;">AI 機能</mark> → <mark style="color:blue;">Hook</mark> を開きます。リストには、現在の組織にあるすべての Hook と、その**名前、説明、タイプ、インターセプトタイミング、アクション、関連付けられた AI アシスタント、有効状態、作成者、更新日時**が表示されます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-6e59d6234d2cd7e2151d3e9a72ba87cffaab5b47%2Fhook-list.png?alt=media" alt="Hook リストページ"><figcaption><p>Hook リストでは、各 Hook のタイプ、インターセプトタイミング（介入するタイミング）、アクション（書き換え／ブロック）、掛けられている Agent、有効状態を確認できます。</p></figcaption></figure>

### 2. テンプレートを選択する <a href="#pick-template" id="pick-template"></a>

右上の <mark style="color:blue;">Hook を追加</mark> をクリックし、ポップアップウィンドウで標準テンプレートを選択します。各テンプレートカードには**インターセプトタイミング**と**アクション**が表示されているため、用途をすぐに判断できます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-2cfaec04f48cf340169889f5d617c82c0f9a88f7%2Fhook-create-modal.png?alt=media" alt="Hook の作成：テンプレートの選択"><figcaption><p>テンプレートの選択：7 種類の標準テンプレートには、それぞれインターセプトタイミング（ユーザーメッセージ受信時／AI 回答生成後）とアクション（書き換え／ブロック）が表示されます。</p></figcaption></figure>

{% hint style="info" %}
作成手順は、**テンプレート**（使用するタイプ）→ **基本情報**（名前、説明）→ **AI アシスタントに適用**（関連付ける Agent）の 3 つのタブに分かれています。テンプレートを選択したら、順番に入力してください。
{% endhint %}

## <mark style="color:blue;">2. パラメータの調整</mark> <a href="#configure" id="configure"></a>

テンプレートごとに異なるパラメータがあります。作成後、Hook の設定ページで調整できます。一般的なパラメータは次のとおりです。

| テンプレート           | 主なパラメータ                                         | 説明                                                                  |
| ---------------- | ----------------------------------------------- | ------------------------------------------------------------------- |
| 個人情報マスキング        | マスキングする PII タイプ                                 | 検出するタイプ（Email／携帯電話番号／身分証明書番号／クレジットカード）を選択します                        |
| セマンティック個人情報マスキング | 個人情報検出モデルと検出タイプ、最小信頼度、マスキング形式                   | 検出サービスを選択してから、マスキングする個人情報タイプ（氏名、住所、電話番号など）を選択します。信頼度を上げると誤検出を抑えられます |
| 機密キーワードブロック      | 禁止語リスト、最小文字数                                    | 1 行に 1 つの禁止語を入力します。最小文字数を設定すると、短すぎる語を除外して誤検出を防げます                   |
| プロンプトインジェクション対策  | 判定モデル、追加の判定ルール                                  | 攻撃かどうかを判定する LLM を選択します。カスタムルールも追加できます                               |
| コンテンツセーフティ分類ブロック | コンテンツセーフティモデルとブロック対象カテゴリ、追加スコアしきい値、検出サービス異常時の処理 | 検出サービスを選択してから、ブロックするカテゴリを選択します。何も選択しない場合、いずれかのカテゴリに違反するとブロックされます    |
| 無効なメッセージのフィルタリング | 挨拶リスト、連続繰り返し上限、判定モデル                            | 最初にルールでフィルタリングし、その後 LLM で無効なメッセージかどうかを判定します                         |
| 回答信頼性チェック        | 書き換えモデル、確認基準                                    | 回答が信頼できるかどうかを判定し、書き換える LLM を選択します                                   |

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-283ea3184f3a97f6a72bd3739e6973ce958d571d%2Fhook-settings-pii.png?alt=media" alt="個人情報マスキング設定ページ"><figcaption><p>「個人情報マスキング」を例に、検出する PII タイプを選択し、有効状態を設定できます。</p></figcaption></figure>

### 判定モデル（LLM ベースのテンプレート） <a href="#judge-model" id="judge-model"></a>

プロンプトインジェクション対策、無効なメッセージのフィルタリング、回答信頼性チェックなど、「セマンティックな判定」が必要なテンプレートには**判定モデル**フィールドがあります。ドロップダウンメニューには、組織で現在利用可能なモデルが表示されます。この判定はメッセージごとに実行されるため、**応答が速く、低コストのモデル**（Haiku、GPT-5 mini、Gemini Flash など）を推奨します。空欄の場合は、プラットフォームのデフォルトモデルが使用されます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-46b3fd072556f852d8d520ed156770152d7d0b9b%2Fhook-settings-model.png?alt=media" alt="LLM ベースのテンプレートの判定モデル設定"><figcaption><p>「回答信頼性チェック」を例に、組織で利用可能な LLM から判定モデルを選択し、「確認基準」に判定方針をわかりやすい言葉で記述できます。</p></figcaption></figure>

### 検出サービス（セーフティモデルベースのテンプレート） <a href="#detection-service" id="detection-service"></a>

「コンテンツセーフティ分類ブロック」と「セマンティック個人情報マスキング」では、一般的な LLM による判定ではなく、コンテンツを**専用のセーフティモデル**に送信します。構造化された分類とスコアが返されるため、しきい値の設定や監査が可能で、LLM による判定よりも低遅延かつ低コストです。どちらのテンプレートも**2 段階**で設定します。最初に検出サービスを選択し、次に処理する項目を選択します。

**コンテンツセーフティ分類ブロック**

1. <mark style="color:blue;">コンテンツセーフティモデルとブロック対象カテゴリ</mark> の最初のドロップダウンメニューで、検出サービスを選択します（現在は OpenAI Moderation を利用できます）。
2. 2 つ目のドロップダウンメニューで、ハラスメント、ヘイト、違法行為、自傷、性的コンテンツ、暴力など、ブロックするカテゴリを選択します。**何も選択しない場合、モデルがいずれかのカテゴリへの違反を判定するとブロックされます**（最も厳格で、初期設定として推奨します）。
3. <mark style="color:blue;">追加スコアしきい値</mark> のデフォルトは 0 で、モデルの判定をそのまま使用します。0～1 の値を設定すると、スコアがしきい値以上の場合にのみブロックされます。値を上げると誤検出を抑えられます。
4. <mark style="color:blue;">検出サービス異常時</mark> では、サービスがタイムアウトした場合やキーが設定されていない場合の処理を指定します。`pass` はメッセージを通過させ（可用性を優先、デフォルト）、`block` は常にブロックします（コンプライアンスを優先、規制対象業界に推奨）。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-3fc8d36ba688b70d35c16b1332c9154940dac18d%2Fhook-settings-content-safety.png?alt=media" alt="コンテンツセーフティ分類ブロック設定ページ"><figcaption><p>コンテンツセーフティ分類ブロック：最初に検出サービスを選択し、次にブロックするカテゴリを選択します。その下で、追加スコアしきい値とサービス異常時の処理を設定できます。</p></figcaption></figure>

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-5978480ef70accd2cd91a1b7f80ed1fc506aa27a%2Fhook-settings-content-safety-categories.png?alt=media" alt="コンテンツセーフティ分類ブロック：選択可能なカテゴリ"><figcaption><p>選択可能なカテゴリは検出サービスからリアルタイムで提供され、各カテゴリの横にはサービス固有のカテゴリ名が表示されます。サービスを切り替えるとリストも変わります。</p></figcaption></figure>

**セマンティック個人情報マスキング**

1. <mark style="color:blue;">個人情報検出モデルと検出タイプ</mark> の最初のドロップダウンメニューで、検出サービスを選択します（現在は Google Cloud DLP を利用できます）。
2. 2 つ目のドロップダウンメニューで、マスキングする個人情報タイプを選択します。「標準タイプ」には氏名、住所、電話番号、メールアドレス、台湾の身分証明書番号、台湾のパスポート番号などがあり、「プロバイダー固有タイプ」にはクレジットカード番号、IBAN など、より詳細な項目があります。**選択するタイプが多いほど、呼び出しごとのコストが高くなる**ため、業務上実際にマスキングが必要なタイプだけを選択することを推奨します。
3. <mark style="color:blue;">最小信頼度</mark> のデフォルトは 0.5 です。この値を下回る検出結果は無視されます。値を上げると誤検出（会社名を人名と誤認する場合など）を抑えられますが、マスキング漏れが生じる可能性があります。
4. <mark style="color:blue;">マスキング形式</mark>：`type_token` は `[NAME]` や `[ADDRESS]` などのプレースホルダーに置き換えるため、AI は元のデータタイプを引き続き認識できます（推奨）。`asterisk` は同じ文字数のアスタリスクに置き換え、タイプを完全に隠します。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-be9b5bdd1c5d8d18c9e112919d93fc1c9222cb54%2Fhook-settings-semantic-pii.png?alt=media" alt="セマンティック個人情報マスキング設定ページ"><figcaption><p>セマンティック個人情報マスキング：最初に検出サービスを選択し、次にマスキングする個人情報タイプを選択します（この例では氏名と住所を選択）。その下で、最小信頼度とマスキング形式を設定できます。</p></figcaption></figure>

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-c8c02f637932adf48cd4965c29022620d9555b97%2Fhook-settings-semantic-pii-types.png?alt=media" alt="セマンティック個人情報マスキング：選択可能な個人情報タイプ"><figcaption><p>選択可能な個人情報タイプは「標準タイプ」と「プロバイダー固有タイプ」の 2 つに分かれ、同じメニュー内にセクション別で表示されます。</p></figcaption></figure>

{% hint style="warning" %}
**コンテンツは外部の検出サービスに送信されます。** この 2 つのテンプレートは、確認対象のテキストを検出サービス（OpenAI、Google Cloud）に送信して判定します。データレジデンシー要件がある組織や、外部へのデータ送信が禁止されている組織は、有効にする前にコンプライアンスを確認してください。検出サービスを切り替えると、タイプの非互換性による保存エラーを防ぐため、選択済みの項目は自動的にクリアされます。
{% endhint %}

{% hint style="info" %}
**ブロックメッセージはカスタマイズできます。** 「ブロック」タイプのテンプレート（プロンプトインジェクション対策、機密キーワードブロック、無効なメッセージのフィルタリング、コンテンツセーフティ分類ブロックなど）では、<mark style="color:blue;">ブロック時の回答メッセージ</mark>に、ブロックされた際にユーザーへ返すメッセージを設定できます。たとえば、「メッセージに不適切な表現が含まれています。修正してからもう一度お試しください。」と設定できます。
{% endhint %}

## <mark style="color:blue;">3. Agent の関連付け</mark> <a href="#link-assistant" id="link-assistant"></a>

Hook は、**Agent に関連付けて**初めて有効になります。関連付ける方法は 2 つあります。

* **作成時に関連付ける**：Hook の作成時に「AI アシスタントに適用」タブで、適用する Agent を選択します。
* **Agent 設定から関連付ける**：Agent の設定ページを開き、<mark style="color:blue;">Hook</mark> タブに切り替えて、適用する Hook を選択します。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-48a16fe6492f63a9726f72e39eda7952762048e1%2Fhook-assistant-link.png?alt=media" alt="Hook を Agent に適用"><figcaption><p>Hook の「AI アシスタントに適用」タブで、左側の「選択可能」リストから右側の「選択済み」リストへ Hook を移動すると、関連付けが完了します。</p></figcaption></figure>

{% hint style="success" %}
**1 つの Agent に複数の Hook を関連付けられます。** システムは順番に実行します。たとえば、最初に「無効なメッセージのフィルタリング」でスパムをブロックし、次に「個人情報マスキング」で個人情報をマスキングし、最後に「プロンプトインジェクション対策」で攻撃をブロックすることで、独自の保護フローを構築できます。
{% endhint %}

{% hint style="info" %}
**「ユーザーメッセージ受信時」の Hook を関連付けると、添付ファイル、ナレッジベースの文章、ツールの返却内容も確認されます。** 追加設定は必要ありません。AI に入力される前に実行される Hook を Agent に関連付けると、ユーザーがアップロードした添付ファイルの内容、ナレッジベースから取得した文章、Agent モードでツールが返した結果は、すべてモデルに送信される前に同じ Hook を通過します。詳しくは、[Hook メッセージインターセプト](/maiagent-user-guide/ja/build/hook.md#four-sources)を参照してください。
{% endhint %}

### Hook を有効にする <a href="#enable" id="enable"></a>

パラメータと関連付ける Agent を確認したら、Hook を <mark style="color:blue;">有効</mark> に設定します。有効にすると、ユーザーがその Agent と対話するたびに、対応するタイミングで Hook が自動的に動作します。

## <mark style="color:blue;">4. 次のステップ</mark> <a href="#next" id="next"></a>

設定が完了したら、[Hook 実行ログ](/maiagent-user-guide/ja/build/hook/execution-logs.md)で各ブロックまたは書き換えの記録を確認し、Hook が正しく動作していることを確認できます。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.maiagent.ai/maiagent-user-guide/ja/build/hook/setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
