MCP Tools Reference: ces.googleapis.com

Ferramenta: create_guardrail

Cria uma nova proteção no app especificado.

O exemplo de código abaixo mostra como usar curl para chamar a ferramenta MCP create_guardrail.

Solicitação curl
curl --location 'https://ces.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 MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Esquema de entrada

Mensagem de solicitação para AgentService.CreateGuardrail.

CreateGuardrailRequest

Representação JSON
{
  "parent": string,
  "guardrailId": string,
  "guardrail": {
    object (Guardrail)
  }
}
Campos
parent

string

Obrigatório. O nome do recurso do app em que a proteção será criada.

guardrailId

string

Opcional. O ID a ser usado na proteção, que se tornará o componente final do nome do recurso da proteção. Se não for fornecido, um ID exclusivo será atribuído automaticamente à proteção.

guardrail

object (Guardrail)

Obrigatório. A proteção a ser criada.

Proteção

Representação JSON
{
  "name": string,
  "displayName": string,
  "description": string,
  "enabled": boolean,
  "action": {
    object (TriggerAction)
  },
  "createTime": string,
  "updateTime": string,
  "etag": string,

  // Union field guardrail_type can be only one of the following:
  "contentFilter": {
    object (ContentFilter)
  },
  "llmPromptSecurity": {
    object (LlmPromptSecurity)
  },
  "llmPolicy": {
    object (LlmPolicy)
  },
  "modelSafety": {
    object (ModelSafety)
  },
  "codeCallback": {
    object (CodeCallback)
  },
  "supervisor": {
    object (Supervisor)
  }
  // End of list of possible types for union field guardrail_type.
}
Campos
name

string

Identificador. O identificador exclusivo da proteção. Formato: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

displayName

string

Obrigatório. Nome de exibição da proteção.

description

string

Opcional. Descrição da proteção.

enabled

boolean

Opcional. Se a proteção está ativada.

action

object (TriggerAction)

Opcional. Ação a ser tomada quando a proteção for acionada.

createTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora de quando a barreira de proteção foi criada.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora de quando a proteção foi atualizada pela última vez.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

etag

string

Etag usada para garantir que o objeto não tenha sido alterado durante uma operação de leitura-modificação-gravação. Se a etag estiver vazia, a atualização vai substituir todas as mudanças simultâneas.

Campo de união guardrail_type. Tipo de barreira de proteção. guardrail_type pode ser apenas de um dos tipos a seguir:
contentFilter

object (ContentFilter)

Opcional. Proteção que proíbe o uso de determinados conteúdos na conversa.

llmPromptSecurity

object (LlmPromptSecurity)

Opcional. Proteção que bloqueia a conversa se o comando for considerado inseguro com base na classificação do LLM.

llmPolicy

object (LlmPolicy)

Opcional. Proteção que bloqueia a conversa se a resposta do LLM for considerada uma violação da política com base na classificação do LLM.

modelSafety

object (ModelSafety)

Opcional. Proteção que bloqueia a conversa se a resposta do LLM for considerada insegura com base nas configurações de segurança do modelo.

codeCallback

object (CodeCallback)

Opcional. Proteção que pode bloquear a conversa com base no resultado da execução do callback.

supervisor

object (Supervisor)

Opcional. Proteção que executa a intervenção do supervisor.

ContentFilter

Representação JSON
{
  "bannedContents": [
    string
  ],
  "bannedContentsInUserInput": [
    string
  ],
  "bannedContentsInAgentResponse": [
    string
  ],
  "matchType": enum (MatchType),
  "disregardDiacritics": boolean,
  "sensitiveWordsExemptions": [
    string
  ]
}
Campos
bannedContents[]

string

Opcional. Lista de frases proibidas. Aplica-se às entradas do usuário e às respostas do agente.

bannedContentsInUserInput[]

string

Opcional. Lista de frases proibidas. Aplica-se apenas às entradas do usuário.

bannedContentsInAgentResponse[]

string

Opcional. Lista de frases proibidas. Aplica-se apenas às respostas do agente.

matchType

enum (MatchType)

Obrigatório. Tipo de correspondência para o filtro de conteúdo.

disregardDiacritics

boolean

Opcional. Se for verdadeiro, os diacríticos serão ignorados durante a correspondência.

