Tool: create_app_version
Creates a new app version in the given app.
The following sample demonstrate how to use curl to invoke the create_app_version MCP tool.
| Curl Request |
|---|
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_app_version", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for AgentService.CreateAppVersion
CreateAppVersionRequest
| JSON representation |
|---|
{
"parent": string,
"appVersionId": string,
"appVersion": {
object ( |
| Fields | |
|---|---|
parent |
Required. The resource name of the app to create an app version in. |
appVersionId |
Optional. The ID to use for the app version, which will become the final component of the app version's resource name. If not provided, a unique ID will be automatically assigned for the app version. |
appVersion |
Required. The app version to create. |
AppVersion
| JSON representation |
|---|
{
"name": string,
"displayName": string,
"description": string,
"creator": string,
"createTime": string,
"snapshot": {
object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the app version. Format: |
displayName |
Optional. The display name of the app version. |
description |
Optional. The description of the app version. |
creator |
Output only. Email of the user who created the app version. |
createTime |
Output only. Timestamp when the app version was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
snapshot |
Output only. The snapshot of the app when the version is created. |
etag |
Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
AppSnapshot
| JSON representation |
|---|
{ "app": { object ( |
| Fields | |
|---|---|
app |
Optional. The basic settings for the app. |
agents[] |
Optional. List of agents in the app. |
tools[] |
Optional. List of tools in the app. |
examples[] |
Optional. List of examples in the app. |
guardrails[] |
Optional. List of guardrails in the app. |
toolsets[] |
Optional. List of toolsets in the app. |
App
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "pinned": boolean, "rootAgent": string, "languageSettings": { object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the app. Format: |
displayName |
Required. Display name of the app. |
description |
Optional. Human-readable description of the app. |
pinned |
Optional. Whether the app is pinned in the app list. |
rootAgent |
Optional. The root agent is the entry point of the app. Format: |
languageSettings |
Optional. Language settings of the app. |
timeZoneSettings |
Optional. TimeZone settings of the app. |
audioProcessingConfig |
Optional. Audio processing configuration of the app. |
loggingSettings |
Optional. Logging settings of the app. |
errorHandlingSettings |
Optional. Error handling settings of the app. |
modelSettings |
Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed. |
toolExecutionMode |
Optional. The tool execution mode for the app. If not provided, will default to PARALLEL. |
evaluationMetricsThresholds |
Optional. The evaluation thresholds for the app. |
variableDeclarations[] |
Optional. The declarations of the variables. |
predefinedVariableDeclarations[] |
Output only. The declarations of predefined variables for the app. |
globalInstruction |
Optional. Instructions for all the agents in the app. You can use this instruction to set up a stable identity or personality across all the agents. |
guardrails[] |
Optional. List of guardrails for the app. Format: |
dataStoreSettings |
Optional. The data store settings for the app. |
defaultChannelProfile |
Optional. The default channel profile used by the app. |
metadata |
Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages. An object containing a list of |
createTime |
Output only. Timestamp when the app was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the app was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
deploymentCount |
Output only. Number of deployments in the app. |
clientCertificateSettings |
Optional. The default client certificate settings for the app. |
vpcScSettings |
Optional. VPC-SC settings for the app. |
locked |
Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected. |
validationErrors[] |
Output only. Misconfigurations or warnings in the app. |
LanguageSettings
| JSON representation |
|---|
{ "defaultLanguageCode": string, "supportedLanguageCodes": [ string ], "enableMultilingualSupport": boolean, "fallbackAction": string } |
| Fields | |
|---|---|
defaultLanguageCode |
Optional. The default language code of the app. |
supportedLanguageCodes[] |
Optional. List of languages codes supported by the app, in addition to the |
enableMultilingualSupport |
Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input. |
fallbackAction |
Optional. Deprecated: This feature is no longer supported. Use This can be a predefined action or a custom tool call. Valid values are: - A tool's full resource name, which triggers a specific tool execution. - A predefined system action, such as "escalate" or "exit", which triggers an |
TimeZoneSettings
| JSON representation |
|---|
{ "timeZone": string } |
| Fields | |
|---|---|
timeZone |
Optional. The time zone of the app from the time zone database, e.g., America/Los_Angeles, Europe/Paris. |
AudioProcessingConfig
| JSON representation |
|---|
{ "synthesizeSpeechConfigs": { string: { object ( |
| Fields | |
|---|---|
synthesizeSpeechConfigs |
Optional. Configuration of how the agent response should be synthesized, mapping from the language code to If the configuration for the specified language code is not found, the configuration for the root language code will be used. For example, if the map contains "en-us" and "en", and the specified language code is "en-gb", then "en" configuration will be used. Note: Language code is case-insensitive. An object containing a list of |
bargeInConfig |
Optional. Configures the agent behavior for the user barge-in activities. |
inactivityTimeout |
Optional. The duration of user inactivity (no speech or interaction) before the agent prompts the user for reengagement. If not set, the agent will not prompt the user for reengagement. A duration in seconds with up to nine fractional digits, ending with ' |
ambientSoundConfig |
Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. |
SynthesizeSpeechConfigsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
SynthesizeSpeechConfig
| JSON representation |
|---|
{ "voice": string, "speakingRate": number } |
| Fields | |
|---|---|
voice |
Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to Supported voices and languages from Cloud Text-to-Speech. |
speakingRate |
Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error. |
BargeInConfig
| JSON representation |
|---|
{ "disableBargeIn": boolean, "bargeInAwareness": boolean } |
| Fields | |
|---|---|
disableBargeIn |
Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: |
bargeInAwareness |
Optional. If enabled, the agent will adapt its next response based on the assumption that the user hasn't heard the full preceding agent message. This should not be used in scenarios where agent responses are displayed visually. |
Duration
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos |
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
AmbientSoundConfig
| JSON representation |
|---|
{ "volumeGainDb": number, // Union field |
| Fields | |
|---|---|
volumeGainDb |
Optional. Volume gain (in dB) of the normal native volume supported by ambient noise, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that. |
Union field source. Ambient noise to be played with the synthesized agent response, to enhance the naturalness of the conversation. source can be only one of the following: |
|
prebuiltAmbientNoise |
Optional. Deprecated: |
gcsUri |
Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in Cloud Storage. Note: Please make sure the CES service agent |
prebuiltAmbientSound |
Optional. Name of the prebuilt ambient sound. Valid values are: - "coffee_shop" - "keyboard" - "keypad" - "hum" - "office_1" - "office_2" - "office_3" - "room_1" - "room_2" - "room_3" - "room_4" - "room_5" - "air_conditioner" |
LoggingSettings
| JSON representation |
|---|
{ "redactionConfig": { object ( |
| Fields | |
|---|---|
redactionConfig |
Optional. Configuration for how sensitive data should be redacted. |
audioRecordingConfig |
Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in |
unredactedAudioRecordingConfig |
Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is |
bigqueryExportSettings |
Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in |
cloudLoggingSettings |
Optional. Settings to describe the Cloud Logging behaviors for the app. |
conversationLoggingSettings |
Optional. Settings to describe the conversation logging behaviors for the app. |
evaluationAudioRecordingConfig |
Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions. |
metricAnalysisSettings |
Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app. |
RedactionConfig
| JSON representation |
|---|
{ "enableRedaction": boolean, "inspectTemplate": string, "deidentifyTemplate": string } |
| Fields | |
|---|---|
enableRedaction |
Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording. |
inspectTemplate |
Optional. DLP inspect template name to configure detection of sensitive data types. Format: |
deidentifyTemplate |
Optional. DLP deidentify template name to instruct on how to de-identify content. Format: |
AudioRecordingConfig
| JSON representation |
|---|
{ "gcsBucket": string, "gcsPathPrefix": string } |
| Fields | |
|---|---|
gcsBucket |
Optional. The Cloud Storage bucket to store the session audio recordings. The URI must start with "gs://". Please choose a bucket location that meets your data residency requirements. Note: If the Cloud Storage bucket is in a different project from the app, you should grant |
gcsPathPrefix |
Optional. The Cloud Storage path prefix for audio recordings. This prefix can include the following placeholders, which will be dynamically substituted at serving time: - $project: project ID - $location: app location - $app: app ID - $date: session date in YYYY-MM-DD format - $session: session ID If the path prefix is not specified, the default prefix |
BigQueryExportSettings
| JSON representation |
|---|
{ "enabled": boolean, "project": string, "dataset": string } |
| Fields | |
|---|---|
enabled |
Optional. Indicates whether the BigQuery export is enabled. |
project |
Optional. The project ID of the BigQuery dataset to export the data to. Note: If the BigQuery dataset is in a different project from the app, you should grant |
dataset |
Optional. The BigQuery dataset ID to export the data to. |
CloudLoggingSettings
| JSON representation |
|---|
{ "enableCloudLogging": boolean } |
| Fields | |
|---|---|
enableCloudLogging |
Optional. Whether to enable Cloud Logging for the sessions. |
ConversationLoggingSettings
| JSON representation |
|---|
{ "disableConversationLogging": boolean, "retentionWindow": string } |
| Fields | |
|---|---|
disableConversationLogging |
Optional. Whether to disable conversation logging for the sessions. |
retentionWindow |
Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days. A duration in seconds with up to nine fractional digits, ending with ' |
MetricAnalysisSettings
| JSON representation |
|---|
{ "llmMetricsOptedOut": boolean } |
| Fields | |
|---|---|
llmMetricsOptedOut |
Optional. Whether to collect conversation data for llm analysis metrics. If true, conversation data will not be collected for llm analysis metrics; otherwise, conversation data will be collected. |
ErrorHandlingSettings
| JSON representation |
|---|
{ "errorHandlingStrategy": enum ( |
| Fields | |
|---|---|
errorHandlingStrategy |
Optional. The strategy to use for error handling. |
fallbackResponseConfig |
Optional. Configuration for handling fallback responses. |
endSessionConfig |
Optional. Configuration for ending the session in case of system errors (e.g. LLM errors). |
FallbackResponseConfig
| JSON representation |
|---|
{ "customFallbackMessages": { string: string, ... }, "maxFallbackAttempts": integer } |
| Fields | |
|---|---|
customFallbackMessages |
Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by supported language code. An object containing a list of |
maxFallbackAttempts |
Optional. The maximum number of fallback attempts to make before the agent emitting |
CustomFallbackMessagesEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
EndSessionConfig
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
escalateSession |
Optional. Whether to escalate the session in |
ModelSettings
| JSON representation |
|---|
{ "model": string, // Union field |
| Fields | |
|---|---|
model |
Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent. |
Union field
|
|
temperature |
Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative. |
EvaluationMetricsThresholds
| JSON representation |
|---|
{ "goldenEvaluationMetricsThresholds": { object ( |
| Fields | |
|---|---|
goldenEvaluationMetricsThresholds |
Optional. The golden evaluation metrics thresholds. |
hallucinationMetricBehavior |
Optional. Deprecated: Use |
goldenHallucinationMetricBehavior |
Optional. The hallucination metric behavior for golden evaluations. |
scenarioHallucinationMetricBehavior |
Optional. The hallucination metric behavior for scenario evaluations. |
GoldenEvaluationMetricsThresholds
| JSON representation |
|---|
{ "turnLevelMetricsThresholds": { object ( |
| Fields | |
|---|---|
turnLevelMetricsThresholds |
Optional. The turn level metrics thresholds. |
expectationLevelMetricsThresholds |
Optional. The expectation level metrics thresholds. |
toolMatchingSettings |
Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation. |
TurnLevelMetricsThresholds
| JSON representation |
|---|
{ "semanticSimilarityChannel": enum ( |
| Fields | |
|---|---|
semanticSimilarityChannel |
Optional. The semantic similarity channel to use for evaluation. |
Union field
|
|
semanticSimilaritySuccessThreshold |
Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3. |
Union field
|
|
overallToolInvocationCorrectnessThreshold |
Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0. |
ExpectationLevelMetricsThresholds
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
toolInvocationParameterCorrectnessThreshold |
Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0. |
ToolMatchingSettings
| JSON representation |
|---|
{
"extraToolCallBehavior": enum ( |
| Fields | |
|---|---|
extraToolCallBehavior |
Optional. Behavior for extra tool calls. Defaults to FAIL. |
VariableDeclaration
| JSON representation |
|---|
{
"name": string,
"description": string,
"schema": {
object ( |
| Fields | |
|---|---|
name |
Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores. |
description |
Required. The description of the variable. |
schema |
Required. The schema of the variable. |
Schema
| JSON representation |
|---|
{ "type": enum ( |
| Fields | |
|---|---|
type |
Required. The type of the data. |
properties |
Optional. Properties of Type.OBJECT. An object containing a list of |
required[] |
Optional. Required properties of Type.OBJECT. |
description |
Optional. The description of the data. |
items |
Optional. Schema of the elements of Type.ARRAY. |
nullable |
Optional. Indicates if the value may be null. |
uniqueItems |
Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY. |
prefixItems[] |
Optional. Schemas of initial elements of Type.ARRAY. |
additionalProperties |
Optional. Can either be a boolean or an object, controls the presence of additional properties. |
anyOf[] |
Optional. The value should be validated against any (one or more) of the subschemas in the list. |
enum[] |
Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]} |
default |
Optional. Default value of the data. |
ref |
Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root For example, the following schema defines a reference to a schema node named "Pet": The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring. |
defs |
Optional. A map of definitions for use by An object containing a list of |
title |
Optional. The title of the schema. |
minItems |
Optional. Minimum number of the elements for Type.ARRAY. |
maxItems |
Optional. Maximum number of the elements for Type.ARRAY. |
Union field
|
|
minimum |
Optional. Minimum value for Type.INTEGER and Type.NUMBER. |
Union field
|
|
maximum |
Optional. Maximum value for Type.INTEGER and Type.NUMBER. |
PropertiesEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
Value
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field kind. The kind of value. kind can be only one of the following: |
|
nullValue |
Represents a JSON |
numberValue |
Represents a JSON number. Must not be |
stringValue |
Represents a JSON string. |
boolValue |
Represents a JSON boolean ( |
structValue |
Represents a JSON object. |
listValue |
Represents a JSON array. |
Struct
| JSON representation |
|---|
{ "fields": { string: value, ... } } |
| Fields | |
|---|---|
fields |
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key": string, "value": value } |
| Fields | |
|---|---|
key |
|
value |
|
ListValue
| JSON representation |
|---|
{ "values": [ value ] } |
| Fields | |
|---|---|
values[] |
Repeated field of dynamically typed values. |
DefsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
DataStoreSettings
| JSON representation |
|---|
{
"engines": [
{
object ( |
| Fields | |
|---|---|
engines[] |
Output only. The engines for the app. |
Engine
| JSON representation |
|---|
{
"name": string,
"type": enum ( |
| Fields | |
|---|---|
name |
Output only. The resource name of the engine. Format: |
type |
Output only. The type of the engine. |
ChannelProfile
| JSON representation |
|---|
{ "profileId": string, "channelType": enum ( |
| Fields | |
|---|---|
profileId |
Optional. The unique identifier of the channel profile. |
channelType |
Optional. The type of the channel profile. |
personaProperty |
Optional. The persona property of the channel profile. |
disableDtmf |
Optional. Whether to disable DTMF (dual-tone multi-frequency). |
disableBargeInControl |
Optional. Whether to disable user barge-in control in the conversation. - true: User interruptions are disabled while the agent is speaking. - false: The agent retains automatic control over when the user can interrupt. |
webWidgetConfig |
Optional. The configuration for the web widget. |
noiseSuppressionLevel |
Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high". |
PersonaProperty
| JSON representation |
|---|
{
"persona": enum ( |
| Fields | |
|---|---|
persona |
Optional. The persona of the channel. |
WebWidgetConfig
| JSON representation |
|---|
{ "modality": enum ( |
| Fields | |
|---|---|
modality |
Optional. The modality of the web widget. |
theme |
Optional. The theme of the web widget. |
webWidgetTitle |
Optional. The title of the web widget. |
securitySettings |
Optional. The security settings of the web widget. |
SecuritySettings
| JSON representation |
|---|
{ "enablePublicAccess": boolean, "enableOriginCheck": boolean, "allowedOrigins": [ string ], "enableRecaptcha": boolean } |
| Fields | |
|---|---|
enablePublicAccess |
Optional. Indicates whether public access to the web widget is enabled. If |
enableOriginCheck |
Optional. Indicates whether origin check for the web widget is enabled. If |
allowedOrigins[] |
Optional. The origins that are allowed to host the web widget. An origin is defined by RFC 6454. If empty, all origins are allowed. A maximum of 100 origins is allowed. Example: "https://example.com" |
enableRecaptcha |
Optional. Indicates whether reCAPTCHA verification for the web widget is enabled. |
MetadataEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
ClientCertificateSettings
| JSON representation |
|---|
{ "tlsCertificate": string, "privateKey": string, "passphrase": string } |
| Fields | |
|---|---|
tlsCertificate |
Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines. |
privateKey |
Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: |
passphrase |
Optional. The name of the SecretManager secret version resource storing the passphrase to decrypt the private key. Should be left unset if the private key is not encrypted. Format: |
VpcScSettings
| JSON representation |
|---|
{ "allowedOrigins": [ string ] } |
| Fields | |
|---|---|
allowedOrigins[] |
Optional. The allowed HTTP(s) origins that OpenAPI tools in the App are able to directly call when VPC Service Controls are enabled. These strings must match the origin exactly, including the port if specified. For example, "https://example.com" or "https://example.com:443". This list does not yet apply to Python tools that may make direct HTTP calls. |
Agent
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the agent. Format: |
displayName |
Required. Display name of the agent. |
description |
Optional. Human-readable description of the agent. |
modelSettings |
Optional. Configurations for the LLM model. |
instruction |
Optional. Instructions for the LLM model to guide the agent's behavior. |
tools[] |
Optional. List of available tools for the agent. Format: |
childAgents[] |
Optional. List of child agents in the agent tree. Format: |
beforeAgentCallbacks[] |
Optional. The callbacks to execute before the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
afterAgentCallbacks[] |
Optional. The callbacks to execute after the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
beforeModelCallbacks[] |
Optional. The callbacks to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
afterModelCallbacks[] |
Optional. The callbacks to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
beforeToolCallbacks[] |
Optional. The callbacks to execute before the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
afterToolCallbacks[] |
Optional. The callbacks to execute after the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
createTime |
Output only. Timestamp when the agent was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the agent was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
guardrails[] |
Optional. List of guardrails for the agent. Format: |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
toolsets[] |
Optional. List of toolsets for the agent. |
generatedSummary |
Output only. If the agent is generated by the LLM assistant, this field contains a descriptive summary of the generation. |
transferRules[] |
Optional. Agent transfer rules. If multiple rules match, the first one in the list will be used. |
validationErrors[] |
Output only. Misconfigurations or errors in the agent that may affect agent quality. |
Union field agent_type. The type of agent. agent_type can be only one of the following: |
|
llmAgent |
Optional. The default agent type. |
remoteDialogflowAgent |
Optional. The remote Dialogflow agent to be used for the agent execution. If this field is set, all other agent level properties will be ignored. Note: If the Dialogflow agent is in a different project from the app, you should grant |
RemoteDialogflowAgent
| JSON representation |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| Fields | |
|---|---|
agent |
Required. The Dialogflow agent resource name. Format: |
flowId |
Optional. The flow ID of the flow in the Dialogflow agent. |
environmentId |
Optional. The environment ID of the Dialogflow agent to be used for the agent execution. If not specified, the draft environment will be used. |
inputVariableMapping |
Optional. The mapping of the app variables names to the Dialogflow session parameters names to be sent to the Dialogflow agent as input. An object containing a list of |
outputVariableMapping |
Optional. The mapping of the Dialogflow session parameters names to the app variables names to be sent back to the CES agent after the Dialogflow agent execution ends. An object containing a list of |
respectResponseInterruptionSettings |
Optional. Indicates whether to respect the message-level interruption settings configured in the Dialogflow agent.
|
languageCodeVariable |
Optional. The name of the variable that contains the language code to be used for the Dialogflow session. If unspecified, the default language code of the Dialogflow agent will be used. |
InputVariableMappingEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Callback
| JSON representation |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Fields | |
|---|---|
description |
Optional. Human-readable description of the callback. |
disabled |
Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent. |
proactiveExecutionEnabled |
Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. ENABLE WITH CAUTION. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations. |
Union field callback. The callback to execute. callback can be only one of the following: |
|
pythonCode |
Required. The python code to execute for the callback. |
AgentToolset
| JSON representation |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| Fields | |
|---|---|
toolset |
Required. The resource name of the toolset. Format: |
toolIds[] |
Optional. The tools IDs to filter the toolset. |
TransferRule
| JSON representation |
|---|
{ "childAgent": string, "direction": enum ( |
| Fields | |
|---|---|
childAgent |
Required. The resource name of the child agent the rule applies to. Format: |
direction |
Required. The direction of the transfer. |
Union field rule_type. The rule type. rule_type can be only one of the following: |
|
deterministicTransfer |
Optional. A rule that immediately transfers to the target agent when the condition is met. |
disablePlannerTransfer |
Optional. Rule that prevents the planner from transferring to the target agent. |
DeterministicTransfer
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field condition_type. The condition to evaluate. condition_type can be only one of the following: |
|
expressionCondition |
Optional. A rule that evaluates a session state condition. If the condition evaluates to true, the transfer occurs. |
pythonCodeCondition |
Optional. A rule that uses Python code block to evaluate the conditions. If the condition evaluates to true, the transfer occurs. |
ExpressionCondition
| JSON representation |
|---|
{ "expression": string } |
| Fields | |
|---|---|
expression |
Required. The string representation of cloud.api.Expression condition. |
PythonCodeCondition
| JSON representation |
|---|
{ "pythonCode": string } |
| Fields | |
|---|---|
pythonCode |
Required. The python code to execute. |
DisablePlannerTransfer
| JSON representation |
|---|
{
"expressionCondition": {
object ( |
| Fields | |
|---|---|
expressionCondition |
Required. If the condition evaluates to true, planner will not be allowed to transfer to the target agent. |
Tool
| JSON representation |
|---|
{ "name": string, "displayName": string, "executionType": enum ( |
| Fields | |
|---|---|
name |
Identifier. The resource name of the tool. Format:
These tools are dynamic and output-only; they cannot be referenced directly where a tool is expected. |
displayName |
Output only. The display name of the tool, derived based on the tool's type. For example, display name of a [ClientFunction][Tool.ClientFunction] is derived from its |
executionType |
Optional. The execution type of the tool. |
timeout |
Optional. The timeout for the tool execution. If not set, the default timeout is 30 seconds for A duration in seconds with up to nine fractional digits, ending with ' |
createTime |
Output only. Timestamp when the tool was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the tool was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
generatedSummary |
Output only. If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation. |
toolFakeConfig |
Optional. Configuration for tool behavior in fake mode. |
Union field tool_type. The type of the tool. tool_type can be only one of the following: |
|
clientFunction |
Optional. The client function. |
openApiTool |
Optional. The open API tool. |
googleSearchTool |
Optional. The google search tool. |
connectorTool |
Optional. The Integration Connector tool. |
dataStoreTool |
Optional. The data store tool. |
pythonFunction |
Optional. The python function tool. |
mcpTool |
Optional. The MCP tool. An MCP tool cannot be created or updated directly and is managed by the MCP toolset. |
fileSearchTool |
Optional. The file search tool. |
systemTool |
Optional. The system tool. |
agentTool |
Optional. The agent tool. |
widgetTool |
Optional. The widget tool. |
remoteAgentTool |
Optional. The remote agent tool. |
ClientFunction
| JSON representation |
|---|
{ "name": string, "description": string, "parameters": { object ( |
| Fields | |
|---|---|
name |
Required. The function name. |
description |
Optional. The function description. |
parameters |
Optional. The schema of the function parameters. |
response |
Optional. The schema of the function response. |
OpenApiTool
| JSON representation |
|---|
{ "openApiSchema": string, "name": string, "description": string, "apiAuthentication": { object ( |
| Fields | |
|---|---|
openApiSchema |
Required. The OpenAPI schema in JSON or YAML format. |
name |
Optional. The name of the tool. If not provided, the name of the tool will be derived from the OpenAPI schema, from |
description |
Optional. The description of the tool. If not provided, the description of the tool will be derived from the OpenAPI schema, from |
apiAuthentication |
Optional. Authentication information required by the API. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates that the client will trust. |
serviceDirectoryConfig |
Optional. Service Directory configuration. |
ignoreUnknownFields |
Optional. If true, the agent will ignore unknown fields in the API response. |
url |
Optional. The server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema. |
ApiAuthentication
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field auth_config. The auth configuration. auth_config can be only one of the following: |
|
apiKeyConfig |
Optional. Config for API key auth. |
oauthConfig |
Optional. Config for OAuth. |
serviceAgentIdTokenAuthConfig |
Optional. Config for ID token auth generated from CES service agent. |
serviceAccountAuthConfig |
Optional. Config for service account authentication. |
bearerTokenConfig |
Optional. Config for bearer token auth. |
ApiKeyConfig
| JSON representation |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| Fields | |
|---|---|
keyName |
Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
Required. The name of the SecretManager secret version resource storing the API key. Format: Note: You should grant |
requestLocation |
Required. Key location in the request. |
OAuthConfig
| JSON representation |
|---|
{
"oauthGrantType": enum ( |
| Fields | |
|---|---|
oauthGrantType |
Required. OAuth grant types. |
clientId |
Required. The client ID from the OAuth provider. |
clientSecretVersion |
Required. The name of the SecretManager secret version resource storing the client secret. Format: Note: You should grant |
tokenEndpoint |
Required. The token endpoint in the OAuth provider to exchange for an access token. |
scopes[] |
Optional. The OAuth scopes to grant. |
ServiceAccountAuthConfig
| JSON representation |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| Fields | |
|---|---|
serviceAccount |
Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the The service account must have the |
scopes[] |
Optional. The OAuth scopes to grant. If not specified, the default scope |
BearerTokenConfig
| JSON representation |
|---|
{ "token": string } |
| Fields | |
|---|---|
token |
Required. The bearer token. Must be in the format |
TlsConfig
| JSON representation |
|---|
{
"caCerts": [
{
object ( |
| Fields | |
|---|---|
caCerts[] |
Required. Specifies a list of allowed custom CA certificates for HTTPS verification. |
CaCert
| JSON representation |
|---|
{ "displayName": string, "cert": string } |
| Fields | |
|---|---|
displayName |
Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates. |
cert |
Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command: A base64-encoded string. |
ServiceDirectoryConfig
| JSON representation |
|---|
{ "service": string } |
| Fields | |
|---|---|
service |
Required. The name of Service Directory service. Format: |
GoogleSearchTool
| JSON representation |
|---|
{
"name": string,
"description": string,
"contextUrls": [
string
],
"preferredDomains": [
string
],
"excludeDomains": [
string
],
"promptConfig": {
object ( |
| Fields | |
|---|---|
name |
Required. The name of the tool. |
description |
Optional. Description of the tool's purpose. |
contextUrls[] |
Optional. Content will be fetched directly from these URLs for context and grounding. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed. |
preferredDomains[] |
Optional. Specifies domains to restrict search results to. Example: "example.com", "another.site". A maximum of 20 domains can be specified. |
excludeDomains[] |
Optional. List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded. |
promptConfig |
Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. |
PromptConfig
| JSON representation |
|---|
{ "textPrompt": string, "voicePrompt": string } |
| Fields | |
|---|---|
textPrompt |
Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used. |
voicePrompt |
Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used. |
ConnectorTool
| JSON representation |
|---|
{ "connection": string, "action": { object ( |
| Fields | |
|---|---|
connection |
Required. The full resource name of the referenced Integration Connectors Connection. Format: |
action |
Required. Action for the tool to use. |
authConfig |
Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. |
name |
Optional. The name of the tool that can be used by the Agent to decide whether to call this ConnectorTool. |
description |
Optional. The description of the tool that can be used by the Agent to decide whether to call this ConnectorTool. |
Action
| JSON representation |
|---|
{ "inputFields": [ string ], "outputFields": [ string ], // Union field |
| Fields | |
|---|---|
inputFields[] |
Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used. |
outputFields[] |
Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned. |
Union field action_spec. Specification for an action to configure for the tool to use. action_spec can be only one of the following: |
|
connectionActionId |
ID of a Connection action for the tool to use. |
entityOperation |
Entity operation configuration for the tool to use. |
EntityOperation
| JSON representation |
|---|
{
"entityId": string,
"operation": enum ( |
| Fields | |
|---|---|
entityId |
Required. ID of the entity. |
operation |
Required. Operation to perform on the entity. |
EndUserAuthConfig
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field auth_config. The auth configuration. auth_config can be only one of the following: |
|
oauth2AuthCodeConfig |
Oauth 2.0 Authorization Code authentication. |
oauth2JwtBearerConfig |
JWT Profile Oauth 2.0 Authorization Grant authentication. |
Oauth2AuthCodeConfig
| JSON representation |
|---|
{ "oauthToken": string } |
| Fields | |
|---|---|
oauthToken |
Required. Oauth token parameter name to pass through. Must be in the format |
Oauth2JwtBearerConfig
| JSON representation |
|---|
{ "issuer": string, "subject": string, "clientKey": string } |
| Fields | |
|---|---|
issuer |
Required. Issuer parameter name to pass through. Must be in the format |
subject |
Required. Subject parameter name to pass through. Must be in the format |
clientKey |
Required. Client parameter name to pass through. Must be in the format |
DataStoreTool
| JSON representation |
|---|
{ "name": string, "description": string, "boostSpecs": [ { object ( |
| Fields | |
|---|---|
name |
Required. The data store tool name. |
description |
Optional. The tool description. |
boostSpecs[] |
Optional. Boost specification to boost certain documents. |
modalityConfigs[] |
Optional. The modality configs for the data store. |
filterParameterBehavior |
Optional. The filter parameter behavior. |
Union field search_source. Defines the search source, either a single DataStore or an Engine. search_source can be only one of the following: |
|
dataStoreSource |
Optional. Search within a single specific DataStore. |
engineSource |
Optional. Search within an Engine (potentially across multiple DataStores). |
DataStoreSource
| JSON representation |
|---|
{
"filter": string,
"dataStore": {
object ( |
| Fields | |
|---|---|
filter |
Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata |
dataStore |
Optional. The data store. |
DataStore
| JSON representation |
|---|
{ "name": string, "type": enum ( |
| Fields | |
|---|---|
name |
Required. Full resource name of the DataStore. Format: |
type |
Output only. The type of the data store. This field is readonly and populated by the server. |
documentProcessingMode |
Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. |
displayName |
Output only. The display name of the data store. |
createTime |
Output only. Timestamp when the data store was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
connectorConfig |
Output only. The connector config for the data store connection. |
ConnectorConfig
| JSON representation |
|---|
{ "collection": string, "collectionDisplayName": string, "dataSource": string } |
| Fields | |
|---|---|
collection |
Resource name of the collection the data store belongs to. |
collectionDisplayName |
Display name of the collection the data store belongs to. |
dataSource |
The name of the data source. Example: |
EngineSource
| JSON representation |
|---|
{
"engine": string,
"dataStoreSources": [
{
object ( |
| Fields | |
|---|---|
engine |
Required. Full resource name of the Engine. Format: |
dataStoreSources[] |
Optional. Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. |
filter |
Optional. A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata |
BoostSpecs
| JSON representation |
|---|
{
"dataStores": [
string
],
"spec": [
{
object ( |
| Fields | |
|---|---|
dataStores[] |
Required. The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}. |
spec[] |
Required. A list of boosting specifications. |
BoostSpec
| JSON representation |
|---|
{
"conditionBoostSpecs": [
{
object ( |
| Fields | |
|---|---|
conditionBoostSpecs[] |
Required. A list of boosting specifications. |
ConditionBoostSpec
| JSON representation |
|---|
{
"condition": string,
"boost": number,
"boostControlSpec": {
object ( |
| Fields | |
|---|---|
condition |
Required. An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr")) |
boost |
Optional. Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored. |
boostControlSpec |
Optional. Complex specification for custom ranking based on customer defined attribute value. |
BoostControlSpec
| JSON representation |
|---|
{ "fieldName": string, "attributeType": enum ( |
| Fields | |
|---|---|
fieldName |
Optional. The name of the field whose value will be used to determine the boost amount. |
attributeType |
Optional. The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (time.now() - datetime_field_value). |
interpolationType |
Optional. The interpolation type to be applied to connect the control points listed below. |
controlPoints[] |
Optional. The control points used to define the curve. The monotonic function (defined through the interpolation_type above) passes through the control points listed here. |
ControlPoint
| JSON representation |
|---|
{ "attributeValue": string, "boostAmount": number } |
| Fields | |
|---|---|
attributeValue |
Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD |
boostAmount |
Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above. |
ModalityConfig
| JSON representation |
|---|
{ "modalityType": enum ( |
| Fields | |
|---|---|
modalityType |
Required. The modality type. |
rewriterConfig |
Optional. The rewriter config. |
summarizationConfig |
Optional. The summarization config. |
groundingConfig |
Optional. The grounding configuration. |
RewriterConfig
| JSON representation |
|---|
{
"modelSettings": {
object ( |
| Fields | |
|---|---|
modelSettings |
Required. Configurations for the LLM model. |
prompt |
Optional. The prompt definition. If not set, default prompt will be used. |
disabled |
Optional. Whether the rewriter is disabled. |
SummarizationConfig
| JSON representation |
|---|
{
"modelSettings": {
object ( |
| Fields | |
|---|---|
modelSettings |
Optional. Configurations for the LLM model. |
prompt |
Optional. The prompt definition. If not set, default prompt will be used. |
disabled |
Optional. Whether summarization is disabled. |
GroundingConfig
| JSON representation |
|---|
{ "groundingLevel": number, "disabled": boolean } |
| Fields | |
|---|---|
groundingLevel |
Optional. The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned. |
disabled |
Optional. Whether grounding is disabled. |
PythonFunction
| JSON representation |
|---|
{
"name": string,
"pythonCode": string,
"description": string,
"serviceDirectoryConfig": {
object ( |
| Fields | |
|---|---|
name |
Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used. |
pythonCode |
Optional. The Python code to execute for the tool. |
description |
Output only. The description of the Python function, parsed from the python code's docstring. |
serviceDirectoryConfig |
Optional. Service Directory configuration for the tool. |
McpTool
| JSON representation |
|---|
{ "name": string, "nameOverride": string, "description": string, "inputSchema": { object ( |
| Fields | |
|---|---|
name |
Required. The name of the MCP tool. |
nameOverride |
Optional. The name override of the MCP tool. This is populated if the name was overridden by a Toolset override. |
description |
Optional. The description of the MCP tool. |
inputSchema |
Optional. The schema of the input arguments of the MCP tool. |
outputSchema |
Optional. The schema of the output arguments of the MCP tool. |
serverAddress |
Required. The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the server_address in the McpToolset. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details. |
apiAuthentication |
Optional. Authentication information required to execute the tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates that the client should trust. |
serviceDirectoryConfig |
Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter. |
customHeaders |
Optional. The custom headers to send in the request to the MCP server. The values must be in the format An object containing a list of |
state |
Output only. The dynamic availability state of the tool on the external server. |
CustomHeadersEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
FileSearchTool
| JSON representation |
|---|
{
"corpusType": enum ( |
| Fields | |
|---|---|
corpusType |
Optional. The type of the corpus. Default is FULLY_MANAGED. |
name |
Required. The tool name. |
description |
Optional. The tool description. |
fileCorpus |
Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus} |
SystemTool
| JSON representation |
|---|
{ "name": string, "description": string } |
| Fields | |
|---|---|
name |
Required. The name of the system tool. |
description |
Output only. The description of the system tool. |
AgentTool
| JSON representation |
|---|
{ "name": string, "description": string, "rootAgent": string, "agent": string } |
| Fields | |
|---|---|
name |
Required. The name of the agent tool. |
description |
Optional. Description of the tool's purpose. |
rootAgent |
Optional. Deprecated: Use |
agent |
Optional. The resource name of the agent that is the entry point of the tool. Format: |
WidgetTool
| JSON representation |
|---|
{ "name": string, "description": string, "widgetType": enum ( |
| Fields | |
|---|---|
name |
Required. The display name of the widget tool. |
description |
Optional. The description of the widget tool. |
widgetType |
Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. |
uiConfig |
Optional. Configuration for rendering the widget. |
dataMapping |
Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. |
textResponseConfig |
Optional. Configuration for always-included text responses. |
Union field input. The input of the widget tool. input can be only one of the following: |
|
parameters |
Optional. The input parameters of the widget tool. |
DataMapping
| JSON representation |
|---|
{ "sourceToolName": string, "fieldMappings": { string: string, ... }, "pythonFunction": { object ( |
| Fields | |
|---|---|
sourceToolName |
Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: |
fieldMappings |
Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of |
pythonFunction |
Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. |
mode |
Optional. The mode of the data mapping. |
pythonScript |
Deprecated: Use |
FieldMappingsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
TextResponseConfig
| JSON representation |
|---|
{
"type": enum ( |
| Fields | |
|---|---|
type |
Optional. The strategy for providing the text response. |
staticText |
Optional. The static text response to return when type is STATIC. |
textResponseInstruction |
Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED. |
RemoteAgentTool
| JSON representation |
|---|
{
"name": string,
"description": string,
"agentCard": {
object ( |
| Fields | |
|---|---|
name |
Required. The name of the tool. |
description |
Required. The description of the tool. |
agentCard |
Required. The agent card of the remote agent that this tool invokes. |
AgentCard
| JSON representation |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| Fields | |
|---|---|
name |
Required. A human-readable name for the agent. |
description |
Required. A description of the agent's domain of action/solution space. |
supportedInterfaces[] |
Required. Ordered list of supported interfaces. The first entry is preferred. |
version |
Required. The version of the agent. |
skills[] |
Required. Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. |
AgentInterface
| JSON representation |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| Fields | |
|---|---|
url |
Required. The URL where this interface is available. Must be a valid absolute HTTPS URL in production. Example: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a" |
protocolBinding |
Required. The protocol binding supported at this URL. This is an open form string, to be easily extended for other protocol bindings. The core ones officially supported are |
tenant |
Tenant ID to be used in the request when calling the agent. |
protocolVersion |
Required. The version of the A2A protocol this interface exposes. Use the latest supported minor version per major version. Examples: "0.3", "1.0" |
AgentSkill
| JSON representation |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| Fields | |
|---|---|
id |
Required. A unique identifier for the agent's skill. |
name |
Required. A human-readable name for the skill. |
description |
Required. A detailed description of the skill. |
tags[] |
Required. A set of keywords describing the skill's capabilities. |
examples[] |
Example prompts or scenarios that this skill can handle. |
inputModes[] |
The set of supported input media types for this skill, overriding the agent's defaults. |
outputModes[] |
The set of supported output media types for this skill, overriding the agent's defaults. |
ToolFakeConfig
| JSON representation |
|---|
{ "enableFakeMode": boolean, // Union field |
| Fields | |
|---|---|
enableFakeMode |
Optional. Whether the tool is using fake mode. |
Union field tool_response. The response is either static or it is provided by a python function. tool_response can be only one of the following: |
|
codeBlock |
Optional. Code block which will be executed instead of a real tool call. |
CodeBlock
| JSON representation |
|---|
{ "pythonCode": string } |
| Fields | |
|---|---|
pythonCode |
Required. Python code which will be invoked in tool fake mode. Expected Python function signature - To catch all tool calls: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: If the function returns None, the real tool will be invoked instead. |
Example
| JSON representation |
|---|
{
"name": string,
"displayName": string,
"description": string,
"entryAgent": string,
"messages": [
{
object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the example. Format: |
displayName |
Required. Display name of the example. |
description |
Optional. Human-readable description of the example. |
entryAgent |
Optional. The agent that initially handles the conversation. If not specified, the example represents a conversation that is handled by the root agent. Format: |
messages[] |
Optional. The collection of messages that make up the conversation. |
createTime |
Output only. Timestamp when the example was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the example was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
invalid |
Output only. The example may become invalid if referencing resources are deleted. Invalid examples will not be used as few-shot examples. |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
Message
| JSON representation |
|---|
{
"role": string,
"chunks": [
{
object ( |
| Fields | |
|---|---|
role |
Optional. The role within the conversation, e.g., user, agent. |
chunks[] |
Optional. Content of the message as a series of chunks. |
eventTime |
Optional. Timestamp when the message was sent or received. Should not be used if the message is part of an Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Chunk
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field data. Chunk data. data can be only one of the following: |
|
text |
Optional. Text data. |
transcript |
Optional. Transcript associated with the audio. |
blob |
Optional. Blob data. |
payload |
Optional. Custom payload data. |
image |
Optional. Image data. |
toolCall |
Optional. Tool execution request. |
toolResponse |
Optional. Tool execution response. |
agentTransfer |
Optional. Agent transfer event. |
updatedVariables |
A struct represents variables that were updated in the conversation, keyed by variable names. |
defaultVariables |
A struct represents default variables at the start of the conversation, keyed by variable names. |
Blob
| JSON representation |
|---|
{ "mimeType": string, "data": string } |
| Fields | |
|---|---|
mimeType |
Required. The IANA standard MIME type of the source data. |
data |
Required. Raw bytes of the blob. A base64-encoded string. |
Image
| JSON representation |
|---|
{ "mimeType": string, "data": string } |
| Fields | |
|---|---|
mimeType |
Required. The IANA standard MIME type of the source data. Supported image types includes: * image/png * image/jpeg * image/webp |
data |
Required. Raw bytes of the image. A base64-encoded string. |
ToolCall
| JSON representation |
|---|
{ "id": string, "displayName": string, "args": { object }, // Union field |
| Fields | |
|---|---|
id |
Optional. The unique identifier of the tool call. If populated, the client should return the execution result with the matching ID in |
displayName |
Output only. Display name of the tool. |
args |
Optional. The input parameters and values for the tool in JSON object format. |
Union field tool_identifier. The identifier of the tool to execute. It could be either a persisted tool or a tool from a toolset. tool_identifier can be only one of the following: |
|
tool |
Optional. The name of the tool to execute. Format: |
toolsetTool |
Optional. The toolset tool to execute. |
ToolsetTool
| JSON representation |
|---|
{ "toolset": string, "toolId": string } |
| Fields | |
|---|---|
toolset |
Required. The resource name of the Toolset from which this tool is derived. Format: |
toolId |
Optional. The tool ID to filter the tools to retrieve the schema for. |
ToolResponse
| JSON representation |
|---|
{ "id": string, "displayName": string, "response": { object }, // Union field |
| Fields | |
|---|---|
id |
Optional. The matching ID of the |
displayName |
Output only. Display name of the tool. |
response |
Required. The tool execution result in JSON object format. Use "output" key to specify tool response and "error" key to specify error details (if any). If "output" and "error" keys are not specified, then whole "response" is treated as tool execution result. |
Union field tool_identifier. The identifier of the tool that got executed. It could be either a persisted tool or a tool from a toolset. tool_identifier can be only one of the following: |
|
tool |
Optional. The name of the tool to execute. Format: |
toolsetTool |
Optional. The toolset tool that got executed. |
AgentTransfer
| JSON representation |
|---|
{ "targetAgent": string, "displayName": string } |
| Fields | |
|---|---|
targetAgent |
Required. The agent to which the conversation is being transferred. The agent will handle the conversation from this point forward. Format: |
displayName |
Output only. Display name of the agent. |
Guardrail
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the guardrail. Format: |
displayName |
Required. Display name of the guardrail. |
description |
Optional. Description of the guardrail. |
enabled |
Optional. Whether the guardrail is enabled. |
action |
Optional. Action to take when the guardrail is triggered. |
createTime |
Output only. Timestamp when the guardrail was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the guardrail was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
Union field guardrail_type. Guardrail type. guardrail_type can be only one of the following: |
|
contentFilter |
Optional. Guardrail that bans certain content from being used in the conversation. |
llmPromptSecurity |
Optional. Guardrail that blocks the conversation if the prompt is considered unsafe based on the LLM classification. |
llmPolicy |
Optional. Guardrail that blocks the conversation if the LLM response is considered violating the policy based on the LLM classification. |
modelSafety |
Optional. Guardrail that blocks the conversation if the LLM response is considered unsafe based on the model safety settings. |
codeCallback |
Optional. Guardrail that potentially blocks the conversation based on the result of the callback execution. |
ContentFilter
| JSON representation |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| Fields | |
|---|---|
bannedContents[] |
Optional. List of banned phrases. Applies to both user inputs and agent responses. |
bannedContentsInUserInput[] |
Optional. List of banned phrases. Applies only to user inputs. |
bannedContentsInAgentResponse[] |
Optional. List of banned phrases. Applies only to agent responses. |
matchType |
Required. Match type for the content filter. |
disregardDiacritics |
Optional. If true, diacritics are ignored during matching. |
LlmPromptSecurity
| JSON representation |
|---|
{ "failOpen": boolean, // Union field |
| Fields | |
|---|---|
failOpen |
Optional. Determines the behavior when the guardrail encounters an LLM error. - If true: the guardrail is bypassed. - If false (default): the guardrail triggers/blocks. Note: If a custom policy is provided, this field is ignored in favor of the policy's 'fail_open' configuration. |
Union field security_config. Defines the security configuration mode. The user must choose one of the following configurations. security_config can be only one of the following: |
|
defaultSettings |
Optional. Use the system's predefined default security settings. To select this mode, include an empty 'default_settings' message in the request. The 'default_prompt_template' field within will be populated by the server in the response. |
customPolicy |
Optional. Use a user-defined LlmPolicy to configure the security guardrail. |
DefaultSecuritySettings
| JSON representation |
|---|
{ "defaultPromptTemplate": string } |
| Fields | |
|---|---|
defaultPromptTemplate |
Output only. The default prompt template used by the system. This field is for display purposes to show the user what prompt the system uses by default. It is OUTPUT_ONLY. |
LlmPolicy
| JSON representation |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| Fields | |
|---|---|
maxConversationMessages |
Optional. When checking this policy, consider the last 'n' messages in the conversation. When not set a default value of 10 will be used. |
modelSettings |
Optional. Model settings. |
prompt |
Required. Policy prompt. |
policyScope |
Required. Defines when to apply the policy check during the conversation. If set to |
failOpen |
Optional. If an error occurs during the policy check, fail open and do not trigger the guardrail. |
allowShortUtterance |
Optional. By default, the LLM policy check is bypassed for short utterances. Enabling this setting applies the policy check to all utterances, including those that would normally be skipped. |
ModelSafety
| JSON representation |
|---|
{
"safetySettings": [
{
object ( |
| Fields | |
|---|---|
safetySettings[] |
Required. List of safety settings. |
SafetySetting
| JSON representation |
|---|
{ "category": enum ( |
| Fields | |
|---|---|
category |
Required. The harm category. |
threshold |
Required. The harm block threshold. |
CodeCallback
| JSON representation |
|---|
{ "beforeAgentCallback": { object ( |
| Fields | |
|---|---|
beforeAgentCallback |
Optional. The callback to execute before the agent is called. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
afterAgentCallback |
Optional. The callback to execute after the agent is called. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
beforeModelCallback |
Optional. The callback to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
afterModelCallback |
Optional. The callback to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
TriggerAction
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field action. The action to take. action can be only one of the following: |
|
respondImmediately |
Optional. Immediately respond with a preconfigured response. |
transferAgent |
Optional. Transfer the conversation to a different agent. |
generativeAnswer |
Optional. Respond with a generative answer. |
RespondImmediately
| JSON representation |
|---|
{
"responses": [
{
object ( |
| Fields | |
|---|---|
responses[] |
Required. The canned responses for the agent to choose from. The response is chosen randomly. |
Response
| JSON representation |
|---|
{ "text": string, "disabled": boolean } |
| Fields | |
|---|---|
text |
Required. Text for the agent to respond with. |
disabled |
Optional. Whether the response is disabled. Disabled responses are not used by the agent. |
TransferAgent
| JSON representation |
|---|
{ "agent": string } |
| Fields | |
|---|---|
agent |
Required. The name of the agent to transfer the conversation to. The agent must be in the same app as the current agent. Format: |
GenerativeAnswer
| JSON representation |
|---|
{ "prompt": string } |
| Fields | |
|---|---|
prompt |
Required. The prompt to use for the generative answer. |
Toolset
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "createTime": string, "updateTime": string, "etag": string, "executionType": enum ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the toolset. Format: |
displayName |
Optional. The display name of the toolset. Must be unique within the same app. |
description |
Optional. The description of the toolset. |
createTime |
Output only. Timestamp when the toolset was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the toolset was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
ETag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
executionType |
Optional. The execution type of the tools in the toolset. |
toolFakeConfig |
Optional. Configuration for tools behavior in fake mode. |
Union field toolset_type. The type of the toolset. toolset_type can be only one of the following: |
|
mcpToolset |
Optional. A toolset that contains a list of tools that are offered by the MCP server. |
openApiToolset |
Optional. A toolset that contains a list of tools that are defined by an OpenAPI schema. |
connectorToolset |
Optional. A toolset that generates tools from an Integration Connectors Connection. |
McpToolset
| JSON representation |
|---|
{ "serverAddress": string, "apiAuthentication": { object ( |
| Fields | |
|---|---|
serverAddress |
Required. The address of the MCP server, for example, "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details. |
apiAuthentication |
Optional. Authentication information required to access tools and execute a tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication. |
serviceDirectoryConfig |
Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates that the client should trust. |
customHeaders |
Optional. The custom headers to send in the request to the MCP server. The values must be in the format An object containing a list of |
toolOverrides[] |
Optional. Overrides for individual tools within this toolset. This allows overriding specific details like descriptions, names, or pinning the tools' states so they aren't fully dynamic. |
CustomHeadersEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
McpToolOverride
| JSON representation |
|---|
{
"tool": string,
"nameOverride": string,
"descriptionOverride": string,
"snapshot": {
object ( |
| Fields | |
|---|---|
tool |
Required. The original name of the tool as it is emitted by the MCP server. |
nameOverride |
Optional. If present, this tool uses this name in the Agent instead of the original name. This is primarily used as an alias if the MCP server offers poorly named tools. |
descriptionOverride |
Optional. If present, this tool uses this description instead of the original description from the server. |
snapshot |
Output only. If present, this tool is "Pinned" and uses the snapshot values as fallbacks if the server becomes temporarily unavailable or if no Override is present. |
McpToolDefinition
| JSON representation |
|---|
{ "description": string, "inputSchema": { object ( |
| Fields | |
|---|---|
description |
Output only. The description of the MCP tool. This can be overridden by |
inputSchema |
Output only. The schema of the input arguments of the MCP tool. |
outputSchema |
Output only. The schema of the output arguments of the MCP tool. |
OpenApiToolset
| JSON representation |
|---|
{ "openApiSchema": string, "apiAuthentication": { object ( |
| Fields | |
|---|---|
openApiSchema |
Required. The OpenAPI schema of the toolset. |
apiAuthentication |
Optional. Authentication information required by the API. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates |
serviceDirectoryConfig |
Optional. Service Directory configuration. |
ignoreUnknownFields |
Optional. If true, the agent will ignore unknown fields in the API response for all operations defined in the OpenAPI schema. |
url |
Optional. The server URL of the Open API schema. This field is only set in toolsets in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema. |
ConnectorToolset
| JSON representation |
|---|
{ "connection": string, "authConfig": { object ( |
| Fields | |
|---|---|
connection |
Required. The full resource name of the referenced Integration Connectors Connection. Format: |
authConfig |
Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the Toolset creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override |
connectorActions[] |
Required. The list of connector actions/entity operations to generate tools for. |
PrebuiltAmbientNoise
Prebuilt ambient noise.
| Enums | |
|---|---|
PREBUILT_AMBIENT_NOISE_UNSPECIFIED |
Not specified. |
RETAIL_STORE |
Ambient noise of a retail store. |
CONVENTION_HALL |
Ambient noise of a convention hall. |
OUTDOOR |
Ambient noise of a street. |
ErrorHandlingStrategy
Defines the strategy for handling errors.
| Enums | |
|---|---|
ERROR_HANDLING_STRATEGY_UNSPECIFIED |
Unspecified error handling strategy. |
NONE |
No specific handling is enabled. |
FALLBACK_RESPONSE |
A fallback message will be returned to the user in case of system errors (e.g. LLM errors). |
END_SESSION |
An EndSession signal will be emitted in case of system errors (e.g. LLM errors). |
ToolExecutionMode
Defines the tool execution behavior if there are multiple tools being selected by the agent at the same time.
| Enums | |
|---|---|
TOOL_EXECUTION_MODE_UNSPECIFIED |
Unspecified tool execution mode. Default to PARALLEL. |
PARALLEL |
If there are multiple tools being selected, they will be executed in parallel, with the same ToolContext. |
SEQUENTIAL |
If there are multiple tools being selected, they will be executed sequentially. The next tool will only be executed after the previous tool completes and it can see updated ToolContext from the previous tool. |
SemanticSimilarityChannel
Semantic similarity channel to use.
| Enums | |
|---|---|
SEMANTIC_SIMILARITY_CHANNEL_UNSPECIFIED |
Metric unspecified. Defaults to TEXT. |
TEXT |
Use text semantic similarity. |
AUDIO |
Use audio semantic similarity. |
ExtraToolCallBehavior
Defines the behavior when an extra tool call is encountered. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
| Enums | |
|---|---|
EXTRA_TOOL_CALL_BEHAVIOR_UNSPECIFIED |
Unspecified behavior. Defaults to FAIL. |
FAIL |
Fail the evaluation if an extra tool call is encountered. |
ALLOW |
Allow the extra tool call. |
HallucinationMetricBehavior
The hallucination metric behavior. Regardless of the behavior, the metric will always be calculated. The difference is that when disabled, the metric is not used to calculate the overall evaluation score.
| Enums | |
|---|---|
HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED |
Unspecified hallucination metric behavior. |
DISABLED |
Disable hallucination metric. |
ENABLED |
Enable hallucination metric. |
Type
OpenAPI data types.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Type unspecified. |
STRING |
String type. |
INTEGER |
Integer type. |
NUMBER |
Number type. |
BOOLEAN |
Boolean type. |
OBJECT |
Object type. |
ARRAY |
Array type. |
NullValue
Represents a JSON null.
NullValue is a sentinel, using an enum with only one value to represent the null value for the Value type union.
A field of type NullValue with any value other than 0 is considered invalid. Most ProtoJSON serializers will emit a Value with a null_value set as a JSON null regardless of the integer value, and so will round trip to a 0 value.
| Enums | |
|---|---|
NULL_VALUE |
Null value. |
Type
The type of the engine. See the documentation available at https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1/SolutionType and https://cloud.google.com/generative-ai-app-builder/docs/create-datastore-ingest.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Unspecified engine type. |
ENGINE_TYPE_SEARCH |
The SOLUTION_TYPE_SEARCH engine for the app. All connector data stores added to the app will be added to this engine. |
ENGINE_TYPE_CHAT |
Chat engine type. The SOLUTION_TYPE_CHAT engine for the app. All connector data stores added to the app will be added to this engine. |
ChannelType
The type of the channel profile.
| Enums | |
|---|---|
UNKNOWN |
Unknown channel type. |
WEB_UI |
Web UI channel. |
API |
API channel. |
TWILIO |
Twilio channel. |
GOOGLE_TELEPHONY_PLATFORM |
Google Telephony Platform channel. |
CONTACT_CENTER_AS_A_SERVICE |
Contact Center as a Service (CCaaS) channel. |
FIVE9 |
Five9 channel. |
CONTACT_CENTER_INTEGRATION |
Third party contact center integration channel. |
Persona
The persona of the channel.
| Enums | |
|---|---|
UNKNOWN |
UNKNOWN persona. |
CONCISE |
The agent keeps the responses concise and to the point |
CHATTY |
The agent provides additional context, explanations, and details |
Modality
Modality of the web widget.
| Enums | |
|---|---|
MODALITY_UNSPECIFIED |
Unknown modality. |
CHAT_AND_VOICE |
Widget supports both chat and voice input. |
VOICE_ONLY |
Widget supports only voice input. |
CHAT_ONLY |
Widget supports only chat input. |
CHAT_VOICE_AND_VIDEO |
Widget supports chat, voice, and video input. |
Theme
Theme of the web widget.
| Enums | |
|---|---|
THEME_UNSPECIFIED |
Unknown theme. |
LIGHT |
Light theme. |
DARK |
Dark theme. |
Direction
The direction of the transfer.
| Enums | |
|---|---|
DIRECTION_UNSPECIFIED |
Unspecified direction. |
PARENT_TO_CHILD |
Transfer from the parent agent to the child agent. |
CHILD_TO_PARENT |
Transfer from the child agent to the parent agent. |
RequestLocation
The location of the API key in the request.
| Enums | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
Unspecified. This value should not be used. |
HEADER |
Represents the key in http header. |
QUERY_STRING |
Represents the key in query string. |
OauthGrantType
OAuth grant types. Only client credential grant is supported.
| Enums | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
Unspecified. Defaults to CLIENT_CREDENTIAL. |
CLIENT_CREDENTIAL |
Represents the client credential flow. |
OperationType
The operation to perform on the entity.
| Enums | |
|---|---|
OPERATION_TYPE_UNSPECIFIED |
Operation type unspecified. Invalid, ConnectorTool create/update will fail. |
LIST |
List operation. |
GET |
Get operation. |
CREATE |
Create operation. |
UPDATE |
Update operation. |
DELETE |
Delete operation. |
DataStoreType
The type of the data store.
| Enums | |
|---|---|
DATA_STORE_TYPE_UNSPECIFIED |
Not specified. This value indicates that the data store type is not specified, so it will not be used during search. |
PUBLIC_WEB |
A data store that contains public web content. |
UNSTRUCTURED |
A data store that contains unstructured private data. |
FAQ |
A data store that contains structured data used as FAQ. |
CONNECTOR |
A data store that is a connector to a first-party or a third-party service. |
DocumentProcessingMode
The document processing mode of the data store.
| Enums | |
|---|---|
DOCUMENT_PROCESSING_MODE_UNSPECIFIED |
Not specified. |
DOCUMENTS |
Documents are processed as documents. |
CHUNKS |
Documents are converted to chunks. |
AttributeType
The attribute(or function) for which the custom ranking is to be applied.
| Enums | |
|---|---|
ATTRIBUTE_TYPE_UNSPECIFIED |
Unspecified AttributeType. |
NUMERICAL |
The value of the numerical field will be used to dynamically update the boost amount. In this case, the attribute_value (the x value) of the control point will be the actual value of the numerical field for which the boost_amount is specified. |
FRESHNESS |
For the freshness use case the attribute value will be the duration between the current time and the date in the datetime field specified. The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: [nD][T[nH][nM][nS]]. E.g. 5D, 3DT12H30M, T24H. |
InterpolationType
The interpolation type to be applied. Default will be linear (Piecewise Linear).
| Enums | |
|---|---|
INTERPOLATION_TYPE_UNSPECIFIED |
Interpolation type is unspecified. In this case, it defaults to Linear. |
LINEAR |
Piecewise linear interpolation will be applied. |
ModalityType
The modality type.
| Enums | |
|---|---|
MODALITY_TYPE_UNSPECIFIED |
Unspecified modality type. |
TEXT |
Text modality. |
AUDIO |
Audio modality. |
FilterParameterBehavior
Filter parameter behavior.
| Enums | |
|---|---|
FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED |
Default filter behavior. Include filter parameter for connector datastores. For the rest of the datastore types, the filter input parameter is omitted. |
ALWAYS_INCLUDE |
Always include filter parameter for all datastore types. |
NEVER_INCLUDE |
The filter parameter is never included in the list of tool parameters, regardless of the datastore type. |
State
Represents the dynamic availability state of the tool.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Default state. |
ACTIVE |
The tool is available and actively offered by the server. |
INACTIVE |
The tool is configured or pinned, but currently not offered by the server. |
STALE |
The tool exists on the server, but does not match the version on the server. |
CorpusType
The type of the Vertex RAG corpus.
| Enums | |
|---|---|
CORPUS_TYPE_UNSPECIFIED |
Unspecified corpus type. |
USER_OWNED |
The corpus is created and owned by the user. |
FULLY_MANAGED |
The corpus is created by the agent. |
WidgetType
All available widget types. New values may be added to this enum in the future.
| Enums | |
|---|---|
WIDGET_TYPE_UNSPECIFIED |
Unspecified widget type. |
CUSTOM |
Custom widget type. |
PRODUCT_CAROUSEL |
Product carousel widget. |
PRODUCT_DETAILS |
Product details widget. |
QUICK_ACTIONS |
Quick actions widget. |
PRODUCT_COMPARISON |
Product comparison widget. |
ADVANCED_PRODUCT_DETAILS |
Advanced product details widget. |
SHORT_FORM |
Short form widget. |
OVERALL_SATISFACTION |
Overall satisfaction widget. |
ORDER_SUMMARY |
Order summary widget. |
APPOINTMENT_DETAILS |
Appointment details widget. |
APPOINTMENT_SCHEDULER |
Appointment scheduler widget. |
CONTACT_FORM |
Contact form widget. |
Mode
The strategy used to map data from the source tool to the widget.
| Enums | |
|---|---|
MODE_UNSPECIFIED |
Unspecified mode. |
FIELD_MAPPING |
Use the field_mappings map for data transformation. |
PYTHON_SCRIPT |
Use the python_script for data transformation. |
Type
Defines how the text response is produced.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Unspecified type. |
NONE |
The LLM dynamically decides whether to generate a text response alongside the widget based on the conversation context. |
LLM_GENERATED |
The LLM is explicitly required to generate a text response. |
STATIC |
A pre-defined static text response is always used. |
ExecutionType
The execution type of the tool or toolset.
| Enums | |
|---|---|
EXECUTION_TYPE_UNSPECIFIED |
The execution type is unspecified. Defaults to SYNCHRONOUS if unspecified. |
SYNCHRONOUS |
The tool is executed synchronously. The session is blocked until the tool returns. |
ASYNCHRONOUS |
The tool is executed asynchronously. The session will continue while the tool is executing. |
MatchType
Match type for the content filter.
| Enums | |
|---|---|
MATCH_TYPE_UNSPECIFIED |
Match type is not specified. |
SIMPLE_STRING_MATCH |
Content is matched for substrings character by character. |
WORD_BOUNDARY_STRING_MATCH |
Content only matches if the pattern found in the text is surrounded by word delimiters. Banned phrases can also contain word delimiters. |
REGEXP_MATCH |
Content is matched using regular expression syntax. |
PolicyScope
Defines when to apply the policy check during the conversation.
| Enums | |
|---|---|
POLICY_SCOPE_UNSPECIFIED |
Policy scope is not specified. |
USER_QUERY |
Policy check is triggered on user input. |
AGENT_RESPONSE |
Policy check is triggered on agent response. Applying this policy scope will introduce additional latency before the agent can respond. |
USER_QUERY_AND_AGENT_RESPONSE |
Policy check is triggered on both user input and agent response. Applying this policy scope will introduce additional latency before the agent can respond. |
HarmCategory
Harm category.
| Enums | |
|---|---|
HARM_CATEGORY_UNSPECIFIED |
The harm category is unspecified. |
HARM_CATEGORY_HATE_SPEECH |
The harm category is hate speech. |
HARM_CATEGORY_DANGEROUS_CONTENT |
The harm category is dangerous content. |
HARM_CATEGORY_HARASSMENT |
The harm category is harassment. |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
The harm category is sexually explicit content. |
HarmBlockThreshold
Probability based thresholds levels for blocking.
| Enums | |
|---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Unspecified harm block threshold. |
BLOCK_LOW_AND_ABOVE |
Block low threshold and above (i.e. block more). |
BLOCK_MEDIUM_AND_ABOVE |
Block medium threshold and above. |
BLOCK_ONLY_HIGH |
Block only high threshold (i.e. block less). |
BLOCK_NONE |
Block none. |
OFF |
Turn off the safety filter. |
Output Schema
In Customer Engagement Suite (CES), an app version is a snapshot of the app at a specific point in time. It is immutable and cannot be modified once created.
AppVersion
| JSON representation |
|---|
{
"name": string,
"displayName": string,
"description": string,
"creator": string,
"createTime": string,
"snapshot": {
object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the app version. Format: |
displayName |
Optional. The display name of the app version. |
description |
Optional. The description of the app version. |
creator |
Output only. Email of the user who created the app version. |
createTime |
Output only. Timestamp when the app version was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
snapshot |
Output only. The snapshot of the app when the version is created. |
etag |
Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
AppSnapshot
| JSON representation |
|---|
{ "app": { object ( |
| Fields | |
|---|---|
app |
Optional. The basic settings for the app. |
agents[] |
Optional. List of agents in the app. |
tools[] |
Optional. List of tools in the app. |
examples[] |
Optional. List of examples in the app. |
guardrails[] |
Optional. List of guardrails in the app. |
toolsets[] |
Optional. List of toolsets in the app. |
App
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "pinned": boolean, "rootAgent": string, "languageSettings": { object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the app. Format: |
displayName |
Required. Display name of the app. |
description |
Optional. Human-readable description of the app. |
pinned |
Optional. Whether the app is pinned in the app list. |
rootAgent |
Optional. The root agent is the entry point of the app. Format: |
languageSettings |
Optional. Language settings of the app. |
timeZoneSettings |
Optional. TimeZone settings of the app. |
audioProcessingConfig |
Optional. Audio processing configuration of the app. |
loggingSettings |
Optional. Logging settings of the app. |
errorHandlingSettings |
Optional. Error handling settings of the app. |
modelSettings |
Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed. |
toolExecutionMode |
Optional. The tool execution mode for the app. If not provided, will default to PARALLEL. |
evaluationMetricsThresholds |
Optional. The evaluation thresholds for the app. |
variableDeclarations[] |
Optional. The declarations of the variables. |
predefinedVariableDeclarations[] |
Output only. The declarations of predefined variables for the app. |
globalInstruction |
Optional. Instructions for all the agents in the app. You can use this instruction to set up a stable identity or personality across all the agents. |
guardrails[] |
Optional. List of guardrails for the app. Format: |
dataStoreSettings |
Optional. The data store settings for the app. |
defaultChannelProfile |
Optional. The default channel profile used by the app. |
metadata |
Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages. An object containing a list of |
createTime |
Output only. Timestamp when the app was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the app was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
deploymentCount |
Output only. Number of deployments in the app. |
clientCertificateSettings |
Optional. The default client certificate settings for the app. |
vpcScSettings |
Optional. VPC-SC settings for the app. |
locked |
Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected. |
validationErrors[] |
Output only. Misconfigurations or warnings in the app. |
LanguageSettings
| JSON representation |
|---|
{ "defaultLanguageCode": string, "supportedLanguageCodes": [ string ], "enableMultilingualSupport": boolean, "fallbackAction": string } |
| Fields | |
|---|---|
defaultLanguageCode |
Optional. The default language code of the app. |
supportedLanguageCodes[] |
Optional. List of languages codes supported by the app, in addition to the |
enableMultilingualSupport |
Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input. |
fallbackAction |
Optional. Deprecated: This feature is no longer supported. Use This can be a predefined action or a custom tool call. Valid values are: - A tool's full resource name, which triggers a specific tool execution. - A predefined system action, such as "escalate" or "exit", which triggers an |
TimeZoneSettings
| JSON representation |
|---|
{ "timeZone": string } |
| Fields | |
|---|---|
timeZone |
Optional. The time zone of the app from the time zone database, e.g., America/Los_Angeles, Europe/Paris. |
AudioProcessingConfig
| JSON representation |
|---|
{ "synthesizeSpeechConfigs": { string: { object ( |
| Fields | |
|---|---|
synthesizeSpeechConfigs |
Optional. Configuration of how the agent response should be synthesized, mapping from the language code to If the configuration for the specified language code is not found, the configuration for the root language code will be used. For example, if the map contains "en-us" and "en", and the specified language code is "en-gb", then "en" configuration will be used. Note: Language code is case-insensitive. An object containing a list of |
bargeInConfig |
Optional. Configures the agent behavior for the user barge-in activities. |
inactivityTimeout |
Optional. The duration of user inactivity (no speech or interaction) before the agent prompts the user for reengagement. If not set, the agent will not prompt the user for reengagement. A duration in seconds with up to nine fractional digits, ending with ' |
ambientSoundConfig |
Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. |
SynthesizeSpeechConfigsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
SynthesizeSpeechConfig
| JSON representation |
|---|
{ "voice": string, "speakingRate": number } |
| Fields | |
|---|---|
voice |
Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code. For the list of available voices, please refer to Supported voices and languages from Cloud Text-to-Speech. |
speakingRate |
Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error. |
BargeInConfig
| JSON representation |
|---|
{ "disableBargeIn": boolean, "bargeInAwareness": boolean } |
| Fields | |
|---|---|
disableBargeIn |
Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: |
bargeInAwareness |
Optional. If enabled, the agent will adapt its next response based on the assumption that the user hasn't heard the full preceding agent message. This should not be used in scenarios where agent responses are displayed visually. |
Duration
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos |
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
AmbientSoundConfig
| JSON representation |
|---|
{ "volumeGainDb": number, // Union field |
| Fields | |
|---|---|
volumeGainDb |
Optional. Volume gain (in dB) of the normal native volume supported by ambient noise, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that. |
Union field source. Ambient noise to be played with the synthesized agent response, to enhance the naturalness of the conversation. source can be only one of the following: |
|
prebuiltAmbientNoise |
Optional. Deprecated: |
gcsUri |
Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in Cloud Storage. Note: Please make sure the CES service agent |
prebuiltAmbientSound |
Optional. Name of the prebuilt ambient sound. Valid values are: - "coffee_shop" - "keyboard" - "keypad" - "hum" - "office_1" - "office_2" - "office_3" - "room_1" - "room_2" - "room_3" - "room_4" - "room_5" - "air_conditioner" |
LoggingSettings
| JSON representation |
|---|
{ "redactionConfig": { object ( |
| Fields | |
|---|---|
redactionConfig |
Optional. Configuration for how sensitive data should be redacted. |
audioRecordingConfig |
Optional. Configuration for how audio interactions should be recorded. The audio is subject to redaction as configured in |
unredactedAudioRecordingConfig |
Optional. Configures an additional recording of unredacted audio. This can be used to maintain a raw audio copy when audio redaction is |
bigqueryExportSettings |
Optional. Configures the BigQuery export behaviors for the app. The conversation data is subject to redaction as configured in |
cloudLoggingSettings |
Optional. Settings to describe the Cloud Logging behaviors for the app. |
conversationLoggingSettings |
Optional. Settings to describe the conversation logging behaviors for the app. |
evaluationAudioRecordingConfig |
Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions. |
metricAnalysisSettings |
Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app. |
RedactionConfig
| JSON representation |
|---|
{ "enableRedaction": boolean, "inspectTemplate": string, "deidentifyTemplate": string } |
| Fields | |
|---|---|
enableRedaction |
Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording. |
inspectTemplate |
Optional. DLP inspect template name to configure detection of sensitive data types. Format: |
deidentifyTemplate |
Optional. DLP deidentify template name to instruct on how to de-identify content. Format: |
AudioRecordingConfig
| JSON representation |
|---|
{ "gcsBucket": string, "gcsPathPrefix": string } |
| Fields | |
|---|---|
gcsBucket |
Optional. The Cloud Storage bucket to store the session audio recordings. The URI must start with "gs://". Please choose a bucket location that meets your data residency requirements. Note: If the Cloud Storage bucket is in a different project from the app, you should grant |
gcsPathPrefix |
Optional. The Cloud Storage path prefix for audio recordings. This prefix can include the following placeholders, which will be dynamically substituted at serving time: - $project: project ID - $location: app location - $app: app ID - $date: session date in YYYY-MM-DD format - $session: session ID If the path prefix is not specified, the default prefix |
BigQueryExportSettings
| JSON representation |
|---|
{ "enabled": boolean, "project": string, "dataset": string } |
| Fields | |
|---|---|
enabled |
Optional. Indicates whether the BigQuery export is enabled. |
project |
Optional. The project ID of the BigQuery dataset to export the data to. Note: If the BigQuery dataset is in a different project from the app, you should grant |
dataset |
Optional. The BigQuery dataset ID to export the data to. |
CloudLoggingSettings
| JSON representation |
|---|
{ "enableCloudLogging": boolean } |
| Fields | |
|---|---|
enableCloudLogging |
Optional. Whether to enable Cloud Logging for the sessions. |
ConversationLoggingSettings
| JSON representation |
|---|
{ "disableConversationLogging": boolean, "retentionWindow": string } |
| Fields | |
|---|---|
disableConversationLogging |
Optional. Whether to disable conversation logging for the sessions. |
retentionWindow |
Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days. A duration in seconds with up to nine fractional digits, ending with ' |
MetricAnalysisSettings
| JSON representation |
|---|
{ "llmMetricsOptedOut": boolean } |
| Fields | |
|---|---|
llmMetricsOptedOut |
Optional. Whether to collect conversation data for llm analysis metrics. If true, conversation data will not be collected for llm analysis metrics; otherwise, conversation data will be collected. |
ErrorHandlingSettings
| JSON representation |
|---|
{ "errorHandlingStrategy": enum ( |
| Fields | |
|---|---|
errorHandlingStrategy |
Optional. The strategy to use for error handling. |
fallbackResponseConfig |
Optional. Configuration for handling fallback responses. |
endSessionConfig |
Optional. Configuration for ending the session in case of system errors (e.g. LLM errors). |
FallbackResponseConfig
| JSON representation |
|---|
{ "customFallbackMessages": { string: string, ... }, "maxFallbackAttempts": integer } |
| Fields | |
|---|---|
customFallbackMessages |
Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by supported language code. An object containing a list of |
maxFallbackAttempts |
Optional. The maximum number of fallback attempts to make before the agent emitting |
CustomFallbackMessagesEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
EndSessionConfig
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
escalateSession |
Optional. Whether to escalate the session in |
ModelSettings
| JSON representation |
|---|
{ "model": string, // Union field |
| Fields | |
|---|---|
model |
Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent. |
Union field
|
|
temperature |
Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative. |
EvaluationMetricsThresholds
| JSON representation |
|---|
{ "goldenEvaluationMetricsThresholds": { object ( |
| Fields | |
|---|---|
goldenEvaluationMetricsThresholds |
Optional. The golden evaluation metrics thresholds. |
hallucinationMetricBehavior |
Optional. Deprecated: Use |
goldenHallucinationMetricBehavior |
Optional. The hallucination metric behavior for golden evaluations. |
scenarioHallucinationMetricBehavior |
Optional. The hallucination metric behavior for scenario evaluations. |
GoldenEvaluationMetricsThresholds
| JSON representation |
|---|
{ "turnLevelMetricsThresholds": { object ( |
| Fields | |
|---|---|
turnLevelMetricsThresholds |
Optional. The turn level metrics thresholds. |
expectationLevelMetricsThresholds |
Optional. The expectation level metrics thresholds. |
toolMatchingSettings |
Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation. |
TurnLevelMetricsThresholds
| JSON representation |
|---|
{ "semanticSimilarityChannel": enum ( |
| Fields | |
|---|---|
semanticSimilarityChannel |
Optional. The semantic similarity channel to use for evaluation. |
Union field
|
|
semanticSimilaritySuccessThreshold |
Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3. |
Union field
|
|
overallToolInvocationCorrectnessThreshold |
Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0. |
ExpectationLevelMetricsThresholds
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
toolInvocationParameterCorrectnessThreshold |
Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0. |
ToolMatchingSettings
| JSON representation |
|---|
{
"extraToolCallBehavior": enum ( |
| Fields | |
|---|---|
extraToolCallBehavior |
Optional. Behavior for extra tool calls. Defaults to FAIL. |
VariableDeclaration
| JSON representation |
|---|
{
"name": string,
"description": string,
"schema": {
object ( |
| Fields | |
|---|---|
name |
Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores. |
description |
Required. The description of the variable. |
schema |
Required. The schema of the variable. |
Schema
| JSON representation |
|---|
{ "type": enum ( |
| Fields | |
|---|---|
type |
Required. The type of the data. |
properties |
Optional. Properties of Type.OBJECT. An object containing a list of |
required[] |
Optional. Required properties of Type.OBJECT. |
description |
Optional. The description of the data. |
items |
Optional. Schema of the elements of Type.ARRAY. |
nullable |
Optional. Indicates if the value may be null. |
uniqueItems |
Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY. |
prefixItems[] |
Optional. Schemas of initial elements of Type.ARRAY. |
additionalProperties |
Optional. Can either be a boolean or an object, controls the presence of additional properties. |
anyOf[] |
Optional. The value should be validated against any (one or more) of the subschemas in the list. |
enum[] |
Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]} |
default |
Optional. Default value of the data. |
ref |
Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root For example, the following schema defines a reference to a schema node named "Pet": The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring. |
defs |
Optional. A map of definitions for use by An object containing a list of |
title |
Optional. The title of the schema. |
minItems |
Optional. Minimum number of the elements for Type.ARRAY. |
maxItems |
Optional. Maximum number of the elements for Type.ARRAY. |
Union field
|
|
minimum |
Optional. Minimum value for Type.INTEGER and Type.NUMBER. |
Union field
|
|
maximum |
Optional. Maximum value for Type.INTEGER and Type.NUMBER. |
PropertiesEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
Value
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field kind. The kind of value. kind can be only one of the following: |
|
nullValue |
Represents a JSON |
numberValue |
Represents a JSON number. Must not be |
stringValue |
Represents a JSON string. |
boolValue |
Represents a JSON boolean ( |
structValue |
Represents a JSON object. |
listValue |
Represents a JSON array. |
Struct
| JSON representation |
|---|
{ "fields": { string: value, ... } } |
| Fields | |
|---|---|
fields |
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key": string, "value": value } |
| Fields | |
|---|---|
key |
|
value |
|
ListValue
| JSON representation |
|---|
{ "values": [ value ] } |
| Fields | |
|---|---|
values[] |
Repeated field of dynamically typed values. |
DefsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
DataStoreSettings
| JSON representation |
|---|
{
"engines": [
{
object ( |
| Fields | |
|---|---|
engines[] |
Output only. The engines for the app. |
Engine
| JSON representation |
|---|
{
"name": string,
"type": enum ( |
| Fields | |
|---|---|
name |
Output only. The resource name of the engine. Format: |
type |
Output only. The type of the engine. |
ChannelProfile
| JSON representation |
|---|
{ "profileId": string, "channelType": enum ( |
| Fields | |
|---|---|
profileId |
Optional. The unique identifier of the channel profile. |
channelType |
Optional. The type of the channel profile. |
personaProperty |
Optional. The persona property of the channel profile. |
disableDtmf |
Optional. Whether to disable DTMF (dual-tone multi-frequency). |
disableBargeInControl |
Optional. Whether to disable user barge-in control in the conversation. - true: User interruptions are disabled while the agent is speaking. - false: The agent retains automatic control over when the user can interrupt. |
webWidgetConfig |
Optional. The configuration for the web widget. |
noiseSuppressionLevel |
Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high". |
PersonaProperty
| JSON representation |
|---|
{
"persona": enum ( |
| Fields | |
|---|---|
persona |
Optional. The persona of the channel. |
WebWidgetConfig
| JSON representation |
|---|
{ "modality": enum ( |
| Fields | |
|---|---|
modality |
Optional. The modality of the web widget. |
theme |
Optional. The theme of the web widget. |
webWidgetTitle |
Optional. The title of the web widget. |
securitySettings |
Optional. The security settings of the web widget. |
SecuritySettings
| JSON representation |
|---|
{ "enablePublicAccess": boolean, "enableOriginCheck": boolean, "allowedOrigins": [ string ], "enableRecaptcha": boolean } |
| Fields | |
|---|---|
enablePublicAccess |
Optional. Indicates whether public access to the web widget is enabled. If |
enableOriginCheck |
Optional. Indicates whether origin check for the web widget is enabled. If |
allowedOrigins[] |
Optional. The origins that are allowed to host the web widget. An origin is defined by RFC 6454. If empty, all origins are allowed. A maximum of 100 origins is allowed. Example: "https://example.com" |
enableRecaptcha |
Optional. Indicates whether reCAPTCHA verification for the web widget is enabled. |
MetadataEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
ClientCertificateSettings
| JSON representation |
|---|
{ "tlsCertificate": string, "privateKey": string, "passphrase": string } |
| Fields | |
|---|---|
tlsCertificate |
Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines. |
privateKey |
Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: |
passphrase |
Optional. The name of the SecretManager secret version resource storing the passphrase to decrypt the private key. Should be left unset if the private key is not encrypted. Format: |
VpcScSettings
| JSON representation |
|---|
{ "allowedOrigins": [ string ] } |
| Fields | |
|---|---|
allowedOrigins[] |
Optional. The allowed HTTP(s) origins that OpenAPI tools in the App are able to directly call when VPC Service Controls are enabled. These strings must match the origin exactly, including the port if specified. For example, "https://example.com" or "https://example.com:443". This list does not yet apply to Python tools that may make direct HTTP calls. |
Agent
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the agent. Format: |
displayName |
Required. Display name of the agent. |
description |
Optional. Human-readable description of the agent. |
modelSettings |
Optional. Configurations for the LLM model. |
instruction |
Optional. Instructions for the LLM model to guide the agent's behavior. |
tools[] |
Optional. List of available tools for the agent. Format: |
childAgents[] |
Optional. List of child agents in the agent tree. Format: |
beforeAgentCallbacks[] |
Optional. The callbacks to execute before the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
afterAgentCallbacks[] |
Optional. The callbacks to execute after the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
beforeModelCallbacks[] |
Optional. The callbacks to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
afterModelCallbacks[] |
Optional. The callbacks to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
beforeToolCallbacks[] |
Optional. The callbacks to execute before the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
afterToolCallbacks[] |
Optional. The callbacks to execute after the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped. |
createTime |
Output only. Timestamp when the agent was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the agent was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
guardrails[] |
Optional. List of guardrails for the agent. Format: |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
toolsets[] |
Optional. List of toolsets for the agent. |
generatedSummary |
Output only. If the agent is generated by the LLM assistant, this field contains a descriptive summary of the generation. |
transferRules[] |
Optional. Agent transfer rules. If multiple rules match, the first one in the list will be used. |
validationErrors[] |
Output only. Misconfigurations or errors in the agent that may affect agent quality. |
Union field agent_type. The type of agent. agent_type can be only one of the following: |
|
llmAgent |
Optional. The default agent type. |
remoteDialogflowAgent |
Optional. The remote Dialogflow agent to be used for the agent execution. If this field is set, all other agent level properties will be ignored. Note: If the Dialogflow agent is in a different project from the app, you should grant |
RemoteDialogflowAgent
| JSON representation |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| Fields | |
|---|---|
agent |
Required. The Dialogflow agent resource name. Format: |
flowId |
Optional. The flow ID of the flow in the Dialogflow agent. |
environmentId |
Optional. The environment ID of the Dialogflow agent to be used for the agent execution. If not specified, the draft environment will be used. |
inputVariableMapping |
Optional. The mapping of the app variables names to the Dialogflow session parameters names to be sent to the Dialogflow agent as input. An object containing a list of |
outputVariableMapping |
Optional. The mapping of the Dialogflow session parameters names to the app variables names to be sent back to the CES agent after the Dialogflow agent execution ends. An object containing a list of |
respectResponseInterruptionSettings |
Optional. Indicates whether to respect the message-level interruption settings configured in the Dialogflow agent.
|
languageCodeVariable |
Optional. The name of the variable that contains the language code to be used for the Dialogflow session. If unspecified, the default language code of the Dialogflow agent will be used. |
InputVariableMappingEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Callback
| JSON representation |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| Fields | |
|---|---|
description |
Optional. Human-readable description of the callback. |
disabled |
Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent. |
proactiveExecutionEnabled |
Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. ENABLE WITH CAUTION. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations. |
Union field callback. The callback to execute. callback can be only one of the following: |
|
pythonCode |
Required. The python code to execute for the callback. |
AgentToolset
| JSON representation |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| Fields | |
|---|---|
toolset |
Required. The resource name of the toolset. Format: |
toolIds[] |
Optional. The tools IDs to filter the toolset. |
TransferRule
| JSON representation |
|---|
{ "childAgent": string, "direction": enum ( |
| Fields | |
|---|---|
childAgent |
Required. The resource name of the child agent the rule applies to. Format: |
direction |
Required. The direction of the transfer. |
Union field rule_type. The rule type. rule_type can be only one of the following: |
|
deterministicTransfer |
Optional. A rule that immediately transfers to the target agent when the condition is met. |
disablePlannerTransfer |
Optional. Rule that prevents the planner from transferring to the target agent. |
DeterministicTransfer
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field condition_type. The condition to evaluate. condition_type can be only one of the following: |
|
expressionCondition |
Optional. A rule that evaluates a session state condition. If the condition evaluates to true, the transfer occurs. |
pythonCodeCondition |
Optional. A rule that uses Python code block to evaluate the conditions. If the condition evaluates to true, the transfer occurs. |
ExpressionCondition
| JSON representation |
|---|
{ "expression": string } |
| Fields | |
|---|---|
expression |
Required. The string representation of cloud.api.Expression condition. |
PythonCodeCondition
| JSON representation |
|---|
{ "pythonCode": string } |
| Fields | |
|---|---|
pythonCode |
Required. The python code to execute. |
DisablePlannerTransfer
| JSON representation |
|---|
{
"expressionCondition": {
object ( |
| Fields | |
|---|---|
expressionCondition |
Required. If the condition evaluates to true, planner will not be allowed to transfer to the target agent. |
Tool
| JSON representation |
|---|
{ "name": string, "displayName": string, "executionType": enum ( |
| Fields | |
|---|---|
name |
Identifier. The resource name of the tool. Format:
These tools are dynamic and output-only; they cannot be referenced directly where a tool is expected. |
displayName |
Output only. The display name of the tool, derived based on the tool's type. For example, display name of a [ClientFunction][Tool.ClientFunction] is derived from its |
executionType |
Optional. The execution type of the tool. |
timeout |
Optional. The timeout for the tool execution. If not set, the default timeout is 30 seconds for A duration in seconds with up to nine fractional digits, ending with ' |
createTime |
Output only. Timestamp when the tool was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the tool was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
generatedSummary |
Output only. If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation. |
toolFakeConfig |
Optional. Configuration for tool behavior in fake mode. |
Union field tool_type. The type of the tool. tool_type can be only one of the following: |
|
clientFunction |
Optional. The client function. |
openApiTool |
Optional. The open API tool. |
googleSearchTool |
Optional. The google search tool. |
connectorTool |
Optional. The Integration Connector tool. |
dataStoreTool |
Optional. The data store tool. |
pythonFunction |
Optional. The python function tool. |
mcpTool |
Optional. The MCP tool. An MCP tool cannot be created or updated directly and is managed by the MCP toolset. |
fileSearchTool |
Optional. The file search tool. |
systemTool |
Optional. The system tool. |
agentTool |
Optional. The agent tool. |
widgetTool |
Optional. The widget tool. |
remoteAgentTool |
Optional. The remote agent tool. |
ClientFunction
| JSON representation |
|---|
{ "name": string, "description": string, "parameters": { object ( |
| Fields | |
|---|---|
name |
Required. The function name. |
description |
Optional. The function description. |
parameters |
Optional. The schema of the function parameters. |
response |
Optional. The schema of the function response. |
OpenApiTool
| JSON representation |
|---|
{ "openApiSchema": string, "name": string, "description": string, "apiAuthentication": { object ( |
| Fields | |
|---|---|
openApiSchema |
Required. The OpenAPI schema in JSON or YAML format. |
name |
Optional. The name of the tool. If not provided, the name of the tool will be derived from the OpenAPI schema, from |
description |
Optional. The description of the tool. If not provided, the description of the tool will be derived from the OpenAPI schema, from |
apiAuthentication |
Optional. Authentication information required by the API. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates that the client will trust. |
serviceDirectoryConfig |
Optional. Service Directory configuration. |
ignoreUnknownFields |
Optional. If true, the agent will ignore unknown fields in the API response. |
url |
Optional. The server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema. |
ApiAuthentication
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field auth_config. The auth configuration. auth_config can be only one of the following: |
|
apiKeyConfig |
Optional. Config for API key auth. |
oauthConfig |
Optional. Config for OAuth. |
serviceAgentIdTokenAuthConfig |
Optional. Config for ID token auth generated from CES service agent. |
serviceAccountAuthConfig |
Optional. Config for service account authentication. |
bearerTokenConfig |
Optional. Config for bearer token auth. |
ApiKeyConfig
| JSON representation |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| Fields | |
|---|---|
keyName |
Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
Required. The name of the SecretManager secret version resource storing the API key. Format: Note: You should grant |
requestLocation |
Required. Key location in the request. |
OAuthConfig
| JSON representation |
|---|
{
"oauthGrantType": enum ( |
| Fields | |
|---|---|
oauthGrantType |
Required. OAuth grant types. |
clientId |
Required. The client ID from the OAuth provider. |
clientSecretVersion |
Required. The name of the SecretManager secret version resource storing the client secret. Format: Note: You should grant |
tokenEndpoint |
Required. The token endpoint in the OAuth provider to exchange for an access token. |
scopes[] |
Optional. The OAuth scopes to grant. |
ServiceAccountAuthConfig
| JSON representation |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| Fields | |
|---|---|
serviceAccount |
Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the The service account must have the |
scopes[] |
Optional. The OAuth scopes to grant. If not specified, the default scope |
BearerTokenConfig
| JSON representation |
|---|
{ "token": string } |
| Fields | |
|---|---|
token |
Required. The bearer token. Must be in the format |
TlsConfig
| JSON representation |
|---|
{
"caCerts": [
{
object ( |
| Fields | |
|---|---|
caCerts[] |
Required. Specifies a list of allowed custom CA certificates for HTTPS verification. |
CaCert
| JSON representation |
|---|
{ "displayName": string, "cert": string } |
| Fields | |
|---|---|
displayName |
Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates. |
cert |
Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command: A base64-encoded string. |
ServiceDirectoryConfig
| JSON representation |
|---|
{ "service": string } |
| Fields | |
|---|---|
service |
Required. The name of Service Directory service. Format: |
GoogleSearchTool
| JSON representation |
|---|
{
"name": string,
"description": string,
"contextUrls": [
string
],
"preferredDomains": [
string
],
"excludeDomains": [
string
],
"promptConfig": {
object ( |
| Fields | |
|---|---|
name |
Required. The name of the tool. |
description |
Optional. Description of the tool's purpose. |
contextUrls[] |
Optional. Content will be fetched directly from these URLs for context and grounding. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed. |
preferredDomains[] |
Optional. Specifies domains to restrict search results to. Example: "example.com", "another.site". A maximum of 20 domains can be specified. |
excludeDomains[] |
Optional. List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded. |
promptConfig |
Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice. |
PromptConfig
| JSON representation |
|---|
{ "textPrompt": string, "voicePrompt": string } |
| Fields | |
|---|---|
textPrompt |
Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used. |
voicePrompt |
Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used. |
ConnectorTool
| JSON representation |
|---|
{ "connection": string, "action": { object ( |
| Fields | |
|---|---|
connection |
Required. The full resource name of the referenced Integration Connectors Connection. Format: |
action |
Required. Action for the tool to use. |
authConfig |
Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details. |
name |
Optional. The name of the tool that can be used by the Agent to decide whether to call this ConnectorTool. |
description |
Optional. The description of the tool that can be used by the Agent to decide whether to call this ConnectorTool. |
Action
| JSON representation |
|---|
{ "inputFields": [ string ], "outputFields": [ string ], // Union field |
| Fields | |
|---|---|
inputFields[] |
Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used. |
outputFields[] |
Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned. |
Union field action_spec. Specification for an action to configure for the tool to use. action_spec can be only one of the following: |
|
connectionActionId |
ID of a Connection action for the tool to use. |
entityOperation |
Entity operation configuration for the tool to use. |
EntityOperation
| JSON representation |
|---|
{
"entityId": string,
"operation": enum ( |
| Fields | |
|---|---|
entityId |
Required. ID of the entity. |
operation |
Required. Operation to perform on the entity. |
EndUserAuthConfig
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field auth_config. The auth configuration. auth_config can be only one of the following: |
|
oauth2AuthCodeConfig |
Oauth 2.0 Authorization Code authentication. |
oauth2JwtBearerConfig |
JWT Profile Oauth 2.0 Authorization Grant authentication. |
Oauth2AuthCodeConfig
| JSON representation |
|---|
{ "oauthToken": string } |
| Fields | |
|---|---|
oauthToken |
Required. Oauth token parameter name to pass through. Must be in the format |
Oauth2JwtBearerConfig
| JSON representation |
|---|
{ "issuer": string, "subject": string, "clientKey": string } |
| Fields | |
|---|---|
issuer |
Required. Issuer parameter name to pass through. Must be in the format |
subject |
Required. Subject parameter name to pass through. Must be in the format |
clientKey |
Required. Client parameter name to pass through. Must be in the format |
DataStoreTool
| JSON representation |
|---|
{ "name": string, "description": string, "boostSpecs": [ { object ( |
| Fields | |
|---|---|
name |
Required. The data store tool name. |
description |
Optional. The tool description. |
boostSpecs[] |
Optional. Boost specification to boost certain documents. |
modalityConfigs[] |
Optional. The modality configs for the data store. |
filterParameterBehavior |
Optional. The filter parameter behavior. |
Union field search_source. Defines the search source, either a single DataStore or an Engine. search_source can be only one of the following: |
|
dataStoreSource |
Optional. Search within a single specific DataStore. |
engineSource |
Optional. Search within an Engine (potentially across multiple DataStores). |
DataStoreSource
| JSON representation |
|---|
{
"filter": string,
"dataStore": {
object ( |
| Fields | |
|---|---|
filter |
Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata |
dataStore |
Optional. The data store. |
DataStore
| JSON representation |
|---|
{ "name": string, "type": enum ( |
| Fields | |
|---|---|
name |
Required. Full resource name of the DataStore. Format: |
type |
Output only. The type of the data store. This field is readonly and populated by the server. |
documentProcessingMode |
Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores. |
displayName |
Output only. The display name of the data store. |
createTime |
Output only. Timestamp when the data store was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
connectorConfig |
Output only. The connector config for the data store connection. |
ConnectorConfig
| JSON representation |
|---|
{ "collection": string, "collectionDisplayName": string, "dataSource": string } |
| Fields | |
|---|---|
collection |
Resource name of the collection the data store belongs to. |
collectionDisplayName |
Display name of the collection the data store belongs to. |
dataSource |
The name of the data source. Example: |
EngineSource
| JSON representation |
|---|
{
"engine": string,
"dataStoreSources": [
{
object ( |
| Fields | |
|---|---|
engine |
Required. Full resource name of the Engine. Format: |
dataStoreSources[] |
Optional. Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine. |
filter |
Optional. A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata |
BoostSpecs
| JSON representation |
|---|
{
"dataStores": [
string
],
"spec": [
{
object ( |
| Fields | |
|---|---|
dataStores[] |
Required. The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}. |
spec[] |
Required. A list of boosting specifications. |
BoostSpec
| JSON representation |
|---|
{
"conditionBoostSpecs": [
{
object ( |
| Fields | |
|---|---|
conditionBoostSpecs[] |
Required. A list of boosting specifications. |
ConditionBoostSpec
| JSON representation |
|---|
{
"condition": string,
"boost": number,
"boostControlSpec": {
object ( |
| Fields | |
|---|---|
condition |
Required. An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr")) |
boost |
Optional. Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown. Setting to 0.0 means no boost applied. The boosting condition is ignored. |
boostControlSpec |
Optional. Complex specification for custom ranking based on customer defined attribute value. |
BoostControlSpec
| JSON representation |
|---|
{ "fieldName": string, "attributeType": enum ( |
| Fields | |
|---|---|
fieldName |
Optional. The name of the field whose value will be used to determine the boost amount. |
attributeType |
Optional. The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (time.now() - datetime_field_value). |
interpolationType |
Optional. The interpolation type to be applied to connect the control points listed below. |
controlPoints[] |
Optional. The control points used to define the curve. The monotonic function (defined through the interpolation_type above) passes through the control points listed here. |
ControlPoint
| JSON representation |
|---|
{ "attributeValue": string, "boostAmount": number } |
| Fields | |
|---|---|
attributeValue |
Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD |
boostAmount |
Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above. |
ModalityConfig
| JSON representation |
|---|
{ "modalityType": enum ( |
| Fields | |
|---|---|
modalityType |
Required. The modality type. |
rewriterConfig |
Optional. The rewriter config. |
summarizationConfig |
Optional. The summarization config. |
groundingConfig |
Optional. The grounding configuration. |
RewriterConfig
| JSON representation |
|---|
{
"modelSettings": {
object ( |
| Fields | |
|---|---|
modelSettings |
Required. Configurations for the LLM model. |
prompt |
Optional. The prompt definition. If not set, default prompt will be used. |
disabled |
Optional. Whether the rewriter is disabled. |
SummarizationConfig
| JSON representation |
|---|
{
"modelSettings": {
object ( |
| Fields | |
|---|---|
modelSettings |
Optional. Configurations for the LLM model. |
prompt |
Optional. The prompt definition. If not set, default prompt will be used. |
disabled |
Optional. Whether summarization is disabled. |
GroundingConfig
| JSON representation |
|---|
{ "groundingLevel": number, "disabled": boolean } |
| Fields | |
|---|---|
groundingLevel |
Optional. The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only. For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned. |
disabled |
Optional. Whether grounding is disabled. |
PythonFunction
| JSON representation |
|---|
{
"name": string,
"pythonCode": string,
"description": string,
"serviceDirectoryConfig": {
object ( |
| Fields | |
|---|---|
name |
Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used. |
pythonCode |
Optional. The Python code to execute for the tool. |
description |
Output only. The description of the Python function, parsed from the python code's docstring. |
serviceDirectoryConfig |
Optional. Service Directory configuration for the tool. |
McpTool
| JSON representation |
|---|
{ "name": string, "nameOverride": string, "description": string, "inputSchema": { object ( |
| Fields | |
|---|---|
name |
Required. The name of the MCP tool. |
nameOverride |
Optional. The name override of the MCP tool. This is populated if the name was overridden by a Toolset override. |
description |
Optional. The description of the MCP tool. |
inputSchema |
Optional. The schema of the input arguments of the MCP tool. |
outputSchema |
Optional. The schema of the output arguments of the MCP tool. |
serverAddress |
Required. The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the server_address in the McpToolset. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details. |
apiAuthentication |
Optional. Authentication information required to execute the tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates that the client should trust. |
serviceDirectoryConfig |
Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter. |
customHeaders |
Optional. The custom headers to send in the request to the MCP server. The values must be in the format An object containing a list of |
state |
Output only. The dynamic availability state of the tool on the external server. |
CustomHeadersEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
FileSearchTool
| JSON representation |
|---|
{
"corpusType": enum ( |
| Fields | |
|---|---|
corpusType |
Optional. The type of the corpus. Default is FULLY_MANAGED. |
name |
Required. The tool name. |
description |
Optional. The tool description. |
fileCorpus |
Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus} |
SystemTool
| JSON representation |
|---|
{ "name": string, "description": string } |
| Fields | |
|---|---|
name |
Required. The name of the system tool. |
description |
Output only. The description of the system tool. |
AgentTool
| JSON representation |
|---|
{ "name": string, "description": string, "rootAgent": string, "agent": string } |
| Fields | |
|---|---|
name |
Required. The name of the agent tool. |
description |
Optional. Description of the tool's purpose. |
rootAgent |
Optional. Deprecated: Use |
agent |
Optional. The resource name of the agent that is the entry point of the tool. Format: |
WidgetTool
| JSON representation |
|---|
{ "name": string, "description": string, "widgetType": enum ( |
| Fields | |
|---|---|
name |
Required. The display name of the widget tool. |
description |
Optional. The description of the widget tool. |
widgetType |
Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED. |
uiConfig |
Optional. Configuration for rendering the widget. |
dataMapping |
Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters. |
textResponseConfig |
Optional. Configuration for always-included text responses. |
Union field input. The input of the widget tool. input can be only one of the following: |
|
parameters |
Optional. The input parameters of the widget tool. |
DataMapping
| JSON representation |
|---|
{ "sourceToolName": string, "fieldMappings": { string: string, ... }, "pythonFunction": { object ( |
| Fields | |
|---|---|
sourceToolName |
Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: |
fieldMappings |
Optional. A map of widget input parameter fields to the corresponding output fields of the source tool. An object containing a list of |
pythonFunction |
Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format. |
mode |
Optional. The mode of the data mapping. |
pythonScript |
Deprecated: Use |
FieldMappingsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
TextResponseConfig
| JSON representation |
|---|
{
"type": enum ( |
| Fields | |
|---|---|
type |
Optional. The strategy for providing the text response. |
staticText |
Optional. The static text response to return when type is STATIC. |
textResponseInstruction |
Optional. Instruction for the LLM on how to generate the text response. Used as the description for the text response parameter if type is LLM_GENERATED. |
RemoteAgentTool
| JSON representation |
|---|
{
"name": string,
"description": string,
"agentCard": {
object ( |
| Fields | |
|---|---|
name |
Required. The name of the tool. |
description |
Required. The description of the tool. |
agentCard |
Required. The agent card of the remote agent that this tool invokes. |
AgentCard
| JSON representation |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| Fields | |
|---|---|
name |
Required. A human-readable name for the agent. |
description |
Required. A description of the agent's domain of action/solution space. |
supportedInterfaces[] |
Required. Ordered list of supported interfaces. The first entry is preferred. |
version |
Required. The version of the agent. |
skills[] |
Required. Skills represent a unit of ability an agent can perform. This may somewhat abstract but represents a more focused set of actions that the agent is highly likely to succeed at. |
AgentInterface
| JSON representation |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| Fields | |
|---|---|
url |
Required. The URL where this interface is available. Must be a valid absolute HTTPS URL in production. Example: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a" |
protocolBinding |
Required. The protocol binding supported at this URL. This is an open form string, to be easily extended for other protocol bindings. The core ones officially supported are |
tenant |
Tenant ID to be used in the request when calling the agent. |
protocolVersion |
Required. The version of the A2A protocol this interface exposes. Use the latest supported minor version per major version. Examples: "0.3", "1.0" |
AgentSkill
| JSON representation |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| Fields | |
|---|---|
id |
Required. A unique identifier for the agent's skill. |
name |
Required. A human-readable name for the skill. |
description |
Required. A detailed description of the skill. |
tags[] |
Required. A set of keywords describing the skill's capabilities. |
examples[] |
Example prompts or scenarios that this skill can handle. |
inputModes[] |
The set of supported input media types for this skill, overriding the agent's defaults. |
outputModes[] |
The set of supported output media types for this skill, overriding the agent's defaults. |
ToolFakeConfig
| JSON representation |
|---|
{ "enableFakeMode": boolean, // Union field |
| Fields | |
|---|---|
enableFakeMode |
Optional. Whether the tool is using fake mode. |
Union field tool_response. The response is either static or it is provided by a python function. tool_response can be only one of the following: |
|
codeBlock |
Optional. Code block which will be executed instead of a real tool call. |
CodeBlock
| JSON representation |
|---|
{ "pythonCode": string } |
| Fields | |
|---|---|
pythonCode |
Required. Python code which will be invoked in tool fake mode. Expected Python function signature - To catch all tool calls: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: If the function returns None, the real tool will be invoked instead. |
Example
| JSON representation |
|---|
{
"name": string,
"displayName": string,
"description": string,
"entryAgent": string,
"messages": [
{
object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the example. Format: |
displayName |
Required. Display name of the example. |
description |
Optional. Human-readable description of the example. |
entryAgent |
Optional. The agent that initially handles the conversation. If not specified, the example represents a conversation that is handled by the root agent. Format: |
messages[] |
Optional. The collection of messages that make up the conversation. |
createTime |
Output only. Timestamp when the example was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the example was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
invalid |
Output only. The example may become invalid if referencing resources are deleted. Invalid examples will not be used as few-shot examples. |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
Message
| JSON representation |
|---|
{
"role": string,
"chunks": [
{
object ( |
| Fields | |
|---|---|
role |
Optional. The role within the conversation, e.g., user, agent. |
chunks[] |
Optional. Content of the message as a series of chunks. |
eventTime |
Optional. Timestamp when the message was sent or received. Should not be used if the message is part of an Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Chunk
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field data. Chunk data. data can be only one of the following: |
|
text |
Optional. Text data. |
transcript |
Optional. Transcript associated with the audio. |
blob |
Optional. Blob data. |
payload |
Optional. Custom payload data. |
image |
Optional. Image data. |
toolCall |
Optional. Tool execution request. |
toolResponse |
Optional. Tool execution response. |
agentTransfer |
Optional. Agent transfer event. |
updatedVariables |
A struct represents variables that were updated in the conversation, keyed by variable names. |
defaultVariables |
A struct represents default variables at the start of the conversation, keyed by variable names. |
Blob
| JSON representation |
|---|
{ "mimeType": string, "data": string } |
| Fields | |
|---|---|
mimeType |
Required. The IANA standard MIME type of the source data. |
data |
Required. Raw bytes of the blob. A base64-encoded string. |
Image
| JSON representation |
|---|
{ "mimeType": string, "data": string } |
| Fields | |
|---|---|
mimeType |
Required. The IANA standard MIME type of the source data. Supported image types includes: * image/png * image/jpeg * image/webp |
data |
Required. Raw bytes of the image. A base64-encoded string. |
ToolCall
| JSON representation |
|---|
{ "id": string, "displayName": string, "args": { object }, // Union field |
| Fields | |
|---|---|
id |
Optional. The unique identifier of the tool call. If populated, the client should return the execution result with the matching ID in |
displayName |
Output only. Display name of the tool. |
args |
Optional. The input parameters and values for the tool in JSON object format. |
Union field tool_identifier. The identifier of the tool to execute. It could be either a persisted tool or a tool from a toolset. tool_identifier can be only one of the following: |
|
tool |
Optional. The name of the tool to execute. Format: |
toolsetTool |
Optional. The toolset tool to execute. |
ToolsetTool
| JSON representation |
|---|
{ "toolset": string, "toolId": string } |
| Fields | |
|---|---|
toolset |
Required. The resource name of the Toolset from which this tool is derived. Format: |
toolId |
Optional. The tool ID to filter the tools to retrieve the schema for. |
ToolResponse
| JSON representation |
|---|
{ "id": string, "displayName": string, "response": { object }, // Union field |
| Fields | |
|---|---|
id |
Optional. The matching ID of the |
displayName |
Output only. Display name of the tool. |
response |
Required. The tool execution result in JSON object format. Use "output" key to specify tool response and "error" key to specify error details (if any). If "output" and "error" keys are not specified, then whole "response" is treated as tool execution result. |
Union field tool_identifier. The identifier of the tool that got executed. It could be either a persisted tool or a tool from a toolset. tool_identifier can be only one of the following: |
|
tool |
Optional. The name of the tool to execute. Format: |
toolsetTool |
Optional. The toolset tool that got executed. |
AgentTransfer
| JSON representation |
|---|
{ "targetAgent": string, "displayName": string } |
| Fields | |
|---|---|
targetAgent |
Required. The agent to which the conversation is being transferred. The agent will handle the conversation from this point forward. Format: |
displayName |
Output only. Display name of the agent. |
Guardrail
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the guardrail. Format: |
displayName |
Required. Display name of the guardrail. |
description |
Optional. Description of the guardrail. |
enabled |
Optional. Whether the guardrail is enabled. |
action |
Optional. Action to take when the guardrail is triggered. |
createTime |
Output only. Timestamp when the guardrail was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the guardrail was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
Union field guardrail_type. Guardrail type. guardrail_type can be only one of the following: |
|
contentFilter |
Optional. Guardrail that bans certain content from being used in the conversation. |
llmPromptSecurity |
Optional. Guardrail that blocks the conversation if the prompt is considered unsafe based on the LLM classification. |
llmPolicy |
Optional. Guardrail that blocks the conversation if the LLM response is considered violating the policy based on the LLM classification. |
modelSafety |
Optional. Guardrail that blocks the conversation if the LLM response is considered unsafe based on the model safety settings. |
codeCallback |
Optional. Guardrail that potentially blocks the conversation based on the result of the callback execution. |
ContentFilter
| JSON representation |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| Fields | |
|---|---|
bannedContents[] |
Optional. List of banned phrases. Applies to both user inputs and agent responses. |
bannedContentsInUserInput[] |
Optional. List of banned phrases. Applies only to user inputs. |
bannedContentsInAgentResponse[] |
Optional. List of banned phrases. Applies only to agent responses. |
matchType |
Required. Match type for the content filter. |
disregardDiacritics |
Optional. If true, diacritics are ignored during matching. |
LlmPromptSecurity
| JSON representation |
|---|
{ "failOpen": boolean, // Union field |
| Fields | |
|---|---|
failOpen |
Optional. Determines the behavior when the guardrail encounters an LLM error. - If true: the guardrail is bypassed. - If false (default): the guardrail triggers/blocks. Note: If a custom policy is provided, this field is ignored in favor of the policy's 'fail_open' configuration. |
Union field security_config. Defines the security configuration mode. The user must choose one of the following configurations. security_config can be only one of the following: |
|
defaultSettings |
Optional. Use the system's predefined default security settings. To select this mode, include an empty 'default_settings' message in the request. The 'default_prompt_template' field within will be populated by the server in the response. |
customPolicy |
Optional. Use a user-defined LlmPolicy to configure the security guardrail. |
DefaultSecuritySettings
| JSON representation |
|---|
{ "defaultPromptTemplate": string } |
| Fields | |
|---|---|
defaultPromptTemplate |
Output only. The default prompt template used by the system. This field is for display purposes to show the user what prompt the system uses by default. It is OUTPUT_ONLY. |
LlmPolicy
| JSON representation |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| Fields | |
|---|---|
maxConversationMessages |
Optional. When checking this policy, consider the last 'n' messages in the conversation. When not set a default value of 10 will be used. |
modelSettings |
Optional. Model settings. |
prompt |
Required. Policy prompt. |
policyScope |
Required. Defines when to apply the policy check during the conversation. If set to |
failOpen |
Optional. If an error occurs during the policy check, fail open and do not trigger the guardrail. |
allowShortUtterance |
Optional. By default, the LLM policy check is bypassed for short utterances. Enabling this setting applies the policy check to all utterances, including those that would normally be skipped. |
ModelSafety
| JSON representation |
|---|
{
"safetySettings": [
{
object ( |
| Fields | |
|---|---|
safetySettings[] |
Required. List of safety settings. |
SafetySetting
| JSON representation |
|---|
{ "category": enum ( |
| Fields | |
|---|---|
category |
Required. The harm category. |
threshold |
Required. The harm block threshold. |
CodeCallback
| JSON representation |
|---|
{ "beforeAgentCallback": { object ( |
| Fields | |
|---|---|
beforeAgentCallback |
Optional. The callback to execute before the agent is called. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
afterAgentCallback |
Optional. The callback to execute after the agent is called. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
beforeModelCallback |
Optional. The callback to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
afterModelCallback |
Optional. The callback to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing. |
TriggerAction
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field action. The action to take. action can be only one of the following: |
|
respondImmediately |
Optional. Immediately respond with a preconfigured response. |
transferAgent |
Optional. Transfer the conversation to a different agent. |
generativeAnswer |
Optional. Respond with a generative answer. |
RespondImmediately
| JSON representation |
|---|
{
"responses": [
{
object ( |
| Fields | |
|---|---|
responses[] |
Required. The canned responses for the agent to choose from. The response is chosen randomly. |
Response
| JSON representation |
|---|
{ "text": string, "disabled": boolean } |
| Fields | |
|---|---|
text |
Required. Text for the agent to respond with. |
disabled |
Optional. Whether the response is disabled. Disabled responses are not used by the agent. |
TransferAgent
| JSON representation |
|---|
{ "agent": string } |
| Fields | |
|---|---|
agent |
Required. The name of the agent to transfer the conversation to. The agent must be in the same app as the current agent. Format: |
GenerativeAnswer
| JSON representation |
|---|
{ "prompt": string } |
| Fields | |
|---|---|
prompt |
Required. The prompt to use for the generative answer. |
Toolset
| JSON representation |
|---|
{ "name": string, "displayName": string, "description": string, "createTime": string, "updateTime": string, "etag": string, "executionType": enum ( |
| Fields | |
|---|---|
name |
Identifier. The unique identifier of the toolset. Format: |
displayName |
Optional. The display name of the toolset. Must be unique within the same app. |
description |
Optional. The description of the toolset. |
createTime |
Output only. Timestamp when the toolset was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Timestamp when the toolset was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
ETag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes. |
executionType |
Optional. The execution type of the tools in the toolset. |
toolFakeConfig |
Optional. Configuration for tools behavior in fake mode. |
Union field toolset_type. The type of the toolset. toolset_type can be only one of the following: |
|
mcpToolset |
Optional. A toolset that contains a list of tools that are offered by the MCP server. |
openApiToolset |
Optional. A toolset that contains a list of tools that are defined by an OpenAPI schema. |
connectorToolset |
Optional. A toolset that generates tools from an Integration Connectors Connection. |
McpToolset
| JSON representation |
|---|
{ "serverAddress": string, "apiAuthentication": { object ( |
| Fields | |
|---|---|
serverAddress |
Required. The address of the MCP server, for example, "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details. |
apiAuthentication |
Optional. Authentication information required to access tools and execute a tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication. |
serviceDirectoryConfig |
Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates that the client should trust. |
customHeaders |
Optional. The custom headers to send in the request to the MCP server. The values must be in the format An object containing a list of |
toolOverrides[] |
Optional. Overrides for individual tools within this toolset. This allows overriding specific details like descriptions, names, or pinning the tools' states so they aren't fully dynamic. |
CustomHeadersEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
McpToolOverride
| JSON representation |
|---|
{
"tool": string,
"nameOverride": string,
"descriptionOverride": string,
"snapshot": {
object ( |
| Fields | |
|---|---|
tool |
Required. The original name of the tool as it is emitted by the MCP server. |
nameOverride |
Optional. If present, this tool uses this name in the Agent instead of the original name. This is primarily used as an alias if the MCP server offers poorly named tools. |
descriptionOverride |
Optional. If present, this tool uses this description instead of the original description from the server. |
snapshot |
Output only. If present, this tool is "Pinned" and uses the snapshot values as fallbacks if the server becomes temporarily unavailable or if no Override is present. |
McpToolDefinition
| JSON representation |
|---|
{ "description": string, "inputSchema": { object ( |
| Fields | |
|---|---|
description |
Output only. The description of the MCP tool. This can be overridden by |
inputSchema |
Output only. The schema of the input arguments of the MCP tool. |
outputSchema |
Output only. The schema of the output arguments of the MCP tool. |
OpenApiToolset
| JSON representation |
|---|
{ "openApiSchema": string, "apiAuthentication": { object ( |
| Fields | |
|---|---|
openApiSchema |
Required. The OpenAPI schema of the toolset. |
apiAuthentication |
Optional. Authentication information required by the API. |
tlsConfig |
Optional. The TLS configuration. Includes the custom server certificates |
serviceDirectoryConfig |
Optional. Service Directory configuration. |
ignoreUnknownFields |
Optional. If true, the agent will ignore unknown fields in the API response for all operations defined in the OpenAPI schema. |
url |
Optional. The server URL of the Open API schema. This field is only set in toolsets in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema. |
ConnectorToolset
| JSON representation |
|---|
{ "connection": string, "authConfig": { object ( |
| Fields | |
|---|---|
connection |
Required. The full resource name of the referenced Integration Connectors Connection. Format: |
authConfig |
Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the Toolset creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override |
connectorActions[] |
Required. The list of connector actions/entity operations to generate tools for. |
PrebuiltAmbientNoise
Prebuilt ambient noise.
| Enums | |
|---|---|
PREBUILT_AMBIENT_NOISE_UNSPECIFIED |
Not specified. |
RETAIL_STORE |
Ambient noise of a retail store. |
CONVENTION_HALL |
Ambient noise of a convention hall. |
OUTDOOR |
Ambient noise of a street. |
ErrorHandlingStrategy
Defines the strategy for handling errors.
| Enums | |
|---|---|
ERROR_HANDLING_STRATEGY_UNSPECIFIED |
Unspecified error handling strategy. |
NONE |
No specific handling is enabled. |
FALLBACK_RESPONSE |
A fallback message will be returned to the user in case of system errors (e.g. LLM errors). |
END_SESSION |
An EndSession signal will be emitted in case of system errors (e.g. LLM errors). |
ToolExecutionMode
Defines the tool execution behavior if there are multiple tools being selected by the agent at the same time.
| Enums | |
|---|---|
TOOL_EXECUTION_MODE_UNSPECIFIED |
Unspecified tool execution mode. Default to PARALLEL. |
PARALLEL |
If there are multiple tools being selected, they will be executed in parallel, with the same ToolContext. |
SEQUENTIAL |
If there are multiple tools being selected, they will be executed sequentially. The next tool will only be executed after the previous tool completes and it can see updated ToolContext from the previous tool. |
SemanticSimilarityChannel
Semantic similarity channel to use.
| Enums | |
|---|---|
SEMANTIC_SIMILARITY_CHANNEL_UNSPECIFIED |
Metric unspecified. Defaults to TEXT. |
TEXT |
Use text semantic similarity. |
AUDIO |
Use audio semantic similarity. |
ExtraToolCallBehavior
Defines the behavior when an extra tool call is encountered. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.
| Enums | |
|---|---|
EXTRA_TOOL_CALL_BEHAVIOR_UNSPECIFIED |
Unspecified behavior. Defaults to FAIL. |
FAIL |
Fail the evaluation if an extra tool call is encountered. |
ALLOW |
Allow the extra tool call. |
HallucinationMetricBehavior
The hallucination metric behavior. Regardless of the behavior, the metric will always be calculated. The difference is that when disabled, the metric is not used to calculate the overall evaluation score.
| Enums | |
|---|---|
HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED |
Unspecified hallucination metric behavior. |
DISABLED |
Disable hallucination metric. |
ENABLED |
Enable hallucination metric. |
Type
OpenAPI data types.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Type unspecified. |
STRING |
String type. |
INTEGER |
Integer type. |
NUMBER |
Number type. |
BOOLEAN |
Boolean type. |
OBJECT |
Object type. |
ARRAY |
Array type. |
NullValue
Represents a JSON null.
NullValue is a sentinel, using an enum with only one value to represent the null value for the Value type union.
A field of type NullValue with any value other than 0 is considered invalid. Most ProtoJSON serializers will emit a Value with a null_value set as a JSON null regardless of the integer value, and so will round trip to a 0 value.
| Enums | |
|---|---|
NULL_VALUE |
Null value. |
Type
The type of the engine. See the documentation available at https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1/SolutionType and https://cloud.google.com/generative-ai-app-builder/docs/create-datastore-ingest.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Unspecified engine type. |
ENGINE_TYPE_SEARCH |
The SOLUTION_TYPE_SEARCH engine for the app. All connector data stores added to the app will be added to this engine. |
ENGINE_TYPE_CHAT |
Chat engine type. The SOLUTION_TYPE_CHAT engine for the app. All connector data stores added to the app will be added to this engine. |
ChannelType
The type of the channel profile.
| Enums | |
|---|---|
UNKNOWN |
Unknown channel type. |
WEB_UI |
Web UI channel. |
API |
API channel. |
TWILIO |
Twilio channel. |
GOOGLE_TELEPHONY_PLATFORM |
Google Telephony Platform channel. |
CONTACT_CENTER_AS_A_SERVICE |
Contact Center as a Service (CCaaS) channel. |
FIVE9 |
Five9 channel. |
CONTACT_CENTER_INTEGRATION |
Third party contact center integration channel. |
Persona
The persona of the channel.
| Enums | |
|---|---|
UNKNOWN |
UNKNOWN persona. |
CONCISE |
The agent keeps the responses concise and to the point |
CHATTY |
The agent provides additional context, explanations, and details |
Modality
Modality of the web widget.
| Enums | |
|---|---|
MODALITY_UNSPECIFIED |
Unknown modality. |
CHAT_AND_VOICE |
Widget supports both chat and voice input. |
VOICE_ONLY |
Widget supports only voice input. |
CHAT_ONLY |
Widget supports only chat input. |
CHAT_VOICE_AND_VIDEO |
Widget supports chat, voice, and video input. |
Theme
Theme of the web widget.
| Enums | |
|---|---|
THEME_UNSPECIFIED |
Unknown theme. |
LIGHT |
Light theme. |
DARK |
Dark theme. |
Direction
The direction of the transfer.
| Enums | |
|---|---|
DIRECTION_UNSPECIFIED |
Unspecified direction. |
PARENT_TO_CHILD |
Transfer from the parent agent to the child agent. |
CHILD_TO_PARENT |
Transfer from the child agent to the parent agent. |
RequestLocation
The location of the API key in the request.
| Enums | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
Unspecified. This value should not be used. |
HEADER |
Represents the key in http header. |
QUERY_STRING |
Represents the key in query string. |
OauthGrantType
OAuth grant types. Only client credential grant is supported.
| Enums | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
Unspecified. Defaults to CLIENT_CREDENTIAL. |
CLIENT_CREDENTIAL |
Represents the client credential flow. |
OperationType
The operation to perform on the entity.
| Enums | |
|---|---|
OPERATION_TYPE_UNSPECIFIED |
Operation type unspecified. Invalid, ConnectorTool create/update will fail. |
LIST |
List operation. |
GET |
Get operation. |
CREATE |
Create operation. |
UPDATE |
Update operation. |
DELETE |
Delete operation. |
DataStoreType
The type of the data store.
| Enums | |
|---|---|
DATA_STORE_TYPE_UNSPECIFIED |
Not specified. This value indicates that the data store type is not specified, so it will not be used during search. |
PUBLIC_WEB |
A data store that contains public web content. |
UNSTRUCTURED |
A data store that contains unstructured private data. |
FAQ |
A data store that contains structured data used as FAQ. |
CONNECTOR |
A data store that is a connector to a first-party or a third-party service. |
DocumentProcessingMode
The document processing mode of the data store.
| Enums | |
|---|---|
DOCUMENT_PROCESSING_MODE_UNSPECIFIED |
Not specified. |
DOCUMENTS |
Documents are processed as documents. |
CHUNKS |
Documents are converted to chunks. |
AttributeType
The attribute(or function) for which the custom ranking is to be applied.
| Enums | |
|---|---|
ATTRIBUTE_TYPE_UNSPECIFIED |
Unspecified AttributeType. |
NUMERICAL |
The value of the numerical field will be used to dynamically update the boost amount. In this case, the attribute_value (the x value) of the control point will be the actual value of the numerical field for which the boost_amount is specified. |
FRESHNESS |
For the freshness use case the attribute value will be the duration between the current time and the date in the datetime field specified. The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: [nD][T[nH][nM][nS]]. E.g. 5D, 3DT12H30M, T24H. |
InterpolationType
The interpolation type to be applied. Default will be linear (Piecewise Linear).
| Enums | |
|---|---|
INTERPOLATION_TYPE_UNSPECIFIED |
Interpolation type is unspecified. In this case, it defaults to Linear. |
LINEAR |
Piecewise linear interpolation will be applied. |
ModalityType
The modality type.
| Enums | |
|---|---|
MODALITY_TYPE_UNSPECIFIED |
Unspecified modality type. |
TEXT |
Text modality. |
AUDIO |
Audio modality. |
FilterParameterBehavior
Filter parameter behavior.
| Enums | |
|---|---|
FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED |
Default filter behavior. Include filter parameter for connector datastores. For the rest of the datastore types, the filter input parameter is omitted. |
ALWAYS_INCLUDE |
Always include filter parameter for all datastore types. |
NEVER_INCLUDE |
The filter parameter is never included in the list of tool parameters, regardless of the datastore type. |
State
Represents the dynamic availability state of the tool.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Default state. |
ACTIVE |
The tool is available and actively offered by the server. |
INACTIVE |
The tool is configured or pinned, but currently not offered by the server. |
STALE |
The tool exists on the server, but does not match the version on the server. |
CorpusType
The type of the Vertex RAG corpus.
| Enums | |
|---|---|
CORPUS_TYPE_UNSPECIFIED |
Unspecified corpus type. |
USER_OWNED |
The corpus is created and owned by the user. |
FULLY_MANAGED |
The corpus is created by the agent. |
WidgetType
All available widget types. New values may be added to this enum in the future.
| Enums | |
|---|---|
WIDGET_TYPE_UNSPECIFIED |
Unspecified widget type. |
CUSTOM |
Custom widget type. |
PRODUCT_CAROUSEL |
Product carousel widget. |
PRODUCT_DETAILS |
Product details widget. |
QUICK_ACTIONS |
Quick actions widget. |
PRODUCT_COMPARISON |
Product comparison widget. |
ADVANCED_PRODUCT_DETAILS |
Advanced product details widget. |
SHORT_FORM |
Short form widget. |
OVERALL_SATISFACTION |
Overall satisfaction widget. |
ORDER_SUMMARY |
Order summary widget. |
APPOINTMENT_DETAILS |
Appointment details widget. |
APPOINTMENT_SCHEDULER |
Appointment scheduler widget. |
CONTACT_FORM |
Contact form widget. |
Mode
The strategy used to map data from the source tool to the widget.
| Enums | |
|---|---|
MODE_UNSPECIFIED |
Unspecified mode. |
FIELD_MAPPING |
Use the field_mappings map for data transformation. |
PYTHON_SCRIPT |
Use the python_script for data transformation. |
Type
Defines how the text response is produced.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Unspecified type. |
NONE |
The LLM dynamically decides whether to generate a text response alongside the widget based on the conversation context. |
LLM_GENERATED |
The LLM is explicitly required to generate a text response. |
STATIC |
A pre-defined static text response is always used. |
ExecutionType
The execution type of the tool or toolset.
| Enums | |
|---|---|
EXECUTION_TYPE_UNSPECIFIED |
The execution type is unspecified. Defaults to SYNCHRONOUS if unspecified. |
SYNCHRONOUS |
The tool is executed synchronously. The session is blocked until the tool returns. |
ASYNCHRONOUS |
The tool is executed asynchronously. The session will continue while the tool is executing. |
MatchType
Match type for the content filter.
| Enums | |
|---|---|
MATCH_TYPE_UNSPECIFIED |
Match type is not specified. |
SIMPLE_STRING_MATCH |
Content is matched for substrings character by character. |
WORD_BOUNDARY_STRING_MATCH |
Content only matches if the pattern found in the text is surrounded by word delimiters. Banned phrases can also contain word delimiters. |
REGEXP_MATCH |
Content is matched using regular expression syntax. |
PolicyScope
Defines when to apply the policy check during the conversation.
| Enums | |
|---|---|
POLICY_SCOPE_UNSPECIFIED |
Policy scope is not specified. |
USER_QUERY |
Policy check is triggered on user input. |
AGENT_RESPONSE |
Policy check is triggered on agent response. Applying this policy scope will introduce additional latency before the agent can respond. |
USER_QUERY_AND_AGENT_RESPONSE |
Policy check is triggered on both user input and agent response. Applying this policy scope will introduce additional latency before the agent can respond. |
HarmCategory
Harm category.
| Enums | |
|---|---|
HARM_CATEGORY_UNSPECIFIED |
The harm category is unspecified. |
HARM_CATEGORY_HATE_SPEECH |
The harm category is hate speech. |
HARM_CATEGORY_DANGEROUS_CONTENT |
The harm category is dangerous content. |
HARM_CATEGORY_HARASSMENT |
The harm category is harassment. |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
The harm category is sexually explicit content. |
HarmBlockThreshold
Probability based thresholds levels for blocking.
| Enums | |
|---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Unspecified harm block threshold. |
BLOCK_LOW_AND_ABOVE |
Block low threshold and above (i.e. block more). |
BLOCK_MEDIUM_AND_ABOVE |
Block medium threshold and above. |
BLOCK_ONLY_HIGH |
Block only high threshold (i.e. block less). |
BLOCK_NONE |
Block none. |
OFF |
Turn off the safety filter. |
Tool Annotations
Destructive Hint: ✅ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