> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# ツールを追加

POST https://api.elevenlabs.io/v1/convai/tools
Content-Type: application/json

ワークスペースで利用可能なツールに新しいツールを追加します。

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/tools/create

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Body (application/json)

This endpoint expects a ToolRequestModel.

- `tool_config` (ToolRequestModelToolConfig, required) — ツールの設定
- `response_mocks` (list of ToolResponseMockConfigInput, optional) — オプションのパラメータ条件を持つモック応答。上から順に評価され、最初に一致したものが使用されます。

## Response

### 200

成功レスポンス。

- `id` (string, required)
- `tool_config` (ToolResponseModelToolConfig, required) — ツールのタイプ
- `access_info` (ResourceAccessInfo, required)
- `usage_stats` (ToolUsageStatsResponseModel, required)
- `response_mocks` (list of ToolResponseMockConfigOutput, optional) — オプションのパラメータ条件を持つモック応答。上から順に評価され、最初に一致したものが使用されます。

## Errors

### 422 Tools Create Request Unprocessable Entity Error

検証エラー

- `detail` (list of ValidationError, optional)

## Types

### ToolRequestModelToolConfig

ツールの設定

- `type`: `client`
  - `description` (string, required) — ツールを使用するタイミングと機能の説明。
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — ツールレスポンスから値を抽出し、動的変数に割り当てるための設定
  - `dynamic_variables` (DynamicVariablesConfig, optional) — 動的変数の設定
  - `execution_mode` (enum, optional, default: immediate) — ツールをいつ、どのように実行するかを決定します。'immediate'はLLMから要求されるとすぐにツールを実行し、'post_tool_speech'はエージェントが話し終えるまで待ってから実行し、'async'はブロックせずにバックグラウンドでツールを実行します。長時間の処理に最適です。
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — trueの場合、このツールの呼び出しは、LLMに渡される応答をクライアントが返すまで会話をブロックします。falseの場合は、クライアントの応答を待たずに会話を続けます。これはユーザーにコンテンツを表示しつつ、会話をブロックしない場合に便利です。
  - `interruption_mode` (enum, optional, default: allow) — このツール呼び出し中にユーザーがエージェントを中断できるかどうかを制御します。'allow'（デフォルト）はユーザーによる中断をいつでも許可します。'disable_during_tool'はツールの実行中のみ中断を抑制し、'disable_during_tool_and_turn'はツールの実行中と、その後に続くエージェントの応答中に中断を抑制します。
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyInput, optional) — クライアントに渡すパラメーターのスキーマ
  - `pre_tool_speech` (enum, optional, default: auto) — このツールを呼び出す前にエージェントが話すかどうかを制御します。'auto'（デフォルト）は直近のツールレイテンシーに基づいて判断し、'force'は常にエージェントに話すよう求め、'off'はレイテンシーにかかわらず完全に無効化します。
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — ツール呼び出しの完了を待機する最大時間（秒）。1～120秒（両端を含む）、またはクライアントの応答を無期限に待機する場合は-1を指定します（expects_responseが必要です）。
  - `tool_call_sound` (enum, optional) — ツール実行中に再生する定義済みツール呼び出しサウンドの種類。指定しない場合、ツール呼び出しサウンドは再生されません。
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — ツール呼び出し音をいつ再生するかを決定します。'auto'はツール実行前の発話がある場合にのみ再生し、'always'はすべてのツール呼び出しで再生します。
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — エージェントと共有する前にツールエラーを処理する方法を制御します。'auto'はツールの種類に応じて処理方法を決定します（ネイティブインテグレーションでは要約、その他では非表示）。'summarized'はLLM生成の要約を送信し、'passthrough'は未加工のエラーを送信し、'hide'はエージェントとエラーを共有しません。
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`interruption_mode`を使用してください。trueの場合、このツールの実行中は、ユーザーはエージェントを中断できません。
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`pre_tool_speech`を使用してください。trueの場合、エージェントはツール呼び出し前に発話します。
- `type`: `mcp`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigInputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — ツールレスポンスから値を抽出し、動的変数に割り当てるための設定
  - `description` (string, optional, default: ) — ツールを使用するタイミングと機能の説明。空欄の場合は、特定のツールタイプ向けに最適化されたデフォルトの説明が使用されます。
  - `interruption_mode` (enum, optional, default: allow) — このツール呼び出し中にユーザーがエージェントを中断できるかどうかを制御します。'allow'（デフォルト）はユーザーによる中断をいつでも許可します。'disable_during_tool'はツールの実行中のみ中断を抑制し、'disable_during_tool_and_turn'はツールの実行中と、その後に続くエージェントの応答中に中断を抑制します。
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — このツールを呼び出す前にエージェントが話すかどうかを制御します。'auto'（デフォルト）は直近のツールレイテンシーに基づいて判断し、'force'は常にエージェントに話すよう求め、'off'はレイテンシーにかかわらず完全に無効化します。
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — ツール呼び出しの完了を待機する最大時間（秒）。
  - `tool_call_sound` (enum, optional) — ツール実行中に再生する定義済みツール呼び出しサウンドの種類。指定しない場合、ツール呼び出しサウンドは再生されません。
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — ツール呼び出し音をいつ再生するかを決定します。'auto'はツール実行前の発話がある場合にのみ再生し、'always'はすべてのツール呼び出しで再生します。
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — エージェントと共有する前にツールエラーを処理する方法を制御します。'auto'はツールの種類に応じて処理方法を決定します（ネイティブインテグレーションでは要約、その他では非表示）。'summarized'はLLM生成の要約を送信し、'passthrough'は未加工のエラーを送信し、'hide'はエージェントとエラーを共有しません。
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`interruption_mode`を使用してください。trueの場合、このツールの実行中は、ユーザーはエージェントを中断できません。
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`pre_tool_speech`を使用してください。trueの場合、エージェントはツール呼び出し前に発話します。
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigInput, required) — 送信Webhookのスキーマ。パラメータとURL仕様を含みます。
  - `description` (string, required) — ツールを使用するタイミングと機能の説明。
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — ツールレスポンスから値を抽出し、動的変数に割り当てるための設定
  - `dynamic_variables` (DynamicVariablesConfig, optional) — 動的変数の設定
  - `execution_mode` (enum, optional, default: immediate) — ツールをいつ、どのように実行するかを決定します。'immediate'はLLMから要求されるとすぐにツールを実行し、'post_tool_speech'はエージェントが話し終えるまで待ってから実行し、'async'はブロックせずにバックグラウンドでツールを実行します。長時間の処理に最適です。
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — エンドポイントからのリダイレクトを解決し、最終レスポンスを返すかどうか。リダイレクトは1回だけ追跡され、リクエスト本文なしのGETとして実行されます。このツールで設定した内容（ヘッダー、認証、クライアント証明書）はリダイレクト先に送信されません。エンドポイントとリダイレクト先の両方でHTTPSを使用する必要があります。APIインテグレーションツールではサポートされていません。
  - `follow_redirects_allowed_domains` (list of string, optional) — リダイレクト先として許可するドメイン（例：'test.example.com'）。リダイレクトをたどる場合に必要で、リスト外の宛先は拒否されます。
  - `interruption_mode` (enum, optional, default: allow) — このツール呼び出し中にユーザーがエージェントを中断できるかどうかを制御します。'allow'（デフォルト）はユーザーによる中断をいつでも許可します。'disable_during_tool'はツールの実行中のみ中断を抑制し、'disable_during_tool_and_turn'はツールの実行中と、その後に続くエージェントの応答中に中断を抑制します。
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — このツールを呼び出す前にエージェントが話すかどうかを制御します。'auto'（デフォルト）は直近のツールレイテンシーに基づいて判断し、'force'は常にエージェントに話すよう求め、'off'はレイテンシーにかかわらず完全に無効化します。
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — ツール呼び出しの完了を待機する最大時間（秒）。5秒から300秒の範囲で指定します（両端を含む）。
  - `tool_call_sound` (enum, optional) — ツール実行中に再生する定義済みツール呼び出しサウンドの種類。指定しない場合、ツール呼び出しサウンドは再生されません。
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — ツール呼び出し音をいつ再生するかを決定します。'auto'はツール実行前の発話がある場合にのみ再生し、'always'はすべてのツール呼び出しで再生します。
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — エージェントと共有する前にツールエラーを処理する方法を制御します。'auto'はツールの種類に応じて処理方法を決定します（ネイティブインテグレーションでは要約、その他では非表示）。'summarized'はLLM生成の要約を送信し、'passthrough'は未加工のエラーを送信し、'hide'はエージェントとエラーを共有しません。
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`interruption_mode`を使用してください。trueの場合、このツールの実行中は、ユーザーはエージェントを中断できません。
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`pre_tool_speech`を使用してください。trueの場合、エージェントはツール呼び出し前に発話します。

