ツール: create_guardrail
指定されたアプリに新しいガードレールを作成します。
次のサンプルは、curl を使用して create_guardrail MCP ツールを呼び出す方法を示しています。
| Curl リクエスト |
|---|
curl --location 'https://ces.[REGION].rep.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_guardrail", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
入力スキーマ
AgentService.CreateGuardrail のリクエスト メッセージです。
CreateGuardrailRequest
| JSON 表現 |
|---|
{
"parent": string,
"guardrailId": string,
"guardrail": {
object ( |
| フィールド | |
|---|---|
parent |
必須。ガードレールを作成するアプリのリソース名。 |
guardrailId |
省略可。ガードレールに使用する ID。ガードレールのリソース名の最終的なコンポーネントになります。指定しない場合、ガードレールに一意の ID が自動的に割り当てられます。 |
guardrail |
必須。作成するガードレール。 |
ガードレール
| JSON 表現 |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| フィールド | |
|---|---|
name |
ID。ガードレールの固有識別子。形式: |
displayName |
必須。ガードレールの表示名。 |
description |
省略可。ガードレールの説明。 |
enabled |
省略可。ガードレールが有効かどうか。 |
action |
省略可。ガードレールがトリガーされたときに実行するアクション。 |
createTime |
出力専用。ガードレールが作成されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
updateTime |
出力専用。ガードレールが最後に更新されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
etag |
読み取り、変更、書き込みオペレーション中にオブジェクトが変更されていないことを確認するために使用される ETag。etag が空の場合、更新によって同時変更が上書きされます。 |
共用体フィールド guardrail_type。ガードレールのタイプ。guardrail_type は次のいずれかになります。 |
|
contentFilter |
省略可。会話で特定のコンテンツを使用することを禁止するガードレール。 |
llmPromptSecurity |
省略可。LLM の分類に基づいてプロンプトが安全でないと判断された場合に、会話をブロックするガードレール。 |
llmPolicy |
省略可。LLM の分類に基づいて LLM レスポンスがポリシーに違反していると判断された場合に、会話をブロックするガードレール。 |
modelSafety |
省略可。モデルの安全性設定に基づいて LLM レスポンスが安全でないと判断された場合に、会話をブロックするガードレール。 |
codeCallback |
省略可。コールバック実行の結果に基づいて会話をブロックする可能性のあるガードレール。 |
ContentFilter
| JSON 表現 |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| フィールド | |
|---|---|
bannedContents[] |
省略可。禁止されたフレーズのリスト。ユーザー入力とエージェントの回答の両方に適用されます。 |
bannedContentsInUserInput[] |
省略可。禁止されたフレーズのリスト。ユーザー入力にのみ適用されます。 |
bannedContentsInAgentResponse[] |
省略可。禁止されたフレーズのリスト。エージェントの回答にのみ適用されます。 |
matchType |
必須。コンテンツ フィルタのマッチタイプ。 |
disregardDiacritics |
省略可。true の場合、マッチング時に発音区別符号が無視されます。 |
LlmPromptSecurity
| JSON 表現 |
|---|
{ "failOpen": boolean, // Union field |
| フィールド | |
|---|---|
failOpen |
省略可。ガードレールで LLM エラーが発生した場合の動作を決定します。- true の場合: ガードレールはバイパスされます。- false(デフォルト)の場合: ガードレールがトリガーまたはブロックされます。 注: カスタム ポリシーが指定されている場合、このフィールドは無視され、ポリシーの「fail_open」構成が優先されます。 |
共用体フィールド security_config。セキュリティ構成モードを定義します。ユーザーは次のいずれかの構成を選択する必要があります。security_config は次のいずれかになります。 |
|
defaultSettings |
省略可。システムの事前定義されたデフォルトのセキュリティ設定を使用します。このモードを選択するには、リクエストに空の default_settings メッセージを含めます。このフィールド内の「default_prompt_template」フィールドは、レスポンスでサーバーによって入力されます。 |
customPolicy |
省略可。ユーザー定義の LlmPolicy を使用して、セキュリティ ガードレールを構成します。 |
DefaultSecuritySettings
| JSON 表現 |
|---|
{ "defaultPromptTemplate": string } |
| フィールド | |
|---|---|
defaultPromptTemplate |
出力専用。システムで使用されるデフォルトのプロンプト テンプレート。このフィールドは、システムがデフォルトで使用するプロンプトをユーザーに表示するためのものです。OUTPUT_ONLY です。 |
LlmPolicy
| JSON 表現 |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| フィールド | |
|---|---|
maxConversationMessages |
省略可。このポリシーを確認する際は、会話の最後の「n」件のメッセージを考慮します。設定されていない場合、デフォルト値の 10 が使用されます。 |
modelSettings |
省略可。モデル設定。 |
prompt |
必須。ポリシーのプロンプト。 |
policyScope |
必須。会話中にポリシー チェックを適用するタイミングを定義します。 |
failOpen |
省略可。ポリシーのチェック中にエラーが発生した場合は、フェイルオープンしてガードレールをトリガーしません。 |
allowShortUtterance |
省略可。デフォルトでは、短い発話の場合、LLM ポリシー チェックはバイパスされます。この設定を有効にすると、通常はスキップされる発話を含め、すべての発話にポリシー チェックが適用されます。 |
ModelSettings
| JSON 表現 |
|---|
{ "model": string, // Union field |
| フィールド | |
|---|---|
model |
省略可。エージェントが使用する LLM モデル。設定されていない場合、エージェントは親エージェントからモデルを継承します。 |
共用体フィールド
|
|
temperature |
省略可。設定すると、この温度が LLM モデルに使用されます。温度は、モデルのレスポンスのランダム性を制御します。温度が低いほど、予測しやすい回答が生成されます。温度が高いほど、より創造的なレスポンスが生成されます。 |
ModelSafety
| JSON 表現 |
|---|
{
"safetySettings": [
{
object ( |
| フィールド | |
|---|---|
safetySettings[] |
必須。安全性設定のリスト。 |
SafetySetting
| JSON 表現 |
|---|
{ "category": enum ( |
| フィールド | |
|---|---|
category |
必須。有害カテゴリ。 |
threshold |
必須。有害ブロックのしきい値。 |
CodeCallback
| JSON 表現 |
|---|
{ "beforeAgentCallback": { object ( |
| フィールド | |
|---|---|
beforeAgentCallback |
省略可。エージェントが呼び出される前に実行するコールバック。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
afterAgentCallback |
省略可。エージェントの呼び出し後に実行するコールバック。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
beforeModelCallback |
省略可。モデルが呼び出される前に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
afterModelCallback |
省略可。モデルの呼び出し後に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
コールバック
| JSON 表現 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| フィールド | |
|---|---|
description |
省略可。コールバックの説明(人が読める形式)。 |
disabled |
省略可。コールバックが無効かどうか。無効になっているコールバックはエージェントによって無視されます。 |
proactiveExecutionEnabled |
省略可。有効にすると、中間モデルの出力でもコールバックが実行されます。この設定は、モデル コールバック後にのみ影響します。慎重に有効にしてください。通常、モデル コールバックはすべてのモデル レスポンスを受信した後にのみ実行する必要があります。プロアクティブな実行を有効にすると、実行コストとレイテンシに悪影響を及ぼす可能性があるため、有効にするのはまれな状況のみにしてください。 |
共用体フィールド callback。実行するコールバック。callback は次のいずれかになります。 |
|
pythonCode |
必須。コールバックで実行する Python コード。 |
TriggerAction
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド action。実行するアクション。action は次のいずれかになります。 |
|
respondImmediately |
省略可。事前構成されたレスポンスですぐに返信します。 |
transferAgent |
省略可。会話を別のエージェントに転送します。 |
generativeAnswer |
省略可。生成回答で返信します。 |
RespondImmediately
| JSON 表現 |
|---|
{
"responses": [
{
object ( |
| フィールド | |
|---|---|
responses[] |
必須。エージェントが選択できる返信定型文。レスポンスはランダムに選択されます。 |
レスポンス
| JSON 表現 |
|---|
{ "text": string, "disabled": boolean } |
| フィールド | |
|---|---|
text |
必須。エージェントが返信するテキスト。 |
disabled |
省略可。レスポンスが無効かどうか。無効にしたレスポンスはエージェントによって使用されません。 |
TransferAgent
| JSON 表現 |
|---|
{ "agent": string } |
| フィールド | |
|---|---|
agent |
必須。会話の転送先のエージェントの名前。エージェントは、現在のエージェントと同じアプリに存在する必要があります。形式: |
GenerativeAnswer
| JSON 表現 |
|---|
{ "prompt": string } |
| フィールド | |
|---|---|
prompt |
必須。生成された回答に使用するプロンプト。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
出力スキーマ
ガードレールには、エージェントの安全性とセキュリティを維持するためのチェックとバランスのリストが含まれています。
ガードレール
| JSON 表現 |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| フィールド | |
|---|---|
name |
ID。ガードレールの固有識別子。形式: |
displayName |
必須。ガードレールの表示名。 |
description |
省略可。ガードレールの説明。 |
enabled |
省略可。ガードレールが有効かどうか。 |
action |
省略可。ガードレールがトリガーされたときに実行するアクション。 |
createTime |
出力専用。ガードレールが作成されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
updateTime |
出力専用。ガードレールが最後に更新されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
etag |
読み取り、変更、書き込みオペレーション中にオブジェクトが変更されていないことを確認するために使用される ETag。etag が空の場合、更新によって同時変更が上書きされます。 |
共用体フィールド guardrail_type。ガードレールのタイプ。guardrail_type は次のいずれかになります。 |
|
contentFilter |
省略可。会話で特定のコンテンツを使用することを禁止するガードレール。 |
llmPromptSecurity |
省略可。LLM の分類に基づいてプロンプトが安全でないと判断された場合に、会話をブロックするガードレール。 |
llmPolicy |
省略可。LLM の分類に基づいて LLM レスポンスがポリシーに違反していると判断された場合に、会話をブロックするガードレール。 |
modelSafety |
省略可。モデルの安全性設定に基づいて LLM レスポンスが安全でないと判断された場合に、会話をブロックするガードレール。 |
codeCallback |
省略可。コールバック実行の結果に基づいて会話をブロックする可能性のあるガードレール。 |
ContentFilter
| JSON 表現 |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| フィールド | |
|---|---|
bannedContents[] |
省略可。禁止されたフレーズのリスト。ユーザー入力とエージェントの回答の両方に適用されます。 |
bannedContentsInUserInput[] |
省略可。禁止されたフレーズのリスト。ユーザー入力にのみ適用されます。 |
bannedContentsInAgentResponse[] |
省略可。禁止されたフレーズのリスト。エージェントの回答にのみ適用されます。 |
matchType |
必須。コンテンツ フィルタのマッチタイプ。 |
disregardDiacritics |
省略可。true の場合、マッチング時に発音区別符号が無視されます。 |
LlmPromptSecurity
| JSON 表現 |
|---|
{ "failOpen": boolean, // Union field |
| フィールド | |
|---|---|
failOpen |
省略可。ガードレールで LLM エラーが発生した場合の動作を決定します。- true の場合: ガードレールはバイパスされます。- false(デフォルト)の場合: ガードレールがトリガーまたはブロックされます。 注: カスタム ポリシーが指定されている場合、このフィールドは無視され、ポリシーの「fail_open」構成が優先されます。 |
共用体フィールド security_config。セキュリティ構成モードを定義します。ユーザーは次のいずれかの構成を選択する必要があります。security_config は次のいずれかになります。 |
|
defaultSettings |
省略可。システムの事前定義されたデフォルトのセキュリティ設定を使用します。このモードを選択するには、リクエストに空の default_settings メッセージを含めます。このフィールド内の「default_prompt_template」フィールドは、レスポンスでサーバーによって入力されます。 |
customPolicy |
省略可。ユーザー定義の LlmPolicy を使用して、セキュリティ ガードレールを構成します。 |
DefaultSecuritySettings
| JSON 表現 |
|---|
{ "defaultPromptTemplate": string } |
| フィールド | |
|---|---|
defaultPromptTemplate |
出力専用。システムで使用されるデフォルトのプロンプト テンプレート。このフィールドは、システムがデフォルトで使用するプロンプトをユーザーに表示するためのものです。OUTPUT_ONLY です。 |
LlmPolicy
| JSON 表現 |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| フィールド | |
|---|---|
maxConversationMessages |
省略可。このポリシーを確認する際は、会話の最後の「n」件のメッセージを考慮します。設定されていない場合、デフォルト値の 10 が使用されます。 |
modelSettings |
省略可。モデル設定。 |
prompt |
必須。ポリシーのプロンプト。 |
policyScope |
必須。会話中にポリシー チェックを適用するタイミングを定義します。 |
failOpen |
省略可。ポリシーのチェック中にエラーが発生した場合は、フェイルオープンしてガードレールをトリガーしません。 |
allowShortUtterance |
省略可。デフォルトでは、短い発話の場合、LLM ポリシー チェックはバイパスされます。この設定を有効にすると、通常はスキップされる発話を含め、すべての発話にポリシー チェックが適用されます。 |
ModelSettings
| JSON 表現 |
|---|
{ "model": string, // Union field |
| フィールド | |
|---|---|
model |
省略可。エージェントが使用する LLM モデル。設定されていない場合、エージェントは親エージェントからモデルを継承します。 |
共用体フィールド
|
|
temperature |
省略可。設定すると、この温度が LLM モデルに使用されます。温度は、モデルのレスポンスのランダム性を制御します。温度が低いほど、予測しやすい回答が生成されます。温度が高いほど、より創造的なレスポンスが生成されます。 |
ModelSafety
| JSON 表現 |
|---|
{
"safetySettings": [
{
object ( |
| フィールド | |
|---|---|
safetySettings[] |
必須。安全性設定のリスト。 |
SafetySetting
| JSON 表現 |
|---|
{ "category": enum ( |
| フィールド | |
|---|---|
category |
必須。有害カテゴリ。 |
threshold |
必須。有害ブロックのしきい値。 |
CodeCallback
| JSON 表現 |
|---|
{ "beforeAgentCallback": { object ( |
| フィールド | |
|---|---|
beforeAgentCallback |
省略可。エージェントが呼び出される前に実行するコールバック。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
afterAgentCallback |
省略可。エージェントの呼び出し後に実行するコールバック。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
beforeModelCallback |
省略可。モデルが呼び出される前に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
afterModelCallback |
省略可。モデルの呼び出し後に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。各コールバック関数は、少なくとも次のものを含む構造(辞書やオブジェクトなど)を返すことが想定されています。- 'decision': 'OK' または 'TRIGGER' のいずれか。- 'reason': 判定を説明する文字列。「TRIGGER」の判定により、それ以降の処理が停止されることがあります。 |
コールバック
| JSON 表現 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| フィールド | |
|---|---|
description |
省略可。コールバックの説明(人が読める形式)。 |
disabled |
省略可。コールバックが無効かどうか。無効になっているコールバックはエージェントによって無視されます。 |
proactiveExecutionEnabled |
省略可。有効にすると、中間モデルの出力でもコールバックが実行されます。この設定は、モデル コールバック後にのみ影響します。慎重に有効にしてください。通常、モデル コールバックはすべてのモデル レスポンスを受信した後にのみ実行する必要があります。プロアクティブな実行を有効にすると、実行コストとレイテンシに悪影響を及ぼす可能性があるため、有効にするのはまれな状況のみにしてください。 |
共用体フィールド callback。実行するコールバック。callback は次のいずれかになります。 |
|
pythonCode |
必須。コールバックで実行する Python コード。 |
TriggerAction
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド action。実行するアクション。action は次のいずれかになります。 |
|
respondImmediately |
省略可。事前構成されたレスポンスですぐに返信します。 |
transferAgent |
省略可。会話を別のエージェントに転送します。 |
generativeAnswer |
省略可。生成回答で返信します。 |
RespondImmediately
| JSON 表現 |
|---|
{
"responses": [
{
object ( |
| フィールド | |
|---|---|
responses[] |
必須。エージェントが選択できる返信定型文。レスポンスはランダムに選択されます。 |
レスポンス
| JSON 表現 |
|---|
{ "text": string, "disabled": boolean } |
| フィールド | |
|---|---|
text |
必須。エージェントが返信するテキスト。 |
disabled |
省略可。レスポンスが無効かどうか。無効にしたレスポンスはエージェントによって使用されません。 |
TransferAgent
| JSON 表現 |
|---|
{ "agent": string } |
| フィールド | |
|---|---|
agent |
必須。会話の転送先のエージェントの名前。エージェントは、現在のエージェントと同じアプリに存在する必要があります。形式: |
GenerativeAnswer
| JSON 表現 |
|---|
{ "prompt": string } |
| フィールド | |
|---|---|
prompt |
必須。生成された回答に使用するプロンプト。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
ツールのアノテーション
破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