# ナレッジベースの作成

ナレッジベースは、エージェントに参照データを提供するツールであり、エージェントがより正確で望ましい出力を生成するために重要な機能です。AI Agent Foundryは2種類のナレッジベースを提供します。1つは_Database_、もう1つは_Text_です。以下の手順に従って、新しいナレッジベースを作成します。

1. Treasure コンソールを開きます。
2. **AI Agent Foundry**に移動します。
3. **Knowledge Base**を選択し、**Create knowledge base**を選択します。


![](/assets/creating-an-ai-knowledge-base-2025-03-04.4d247864042e3ccc1a8e54da318cc7f77500db176ee71cc75ae1cf6b3981279f.91c26685.png)

## データベースナレッジベースの作成

### ナレッジベースの詳細を入力

1. 使用方法を指定するナレッジベース名を入力します
2. Databaseタイプを選択し、データベースを選択します。


![Database knowledge base configuration form](/assets/creating-a-knowledge-base-2025-06-13-11-30-28.1649163d16dbbc239f56459febdc3276d56d11663469e675a74893f24abdc4fc.91c26685.png)

### Format Typeの選択

データベースナレッジベースを作成する際、**Format Type**を選択することで、クエリ結果をAIエージェントにどのような形式で返すかを指定できます。

- **Markdown-KV (推奨)**
- **JSON (レガシー)**


![Format type選択](/assets/knowledge-base-format-type-selection.e84703b347e916e4ed5498851947563e6335ff6c30a549c8812d000ad8d2d247.91c26685.png)

#### Markdown-KV (推奨)

Markdown-KVは、新しいナレッジベースに推奨される形式です。クエリ結果を見出しとキー・バリューペアで構成された人間にも読みやすい形式で返すため、LLMが結果を理解しやすくなります。エージェントのクエリはユーザー自身の権限で実行されるため、アクセス制御はテーブルフィルタリングではなく権限レベルで実施されます。

**主なメリット:**

- Max rowsとTimeout seconds設定を適切に挙動させるためのFormat Typeです
- 結果がMax rows制限を超えた場合に自動的に切り捨て警告が表示され、エージェントが追加のWHERE条件でクエリを絞り込むよう促されます


**設定オプション:**

- **Max rows**: 返される最大行数を設定します(1〜100、デフォルト:50)
- **Timeout seconds**: クエリのタイムアウトを設定します(10〜300秒、デフォルト:60)


#### JSON (レガシー)

JSONは将来的に廃止予定のレガシー形式です。この形式は、ナレッジベースを特定のテーブルに制限する必要がある場合にのみ使用してください。

**JSONを使用する場合:**

- データベースに多数のテーブルがあり、クエリパフォーマンスを向上させたい場合
- 類似したテーブル名やカラム名が存在し、エージェントの混乱を防ぎたい場合
- ナレッジベースを特定のテーブルセット(例:`customers`と`orders`のみ)に制限する必要がある場合。**Table**設定オプションで含めるテーブルを指定できます。


**制限事項:**

- Max rowsとTimeout secondsの設定が無視される場合があります
- 結果が切り捨てられた際にエージェントへの警告が表示されません


### テーブル情報を入力

1. _Add table_ボタンをクリックして、テーブル情報を定義します
2. フォームに入力します。


| フィールド | 説明 |
|  --- | --- |
| Name | ナレッジベースの名前を入力します。 |
| Type | `Database`を選択します。 |
| TD Database Name | クエリが実行されるTreasure Dataデータベースを入力します。**データベースはPlazma DBに存在する必要があります。** |
| Table | ナレッジベースがサポートするテーブルを定義します。 |
| TD Query | 選択したデータベースを使用してテーブルを定義するTrino SQLを提供します。`Exclude Columns`: 保持したいすべての列をリストします。`Exclude Records`: `WHERE`句でレコードをフィルタリングします。 |
| Name | 参照するテーブル名を入力します。 |
| + Add table | ナレッジベースにさらにテーブルを追加する場合に選択します。 |


1. **Save**を選択します。


**Save**を選択すると、データ読み込みプロセスが開始されます。ナレッジベースを使用する前に、ステータスが**Success**になるまで待ちます。

## テキストナレッジベースの作成

### ナレッジベースの詳細を入力

1. 使用方法を指定するナレッジベース名を入力します
2. Textタイプを選択し、フォームに入力します
![Text knowledge base form](/assets/creating-a-knowledge-base-2025-06-13-11-37-11.285526b225e8d44ab56b1aacd3e7e0f4a47dc71196bdf0ed6b8d0465659525cc.91c26685.png)


| フィールド | 説明 |
|  --- | --- |
| Name | ナレッジベースの名前を入力します。 |
| Type | `Text`を選択します。 |
| Text-input | 最大18,000文字の参照テキストを入力します。 |


## ペアレントセグメントナレッジベースの作成

ペアレントセグメントナレッジベースは、ペアレントセグメント設定で「LLM enabled」スイッチが有効になっている場合に自動的に作成されます。現在、カスタムLLMプロジェクトで作成する方法はありません。

**次のステップ**

[クエリシミュレーション](/ja/products/customer-data-platform/ai-agent-foundry/knowledgebase/querying-a-knowledge-base)を通じてナレッジベースの設定を確認します。