### ToolResponseMockConfigInput

- `mock_result` (string, required) — このモックが有効な場合にLLMが受け取る戻り値。
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — リストが空の場合、モックは常に有効になります。
- `is_error` (boolean, optional, default: false) — trueの場合、モック結果は成功結果ではなくツールエラーとしてLLMに渡されます。

### ToolResponseModelToolConfig

ツールのタイプ

- `type`: `client`
  - `description` (string, required) — ツールを使用するタイミングと機能の説明。
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — ツールレスポンスから値を抽出し、動的変数に割り当てるための設定
  - `dynamic_variables` (DynamicVariablesConfig, optional) — 動的変数の設定
  - `execution_mode` (enum, optional, default: immediate) — ツールをいつ、どのように実行するかを決定します。'immediate'はLLMから要求されるとすぐにツールを実行し、'post_tool_speech'はエージェントが話し終えるまで待ってから実行し、'async'はブロックせずにバックグラウンドでツールを実行します。長時間の処理に最適です。
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — trueの場合、このツールの呼び出しは、LLMに渡される応答をクライアントが返すまで会話をブロックします。falseの場合は、クライアントの応答を待たずに会話を続けます。これはユーザーにコンテンツを表示しつつ、会話をブロックしない場合に便利です。
  - `interruption_mode` (enum, optional, default: allow) — このツール呼び出し中にユーザーがエージェントを中断できるかどうかを制御します。'allow'（デフォルト）はユーザーによる中断をいつでも許可します。'disable_during_tool'はツールの実行中のみ中断を抑制し、'disable_during_tool_and_turn'はツールの実行中と、その後に続くエージェントの応答中に中断を抑制します。
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyOutput, optional) — クライアントに渡すパラメーターのスキーマ
  - `pre_tool_speech` (enum, optional, default: auto) — このツールを呼び出す前にエージェントが話すかどうかを制御します。'auto'（デフォルト）は直近のツールレイテンシーに基づいて判断し、'force'は常にエージェントに話すよう求め、'off'はレイテンシーにかかわらず完全に無効化します。
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — ツール呼び出しの完了を待機する最大時間（秒）。1～120秒（両端を含む）、またはクライアントの応答を無期限に待機する場合は-1を指定します（expects_responseが必要です）。
  - `tool_call_sound` (enum, optional) — ツール実行中に再生する定義済みツール呼び出しサウンドの種類。指定しない場合、ツール呼び出しサウンドは再生されません。
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — ツール呼び出し音をいつ再生するかを決定します。'auto'はツール実行前の発話がある場合にのみ再生し、'always'はすべてのツール呼び出しで再生します。
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — エージェントと共有する前にツールエラーを処理する方法を制御します。'auto'はツールの種類に応じて処理方法を決定します（ネイティブインテグレーションでは要約、その他では非表示）。'summarized'はLLM生成の要約を送信し、'passthrough'は未加工のエラーを送信し、'hide'はエージェントとエラーを共有しません。
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`interruption_mode`を使用してください。trueの場合、このツールの実行中は、ユーザーはエージェントを中断できません。
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`pre_tool_speech`を使用してください。trueの場合、エージェントはツール呼び出し前に発話します。
- `type`: `mcp`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigOutputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — ツールレスポンスから値を抽出し、動的変数に割り当てるための設定
  - `description` (string, optional, default: ) — ツールを使用するタイミングと機能の説明。空欄の場合は、特定のツールタイプ向けに最適化されたデフォルトの説明が使用されます。
  - `interruption_mode` (enum, optional, default: allow) — このツール呼び出し中にユーザーがエージェントを中断できるかどうかを制御します。'allow'（デフォルト）はユーザーによる中断をいつでも許可します。'disable_during_tool'はツールの実行中のみ中断を抑制し、'disable_during_tool_and_turn'はツールの実行中と、その後に続くエージェントの応答中に中断を抑制します。
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — このツールを呼び出す前にエージェントが話すかどうかを制御します。'auto'（デフォルト）は直近のツールレイテンシーに基づいて判断し、'force'は常にエージェントに話すよう求め、'off'はレイテンシーにかかわらず完全に無効化します。
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — ツール呼び出しの完了を待機する最大時間（秒）。
  - `tool_call_sound` (enum, optional) — ツール実行中に再生する定義済みツール呼び出しサウンドの種類。指定しない場合、ツール呼び出しサウンドは再生されません。
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — ツール呼び出し音をいつ再生するかを決定します。'auto'はツール実行前の発話がある場合にのみ再生し、'always'はすべてのツール呼び出しで再生します。
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — エージェントと共有する前にツールエラーを処理する方法を制御します。'auto'はツールの種類に応じて処理方法を決定します（ネイティブインテグレーションでは要約、その他では非表示）。'summarized'はLLM生成の要約を送信し、'passthrough'は未加工のエラーを送信し、'hide'はエージェントとエラーを共有しません。
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`interruption_mode`を使用してください。trueの場合、このツールの実行中は、ユーザーはエージェントを中断できません。
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`pre_tool_speech`を使用してください。trueの場合、エージェントはツール呼び出し前に発話します。
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigOutput, required) — 送信Webhookのスキーマ。パラメータとURL仕様を含みます。
  - `description` (string, required) — ツールを使用するタイミングと機能の説明。
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — ツールレスポンスから値を抽出し、動的変数に割り当てるための設定
  - `dynamic_variables` (DynamicVariablesConfig, optional) — 動的変数の設定
  - `execution_mode` (enum, optional, default: immediate) — ツールをいつ、どのように実行するかを決定します。'immediate'はLLMから要求されるとすぐにツールを実行し、'post_tool_speech'はエージェントが話し終えるまで待ってから実行し、'async'はブロックせずにバックグラウンドでツールを実行します。長時間の処理に最適です。
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — エンドポイントからのリダイレクトを解決し、最終レスポンスを返すかどうか。リダイレクトは1回だけ追跡され、リクエスト本文なしのGETとして実行されます。このツールで設定した内容（ヘッダー、認証、クライアント証明書）はリダイレクト先に送信されません。エンドポイントとリダイレクト先の両方でHTTPSを使用する必要があります。APIインテグレーションツールではサポートされていません。
  - `follow_redirects_allowed_domains` (list of string, optional) — リダイレクト先として許可するドメイン（例：'test.example.com'）。リダイレクトをたどる場合に必要で、リスト外の宛先は拒否されます。
  - `interruption_mode` (enum, optional, default: allow) — このツール呼び出し中にユーザーがエージェントを中断できるかどうかを制御します。'allow'（デフォルト）はユーザーによる中断をいつでも許可します。'disable_during_tool'はツールの実行中のみ中断を抑制し、'disable_during_tool_and_turn'はツールの実行中と、その後に続くエージェントの応答中に中断を抑制します。
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — このツールを呼び出す前にエージェントが話すかどうかを制御します。'auto'（デフォルト）は直近のツールレイテンシーに基づいて判断し、'force'は常にエージェントに話すよう求め、'off'はレイテンシーにかかわらず完全に無効化します。
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — ツール呼び出しの完了を待機する最大時間（秒）。5秒から300秒の範囲で指定します（両端を含む）。
  - `tool_call_sound` (enum, optional) — ツール実行中に再生する定義済みツール呼び出しサウンドの種類。指定しない場合、ツール呼び出しサウンドは再生されません。
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — ツール呼び出し音をいつ再生するかを決定します。'auto'はツール実行前の発話がある場合にのみ再生し、'always'はすべてのツール呼び出しで再生します。
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — エージェントと共有する前にツールエラーを処理する方法を制御します。'auto'はツールの種類に応じて処理方法を決定します（ネイティブインテグレーションでは要約、その他では非表示）。'summarized'はLLM生成の要約を送信し、'passthrough'は未加工のエラーを送信し、'hide'はエージェントとエラーを共有しません。
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`interruption_mode`を使用してください。trueの場合、このツールの実行中は、ユーザーはエージェントを中断できません。
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — 非推奨：代わりに`pre_tool_speech`を使用してください。trueの場合、エージェントはツール呼び出し前に発話します。