sensitiveWordsExemptions[]

string

Opcional. Entradas da lista de palavras sensíveis que essa proteção permite. Válido apenas quando match_type é SENSITIVE_WORDS. Cada valor precisa ser igual a uma entrada da lista (não diferencia maiúsculas de minúsculas, espaços em branco ao redor são ignorados). Outros valores não têm efeito. Aplica-se apenas a esta proteção. No máximo 1.000 entradas de até 256 caracteres cada.

LlmPromptSecurity

Representação JSON
{
  "failOpen": boolean,

  // Union field security_config can be only one of the following:
  "defaultSettings": {
    object (DefaultSecuritySettings)
  },
  "customPolicy": {
    object (LlmPolicy)
  }
  // End of list of possible types for union field security_config.
}
Campos
failOpen

boolean

Opcional. Determina o comportamento quando a proteção encontra um erro de LLM. - Se for verdadeiro: a proteção é ignorada. - Se for falso (padrão): a proteção é acionada/bloqueada.

Observação: se uma política personalizada for fornecida, esse campo será ignorado em favor da configuração "fail_open" da política.

Campo de união security_config. Define o modo de configuração de segurança. O usuário precisa escolher uma das seguintes configurações. security_config pode ser apenas de um dos tipos a seguir:
defaultSettings

object (DefaultSecuritySettings)

Opcional. Use as configurações de segurança padrão predefinidas do sistema. Para selecionar esse modo, inclua uma mensagem "default_settings" vazia na solicitação. O campo "default_prompt_template" será preenchido pelo servidor na resposta.

customPolicy

object (LlmPolicy)

Opcional. Use uma LlmPolicy definida pelo usuário para configurar a proteção de segurança.

DefaultSecuritySettings

Representação JSON
{
  "defaultPromptTemplate": string
}
Campos
defaultPromptTemplate

string

Apenas saída. O modelo de comando padrão usado pelo sistema. Este campo serve para mostrar ao usuário qual comando o sistema usa por padrão. É OUTPUT_ONLY.

LlmPolicy

Representação JSON
{
  "maxConversationMessages": integer,
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "policyScope": enum (PolicyScope),
  "failOpen": boolean,
  "allowShortUtterance": boolean
}
Campos
maxConversationMessages

integer

Opcional. Ao verificar essa política, considere as últimas "n" mensagens na conversa. Quando não definido, um valor padrão de 10 será usado.

modelSettings

object (ModelSettings)

Opcional. Configurações do modelo.

prompt

string

Obrigatório. Comando de política. Oferece suporte a marcadores de posição de variáveis de sessão ({var}), bem como a {agent_system_instruction} para injetar as instruções do sistema resolvidas do agente.

policyScope

enum (PolicyScope)

Obrigatório. Define quando aplicar a verificação de política durante a conversa. Se definida como POLICY_SCOPE_UNSPECIFIED, a política será aplicada à entrada do usuário. Ao aplicar a política à resposta do agente, uma latência adicional será introduzida antes que o agente possa responder.

failOpen

boolean

Opcional. Se ocorrer um erro durante a verificação da política, falhe em aberto e não acione a proteção.

allowShortUtterance

boolean

Opcional. Por padrão, a verificação da política de LLM é ignorada para enunciados curtos. Ativar essa configuração aplica a verificação de política a todas as falas, incluindo aquelas que normalmente seriam ignoradas.

ModelSettings

Representação JSON
{
  "model": string,
  "thinkingLevel": enum (ThinkingLevel),

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
Campos
model

string

Opcional. O modelo de LLM que o agente deve usar. Se não for definido, o agente vai herdar o modelo do agente pai.

thinkingLevel

enum (ThinkingLevel)

Opcional. O nível de raciocínio do modelo.

Campo de união _temperature.

_temperature pode ser apenas de um dos tipos a seguir:

temperature

number

Opcional. Se definida, essa temperatura será usada para o modelo de LLM. A temperatura controla a aleatoriedade das respostas do modelo. Temperaturas mais baixas produzem respostas mais previsíveis. Temperaturas mais altas produzem respostas mais criativas.

ModelSafety

Representação JSON
{
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ]
}
Campos
safetySettings[]

