# Agentの作成

まず、AI Agentを定義しましょう。技術的な定義は「人工知能を使用して環境と対話し、タスクを実行するソフトウェアプログラム」です。しかし、それが_何ができるか_を理解することがより重要です。AI agentはデータを収集し、経験から学習し、目標を達成するために意思決定を行います。

このトピックには以下が含まれます：

* [Agentの詳細を定義する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#define-agent-details)
* [System Promptsを作成する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#create-system-prompts)
* [Toolsを追加する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#add-tools)
* [Toolを指定する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#specify-the-tool)
* [ターゲットを指定する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#specify-a-target)
* [Outputsを追加する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#add-outputs)
* [Prompt変数を追加する](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#add-prompt-variables)


効果的なシステムプロンプトの書き方のベストプラクティスについては、[エージェントシステムプロンプトのベストプラクティス](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/system-prompt-best-practices)を参照してください。

# Agentを作成する

1. Treasure コンソールを開きます。
2. **AI Agent Foundry**に移動します。
3. [プロジェクト](/products/customer-data-platform/ai-agent-foundry/ai-project/creating-an-ai-project)を選択します。
4. **Agents Tab**を選択し、**Create agent**を選択します。


## Agentの詳細を定義する

![](/assets/creating-an-agent-2025-05-19-14-43-00.54f306da4b4284dbc98db421c3a1d86e9b83ee45b260872deafe6304f8e9a765.91c26685.png)

1. フォームに入力してagentの詳細を定義します。


| フィールド | 説明 |
|  --- | --- |
| Agent name | ユーザーがagentの用途を理解しやすい名前を作成します。例えば、メールメッセージを書くためのagentを作成し、Email Creatorという名前を付けることができます。 |
| Model name | ドロップダウンリストからモデルを選択します。agentのモデルを特定することで、agentのユーザーに追加情報を提供します。例えば、一部のLLMモデルは高度な推論タスクで優れたパフォーマンスを発揮し、他のモデルは高速応答タスクに優れています。 |
| Max tool iterations | Tool iterationsは、開発サイクルを繰り返すことでtoolを継続的に改良・改善します。agent毎に許可される最大tool iteration数を選択できます。デフォルトは0です。[toolsの追加](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-an-agent#add-tools)の詳細をご覧ください。 |
| Temperature | temperatureパラメータは、LLMの出力のランダム性を制御します。低い値（例：0.1）は応答をより決定論的にし、高い値（例：0.8）は創造性とバリエーションを高めます。0から1の間の数値を指定します。 |


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


## System Promptsを作成する

System Promptは、LLMモデルがどのように動作するかを自然言語で記述した指示です。構造化された形式で指示することがより適切です。役割、タスク、詳細を定義することで、agentはより期待通りに動作するようになります。

効果的なシステムプロンプトの書き方の詳細なガイダンス(テンプレート、ベストプラクティス、実践的な例を含む)については、[エージェントシステムプロンプトのベストプラクティス](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/system-prompt-best-practices)を参照してください。

1. **System prompts**を選択します。


![](/assets/creating-an-agent-2025-05-19-14-42-49.23e0c22f0d10fefcc00d813f76245c68b8b4ec88f7ab2ea08b5da6b87d5fd56e.91c26685.png)

1. テキストボックスにpromptを追加します。
2. **Next**を選択します。


## Add Tools

toolは、knowledge base内のデータの検索やクエリ、他のagentの利用など、agentの機能を表します。

### Toolを指定する

1. **Tools**を選択し、**+ Add tool**を選択します。


![](/assets/creating-an-ai-agent-2025-02-26-2.25d184db0a9344e3d168f49752ef5d47ed1390b17e5bc961ac4e03fdde7b8425.91c26685.png)

1. 関数名と説明を入力します：


* **Function Name**：関数の一意な名前を入力します。例：*list_columns*
* **Function Description**：（オプション）関数の説明を入力します。例：使用可能なテーブルとカラムをリストします。LLMはこの説明を参照します。詳細な説明が定義されていれば、LLMは適切なツールを選択できます。


### ターゲットの指定

以下のいずれかを選択します：Knowledge BaseまたはAgent。

### Knowledge Base

データにアクセスしたい場合は、ターゲットとしてKnowledge Baseを選択します。

1. ターゲットとして**Knowledge Base**を選択します。


![](/assets/creating-an-ai-agent-2025-03-04.c31a78edfaa2175bb3e91dd98041f2b310db0c4b82e6175f0c422a32fbf19838.91c26685.png)

1. ドロップダウンリストからKnowledge Base名を選択します。
2. ターゲットの関数を選択します：


* **List columns**：対象のKnowledge Base内のテーブルスキーマをリストします。
* **Search schema**：検索キーワードでカラムを検索します。
* **Query data directly (Presto SQL)**：SQL文でデータをクエリします。


#### Text Knowledge Base

Textタイプの Knowledge Baseが選択されている場合、サポートされているターゲット関数は**read**のみです

#### Runtime Text Resource Knowledge Base

Textタイプの Knowledge Baseが選択されている場合、サポートされているターゲット関数は**read**のみです

**Use runtime text resource**が有効になっている場合、**Project Runtime text Resource KB**が表示されます。詳細については、[Create a Self-Defined Project](/ja/products/customer-data-platform/ai-agent-foundry/ai-project/creating-an-ai-project)を参照してください。

#### Parent Segment Knowledge Base

サポートされているターゲット関数は以下の通りです：

* **List segment folders**：Parent Segmentに存在するフォルダをリストします
* **List by folder**：特定のフォルダに存在するインスタンスをリストします。これにはフォルダIDが必要です
* **List attributes**：Parent Segment設定で構成された属性定義を取得します
* **List behaviors**：Parent Segment設定で構成された行動定義を取得します
* **Get segment**：特定のセグメントのメタデータを取得します。これにはセグメントIDが必要です
* **Get journey**：特定のジャーニーのメタデータを取得します。これにはジャーニーIDが必要です
* **Get audience**：Parent Segment設定のメタデータを取得します。これにはジャーニーIDが必要です
* **Get query**：特定のセグメントのカウントSQLを取得します。これにはセグメントIDが必要です
* **Query data directly**：Parent SegmentデータにSQLを発行します
* **Query segment analytics**：特定のセグメントを分析するためのSQLを発行します。これにはセグメントIDが必要です


関数が特定のインスタンスIDを必要とする場合、agentはそのIDを取得する必要があります。通常、agentは「List segment folders」および/または「List by folder」関数を呼び出すことでIDを取得できます。

Parent Segment Knowledge Baseは、特定のparent segmentによって作成され、それに関連付けられたマネージドプロジェクトに自動的に作成されます。詳細は[マネージドプロジェクトの作成](/ja/products/customer-data-platform/ai-agent-foundry/ai-project/creating-an-ai-project#create-a-managed-project-for-the-audience-agents)を参照してください。

#### Agent

特定のタスクを既存のagentに委任するには、TargetとしてAgentを選択します。

1. Targetとして**Agent**を選択します。


![](/assets/creating-an-ai-agent-2025-03-04-2.008b38eab3aea6d2948971eccd501752eb71850b660a0bf5dd5335feadfccb59.91c26685.png)

* **Target agent:** 呼び出すagent。リストからagentを選択します。
* **Output mode:**
  * *Return* : ターゲットagentは出力を呼び出し元agentに渡し、呼び出し元agentは受け取った出力結果に基づいて生成されたコンテンツを出力します
  * *Show* : ターゲットagentの出力が直接レンダリングされます。
* **JSON schema:** ツールが呼び出される際の引数構造の定義。
* **Prompt template:** ターゲットagentが呼び出される際に使用されるユーザープロンプト。"{{parameter_name}}"形式でパラメータを利用できます。_parameter_name_はJSON schemaで定義する必要があります。


#### Image Generator

Image generatorツールを使用して画像を生成します。

1. TargetとしてImage generatorを選択します


![](/assets/creating-an-agent-2025-08-06-15-55-35.4247012138fe18eca9e17c1d632a243ec3760d5b6fecae78be475183cbc76f15.91c26685.png)

* **Target image Generator** : 使用するimage generator。既存のimage generatorインスタンスから選択します
* **Target function** :
  * **Text to Image** : テキストプロンプトから画像を作成します。0から1へのケースに適しています
  * **Outpaint** : 指定された領域の周囲を編集します
  * **Inpaint** : 特定領域の内側を編集します
  * **Image Variation** : 与えられた画像から画像のバリエーションを作成します
  * **Remove Background** : 指定された領域の周囲を削除します


#### Workflow Executor

Workflow Executorツールを使用してTD workflowを実行します。workflowを実行するには、プロジェクト名とワークフロー名が必要です。workflowはパラメータを指定して実行でき、パラメータはシステムプロンプトで定義できます。

1. **Tools**を選択し、**+ Add tool**を選択します。
2. Targetとして**Workflow Executor**を選択します。


![](/assets/creating-an-agent-workflow-executor-select-2026-05-20.2a86c6685b2b056db19956413028a16df4dbe98466a0fa1a07b0bd20bd1b210e.91c26685.png)

1. ターゲット関数を選択します：


![](/assets/creating-an-agent-workflow-executor-target-function-2026-05-20.8fca189a2b05a41aded1517b014f6e8b715797f659575db9b6e69ad771ada57a.91c26685.png)

* **Target function** :
  * **Execute workflow** : プロジェクト名とワークフロー名を使用してworkflowを実行します
  * **Search workflow** : ワークフロー名が不明な場合に、利用可能なworkflowを検索します


**どのツールを使用するか：**

- **プロジェクト名とワークフロー名が既知の場合：** **Execute workflow**ツールのみを追加します。システムプロンプトに、プロジェクト名、ワークフロー名、パラメータのスキーマを記述してください。
- **workflowを検索する必要がある場合：** **Search workflow**ツールを追加して、agentが利用可能なworkflowを見つけられるようにします。検索後にworkflowを実行する場合は、**Execute workflow**ツールも追加できます。


**例：** `customer_analytics`プロジェクトの`data_import`という名前のworkflowをパラメータ付きで実行する場合、Execute workflowツールを追加し、システムプロンプトに以下を含めます：


```
プロジェクト「customer_analytics」のワークフロー「data_import」を実行してください。
パラメータ: { "date": "YYYY-MM-DD", "source": "文字列" }
```

## Add Outputs

Outputは、agentがJson schemaの要件を満たすコンテンツを生成する必要がある場合に使用されます。これは、agentが他のagentからツール経由で呼び出される場合に便利です。呼び出し元agentは、呼び出し先agentがoutput関数を定義して呼び出す場合、"return"モードのツールを介して呼び出し先agentから構造化された出力を取得できます。
その他の典型的な使用例は、Ploty.jsライブラリを使用してチャートを描画することです。エージェントが_:plotly:_という名前の出力関数を呼び出すと、チャットインターフェースはPlotly.jsライブラリを使用してチャートを描画します。

エージェントはFunction Nameを使用して出力関数を呼び出すことに注意してください。Output nameはシステムの識別子です。
:plotly:はシステムによって認識される特別な出力名です。

カスタムOutputを作成するには

1. **Outputs**を選択し、次に**Add output**を選択します。


![](/assets/creating-an-ai-agent-2025-03-04-3.be5175848fe212cea2dd68949d5817d2f4ed422c8c760a8ba0d2689f39ea6a04.91c26685.png)

1. フォームに入力します。


| フィールド | 説明 |
|  --- | --- |
| Output Name | 一意の名前を入力します。AI Agent Foundryはこの名前を認識に使用します。`_:plotly:_`はPlotlyチャートのレンダリングに使用される特別な名前です。 |
| Function Name | 関数の名前を入力します。エージェントはこの名前を参照します。 |
| Function Description | （オプション）関数の説明を入力します。 |
| Output Type | `Custom`または`Artifact`を選択します。- `Custom`: JSON schemaを定義します。
- `Artifact`: 適切なartifactタイプを選択します。

 |
| JSON Schema (for Custom) | 出力データ構造のJSON schemaを提供します。エージェントはこの定義に従って出力を作成します。 |
| Artifact | チャット会話から個別のオブジェクトとして出力を永続化します。フォームタイプのインターフェースはartifact出力のみをサポートします。- `Text`: テキストベースのコンテンツに使用します。
- `Image`: 画像コンテンツに使用します。
- `React`: Reactコード出力に使用します（例：Plotly.jsとTailwind CSSを使用したダッシュボード）。

 |


![](/assets/creating-an-agent-2025-08-08-18-45-10.2ec63fe74a30b31f3ad648801428cbfdf9c35ea40b6a351dd99e35d66b3ad827.91c26685.png)

1. **+ Add output**を選択して別の出力を追加するか、**Save**を選択してAgentを保存します。


#### :plotly: Output

_:plotly:_を以下のように定義します。AgentがnewPlot関数を呼び出すと、plotlyチャートが出力としてレンダリングされます。

| フィールド | 説明 |
|  --- | --- |
| Output Name | :plotly: |
| Function Name | newPlot |
| Function Description | Plotly.jsを使用してチャートをレンダリングします。 |
| JSON Schema | 出力データ構造のJSON schemaの例: |



```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "description": "Plotly.js data JSON objects",
      "items": {
        "type": "object"
      }
    },
    "layout": {
      "type": "object",
      "description": "Plotly.js レイアウト JSON オブジェクト"
    }
  },
  "required": [
    "data"
  ]
}
```

## Prompt variables の追加

Treasure Data は *prompt variables* をサポートしています。これは、実行時に必要なデータを system prompt に埋め込むための概念です。

1. **Prompt variables** を選択し、次に **Add prompt vriable** を選択します。
![](/assets/creating-an-agent-2025-04-21-11-30-53.f026f1e44994b69542ec7870c640411919666297236b3ae65567eddb649d08fc.91c26685.png)
2. フォームに入力します。
![](/assets/creating-an-agent-2025-04-21-13-28-09.4e438b80168b220a376276ec12f0d89b42685a13c8f06c311bcfdf2f36ecc41d.91c26685.png)


| フィールド | 説明 |
|  --- | --- |
| Variable Name | 一意の名前を入力します。この名前は system prompt 内で参照されます |
| Target knowledge base | 使用する knowledge base 名を入力します |
| Target function | List columns のみ利用可能です |
| List of variables | 対象のテーブルとカラムを指定する式のリスト |


#### 式

* 文字列は、式をカンマ区切りで列挙したリストです (expression-1, expression-2, ...)
* 式は以下のいずれかです:
* テーブル名: 式に . や * などの特殊文字が含まれていない場合、それはテーブル名です。TABLE_NAME.* と同じです。
* "*" を含むパターン: 式に特殊文字が含まれている場合、それはマッチングルールであり、* は任意の文字列にマッチします。
* !expression: 式が ! で始まる場合、後続の式を否定します。式は上記のいずれかです。


例

| 例 | 結果 |
|  --- | --- |
| `customers, behavior_pageviews, behavior_clicks` | customers、behavior_pageviews、behavior_clicks テーブルのすべてのカラム。 |
| `customers.*, behavior_pageviews.*, behavior_clicks.*` | 上記と同じ。 |
| `customers.*, !customers.time, behavior_*.*, products.{id,name}, !*.email` | customers テーブルの "time" を除くすべてのカラム、すべての behavior テーブルのすべてのカラム、products テーブルの id と name カラム。ただし、すべてのテーブルから "email" カラムを除外します。 |


次のステップは [user prompts.](/ja/products/customer-data-platform/ai-agent-foundry/ai-agent/creating-a-user-prompt) の定義です。