### ResourceAccessInfo

- `is_creator` (boolean, required) — リクエストを行うユーザーがエージェントの作成者かどうか
- `creator_name` (string, required) — エージェント作成者の名前
- `creator_email` (string, required) — エージェント作成者のメールアドレス
- `role` (enum, required) — リクエストを行うユーザーのロール
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional) — 匿名ユーザーのアクセスレベル。Noneの場合、このリソースは公開共有されません。
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional) — リクエストしたユーザーがこのリソースにアクセスできる理由。'creator'＝呼び出し元がオーナーです。'explicit'＝呼び出し元（またはそのワークスペースグループのいずれか）が、ワークスペース全体のeveryoneグループ以外としてrole_to_group_idsに記載されています。'workspace_default'＝ワークスペース全体のeveryoneグループがrole_to_group_idsに記載されています（管理者を含む、匿名ではないすべてのワークスペースメンバーがこのリソースを閲覧できます）。'workspace_admin'＝呼び出し元がワークスペース管理者であり、管理者シートがアクセスする*唯一*の経路です。これは他の誰も閲覧できないドキュメント用に予約されています。管理者バイパスの閲覧者が明示的に共有されていないドキュメントを閲覧できる理由をUIで表示できます。
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ToolUsageStatsResponseModel

- `avg_latency_secs` (double, required)
- `total_calls` (integer, optional, default: 0) — ツールの総呼び出し回数