object (SafetySetting)

Obrigatório. Lista de configurações de segurança.

SafetySetting

Representação JSON
{
  "category": enum (HarmCategory),
  "threshold": enum (HarmBlockThreshold)
}
Campos
category

enum (HarmCategory)

Obrigatório. A categoria de dano.

threshold

enum (HarmBlockThreshold)

Obrigatório. O limite do bloqueio de danos.

CodeCallback

Representação JSON
{
  "beforeAgentCallback": {
    object (Callback)
  },
  "afterAgentCallback": {
    object (Callback)
  },
  "beforeModelCallback": {
    object (Callback)
  },
  "afterModelCallback": {
    object (Callback)
  }
}
Campos
beforeAgentCallback

object (Callback)

Opcional. O callback a ser executado antes que o agente seja chamado. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

afterAgentCallback

object (Callback)

Opcional. O callback a ser executado depois que o agente é chamado. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

beforeModelCallback

object (Callback)

Opcional. O callback a ser executado antes que o modelo seja chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

afterModelCallback

object (Callback)

Opcional. O callback a ser executado depois que o modelo é chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

Callback

Representação JSON
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
Campos
description

string

Opcional. Descrição legível por humanos do callback.

disabled

boolean

Opcional. Se o callback está desativado. Os callbacks desativados são ignorados pelo agente.

proactiveExecutionEnabled

boolean

Opcional. Se ativado, o callback também será executado em saídas de modelo intermediárias. Essa configuração afeta apenas a chamada de retorno "After model". ATIVE COM CUIDADO. Normalmente, a chamada de retorno after_model_callback só precisa ser executada depois de receber todas as respostas do modelo. A ativação da execução proativa pode ter implicações negativas no custo e na latência da execução e só deve ser ativada em situações raras.

Campo de união callback. O callback a ser executado. callback pode ser apenas de um dos tipos a seguir:
pythonCode

string

Obrigatório. O código Python a ser executado para o callback.

Supervisor

Representação JSON
{
  "type": enum (Type),
  "detectionMode": enum (DetectionMode)
}
Campos
type

enum (Type)

Opcional. O tipo do supervisor.

detectionMode

enum (DetectionMode)

Opcional. O modo de detecção do supervisor.

TriggerAction

Representação JSON
{

  // Union field action can be only one of the following:
  "respondImmediately": {
    object (RespondImmediately)
  },
  "transferAgent": {
    object (TransferAgent)
  },
  "generativeAnswer": {
    object (GenerativeAnswer)
  }
  // End of list of possible types for union field action.
}
Campos
Campo de união action. A ação a ser tomada. action pode ser apenas de um dos tipos a seguir:
respondImmediately

object (RespondImmediately)

Opcional. Responda imediatamente com uma resposta pré-configurada.

transferAgent

object (TransferAgent)

Opcional. Transferir a conversa para outro agente.

generativeAnswer

object (GenerativeAnswer)

Opcional. Responder com uma resposta generativa.

RespondImmediately

Representação JSON
{
  "responses": [
    {
      object (Response)
    }
  ]
}
Campos
responses[]

object (Response)

Obrigatório. As respostas automáticas que o agente pode escolher. A resposta é escolhida aleatoriamente.

Resposta

Representação JSON
{
  "text": string,
  "disabled": boolean
}
Campos
text

string

Obrigatório. Texto para o agente responder.

disabled

boolean

Opcional. Indica se a resposta está desativada. As respostas desativadas não são usadas pelo agente.

TransferAgent

Representação JSON
{
  "agent": string
}
Campos
agent

string

Obrigatório. O nome do agente para quem a conversa será transferida. O agente precisa estar no mesmo app que o agente atual. Formato: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

GenerativeAnswer

Representação JSON
{
  "prompt": string
}
Campos
prompt

string

Obrigatório. O comando a ser usado para a resposta generativa.

