Herramienta: create_guardrail
Crea una nueva protección en la app especificada.
En el siguiente ejemplo, se muestra cómo usar curl para invocar la herramienta de MCP create_guardrail.
| Solicitud de 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 }' |
Esquema de entrada
Mensaje de solicitud para AgentService.CreateGuardrail.
CreateGuardrailRequest
| Representación JSON |
|---|
{
"parent": string,
"guardrailId": string,
"guardrail": {
object ( |
| Campos | |
|---|---|
parent |
Obligatorio. Es el nombre del recurso de la app en la que se creará una protección. |
guardrailId |
Es opcional. Es el ID que se usará para la protección, que se convertirá en el componente final del nombre del recurso de la protección. Si no se proporciona, se asignará automáticamente un ID único para la protección. |
guardrail |
Obligatorio. Es la protección que se creará. |
Baranda
| Representación JSON |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| Campos | |
|---|---|
name |
Es el identificador. Es el identificador único de la protección. Formato: |
displayName |
Obligatorio. Es el nombre visible de la protección. |
description |
Es opcional. Es la descripción de la barrera de protección. |
enabled |
Es opcional. Indica si la protección está habilitada. |
action |
Es opcional. Es la acción que se debe realizar cuando se activa la barrera de seguridad. |
createTime |
Solo salida. Es la marca de tiempo de cuando se creó la protección. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
updateTime |
Solo salida. Es la marca de tiempo de la última actualización del parámetro de protección. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
etag |
Es el ETag que se usa para garantizar que el objeto no haya cambiado durante una operación de lectura, modificación y escritura. Si el ETag está vacío, la actualización reemplazará cualquier cambio simultáneo. |
Campo de unión guardrail_type. Es el tipo de riel de protección. guardrail_type puede ser solo uno de los parámetros siguientes: |
|
contentFilter |
Es opcional. Es una protección que prohíbe el uso de cierto contenido en la conversación. |
llmPromptSecurity |
Es opcional. Es una protección que bloquea la conversación si la instrucción se considera no segura según la clasificación del LLM. |
llmPolicy |
Es opcional. Es una protección que bloquea la conversación si se considera que la respuesta del LLM incumple la política según la clasificación del LLM. |
modelSafety |
Es opcional. Es una protección que bloquea la conversación si la respuesta del LLM se considera no segura según la configuración de seguridad del modelo. |
codeCallback |
Es opcional. Es una protección que podría bloquear la conversación según el resultado de la ejecución de la devolución de llamada. |
ContentFilter
| Representación JSON |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| Campos | |
|---|---|
bannedContents[] |
Es opcional. Es la lista de frases prohibidas. Se aplica tanto a las entradas del usuario como a las respuestas del agente. |
bannedContentsInUserInput[] |
Es opcional. Es la lista de frases prohibidas. Solo se aplica a las entradas del usuario. |
bannedContentsInAgentResponse[] |
Es opcional. Es la lista de frases prohibidas. Solo se aplica a las respuestas del agente. |
matchType |
Obligatorio. Es el tipo de concordancia para el filtro de contenido. |
disregardDiacritics |
Es opcional. Si es verdadero, se ignoran los signos diacríticos durante la coincidencia. |
LlmPromptSecurity
| Representación JSON |
|---|
{ "failOpen": boolean, // Union field |
| Campos | |
|---|---|
failOpen |
Es opcional. Determina el comportamiento cuando la protección encuentra un error del LLM. - Si es verdadero, se omite la protección. - Si es falso (valor predeterminado), se activan o bloquean las protecciones. Nota: Si se proporciona una política personalizada, este campo se ignora en favor de la configuración "fail_open" de la política. |
Campo de unión security_config. Define el modo de configuración de seguridad. El usuario debe elegir una de las siguientes configuraciones. security_config puede ser solo uno de los parámetros siguientes: |
|
defaultSettings |
Es opcional. Usar la configuración de seguridad predeterminada predefinida del sistema Para seleccionar este modo, incluye un mensaje "default_settings" vacío en la solicitud. El servidor completará el campo "default_prompt_template" en la respuesta. |
customPolicy |
Es opcional. Usa un LlmPolicy definido por el usuario para configurar la barrera de seguridad. |
DefaultSecuritySettings
| Representación JSON |
|---|
{ "defaultPromptTemplate": string } |
| Campos | |
|---|---|
defaultPromptTemplate |
Solo salida. Es la plantilla de instrucciones predeterminada que usa el sistema. Este campo se muestra para que el usuario vea qué instrucción usa el sistema de forma predeterminada. Es OUTPUT_ONLY. |
LlmPolicy
| Representación JSON |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| Campos | |
|---|---|
maxConversationMessages |
Es opcional. Cuando verifiques esta política, ten en cuenta los últimos "n" mensajes de la conversación. Si no se establece, se usará un valor predeterminado de 10. |
modelSettings |
Es opcional. Es la configuración del modelo. |
prompt |
Obligatorio. Es una instrucción de política. |
policyScope |
Obligatorio. Define cuándo se debe aplicar la verificación de política durante la conversación. Si se establece en |
failOpen |
Es opcional. Si se produce un error durante la verificación de políticas, se debe permitir el acceso y no activar la protección. |
allowShortUtterance |
Es opcional. De forma predeterminada, se omite la verificación de políticas del LLM para las expresiones cortas. Si habilitas este parámetro de configuración, se aplicará la verificación de políticas a todas las expresiones, incluidas las que normalmente se omitirían. |
ModelSettings
| Representación JSON |
|---|
{ "model": string, // Union field |
| Campos | |
|---|---|
model |
Es opcional. Es el modelo de LLM que debe usar el agente. Si no se configura, el agente heredará el modelo de su agente principal. |
Campo de unión
|
|
temperature |
Es opcional. Si se configura, se usará esta temperatura para el modelo LLM. La temperatura controla la aleatoriedad de las respuestas del modelo. Las temperaturas más bajas producen respuestas más predecibles. Las temperaturas más altas producen respuestas más creativas. |
ModelSafety
| Representación JSON |
|---|
{
"safetySettings": [
{
object ( |
| Campos | |
|---|---|
safetySettings[] |
Obligatorio. Es la lista de parámetros de configuración de seguridad. |
SafetySetting
| Representación JSON |
|---|
{ "category": enum ( |
| Campos | |
|---|---|
category |
Obligatorio. Es la categoría de daño. |
threshold |
Obligatorio. El umbral de bloqueo de daño. |
CodeCallback
| Representación JSON |
|---|
{ "beforeAgentCallback": { object ( |
| Campos | |
|---|---|
beforeAgentCallback |
Es opcional. Es la devolución de llamada que se ejecutará antes de que se llame al agente. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
afterAgentCallback |
Es opcional. Es la devolución de llamada que se ejecutará después de que se llame al agente. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
beforeModelCallback |
Es opcional. Es la devolución de llamada que se ejecutará antes de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
afterModelCallback |
Es opcional. Es la devolución de llamada que se ejecutará después de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
Devolución de llamada
| Representación JSON |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Campos | |
|---|---|
description |
Es opcional. Es una descripción legible del callback. |
disabled |
Es opcional. Indica si la devolución de llamada está inhabilitada. El agente ignora las devoluciones de llamada inhabilitadas. |
proactiveExecutionEnabled |
Es opcional. Si está habilitada, la devolución de llamada también se ejecutará en los resultados intermedios del modelo. Este parámetro de configuración solo afecta a la devolución de llamada posterior al modelo. Habilítala con precaución. Por lo general, la devolución de llamada posterior al modelo solo debe ejecutarse después de recibir todas las respuestas del modelo. Habilitar la ejecución proactiva puede tener implicaciones negativas en el costo y la latencia de la ejecución, y solo debe habilitarse en situaciones excepcionales. |
Campo de unión callback. Es la devolución de llamada que se ejecutará. callback puede ser solo uno de los parámetros siguientes: |
|
pythonCode |
Obligatorio. Es el código de Python que se ejecutará para la devolución de llamada. |
TriggerAction
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión action. La acción por realizar. action puede ser solo uno de los parámetros siguientes: |
|
respondImmediately |
Es opcional. Responder de inmediato con una respuesta preconfigurada |
transferAgent |
Es opcional. Transferir la conversación a otro agente |
generativeAnswer |
Es opcional. Responder con una respuesta generativa |
RespondImmediately
| Representación JSON |
|---|
{
"responses": [
{
object ( |
| Campos | |
|---|---|
responses[] |
Obligatorio. Son las respuestas estándar que puede elegir el agente. La respuesta se elige de forma aleatoria. |
Respuesta
| Representación JSON |
|---|
{ "text": string, "disabled": boolean } |
| Campos | |
|---|---|
text |
Obligatorio. Es el texto con el que responderá el agente. |
disabled |
Es opcional. Indica si la respuesta está inhabilitada. El agente no usa las respuestas inhabilitadas. |
TransferAgent
| Representación JSON |
|---|
{ "agent": string } |
| Campos | |
|---|---|
agent |
Obligatorio. Es el nombre del agente al que se transferirá la conversación. El agente debe estar en la misma app que el agente actual. Formato: |
GenerativeAnswer
| Representación JSON |
|---|
{ "prompt": string } |
| Campos | |
|---|---|
prompt |
Obligatorio. Es la instrucción que se usará para la respuesta generativa. |
Marca de tiempo
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z y 9999-12-31T23:59:59Z). |
nanos |
Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de la duración en nanosegundos, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive. |
Esquema de salida
La protección contiene una lista de verificaciones y controles para mantener a los agentes seguros.
Baranda
| Representación JSON |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| Campos | |
|---|---|
name |
Es el identificador. Es el identificador único de la protección. Formato: |
displayName |
Obligatorio. Es el nombre visible de la protección. |
description |
Es opcional. Es la descripción de la barrera de protección. |
enabled |
Es opcional. Indica si la protección está habilitada. |
action |
Es opcional. Es la acción que se debe realizar cuando se activa la barrera de seguridad. |
createTime |
Solo salida. Es la marca de tiempo de cuando se creó la protección. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
updateTime |
Solo salida. Es la marca de tiempo de la última actualización del parámetro de protección. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
etag |
Es el ETag que se usa para garantizar que el objeto no haya cambiado durante una operación de lectura, modificación y escritura. Si el ETag está vacío, la actualización reemplazará cualquier cambio simultáneo. |
Campo de unión guardrail_type. Es el tipo de riel de protección. guardrail_type puede ser solo uno de los parámetros siguientes: |
|
contentFilter |
Es opcional. Es una protección que prohíbe el uso de cierto contenido en la conversación. |
llmPromptSecurity |
Es opcional. Es una protección que bloquea la conversación si la instrucción se considera no segura según la clasificación del LLM. |
llmPolicy |
Es opcional. Es una protección que bloquea la conversación si se considera que la respuesta del LLM incumple la política según la clasificación del LLM. |
modelSafety |
Es opcional. Es una protección que bloquea la conversación si la respuesta del LLM se considera no segura según la configuración de seguridad del modelo. |
codeCallback |
Es opcional. Es una protección que podría bloquear la conversación según el resultado de la ejecución de la devolución de llamada. |
ContentFilter
| Representación JSON |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| Campos | |
|---|---|
bannedContents[] |
Es opcional. Es la lista de frases prohibidas. Se aplica tanto a las entradas del usuario como a las respuestas del agente. |
bannedContentsInUserInput[] |
Es opcional. Es la lista de frases prohibidas. Solo se aplica a las entradas del usuario. |
bannedContentsInAgentResponse[] |
Es opcional. Es la lista de frases prohibidas. Solo se aplica a las respuestas del agente. |
matchType |
Obligatorio. Es el tipo de concordancia para el filtro de contenido. |
disregardDiacritics |
Es opcional. Si es verdadero, se ignoran los signos diacríticos durante la coincidencia. |
LlmPromptSecurity
| Representación JSON |
|---|
{ "failOpen": boolean, // Union field |
| Campos | |
|---|---|
failOpen |
Es opcional. Determina el comportamiento cuando la protección encuentra un error del LLM. - Si es verdadero, se omite la protección. - Si es falso (valor predeterminado), se activan o bloquean las protecciones. Nota: Si se proporciona una política personalizada, este campo se ignora en favor de la configuración "fail_open" de la política. |
Campo de unión security_config. Define el modo de configuración de seguridad. El usuario debe elegir una de las siguientes configuraciones. security_config puede ser solo uno de los parámetros siguientes: |
|
defaultSettings |
Es opcional. Usar la configuración de seguridad predeterminada predefinida del sistema Para seleccionar este modo, incluye un mensaje "default_settings" vacío en la solicitud. El servidor completará el campo "default_prompt_template" en la respuesta. |
customPolicy |
Es opcional. Usa un LlmPolicy definido por el usuario para configurar la barrera de seguridad. |
DefaultSecuritySettings
| Representación JSON |
|---|
{ "defaultPromptTemplate": string } |
| Campos | |
|---|---|
defaultPromptTemplate |
Solo salida. Es la plantilla de instrucciones predeterminada que usa el sistema. Este campo se muestra para que el usuario vea qué instrucción usa el sistema de forma predeterminada. Es OUTPUT_ONLY. |
LlmPolicy
| Representación JSON |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| Campos | |
|---|---|
maxConversationMessages |
Es opcional. Cuando verifiques esta política, ten en cuenta los últimos "n" mensajes de la conversación. Si no se establece, se usará un valor predeterminado de 10. |
modelSettings |
Es opcional. Es la configuración del modelo. |
prompt |
Obligatorio. Es una instrucción de política. |
policyScope |
Obligatorio. Define cuándo se debe aplicar la verificación de política durante la conversación. Si se establece en |
failOpen |
Es opcional. Si se produce un error durante la verificación de políticas, se debe permitir el acceso y no activar la protección. |
allowShortUtterance |
Es opcional. De forma predeterminada, se omite la verificación de políticas del LLM para las expresiones cortas. Si habilitas este parámetro de configuración, se aplicará la verificación de políticas a todas las expresiones, incluidas las que normalmente se omitirían. |
ModelSettings
| Representación JSON |
|---|
{ "model": string, // Union field |
| Campos | |
|---|---|
model |
Es opcional. Es el modelo de LLM que debe usar el agente. Si no se configura, el agente heredará el modelo de su agente principal. |
Campo de unión
|
|
temperature |
Es opcional. Si se configura, se usará esta temperatura para el modelo LLM. La temperatura controla la aleatoriedad de las respuestas del modelo. Las temperaturas más bajas producen respuestas más predecibles. Las temperaturas más altas producen respuestas más creativas. |
ModelSafety
| Representación JSON |
|---|
{
"safetySettings": [
{
object ( |
| Campos | |
|---|---|
safetySettings[] |
Obligatorio. Es la lista de parámetros de configuración de seguridad. |
SafetySetting
| Representación JSON |
|---|
{ "category": enum ( |
| Campos | |
|---|---|
category |
Obligatorio. Es la categoría de daño. |
threshold |
Obligatorio. El umbral de bloqueo de daño. |
CodeCallback
| Representación JSON |
|---|
{ "beforeAgentCallback": { object ( |
| Campos | |
|---|---|
beforeAgentCallback |
Es opcional. Es la devolución de llamada que se ejecutará antes de que se llame al agente. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
afterAgentCallback |
Es opcional. Es la devolución de llamada que se ejecutará después de que se llame al agente. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
beforeModelCallback |
Es opcional. Es la devolución de llamada que se ejecutará antes de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
afterModelCallback |
Es opcional. Es la devolución de llamada que se ejecutará después de que se llame al modelo. Si hay varias llamadas al modelo, la devolución de llamada se ejecutará varias veces. Se espera que cada función de devolución de llamada muestre una estructura (p.ej., un diccionario o un objeto) que contenga, al menos, lo siguiente: - "decision": Puede ser "OK" o "TRIGGER". - "reason": Es una cadena que explica la decisión. Una decisión de "ACTIVACIÓN" puede detener el procesamiento posterior. |
Devolución de llamada
| Representación JSON |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Campos | |
|---|---|
description |
Es opcional. Es una descripción legible del callback. |
disabled |
Es opcional. Indica si la devolución de llamada está inhabilitada. El agente ignora las devoluciones de llamada inhabilitadas. |
proactiveExecutionEnabled |
Es opcional. Si está habilitada, la devolución de llamada también se ejecutará en los resultados intermedios del modelo. Este parámetro de configuración solo afecta a la devolución de llamada posterior al modelo. Habilítala con precaución. Por lo general, la devolución de llamada posterior al modelo solo debe ejecutarse después de recibir todas las respuestas del modelo. Habilitar la ejecución proactiva puede tener implicaciones negativas en el costo y la latencia de la ejecución, y solo debe habilitarse en situaciones excepcionales. |
Campo de unión callback. Es la devolución de llamada que se ejecutará. callback puede ser solo uno de los parámetros siguientes: |
|
pythonCode |
Obligatorio. Es el código de Python que se ejecutará para la devolución de llamada. |
TriggerAction
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión action. La acción por realizar. action puede ser solo uno de los parámetros siguientes: |
|
respondImmediately |
Es opcional. Responder de inmediato con una respuesta preconfigurada |
transferAgent |
Es opcional. Transferir la conversación a otro agente |
generativeAnswer |
Es opcional. Responder con una respuesta generativa |
RespondImmediately
| Representación JSON |
|---|
{
"responses": [
{
object ( |
| Campos | |
|---|---|
responses[] |
Obligatorio. Son las respuestas estándar que puede elegir el agente. La respuesta se elige de forma aleatoria. |
Respuesta
| Representación JSON |
|---|
{ "text": string, "disabled": boolean } |
| Campos | |
|---|---|
text |
Obligatorio. Es el texto con el que responderá el agente. |
disabled |
Es opcional. Indica si la respuesta está inhabilitada. El agente no usa las respuestas inhabilitadas. |
TransferAgent
| Representación JSON |
|---|
{ "agent": string } |
| Campos | |
|---|---|
agent |
Obligatorio. Es el nombre del agente al que se transferirá la conversación. El agente debe estar en la misma app que el agente actual. Formato: |
GenerativeAnswer
| Representación JSON |
|---|
{ "prompt": string } |
| Campos | |
|---|---|
prompt |
Obligatorio. Es la instrucción que se usará para la respuesta generativa. |
Marca de tiempo
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z y 9999-12-31T23:59:59Z). |
nanos |
Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de la duración en nanosegundos, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive. |
Anotaciones de herramientas
Sugerencia destructiva: ✅ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ❌ | Sugerencia de mundo abierto: ❌