### ToolResponseMockConfigOutput

- `mock_result` (string, required) — このモックが有効な場合にLLMが受け取る戻り値。
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — リストが空の場合、モックは常に有効になります。
- `is_error` (boolean, optional, default: false) — trueの場合、モック結果は成功結果ではなくツールエラーとしてLLMに渡されます。

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)

### DynamicVariableAssignment

ツールレスポンスから値を抽出し、動的変数に割り当てるための設定。

- `dynamic_variable` (string, required) — 抽出した値を割り当てる動的変数の名前。
- `value_path` (string, required) — ソースから値を抽出するドット記法のパス（例：'user.name'または'data.0.id'）
- `source` ("response", optional) — 値の抽出元。現在は「response」のみをサポートしています。
- `sanitize` (boolean, optional, default: false) — trueの場合、この割り当ての値はLLMと文字起こしに送信する前にツール応答から削除されますが、変数の割り当てには引き続き使用されます。
- `preserve_native_type` (boolean, optional, default: false) — trueの場合、ツール応答から抽出された非スカラー値（リスト、オブジェクト）は、JSON文字列に変換せずネイティブ型のまま保存されます。抽出した配列をリスト動的変数として直接使用するには有効にしてください。

### DynamicVariablesConfig

- `dynamic_variable_placeholders` (map from string to any, optional) — 動的変数プレースホルダーとその値の辞書です。

### ObjectJsonSchemaPropertyInput

- `property_kind` (enum, optional, default: object)
  - Allowed values: `array`, `object`
- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — 設定すると、実行時にパラメーター全体へこの動的変数から値が入力されます。description（LLM提供の値）、constant_value、is_omittedとは併用できません。
- `constant_value` (map from string to any, optional) — 設定すると、実行時にオブジェクト全体でこの定数JSON値を使用します。description（LLM提供のオブジェクト）、dynamic_variable、is_omittedとは併用できません。
- `is_omitted` (boolean, optional, default: false) — trueの場合、このパラメータはリクエストから完全に省略されます。任意パラメータでのみ有効です。description、dynamic_variable、constant_valueとは併用できません。
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyInputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — 必須フィールドを対象とするanyOf/allOf構成制約のラッパー。

### SystemToolConfigInputParams