Carimbo de data/hora

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799, inclusive (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999.

MatchType

Tipo de correspondência para o filtro de conteúdo.

Tipos enumerados
MATCH_TYPE_UNSPECIFIED O tipo de correspondência não foi especificado.
SIMPLE_STRING_MATCH O conteúdo é correspondido por substrings caractere por caractere.
WORD_BOUNDARY_STRING_MATCH O conteúdo só será correspondente se o padrão encontrado no texto estiver cercado por delimitadores de palavras. As frases proibidas também podem conter delimitadores de palavras.
REGEXP_MATCH A correspondência do conteúdo é feita usando a sintaxe de expressão regular.
SENSITIVE_WORDS O conteúdo é comparado com uma lista de palavras e frases sensíveis gerenciada pelo sistema. Anexar uma proteção com esse tipo de correspondência a um app ou agente substitui o filtro padrão de palavras sensíveis para os agentes afetados. Desative a proteção para desativar o filtro padrão.

ThinkingLevel

Configuração do nível de raciocínio do modelo.

Tipos enumerados
THINKING_LEVEL_UNSPECIFIED O nível de pensamento não foi especificado.
DEFAULT Nível de raciocínio padrão.
LOW Nível de raciocínio baixo.
MEDIUM Nível de raciocínio médio.
HIGH Nível de raciocínio alto.

PolicyScope

Define quando aplicar a verificação de política durante a conversa.

Tipos enumerados
POLICY_SCOPE_UNSPECIFIED O escopo da política não foi especificado.
USER_QUERY A verificação de política é acionada na entrada do usuário.
AGENT_RESPONSE A verificação de política é acionada na resposta do agente. A aplicação desse escopo de política vai introduzir uma latência adicional antes que o agente possa responder.
USER_QUERY_AND_AGENT_RESPONSE A verificação de política é acionada tanto na entrada do usuário quanto na resposta do agente. A aplicação desse escopo de política vai introduzir uma latência adicional antes que o agente possa responder.

HarmCategory

Categoria de dano.

Tipos enumerados
HARM_CATEGORY_UNSPECIFIED A categoria de danos não foi especificada.
HARM_CATEGORY_HATE_SPEECH A categoria de danos é discurso de ódio.
HARM_CATEGORY_DANGEROUS_CONTENT A categoria de danos é um conteúdo perigoso.
HARM_CATEGORY_HARASSMENT A categoria de dano é assédio.
HARM_CATEGORY_SEXUALLY_EXPLICIT A categoria de dano é conteúdo sexualmente explícito.
HARM_CATEGORY_PROFANITY A categoria de dano é linguagem obscena.
HARM_CATEGORY_TOXIC A categoria de dano é tóxica.

HarmBlockThreshold

Níveis de limites baseados em probabilidade para bloqueio.

Tipos enumerados
HARM_BLOCK_THRESHOLD_UNSPECIFIED Limite de bloqueio de danos não especificado.
BLOCK_LOW_AND_ABOVE Bloquear o limite inferior e superior (ou seja, bloquear mais).
BLOCK_MEDIUM_AND_ABOVE Bloquear o limite médio e acima.
BLOCK_ONLY_HIGH Bloquear apenas o limite superior (ou seja, bloquear menos).
BLOCK_NONE Bloquear nenhum
OFF Desative o filtro de segurança.

Tipo

Tipo de supervisor.

Tipos enumerados
TYPE_UNSPECIFIED Tipo não especificado.
INVALID_TEXT Tipo de problema de texto inválido.
LANGUAGE_SHIFT Tipo de problema de mudança de idioma.
SPEAKER_SHIFT Tipo de problema de mudança de locutor.
AUDIO_MISMATCH Tipo de problema de incompatibilidade de áudio.
MISSING_TOOL_CALL Tipo de problema de chamada de ferramenta ausente.
CUSTOM Tipo de problema personalizado.
CHOPPY_AUDIO Tipo de problema de áudio entrecortado.
PROFANITY Tipo de problema de linguagem obscena do agente.

DetectionMode

Modo de detecção do supervisor.

Tipos enumerados
DETECTION_MODE_UNSPECIFIED O modo de detecção não foi especificado. O padrão é NON_BLOCKING.
NON_BLOCKING Modo de detecção sem bloqueio. A resposta não é bloqueada quando a detecção do supervisor está em andamento.
BLOCKING Modo de detecção de bloqueio. A resposta é bloqueada quando a detecção do supervisor está em andamento.

Esquema de saída

A barreira de proteção contém uma lista de verificações e controles para manter os agentes seguros.

Proteção

Representação JSON
{
  "name": string,
  "displayName": string,
  "description": string,
  "enabled": boolean,
  "action": {
    object (TriggerAction)
  },
  "createTime": string,
  "updateTime": string,
  "etag": string,

  // Union field guardrail_type can be only one of the following:
  "contentFilter": {
    object (ContentFilter)
  },
  "llmPromptSecurity": {
    object (LlmPromptSecurity)
  },
  "llmPolicy": {
    object (LlmPolicy)
  },
  "modelSafety": {
    object (ModelSafety)
  },
  "codeCallback": {
    object (CodeCallback)
  },
  "supervisor": {
    object (Supervisor)
  }
  // End of list of possible types for union field guardrail_type.
}
Campos
name

string

Identificador. O identificador exclusivo da proteção. Formato: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

displayName

string

Obrigatório. Nome de exibição da proteção.

description

string

Opcional. Descrição da proteção.

enabled

boolean

Opcional. Se a proteção está ativada.

action

object (TriggerAction)

Opcional. Ação a ser tomada quando a proteção for acionada.

createTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora de quando a barreira de proteção foi criada.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora de quando a proteção foi atualizada pela última vez.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

etag

string

Etag usada para garantir que o objeto não tenha sido alterado durante uma operação de leitura-modificação-gravação. Se a etag estiver vazia, a atualização vai substituir todas as mudanças simultâneas.

Campo de união guardrail_type. Tipo de barreira de proteção. guardrail_type pode ser apenas de um dos tipos a seguir:
contentFilter

object (ContentFilter)

Opcional. Proteção que proíbe o uso de determinados conteúdos na conversa.

llmPromptSecurity

object (LlmPromptSecurity)

Opcional. Proteção que bloqueia a conversa se o comando for considerado inseguro com base na classificação do LLM.

llmPolicy

object (LlmPolicy)

Opcional. Proteção que bloqueia a conversa se a resposta do LLM for considerada uma violação da política com base na classificação do LLM.

modelSafety

object (ModelSafety)

Opcional. Proteção que bloqueia a conversa se a resposta do LLM for considerada insegura com base nas configurações de segurança do modelo.

codeCallback

object (CodeCallback)

Opcional. Proteção que pode bloquear a conversa com base no resultado da execução do callback.

supervisor

object (Supervisor)

Opcional. Proteção que executa a intervenção do supervisor.

ContentFilter

Representação JSON
{
  "bannedContents": [
    string
  ],
  "bannedContentsInUserInput": [
    string
  ],
  "bannedContentsInAgentResponse": [
    string
  ],
  "matchType": enum (MatchType),
  "disregardDiacritics": boolean,
  "sensitiveWordsExemptions": [
    string
  ]
}
Campos
bannedContents[]

string

Opcional. Lista de frases proibidas. Aplica-se às entradas do usuário e às respostas do agente.

bannedContentsInUserInput[]

string

Opcional. Lista de frases proibidas. Aplica-se apenas às entradas do usuário.

bannedContentsInAgentResponse[]

string

Opcional. Lista de frases proibidas. Aplica-se apenas às respostas do agente.

matchType

enum (MatchType)

Obrigatório. Tipo de correspondência para o filtro de conteúdo.

disregardDiacritics

boolean

Opcional. Se for verdadeiro, os diacríticos serão ignorados durante a correspondência.

sensitiveWordsExemptions[]

string

Opcional. Entradas da lista de palavras sensíveis que essa proteção permite. Válido apenas quando match_type é SENSITIVE_WORDS. Cada valor precisa ser igual a uma entrada da lista (não diferencia maiúsculas de minúsculas, espaços em branco ao redor são ignorados). Outros valores não têm efeito. Aplica-se apenas a esta proteção. No máximo 1.000 entradas de até 256 caracteres cada.

LlmPromptSecurity

Representação JSON
{
  "failOpen": boolean,

  // Union field security_config can be only one of the following:
  "defaultSettings": {
    object (DefaultSecuritySettings)
  },
  "customPolicy": {
    object (LlmPolicy)
  }
  // End of list of possible types for union field security_config.
}
Campos
failOpen

boolean

Opcional. Determina o comportamento quando a proteção encontra um erro de LLM. - Se for verdadeiro: a proteção é ignorada. - Se for falso (padrão): a proteção é acionada/bloqueada.

Observação: se uma política personalizada for fornecida, esse campo será ignorado em favor da configuração "fail_open" da política.

Campo de união security_config. Define o modo de configuração de segurança. O usuário precisa escolher uma das seguintes configurações. security_config pode ser apenas de um dos tipos a seguir:
defaultSettings

object (DefaultSecuritySettings)

Opcional. Use as configurações de segurança padrão predefinidas do sistema. Para selecionar esse modo, inclua uma mensagem "default_settings" vazia na solicitação. O campo "default_prompt_template" será preenchido pelo servidor na resposta.

customPolicy

object (LlmPolicy)

Opcional. Use uma LlmPolicy definida pelo usuário para configurar a proteção de segurança.

DefaultSecuritySettings

Representação JSON
{
  "defaultPromptTemplate": string
}
Campos
defaultPromptTemplate

string

Apenas saída. O modelo de comando padrão usado pelo sistema. Este campo serve para mostrar ao usuário qual comando o sistema usa por padrão. É OUTPUT_ONLY.

LlmPolicy

Representação JSON
{
  "maxConversationMessages": integer,
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "policyScope": enum (PolicyScope),
  "failOpen": boolean,
  "allowShortUtterance": boolean
}
Campos
maxConversationMessages

integer

Opcional. Ao verificar essa política, considere as últimas "n" mensagens na conversa. Quando não definido, um valor padrão de 10 será usado.

modelSettings

object (ModelSettings)

Opcional. Configurações do modelo.

prompt

string

Obrigatório. Comando de política. Oferece suporte a marcadores de posição de variáveis de sessão ({var}), bem como a {agent_system_instruction} para injetar as instruções do sistema resolvidas do agente.

policyScope

enum (PolicyScope)

Obrigatório. Define quando aplicar a verificação de política durante a conversa. Se definida como POLICY_SCOPE_UNSPECIFIED, a política será aplicada à entrada do usuário. Ao aplicar a política à resposta do agente, uma latência adicional será introduzida antes que o agente possa responder.

failOpen

boolean

Opcional. Se ocorrer um erro durante a verificação da política, falhe em aberto e não acione a proteção.

allowShortUtterance

boolean

Opcional. Por padrão, a verificação da política de LLM é ignorada para enunciados curtos. Ativar essa configuração aplica a verificação de política a todas as falas, incluindo aquelas que normalmente seriam ignoradas.

ModelSettings

Representação JSON
{
  "model": string,
  "thinkingLevel": enum (ThinkingLevel),

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
Campos
model

string

Opcional. O modelo de LLM que o agente deve usar. Se não for definido, o agente vai herdar o modelo do agente pai.

thinkingLevel

enum (ThinkingLevel)

Opcional. O nível de raciocínio do modelo.

Campo de união _temperature.

_temperature pode ser apenas de um dos tipos a seguir:

temperature

number

Opcional. Se definida, essa temperatura será usada para o modelo de LLM. A temperatura controla a aleatoriedade das respostas do modelo. Temperaturas mais baixas produzem respostas mais previsíveis. Temperaturas mais altas produzem respostas mais criativas.

ModelSafety

Representação JSON
{
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ]
}
Campos
safetySettings[]

object (SafetySetting)

Obrigatório. Lista de configurações de segurança.

SafetySetting

Representação JSON
{
  "category": enum (HarmCategory),
  "threshold": enum (HarmBlockThreshold)
}
Campos
category

enum (HarmCategory)

Obrigatório. A categoria de dano.

threshold

enum (HarmBlockThreshold)

Obrigatório. O limite do bloqueio de danos.

CodeCallback

Representação JSON
{
  "beforeAgentCallback": {
    object (Callback)
  },
  "afterAgentCallback": {
    object (Callback)
  },
  "beforeModelCallback": {
    object (Callback)
  },
  "afterModelCallback": {
    object (Callback)
  }
}
Campos
beforeAgentCallback

object (Callback)

Opcional. O callback a ser executado antes que o agente seja chamado. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

afterAgentCallback

object (Callback)

Opcional. O callback a ser executado depois que o agente é chamado. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

beforeModelCallback

object (Callback)

Opcional. O callback a ser executado antes que o modelo seja chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

afterModelCallback

object (Callback)

Opcional. O callback a ser executado depois que o modelo é chamado. Se houver várias chamadas para o modelo, o callback será executado várias vezes. Cada função de callback precisa retornar uma estrutura (por exemplo, um dict ou objeto) que contenha pelo menos: - 'decision': 'OK' ou 'TRIGGER'. - 'reason': uma string que explica a decisão. Uma decisão "TRIGGER" pode interromper o processamento.

Callback

Representação JSON
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
Campos
description

string

Opcional. Descrição legível por humanos do callback.

disabled

boolean

Opcional. Se o callback está desativado. Os callbacks desativados são ignorados pelo agente.

proactiveExecutionEnabled

boolean

Opcional. Se ativado, o callback também será executado em saídas de modelo intermediárias. Essa configuração afeta apenas a chamada de retorno "After model". ATIVE COM CUIDADO. Normalmente, a chamada de retorno after_model_callback só precisa ser executada depois de receber todas as respostas do modelo. A ativação da execução proativa pode ter implicações negativas no custo e na latência da execução e só deve ser ativada em situações raras.

Campo de união callback. O callback a ser executado. callback pode ser apenas de um dos tipos a seguir:
pythonCode

string

Obrigatório. O código Python a ser executado para o callback.

Supervisor

Representação JSON
{
  "type": enum (Type),
  "detectionMode": enum (DetectionMode)
}
Campos
type

enum (Type)

Opcional. O tipo do supervisor.

detectionMode

enum (DetectionMode)

Opcional. O modo de detecção do supervisor.

TriggerAction

Representação JSON
{

  // Union field action can be only one of the following:
  "respondImmediately": {
    object (RespondImmediately)
  },
  "transferAgent": {
    object (TransferAgent)
  },
  "generativeAnswer": {
    object (GenerativeAnswer)
  }
  // End of list of possible types for union field action.
}
Campos
Campo de união action. A ação a ser tomada. action pode ser apenas de um dos tipos a seguir:
respondImmediately

object (RespondImmediately)

Opcional. Responda imediatamente com uma resposta pré-configurada.

transferAgent

object (TransferAgent)

Opcional. Transferir a conversa para outro agente.

generativeAnswer

object (GenerativeAnswer)

Opcional. Responder com uma resposta generativa.

RespondImmediately

Representação JSON
{
  "responses": [
    {
      object (Response)
    }
  ]
}
Campos
responses[]

object (Response)

Obrigatório. As respostas automáticas que o agente pode escolher. A resposta é escolhida aleatoriamente.

Resposta

Representação JSON
{
  "text": string,
  "disabled": boolean
}
Campos
text

string

Obrigatório. Texto para o agente responder.

disabled

boolean

Opcional. Indica se a resposta está desativada. As respostas desativadas não são usadas pelo agente.

TransferAgent

Representação JSON
{
  "agent": string
}
Campos
agent

string

Obrigatório. O nome do agente para quem a conversa será transferida. O agente precisa estar no mesmo app que o agente atual. Formato: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

GenerativeAnswer

Representação JSON
{
  "prompt": string
}
Campos
prompt

string

Obrigatório. O comando a ser usado para a resposta generativa.

Carimbo de data/hora

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799, inclusive (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999.

MatchType

Tipo de correspondência para o filtro de conteúdo.

Tipos enumerados
MATCH_TYPE_UNSPECIFIED O tipo de correspondência não foi especificado.
SIMPLE_STRING_MATCH O conteúdo é correspondido por substrings caractere por caractere.
WORD_BOUNDARY_STRING_MATCH O conteúdo só será correspondente se o padrão encontrado no texto estiver cercado por delimitadores de palavras. As frases proibidas também podem conter delimitadores de palavras.
REGEXP_MATCH A correspondência do conteúdo é feita usando a sintaxe de expressão regular.
SENSITIVE_WORDS O conteúdo é comparado com uma lista de palavras e frases sensíveis gerenciada pelo sistema. Anexar uma proteção com esse tipo de correspondência a um app ou agente substitui o filtro padrão de palavras sensíveis para os agentes afetados. Desative a proteção para desativar o filtro padrão.

ThinkingLevel

Configuração do nível de raciocínio do modelo.

Tipos enumerados
THINKING_LEVEL_UNSPECIFIED O nível de pensamento não foi especificado.
DEFAULT Nível de raciocínio padrão.
LOW Nível de raciocínio baixo.
MEDIUM Nível de raciocínio médio.
HIGH Nível de raciocínio alto.

PolicyScope

Define quando aplicar a verificação de política durante a conversa.

Tipos enumerados
POLICY_SCOPE_UNSPECIFIED O escopo da política não foi especificado.
USER_QUERY A verificação de política é acionada na entrada do usuário.
AGENT_RESPONSE A verificação de política é acionada na resposta do agente. A aplicação desse escopo de política vai introduzir uma latência adicional antes que o agente possa responder.
USER_QUERY_AND_AGENT_RESPONSE A verificação de política é acionada tanto na entrada do usuário quanto na resposta do agente. A aplicação desse escopo de política vai introduzir uma latência adicional antes que o agente possa responder.

HarmCategory

Categoria de dano.

Tipos enumerados
HARM_CATEGORY_UNSPECIFIED A categoria de danos não foi especificada.
HARM_CATEGORY_HATE_SPEECH A categoria de danos é discurso de ódio.
HARM_CATEGORY_DANGEROUS_CONTENT A categoria de danos é um conteúdo perigoso.
HARM_CATEGORY_HARASSMENT A categoria de dano é assédio.
HARM_CATEGORY_SEXUALLY_EXPLICIT A categoria de dano é conteúdo sexualmente explícito.
HARM_CATEGORY_PROFANITY A categoria de dano é linguagem obscena.
HARM_CATEGORY_TOXIC A categoria de dano é tóxica.

HarmBlockThreshold

Níveis de limites baseados em probabilidade para bloqueio.

Tipos enumerados
HARM_BLOCK_THRESHOLD_UNSPECIFIED Limite de bloqueio de danos não especificado.
BLOCK_LOW_AND_ABOVE Bloquear o limite inferior e superior (ou seja, bloquear mais).
BLOCK_MEDIUM_AND_ABOVE Bloquear o limite médio e acima.
BLOCK_ONLY_HIGH Bloquear apenas o limite superior (ou seja, bloquear menos).
BLOCK_NONE Bloquear nenhum
OFF Desative o filtro de segurança.

Tipo

Tipo de supervisor.

Tipos enumerados
TYPE_UNSPECIFIED Tipo não especificado.
INVALID_TEXT Tipo de problema de texto inválido.
LANGUAGE_SHIFT Tipo de problema de mudança de idioma.
SPEAKER_SHIFT Tipo de problema de mudança de locutor.
AUDIO_MISMATCH Tipo de problema de incompatibilidade de áudio.
MISSING_TOOL_CALL Tipo de problema de chamada de ferramenta ausente.
CUSTOM Tipo de problema personalizado.
CHOPPY_AUDIO Tipo de problema de áudio entrecortado.
PROFANITY Tipo de problema de linguagem obscena do agente.

DetectionMode

Modo de detecção do supervisor.

Tipos enumerados
DETECTION_MODE_UNSPECIFIED O modo de detecção não foi especificado. O padrão é NON_BLOCKING.
NON_BLOCKING Modo de detecção sem bloqueio. A resposta não é bloqueada quando a detecção do supervisor está em andamento.
BLOCKING Modo de detecção de bloqueio. A resposta é bloqueada quando a detecção do supervisor está em andamento.

Anotações de ferramentas

As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando uma solicitação de confirmação pode ser enviada a um usuário.

Além da string de título, as seguintes dicas booleanas são definidas:

  • readOnlyHint: se for verdadeiro, a ferramenta não vai modificar o ambiente. Padrão: false.
  • destructiveHint: se for verdadeiro, a ferramenta poderá realizar ações destrutivas. Se for falso, a ferramenta só poderá realizar ações aditivas. Padrão: verdadeiro.
  • idempotentHint: se for verdadeiro, chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente. Padrão: false.
  • openWorldHint: se for verdadeiro, a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for falso, a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.

Dica destrutiva: ✅ | Dica idempotente: ❌ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