- `system_tool_type`: `end_call`
- `system_tool_type`: `end_procedure`
  - `procedures` (map from string to EndProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `knowledge_base`
  - `enabled_strategies` (list of enum, optional)
    - Allowed values: `cat`, `keyword`, `semantic`, `ls`
- `system_tool_type`: `knowledge_base_rag`
- `system_tool_type`: `language_detection`
  - `only_at_conversation_start` (boolean, optional, default: false) — 最初の2回のユーザーターンで言語切り替えが行われない場合、それ以降の切り替え試行は失敗し、会話は現在の言語のままになります。その間に言語が切り替わった場合は、以降も切り替えを利用できます。誤った切り替えが発生する可能性を減らすには有効にしてください。
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — trueの場合、エージェントはDTMFトーンの再生後に追加の音声を生成しません。これにより、エージェントの音声がIVRシステムに干渉することを防ぎます。
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — DTMFトーンをインバンドオーディオではなく、アウトオブバンドRTPイベント（RFC 4733）として送信します。SIPトランクからインポートした電話番号でのみ有効です。
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — skip_turnの後、エージェントが文脈に応じた状況確認を生成するまでの待機秒数です。待機中は「End conversation after silence」タイマーが一時停止します。-1を指定すると待機を無効にします。この場合、skip_turnの後、呼び出し元が話すまでエージェントは沈黙し、タイマーは動作し続けます。音声会話にのみ適用されます。
- `system_tool_type`: `start_procedure`
  - `procedures` (map from string to StartProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `transfer_to_agent`
  - `transfers` (list of AgentTransferInput, required)
- `system_tool_type`: `transfer_to_number`
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — 転送待ちのクライアントにメッセージを再生するかどうか。後方互換性のため、デフォルトはtrueです。
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — 留守番電話を検出した際に残す任意のメッセージです。指定しない場合、留守番電話を検出すると通話はすぐに終了します。動的変数（例：\{\{system\_\_time}}、\{\{system\_\_call\_duration\_secs}}、\{\{custom\_variable}}）に対応しています。

### WebhookToolApiSchemaConfigInput

- `url` (string, required) — Webhookの送信先URLです。パスパラメーターを含めることができます。例：[https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigInputRequestHeadersValue, optional) — リクエストに含めるヘッダー
- `method` (enum, optional, default: GET) — Webhookで使用するHTTPメソッド
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — パスパラメータがある場合のスキーマです。キーはURL内のプレースホルダーと一致している必要があります。
- `query_params_schema` (QueryParamsJsonSchemaInput, optional) — クエリパラメータがある場合のスキーマです。これらはクエリパラメータとしてURLの末尾に追加されます。注意：クエリパラメータ内のプロパティはすべてリテラル型である必要があります。
- `request_body_schema` (ObjectJsonSchemaPropertyInput, optional) — ボディパラメータがある場合のスキーマです。POST／PATCH／PUTリクエストで使用します。スキーマはJSONボディとして送信されるオブジェクトである必要があります。
- `response_body_schema` (ObjectJsonSchemaPropertyInput, optional) — 想定されるレスポンス本文の構造を記述するスキーマ。ドキュメント専用であり、LLMには公開されません。
- `response_filter` (ResponseFilter, optional) — LLMが応答を見る前に適用する任意の許可リストフィルターです。大きな応答によってコンテキストが汚染されるのを防ぎます。デフォルトでは完全な応答です。
- `content_type` (enum, optional, default: application/json) — リクエスト本文のコンテンツタイプです。POST／PUT／PATCHリクエストにのみ適用されます。
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — path_params_schemaではなく、認証接続から解決されるURLプレースホルダー（例：UrlSecretAuthConnectionを介して挿入されたシークレット）。
- `auth_connection` (WebhookToolApiSchemaConfigInputAuthConnection, optional) — このWebhookの認証に使用する任意の認証接続

### UnitTestToolCallParameter

- `eval` (UnitTestToolCallParameterEval, required)
- `path` (string, required)

### ObjectJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — 設定すると、実行時にパラメーター全体へこの動的変数から値が入力されます。description（LLM提供の値）、constant_value、is_omittedとは併用できません。
- `constant_value` (map from string to any, optional) — 設定すると、実行時にオブジェクト全体でこの定数JSON値を使用します。description（LLM提供のオブジェクト）、dynamic_variable、is_omittedとは併用できません。
- `is_omitted` (boolean, optional, default: false) — trueの場合、このパラメータはリクエストから完全に省略されます。任意パラメータでのみ有効です。description、dynamic_variable、constant_valueとは併用できません。
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyOutputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — 必須フィールドを対象とするanyOf/allOf構成制約のラッパー。

### SystemToolConfigOutputParams

- `system_tool_type`: `end_call`
- `system_tool_type`: `end_procedure`
  - `procedures` (map from string to EndProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `knowledge_base`
  - `enabled_strategies` (list of enum, optional)
    - Allowed values: `cat`, `keyword`, `semantic`, `ls`
- `system_tool_type`: `knowledge_base_rag`
- `system_tool_type`: `language_detection`
  - `only_at_conversation_start` (boolean, optional, default: false) — 最初の2回のユーザーターンで言語切り替えが行われない場合、それ以降の切り替え試行は失敗し、会話は現在の言語のままになります。その間に言語が切り替わった場合は、以降も切り替えを利用できます。誤った切り替えが発生する可能性を減らすには有効にしてください。
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — trueの場合、エージェントはDTMFトーンの再生後に追加の音声を生成しません。これにより、エージェントの音声がIVRシステムに干渉することを防ぎます。
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — DTMFトーンをインバンドオーディオではなく、アウトオブバンドRTPイベント（RFC 4733）として送信します。SIPトランクからインポートした電話番号でのみ有効です。
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — skip_turnの後、エージェントが文脈に応じた状況確認を生成するまでの待機秒数です。待機中は「End conversation after silence」タイマーが一時停止します。-1を指定すると待機を無効にします。この場合、skip_turnの後、呼び出し元が話すまでエージェントは沈黙し、タイマーは動作し続けます。音声会話にのみ適用されます。
- `system_tool_type`: `start_procedure`
  - `procedures` (map from string to StartProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `transfer_to_agent`
  - `transfers` (list of AgentTransferOutput, required)
- `system_tool_type`: `transfer_to_number`
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — 転送待ちのクライアントにメッセージを再生するかどうか。後方互換性のため、デフォルトはtrueです。
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — 留守番電話を検出した際に残す任意のメッセージです。指定しない場合、留守番電話を検出すると通話はすぐに終了します。動的変数（例：\{\{system\_\_time}}、\{\{system\_\_call\_duration\_secs}}、\{\{custom\_variable}}）に対応しています。

### WebhookToolApiSchemaConfigOutput

- `url` (string, required) — Webhookの送信先URLです。パスパラメーターを含めることができます。例：[https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigOutputRequestHeadersValue, optional) — リクエストに含めるヘッダー
- `method` (enum, optional, default: GET) — Webhookで使用するHTTPメソッド
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — パスパラメータがある場合のスキーマです。キーはURL内のプレースホルダーと一致している必要があります。
- `query_params_schema` (QueryParamsJsonSchemaOutput, optional) — クエリパラメータがある場合のスキーマです。これらはクエリパラメータとしてURLの末尾に追加されます。注意：クエリパラメータ内のプロパティはすべてリテラル型である必要があります。
- `request_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — ボディパラメータがある場合のスキーマです。POST／PATCH／PUTリクエストで使用します。スキーマはJSONボディとして送信されるオブジェクトである必要があります。
- `response_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — 想定されるレスポンス本文の構造を記述するスキーマ。ドキュメント専用であり、LLMには公開されません。
- `response_filter` (ResponseFilter, optional) — LLMが応答を見る前に適用する任意の許可リストフィルターです。大きな応答によってコンテキストが汚染されるのを防ぎます。デフォルトでは完全な応答です。
- `content_type` (enum, optional, default: application/json) — リクエスト本文のコンテンツタイプです。POST／PUT／PATCHリクエストにのみ適用されます。
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — path_params_schemaではなく、認証接続から解決されるURLプレースホルダー（例：UrlSecretAuthConnectionを介して挿入されたシークレット）。
- `auth_connection` (WebhookToolApiSchemaConfigOutputAuthConnection, optional) — このWebhookの認証に使用する任意の認証接続

### ValidationErrorLocItem

### ObjectJsonSchemaPropertyInputPropertiesValue

### RequiredConstraints

必須フィールドを対象とするanyOf/allOf構成制約のラッパー。

- `any_of` (list of RequiredConstraint, optional)
- `all_of` (list of RequiredConstraint, optional)

### EndProcedureToolConfigProceduresValue

### StartProcedureToolConfigProceduresValue

### AgentTransferInput

- `condition` (string, required)
- `agent_id` (string, optional)
- `branch_id` (string, optional)
- `node_id` (string, optional)
- `delay_ms` (integer, optional, default: 0)
- `transfer_message` (string, optional)
- `enable_transferred_agent_first_message` (boolean, optional, default: false)
- `is_workflow_node_transfer` (boolean, optional, default: false)
- `preserve_client_tts_overrides` (boolean, optional, default: false) — TTSクライアントのオーバーライドを転送先のエージェントに引き継ぐかどうかを定義します。
- `preserve_voice_settings` (boolean, optional, default: false) — ベース音声、TTSモデル、音声設定を転送先のエージェントに引き継ぐかどうかを定義します。

### PhoneNumberTransfer

- `transfer_destination` (PhoneNumberTransferTransferDestination, required)
- `condition` (string, required)
- `custom_sip_headers` (list of PhoneNumberTransferCustomSipHeadersItem, optional) — 通話転送時に含めるカスタムSIPヘッダー。各ヘッダーには静的な値または動的変数参照を指定できます。
- `transfer_type` (enum, optional, default: conference)
  - Allowed values: `blind`, `conference`, `sip_refer`
- `sip_refer_play_dialtone` (boolean, optional, default: true) — Trueの場合、SIP REFER転送の完了中に、元の通話レッグで呼び出し音が再生されます。この音はRTP経由でREFERを実行するSIPピアに送られるため、受信システム（SBCやコンタクトセンターなど）でこの音を聞かせたくない場合は無効にしてください。無効にすると、転送が完了するまで発信者には無音が聞こえます。SIP REFER転送でのみ使用できます。
- `uui` (UuiTransferConfig, optional) — SIP REFER転送に添付するUser-to-User Information（RFC 7433）。CRM識別子やエスカレーション理由などの通話コンテキストを、転送の境界を越えて引き継ぎます。
- `post_dial_digits` (PhoneNumberTransferPostDialDigits, optional) — 通話接続後に送信するDTMF数字（例：内線番号には'ww1234'）。静的値または動的変数参照を指定できます。0.5秒の一時停止には'w'を使用します。Twilio転送でのみサポートされます。
- `phone_number` (string, optional, deprecated)

### WebhookToolApiSchemaConfigInputRequestHeadersValue

### LiteralJsonSchemaProperty

リテラルJSON型のスキーマプロパティです。重要：設定できるのは、description（LLMが値を提供）、dynamic_variable（変数からの値）、is_system_provided（システムが値を提供）、constant_value（固定値）、is_omitted（パラメータを省略）のうち1つだけです。これらは相互排他的です。

- `type` (LiteralJsonSchemaPropertyType, required)
- `description` (string, optional, default: ) — プロパティの説明。設定すると、LLMはこの説明に基づいて値を提供します。dynamic_variable、is_system_provided、constant_value、is_omittedとは併用できません。
- `enum` (list of string, optional) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — trueの場合、値は実行時にシステムによって設定されます。API Integration Webhookツールでテンプレート化に使用されます。description、dynamic_variable、constant_value、is_omittedとは併用できません。
- `dynamic_variable` (string, optional, default: ) — このプロパティの値に使用する動的変数の名前。description、is_system_provided、constant_value、is_omittedとは併用できません。
- `allowed_values` (AllowedValues, optional) — LLMが提供する値に対するサーバー側の拒否ガードです。ランタイムは、このオブジェクトで指定された許可セット外の値を拒否します。このセットはenumとしてLLMには公開されません。値のソースが`description`の場合のみサポートされ、dynamic_variable、is_system_provided、constant_value、is_omittedとの組み合わせは拒否されます。
- `constant_value` (LiteralJsonSchemaPropertyConstantValue, optional) — このプロパティに使用する定数値です。description、dynamic_variable、is_system_provided、is_omittedとは同時に使用できません。
- `is_omitted` (boolean, optional, default: false) — trueの場合、このパラメータはリクエストから完全に省略されます。任意パラメータでのみ有効です。description、dynamic_variable、is_system_provided、constant_valueとは併用できません。
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — 非推奨：代わりに`allowed_values`を使用してください。設定すると、LLMが値を提供しますが、実行時にはこの動的変数が保持するリストにない値を拒否します（["ws_alpha", "ws_beta"]のようなJSON配列である必要があります）。LLMがサーバー検証済みのセット（例：現在のユーザーにアクセスが許可されているID）から選択できるようにする場合に使用します。descriptionが必要です。dynamic_variable、is_system_provided、constant_value、is_omittedとは同時に使用できません。

### QueryParamsJsonSchemaInput

- `properties` (map from string to LiteralJsonSchemaProperty, required)
- `required` (list of string, optional)

### ResponseFilter

エージェントに表示される前にツールレスポンスをフィルタリングするための設定。

- `mode` (enum, optional, default: all) — ツール応答のフィルタリング方法を制御します。'all'は応答全体を返し、'allow'は指定したパスのみを返し、'hide_all'は応答全体を非表示にします。
  - Allowed values: `all`, `allow`, `hide_all`
- `filters` (list of string, optional) — モードが'allow'の場合に含めるドット記法のパス（例：['ticket.id', 'ticket.status']）。
- `content_type` ("application/json", optional) — レスポンスフィルタリング用のコンテンツタイプです。'application/json'のレスポンスのみがフィルタリングされます。

### WebhookToolApiSchemaConfigInputAuthConnection

このWebhookの認証に使用する任意の認証接続

### UnitTestToolCallParameterEval

- `type`: `anything`
- `type`: `exact`
  - `expected_value` (string, required) — パラメータが一致する必要がある正確な文字列値。
- `type`: `llm`
  - `description` (string, required) — テストで使用する評価戦略の説明です。
- `type`: `regex`
  - `pattern` (string, required) — エージェントの応答と照合する正規表現パターン。

### ObjectJsonSchemaPropertyOutputPropertiesValue

### AgentTransferOutput

- `condition` (string, required)
- `agent_id` (string, optional)
- `branch_id` (string, optional)
- `node_id` (string, optional)
- `delay_ms` (integer, optional, default: 0)
- `transfer_message` (string, optional)
- `enable_transferred_agent_first_message` (boolean, optional, default: false)
- `is_workflow_node_transfer` (boolean, optional, default: false)
- `preserve_client_tts_overrides` (boolean, optional, default: false) — TTSクライアントのオーバーライドを転送先のエージェントに引き継ぐかどうかを定義します。
- `preserve_voice_settings` (boolean, optional, default: false) — ベース音声、TTSモデル、音声設定を転送先のエージェントに引き継ぐかどうかを定義します。

### WebhookToolApiSchemaConfigOutputRequestHeadersValue

### QueryParamsJsonSchemaOutput

- `properties` (map from string to LiteralJsonSchemaProperty, required)
- `required` (list of string, optional)

### WebhookToolApiSchemaConfigOutputAuthConnection

このWebhookの認証に使用する任意の認証接続

### ArrayJsonSchemaPropertyInput

- `property_kind` (enum, optional, default: array)
  - Allowed values: `array`, `object`
- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — 設定すると、実行時にパラメーター全体へこの動的変数から値が入力されます。description（LLM提供の値）、constant_value、is_omittedとは併用できません。
- `constant_value` (list of any, optional) — 設定すると、実行時に配列全体でこの定数値を使用します。description（LLM提供の配列）、dynamic_variable、is_omittedとは併用できません。
- `is_omitted` (boolean, optional, default: false) — trueの場合、このパラメータはリクエストから完全に省略されます。任意パラメータでのみ有効です。description、dynamic_variable、constant_valueとは併用できません。
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyInputItems, optional) — 配列要素のスキーマです。

### RequiredConstraint

この制約を満たすためにすべて存在する必要があるフィールドのセット。

- `required` (list of string, required)

### ProcedureVersionRef

- `procedure_id` (string, required) — 手順ID
- `version_id` (string, required) — プロシージャバージョンのID。

### ProcedureDraftRef

- `procedure_id` (string, required) — 手順ID
- `version_id` (any, optional)

### PhoneNumberTransferTransferDestination

- `type`: `phone`
  - `phone_number` (string, required)
- `type`: `phone_dynamic_variable`
  - `phone_number` (string, required)
- `type`: `sip_uri`
  - `sip_uri` (string, required)
- `type`: `sip_uri_dynamic_variable`
  - `sip_uri` (string, required)

### PhoneNumberTransferCustomSipHeadersItem

- `type`: `dynamic`
  - `key` (string, required) — SIPヘッダー名（例：'X-Customer-ID'）
  - `value` (string, required) — 解決する動的変数名
- `type`: `static`
  - `key` (string, required) — SIPヘッダー名（例：'X-Customer-ID'）
  - `value` (string, required) — ヘッダー値

### UuiTransferConfig

SIP REFER転送用のUser-to-User Informationエンベロープ（RFC 7433）。 送信ペイロードは16進数でエンコードされます（RFC 7433で定義されている唯一のエンコード方式です）。 プロトコル識別子の軸により、プラットフォームごとの形式（Talkdesk、Genesysなど）を、分散した転送フラグではなく設定で表現できます。転送モデルを変更せずに、 追加の軸（ASCIIエンコード、ヘッダー名、目的／コンテンツパラメータ）をここに追加できます。

- `data` (string, required) — SIP REFER転送時に送信するUUIペイロード。インライン動的変数をサポートし、転送時に16進数でエンコードされます。
- `protocol_discriminator` (string, optional) — 任意の1オクテットプロトコル識別子（16進数2桁、例：'00'）です。Genesys Cloudなど、指定しない場合にペイロードの先頭オクテットを削除するプラットフォームでは必須です。裸の16進ペイロードを期待するTalkdeskなどのプラットフォームでは設定しないでください。
- `protocol_discriminator_mode` (enum, optional, default: prefix) — protocol\_discriminatorの付加方法です。'prefix'は16進ペイロードの先頭にオクテットを追加します（User-to-User=XX\<hex>;encoding=hex）。'pd\_parameter'は別のパラメーターとして送信します（User-to-User=\<hex>;pd=XX;encoding=hex）。protocol\_discriminatorが未設定の場合は無視されます。
  - Allowed values: `prefix`, `pd_parameter`

### PhoneNumberTransferPostDialDigits

- `type`: `dynamic`
  - `value` (string, required) — 解決する動的変数名
- `type`: `static`
  - `value` (string, required) — 通話接続後に送信するDTMF数字（例：内線番号には'ww1234'）

### ConvAiSecretLocator

エージェントのシークレットストア内のシークレットを参照するために使用します。

- `secret_id` (string, required)

### ConvAiDynamicVariable

動的変数を参照するために使用します。

- `variable_name` (string, required)

### ConvAiEnvVarLocator

ラベルで環境変数を参照するために使用します。

- `env_var_label` (string, required)

### LiteralJsonSchemaPropertyType

### AllowedValues

- `dynamic_variable` (string, required) — 許可された値のJSON配列に解決される必要がある動的変数の名前（例：["ws_alpha", "ws_beta"]）。システム変数は、リストに解決される場合にのみ機能します。

### LiteralJsonSchemaPropertyConstantValue

このプロパティに使用する定数値です。description、dynamic_variable、is_system_provided、is_omittedとは同時に使用できません。

### AuthConnectionLocator

ワークスペースの認証接続ストア内の認証接続を参照するために使用します。

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

ラベルで'auth_connection'型の環境変数を参照します。実行時には現在の環境の認証接続に解決され、該当しない場合はデフォルト環境にフォールバックします。

- `env_var_label` (string, required)

### ArrayJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — 設定すると、実行時にパラメーター全体へこの動的変数から値が入力されます。description（LLM提供の値）、constant_value、is_omittedとは併用できません。
- `constant_value` (list of any, optional) — 設定すると、実行時に配列全体でこの定数値を使用します。description（LLM提供の配列）、dynamic_variable、is_omittedとは併用できません。
- `is_omitted` (boolean, optional, default: false) — trueの場合、このパラメータはリクエストから完全に省略されます。任意パラメータでのみ有効です。description、dynamic_variable、constant_valueとは併用できません。
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyOutputItems, optional) — 配列要素のスキーマです。

### ArrayJsonSchemaPropertyInputItems

配列要素のスキーマです。

### ArrayJsonSchemaPropertyOutputItems

配列要素のスキーマです。

## Examples

**Request**

```json
{
  "tool_config": {
    "type": "client",
    "description": "description",
    "name": "name",
    "expects_response": false
  }
}
```

**Response**

```json
{
  "id": "id",
  "tool_config": {
    "type": "client",
    "description": "description",
    "name": "name",
    "assignments": [
      {
        "dynamic_variable": "user_name",
        "value_path": "user.name",
        "source": "response",
        "sanitize": false,
        "preserve_native_type": false
      }
    ],
    "dynamic_variables": {
      "dynamic_variable_placeholders": {
        "user_name": "John Doe"
      }
    },
    "execution_mode": "immediate",
    "expects_response": false,
    "interruption_mode": "allow",
    "parameters": {
      "description": "description",
      "dynamic_variable": "dynamic_variable",
      "constant_value": {
        "key": "value"
      },
      "is_omitted": true,
      "type": "object",
      "required": [
        "required"
      ],
      "properties": {
        "key": {
          "description": "A user-provided message",
          "type": "string"
        }
      }
    },
    "pre_tool_speech": "auto",
    "response_timeout_secs": 1,
    "tool_call_sound": "typing",
    "tool_call_sound_behavior": "auto",
    "tool_error_handling_mode": "auto"
  },
  "access_info": {
    "is_creator": true,
    "creator_name": "John Doe",
    "creator_email": "john.doe@example.com",
    "role": "admin",
    "anonymous_access_level_override": "admin",
    "access_source": "creator"
  },
  "usage_stats": {
    "avg_latency_secs": 1.1,
    "total_calls": 1
  },
  "response_mocks": [
    {
      "mock_result": "mock_result",
      "parameter_conditions": [
        {
          "eval": {
            "type": "anything"
          },
          "path": "path"
        }
      ],
      "is_error": true
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/tools"

payload = { "tool_config": {
        "type": "client",
        "description": "description",
        "name": "name",
        "expects_response": False
    } }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/tools';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"tool_config":{"type":"client","description":"description","name":"name","expects_response":false}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/tools"

	payload := strings.NewReader("{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/tools")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/convai/tools")
  .header("Content-Type", "application/json")
  .body("{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/convai/tools', [
  'body' => '{
  "tool_config": {
    "type": "client",
    "description": "description",
    "name": "name",
    "expects_response": false
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/tools");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["tool_config": [
    "type": "client",
    "description": "description",
    "name": "name",
    "expects_response": false
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/tools")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```