Returns the agents Resource.
Returns the changelogs Resource.
Returns the conversations Resource.
Returns the deployments Resource.
Returns the evaluationDatasets Resource.
Returns the evaluationExpectations Resource.
Returns the evaluationRuns Resource.
Returns the evaluations Resource.
Returns the examples Resource.
Returns the guardrails Resource.
Returns the scheduledEvaluationRuns Resource.
Returns the sessions Resource.
Returns the tools Resource.
Returns the toolsets Resource.
Returns the versions Resource.
Close httplib2 connections.
create(parent, appId=None, body=None, x__xgafv=None)
Creates a new app in the given project and location.
delete(name, etag=None, x__xgafv=None)
Deletes the specified app.
executeTool(parent, body=None, x__xgafv=None)
Executes the given tool with the given arguments.
exportApp(name, body=None, x__xgafv=None)
Exports the specified app.
generateAppResource(parent, body=None, x__xgafv=None)
Generates specific resources (e.g. agent) in the app using LLM assistant.
Gets details of the specified app.
importApp(parent, body=None, x__xgafv=None)
Imports the specified app.
importEvaluations(parent, body=None, x__xgafv=None)
Imports evaluations into the app.
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists apps in the given project and location.
Retrieves the next page of results.
patch(name, body=None, updateMask=None, x__xgafv=None)
Updates the specified app.
retrieveToolSchema(parent, body=None, x__xgafv=None)
Retrieve the schema of the given tool. The schema is computed on the fly for the given instance of the tool.
runEvaluation(app, body=None, x__xgafv=None)
Runs an evaluation of the app.
testPersonaVoice(app, body=None, x__xgafv=None)
Tests the voice of a persona. Also accepts a default persona.
close()
Close httplib2 connections.
create(parent, appId=None, body=None, x__xgafv=None)
Creates a new app in the given project and location.
Args:
parent: string, Required. The resource name of the location to create an app in. (required)
body: object, The request body.
The object takes the form of:
{ # An app serves as a top-level container for a group of agents, including the root agent and its sub-agents, along with their associated configurations. These agents work together to achieve specific goals within the app's context.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A String", # Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud Storage](https://cloud.google.com/storage). Note: Please make sure the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has `storage.objects.get` permission to the Cloud Storage object.
"prebuiltAmbientNoise": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A String", # 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: `disable_barge_in` is deprecated in favor of `disable_barge_in_control` in ChannelProfile.
},
"inactivityTimeout": "A String", # 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.
"synthesizeSpeechConfigs": { # Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig. 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"speakingRate": 3.14, # 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.
"voice": "A String", # 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](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A String", # 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: `projects/{project}/secrets/{secret}/versions/{version}`
"privateKey": "A String", # Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`
"tlsCertificate": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"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"
"A String",
],
"enableOriginCheck": True or False, # Optional. Indicates whether origin check for the web widget is enabled. If `true`, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.
"enablePublicAccess": True or False, # Optional. Indicates whether public access to the web widget is enabled. If `true`, the web widget will be publicly accessible. If `false`, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.
"enableRecaptcha": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # Optional. Whether to escalate the session in EndSession. If session is escalated, metadata in EndSession will contain `session_escalated = true`. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent for details.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by [supported language code](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A String", # 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # 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.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
{ # A persona represents an end user in an evaluation.
"description": "A String", # Optional. The description of the persona.
"displayName": "A String", # Required. The display name of the persona. Unique within an app.
"name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
"personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
"speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
"environment": "A String", # Optional. The simulated audio environment.
"speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
"voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
},
},
],
"evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
"goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
"goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
"scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
"scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for scenario evaluations.
},
"globalInstruction": "A String", # 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: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A String", # Optional. Deprecated: This feature is no longer supported. Use `enable_multilingual_support` instead to improve handling of multilingual input. The action to perform when an agent receives input in an unsupported language. 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 EndSession signal with corresponding metadata to terminate the conversation.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A String", # 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 `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"cloudLoggingSettings": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) deidentify template name to instruct on how to de-identify content. Format: `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`
"enableRedaction": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) inspect template name to configure detection of sensitive data types. Format: `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A String", # Optional. The time zone of the app from the [time zone database](https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
},
"toolExecutionMode": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
}
appId: string, Optional. The ID to use for the app, which will become the final component of the app's resource name. If not provided, a unique ID will be automatically assigned for the app.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
delete(name, etag=None, x__xgafv=None)
Deletes the specified app.
Args:
name: string, Required. The resource name of the app to delete. (required)
etag: string, Optional. The current etag of the app. If an etag is not provided, the deletion will overwrite any concurrent changes. If an etag is provided and does not match the current etag of the app, deletion will be blocked and an ABORTED error will be returned.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
executeTool(parent, body=None, x__xgafv=None)
Executes the given tool with the given arguments.
Args:
parent: string, Required. The resource name of the app which the tool/toolset belongs to. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for ToolService.ExecuteTool.
"args": { # Optional. The input parameters and values for the tool in JSON object format.
"a_key": "", # Properties of the object.
},
"context": { # Optional. The [ToolCallContext](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/python#environment for details) to be passed to the Python tool.
"a_key": "", # Properties of the object.
},
"mockConfig": { # Mock tool calls configuration for the session. # Optional. Mock configuration for the tool execution. If this field is set, tools that call other tools will be mocked based on the provided patterns and responses.
"mockedToolCalls": [ # Optional. All tool calls to mock for the duration of the session.
{ # A mocked tool call. Expresses the target tool + a pattern to match against that tool's args / inputs. If the pattern matches, then the mock response will be returned.
"expectedArgsPattern": { # Required. A pattern to match against the args / inputs of all dispatched tool calls. If the tool call inputs match this pattern, then mock output will be returned.
"a_key": "", # Properties of the object.
},
"mockResponse": { # Optional. The mock response / output to return if the tool call args / inputs match the pattern.
"a_key": "", # Properties of the object.
},
"tool": "A String", # Required. Deprecated. Use tool_identifier instead.
"toolId": "A String", # Optional. The name of the tool to mock. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"toolset": { # A tool that is created from a toolset. # Optional. The toolset to mock.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
},
],
"unmatchedToolCallBehavior": "A String", # Required. Beavhior for tool calls that don't match any args patterns in mocked_tool_calls.
},
"tool": "A String", # Optional. The name of the tool to execute. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}
"toolsetTool": { # A tool that is created from a toolset. # Optional. The toolset tool to execute. Only one tool should match the predicate from the toolset. Otherwise, an error will be returned.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
"variables": { # Optional. The variables that are available for the tool execution.
"a_key": "", # Properties of the object.
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for ToolService.ExecuteTool.
"response": { # 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.
"a_key": "", # Properties of the object.
},
"tool": "A String", # The name of the tool that got executed. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"toolsetTool": { # A tool that is created from a toolset. # The toolset tool that got executed.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
"variables": { # The variable values at the end of the tool execution.
"a_key": "", # Properties of the object.
},
}
exportApp(name, body=None, x__xgafv=None)
Exports the specified app.
Args:
name: string, Required. The resource name of the app to export. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for AgentService.ExportApp.
"appVersion": "A String", # Optional. The resource name of the app version to export. Format: `projects/{project}/locations/{location}/apps/{app}/versions/{version}`.
"exportFormat": "A String", # Required. The format to export the app in.
"gcsUri": "A String", # Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to which to export the app. The format of this URI must be `gs:///`. The exported app archive will be written directly to the specified GCS object.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
generateAppResource(parent, body=None, x__xgafv=None)
Generates specific resources (e.g. agent) in the app using LLM assistant.
Args:
parent: string, Required. The resource name of the app to generate the resource for. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for AgentService.GenerateAppResource.
"agent": { # An agent acts as the fundamental building block that provides instructions to the Large Language Model (LLM) for executing specific tasks. # The agent resource to be used by the LLM assistant, can be empty for generating a new agent.
"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.
{ # A callback defines the custom logic to be executed at various stages of agent interaction.
"description": "A String", # Optional. Human-readable description of the callback.
"disabled": True or False, # Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
"proactiveExecutionEnabled": True or False, # 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.
"pythonCode": "A String", # Required. The python code to execute for the callback.
},
],
"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.
{ # A callback defines the custom logic to be executed at various stages of agent interaction.
"description": "A String", # Optional. Human-readable description of the callback.
"disabled": True or False, # Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
"proactiveExecutionEnabled": True or False, # 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.
"pythonCode": "A String", # Required. The python code to execute for the callback.
},
],
"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.
{ # A callback defines the custom logic to be executed at various stages of agent interaction.
"description": "A String", # Optional. Human-readable description of the callback.
"disabled": True or False, # Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
"proactiveExecutionEnabled": True or False, # 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.
"pythonCode": "A String", # Required. The python code to execute for the callback.
},
],
"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.
{ # A callback defines the custom logic to be executed at various stages of agent interaction.
"description": "A String", # Optional. Human-readable description of the callback.
"disabled": True or False, # Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
"proactiveExecutionEnabled": True or False, # 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.
"pythonCode": "A String", # Required. The python code to execute for the callback.
},
],
"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.
{ # A callback defines the custom logic to be executed at various stages of agent interaction.
"description": "A String", # Optional. Human-readable description of the callback.
"disabled": True or False, # Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
"proactiveExecutionEnabled": True or False, # 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.
"pythonCode": "A String", # Required. The python code to execute for the callback.
},
],
"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.
{ # A callback defines the custom logic to be executed at various stages of agent interaction.
"description": "A String", # Optional. Human-readable description of the callback.
"disabled": True or False, # Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.
"proactiveExecutionEnabled": True or False, # 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.
"pythonCode": "A String", # Required. The python code to execute for the callback.
},
],
"childAgents": [ # Optional. List of child agents in the agent tree. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"A String",
],
"createTime": "A String", # Output only. Timestamp when the agent was created.
"description": "A String", # Optional. Human-readable description of the agent.
"displayName": "A String", # Required. Display name of the agent.
"etag": "A String", # 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": "A String", # Output only. If the agent is generated by the LLM assistant, this field contains a descriptive summary of the generation.
"guardrails": [ # Optional. List of guardrails for the agent. Format: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"instruction": "A String", # Optional. Instructions for the LLM model to guide the agent's behavior.
"llmAgent": { # Default agent type. The agent uses instructions and callbacks specified in the agent to perform the task using a large language model. # Optional. The default agent type.
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. Configurations for the LLM model.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the agent. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"remoteDialogflowAgent": { # The agent which will transfer execution to a remote [Dialogflow CX](https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent. The Dialogflow agent will process subsequent user queries until the session ends or flow ends, and the control is transferred back to the parent CES agent. # Optional. The remote [Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents) 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 `roles/dialogflow.client` to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"agent": "A String", # Required. The [Dialogflow](https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent resource name. Format: `projects/{project}/locations/{location}/agents/{agent}`
"environmentId": "A String", # Optional. The environment ID of the Dialogflow agent to be used for the agent execution. If not specified, the draft environment will be used.
"flowId": "A String", # Optional. The flow ID of the flow in the Dialogflow agent.
"inputVariableMapping": { # Optional. The mapping of the app variables names to the Dialogflow session parameters names to be sent to the Dialogflow agent as input.
"a_key": "A String",
},
"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.
"a_key": "A String",
},
"respectResponseInterruptionSettings": True or False, # Optional. Indicates whether to respect the message-level interruption settings configured in the Dialogflow agent. * If false: all response messages from the Dialogflow agent follow the app-level barge-in settings. * If true: only response messages with [`allow_playback_interruption`](https://docs.cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#text) set to true will be interruptable, all other messages follow the app-level barge-in settings.
},
"tools": [ # Optional. List of available tools for the agent. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"A String",
],
"toolsets": [ # Optional. List of toolsets for the agent.
{ # A toolset with a selection of its tools.
"toolIds": [ # Optional. The tools IDs to filter the toolset.
"A String",
],
"toolset": "A String", # Required. The resource name of the toolset. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
],
"transferRules": [ # Optional. Agent transfer rules. If multiple rules match, the first one in the list will be used.
{ # Rule for transferring to a specific agent.
"childAgent": "A String", # Required. The resource name of the child agent the rule applies to. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"deterministicTransfer": { # Deterministic transfer rule. When the condition evaluates to true, the transfer occurs. # Optional. A rule that immediately transfers to the target agent when the condition is met.
"expressionCondition": { # Expression condition based on session state. # Optional. A rule that evaluates a session state condition. If the condition evaluates to true, the transfer occurs.
"expression": "A String", # Required. The string representation of cloud.api.Expression condition.
},
"pythonCodeCondition": { # Python code block to evaluate the condition. # Optional. A rule that uses Python code block to evaluate the conditions. If the condition evaluates to true, the transfer occurs.
"pythonCode": "A String", # Required. The python code to execute.
},
},
"direction": "A String", # Required. The direction of the transfer.
"disablePlannerTransfer": { # A rule that prevents the planner from transferring to the target agent. # Optional. Rule that prevents the planner from transferring to the target agent.
"expressionCondition": { # Expression condition based on session state. # Required. If the condition evaluates to true, planner will not be allowed to transfer to the target agent.
"expression": "A String", # Required. The string representation of cloud.api.Expression condition.
},
},
},
],
"updateTime": "A String", # Output only. Timestamp when the agent was last updated.
},
"appGenerationConfig": { # The configuration to be used to generate the app. # Optional. The configuration to be used to generate the agents and tools.
"context": "A String", # Optional. The context which describes the requirements of the agents & tools to be generated.
"datasetId": "A String", # Optional. The insights dataset to be used to fetch conversation data for generating the agents & tools. Format: `projects/{project}/locations/{location}/datasets/{dataset}`.
"fileContexts": [ # Optional. The files to be used as context.
{ # Files to be used as context. Files can be provided as raw bytes.
"fileBytes": { # File provided as raw bytes. # Optional. File provided as raw bytes.
"data": "A String", # Required. Raw bytes of the file.
"fileName": "A String", # Required. The name of the file provided as raw bytes.
"mimeType": "A String", # Required. The IANA standard MIME type of the source data.
},
},
],
"gcsLocation": "A String", # Optional. The Cloud Storage location to store the generated question answer data to be used by the Datastore tool. This data is generated only when using conversation data as an input source. The location must be in the same project as the app. Format: `gs://...`.
"generateEvaluations": True or False, # Optional. Whether to generate the evaluations for the app. If true, the provided context will be used to generate the evaluations data.
},
"evaluationGenerationConfig": { # The configuration to be used to generate the evaluations. # Optional. The configuration to be used to generate the evaluations.
"datasetId": "A String", # Optional. The insights dataset to be used to fetch conversation data for generating the evaluations. Format: `projects/{project}/locations/{location}/datasets/{dataset}`.
},
"evaluationPersonasGenerationConfig": { # The configuration to be used to generate the evaluation personas. # Optional. The configuration to be used to generate the evaluation personas.
},
"hillClimbingFixConfig": { # The configuration to be used for hill climbing fixes. # Optional. The configuration to be used for hill climbing fixes.
"qualityReport": { # The report describing any identified quality issues in the app. # Required. The quality report used to inform the instruction following fix.
"evaluationRuns": [ # Optional. A list of evaluation runs used to generate the quality report. Format: `projects/{project}/locations/{location}/evaluationRuns/{evaluationRun}`.
"A String",
],
"generalIssues": [ # Optional. General issues not specific to any agent.
{ # The issue identified.
"description": "A String", # Optional. Description of the issue found.
"occurrenceCount": 42, # Optional. How many times this issue occurred.
"proposedSolution": "A String", # Optional. Proposed solution to fix the issue by modifying instructions or tools.
},
],
"issues": [ # Optional. The issues grouped by agent.
{ # Issues identified for a single agent.
"agent": "A String", # Optional. The name of the agent to which the issues are related. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"issues": [ # Optional. List of issues found for this agent.
{ # The issue identified.
"description": "A String", # Optional. Description of the issue found.
"occurrenceCount": 42, # Optional. How many times this issue occurred.
"proposedSolution": "A String", # Optional. Proposed solution to fix the issue by modifying instructions or tools.
},
],
},
],
},
},
"qualityReportGenerationConfig": { # The configuration to be used for quality report generation. # Optional. The configuration to be used for quality report generation.
"evaluationRun": "A String", # Required. The evaluation run used to inform quality report analysis.
},
"refineInstructions": [ # Optional. List of refine instructions to be used to refine the resource.
{ # The instructions to be used to refine a part of the resource. The part of the resource can be specified with a start index, end index and a field mask. For example, if you want to refine a part of the agent instructions you can specify the index of the first character of the instructions, the index of the last character of the instructions and the field mask as "instructions".
"endIndex": "A String", # Required. The last character (inclusive) of the text to refine.
"fieldMask": "A String", # Required. The field of the resource being refined. Only one field is allowed per RefineInstructions. If refining agent instructions, the field mask should be "instructions".
"instructions": "A String", # Required. The instructions to refine the resource.
"startIndex": "A String", # Required. The first character (inclusive) of the text to refine.
},
],
"tool": { # A tool represents an action that the CES agent can take to achieve certain goals. # The tool resource to be used by the LLM assistant, can be empty for generating a new tool.
"agentTool": { # Represents a tool that allows the agent to call another agent. # Optional. The agent tool.
"agent": "A String", # Optional. The resource name of the agent that is the entry point of the tool. Format: `projects/{project}/locations/{location}/agents/{agent}`
"description": "A String", # Optional. Description of the tool's purpose.
"name": "A String", # Required. The name of the agent tool.
"rootAgent": "A String", # Optional. Deprecated: Use `agent` instead. The resource name of the root agent that is the entry point of the tool. Format: `projects/{project}/locations/{location}/agents/{agent}`
},
"clientFunction": { # Represents a client-side function that the agent can invoke. When the tool is chosen by the agent, control is handed off to the client. The client is responsible for executing the function and returning the result as a ToolResponse to continue the interaction with the agent. # Optional. The client function.
"description": "A String", # Optional. The function description.
"name": "A String", # Required. The function name.
"parameters": { # Represents a select subset of an OpenAPI 3.0 schema object. # Optional. The schema of the function parameters.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"response": { # Represents a select subset of an OpenAPI 3.0 schema object. # Optional. The schema of the function response.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
"connectorTool": { # A ConnectorTool allows connections to different integrations. See: https://cloud.google.com/integration-connectors/docs/overview. # Optional. The Integration Connector tool.
"action": { # Configuration of an Action for the tool to use. Note: This can be either an Action or an Operation. See https://cloud.google.com/integration-connectors/docs/entities-operation-action for details. # Required. Action for the tool to use.
"connectionActionId": "A String", # ID of a Connection action for the tool to use.
"entityOperation": { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
"entityId": "A String", # Required. ID of the entity.
"operation": "A String", # Required. Operation to perform on the entity.
},
"inputFields": [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
"A String",
],
"outputFields": [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
"A String",
],
},
"authConfig": { # End-user authentication configuration used for Connection calls. The field values must be the names of context variables in the format `$context.variables.`. # 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.
"oauth2AuthCodeConfig": { # Oauth 2.0 Authorization Code authentication configuration. # Oauth 2.0 Authorization Code authentication.
"oauthToken": "A String", # Required. Oauth token parameter name to pass through. Must be in the format `$context.variables.`.
},
"oauth2JwtBearerConfig": { # JWT Profile Oauth 2.0 Authorization Grant authentication configuration. # JWT Profile Oauth 2.0 Authorization Grant authentication.
"clientKey": "A String", # Required. Client parameter name to pass through. Must be in the format `$context.variables.`.
"issuer": "A String", # Required. Issuer parameter name to pass through. Must be in the format `$context.variables.`.
"subject": "A String", # Required. Subject parameter name to pass through. Must be in the format `$context.variables.`.
},
},
"connection": "A String", # Required. The full resource name of the referenced Integration Connectors Connection. Format: `projects/{project}/locations/{location}/connections/{connection}`
"description": "A String", # Optional. The description of the tool that can be used by the Agent to decide whether to call this ConnectorTool.
"name": "A String", # Optional. The name of the tool that can be used by the Agent to decide whether to call this ConnectorTool.
},
"createTime": "A String", # Output only. Timestamp when the tool was created.
"dataStoreTool": { # Tool to retrieve from Vertex AI Search datastore or engine for grounding. Accepts either a datastore or an engine, but not both. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction. # Optional. The data store tool.
"boostSpecs": [ # Optional. Boost specification to boost certain documents.
{ # Boost specifications to boost certain documents. For more information, please refer to https://cloud.google.com/generative-ai-app-builder/docs/boosting.
"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}.
"A String",
],
"spec": [ # Required. A list of boosting specifications.
{ # Boost specification to boost certain documents.
"conditionBoostSpecs": [ # Required. A list of boosting specifications.
{ # Boost specification for a condition.
"boost": 3.14, # 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": { # Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above. # Optional. Complex specification for custom ranking based on customer defined attribute value.
"attributeType": "A String", # 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).
"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.
{ # The control points used to define the curve. The curve defined through these control points can only be monotonically increasing or decreasing(constant values are acceptable).
"attributeValue": "A String", # Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value). The pattern for this is: `nDnM]`.
"boostAmount": 3.14, # Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above.
},
],
"fieldName": "A String", # Optional. The name of the field whose value will be used to determine the boost amount.
"interpolationType": "A String", # Optional. The interpolation type to be applied to connect the control points listed below.
},
"condition": "A String", # 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"))
},
],
},
],
},
],
"dataStoreSource": { # Configuration for searching within a specific DataStore. # Optional. Search within a single specific DataStore.
"dataStore": { # A DataStore resource in Vertex AI Search. # Optional. The data store.
"connectorConfig": { # The connector config for the data store connection. # Output only. The connector config for the data store connection.
"collection": "A String", # Resource name of the collection the data store belongs to.
"collectionDisplayName": "A String", # Display name of the collection the data store belongs to.
"dataSource": "A String", # The name of the data source. Example: `salesforce`, `jira`, `confluence`, `bigquery`.
},
"createTime": "A String", # Output only. Timestamp when the data store was created.
"displayName": "A String", # Output only. The display name of the data store.
"documentProcessingMode": "A String", # Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores.
"name": "A String", # Required. Full resource name of the DataStore. Format: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`
"type": "A String", # Output only. The type of the data store. This field is readonly and populated by the server.
},
"filter": "A String", # Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
},
"description": "A String", # Optional. The tool description.
"engineSource": { # Configuration for searching within an Engine, potentially targeting specific DataStores. # Optional. Search within an Engine (potentially across multiple DataStores).
"dataStoreSources": [ # Optional. Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine.
{ # Configuration for searching within a specific DataStore.
"dataStore": { # A DataStore resource in Vertex AI Search. # Optional. The data store.
"connectorConfig": { # The connector config for the data store connection. # Output only. The connector config for the data store connection.
"collection": "A String", # Resource name of the collection the data store belongs to.
"collectionDisplayName": "A String", # Display name of the collection the data store belongs to.
"dataSource": "A String", # The name of the data source. Example: `salesforce`, `jira`, `confluence`, `bigquery`.
},
"createTime": "A String", # Output only. Timestamp when the data store was created.
"displayName": "A String", # Output only. The display name of the data store.
"documentProcessingMode": "A String", # Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores.
"name": "A String", # Required. Full resource name of the DataStore. Format: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`
"type": "A String", # Output only. The type of the data store. This field is readonly and populated by the server.
},
"filter": "A String", # Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata
},
],
"engine": "A String", # Required. Full resource name of the Engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"filter": "A String", # 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
},
"filterParameterBehavior": "A String", # Optional. The filter parameter behavior.
"modalityConfigs": [ # Optional. The modality configs for the data store.
{ # If specified, will apply the given configuration for the specified modality.
"groundingConfig": { # Grounding configuration. # Optional. The grounding configuration.
"disabled": True or False, # Optional. Whether grounding is disabled.
"groundingLevel": 3.14, # 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.
},
"modalityType": "A String", # Required. The modality type.
"rewriterConfig": { # Rewriter configuration. # Optional. The rewriter config.
"disabled": True or False, # Optional. Whether the rewriter is disabled.
"modelSettings": { # Model settings contains various configurations for the LLM model. # Required. Configurations for the LLM model.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"prompt": "A String", # Optional. The prompt definition. If not set, default prompt will be used.
},
"summarizationConfig": { # Summarization configuration. # Optional. The summarization config.
"disabled": True or False, # Optional. Whether summarization is disabled.
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. Configurations for the LLM model.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"prompt": "A String", # Optional. The prompt definition. If not set, default prompt will be used.
},
},
],
"name": "A String", # Required. The data store tool name.
},
"displayName": "A String", # Output only. The display name of the tool, derived based on the tool's type. For example, display name of a ClientFunction is derived from its `name` property.
"etag": "A String", # 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": "A String", # Optional. The execution type of the tool.
"fileSearchTool": { # The file search tool allows the agent to search across the files uploaded by the app/agent developer. It has presets to give relatively good quality search over the uploaded files and summarization of the retrieved results. # Optional. The file search tool.
"corpusType": "A String", # Optional. The type of the corpus. Default is FULLY_MANAGED.
"description": "A String", # Optional. The tool description.
"fileCorpus": "A String", # Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
"name": "A String", # Required. The tool name.
},
"generatedSummary": "A String", # Output only. If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.
"googleSearchTool": { # Represents a tool to perform Google web searches for grounding. See https://cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool#google-search. # Optional. The google search tool.
"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.
"A String",
],
"description": "A String", # Optional. Description of the tool's purpose.
"excludeDomains": [ # Optional. List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.
"A String",
],
"name": "A String", # Required. The name of the tool.
"preferredDomains": [ # Optional. Specifies domains to restrict search results to. Example: "example.com", "another.site". A maximum of 20 domains can be specified.
"A String",
],
"promptConfig": { # Prompt settings used by the model when processing or summarizing the google search results. # Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice.
"textPrompt": "A String", # 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": "A String", # 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.
},
},
"mcpTool": { # An MCP tool. See https://modelcontextprotocol.io/specification/2025-06-18/server/tools for more details. # Optional. The MCP tool. An MCP tool cannot be created or updated directly and is managed by the MCP toolset.
"apiAuthentication": { # Authentication information required for API calls. # 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.
"apiKeyConfig": { # Configurations for authentication with API key. # Optional. Config for API key auth.
"apiKeySecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"keyName": "A String", # 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=", "X-Api-Key" would be the parameter name.
"requestLocation": "A String", # Required. Key location in the request.
},
"bearerTokenConfig": { # Configurations for authentication with a bearer token. # Optional. Config for bearer token auth.
"token": "A String", # Required. The bearer token. Must be in the format `$context.variables.`.
},
"oauthConfig": { # Configurations for authentication with OAuth. # Optional. Config for OAuth.
"clientId": "A String", # Required. The client ID from the OAuth provider.
"clientSecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"oauthGrantType": "A String", # Required. OAuth grant types.
"scopes": [ # Optional. The OAuth scopes to grant.
"A String",
],
"tokenEndpoint": "A String", # Required. The token endpoint in the OAuth provider to exchange for an access token.
},
"serviceAccountAuthConfig": { # Configurations for authentication using a custom service account. # Optional. Config for service account authentication.
"scopes": [ # Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
"A String",
],
"serviceAccount": "A String", # 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 `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"serviceAgentIdTokenAuthConfig": { # Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. # Optional. Config for ID token auth generated from CES service agent.
},
},
"customHeaders": { # Optional. The custom headers to send in the request to the MCP server. The values must be in the format `$context.variables.` and can be set in the session variables. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection for more details.
"a_key": "A String",
},
"description": "A String", # Optional. The description of the MCP tool.
"inputSchema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Optional. The schema of the input arguments of the MCP tool.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"name": "A String", # Required. The name of the MCP tool.
"outputSchema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Optional. The schema of the output arguments of the MCP tool.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"serverAddress": "A String", # 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.
"serviceDirectoryConfig": { # Configuration for tools using Service Directory. # Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter.
"service": "A String", # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
},
"tlsConfig": { # The TLS configuration. # Optional. The TLS configuration. Includes the custom server certificates that the client should trust.
"caCerts": [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
{ # The CA certificate.
"cert": "A String", # 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: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
"displayName": "A String", # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
},
],
},
},
"name": "A String", # Identifier. The resource name of the tool. Format: * `projects/{project}/locations/{location}/apps/{app}/tools/{tool}` for standalone tools. * `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tools/{tool}` for tools retrieved from a toolset. These tools are dynamic and output-only; they cannot be referenced directly where a tool is expected.
"openApiTool": { # A remote API tool defined by an OpenAPI schema. # Optional. The open API tool.
"apiAuthentication": { # Authentication information required for API calls. # Optional. Authentication information required by the API.
"apiKeyConfig": { # Configurations for authentication with API key. # Optional. Config for API key auth.
"apiKeySecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"keyName": "A String", # 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=", "X-Api-Key" would be the parameter name.
"requestLocation": "A String", # Required. Key location in the request.
},
"bearerTokenConfig": { # Configurations for authentication with a bearer token. # Optional. Config for bearer token auth.
"token": "A String", # Required. The bearer token. Must be in the format `$context.variables.`.
},
"oauthConfig": { # Configurations for authentication with OAuth. # Optional. Config for OAuth.
"clientId": "A String", # Required. The client ID from the OAuth provider.
"clientSecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"oauthGrantType": "A String", # Required. OAuth grant types.
"scopes": [ # Optional. The OAuth scopes to grant.
"A String",
],
"tokenEndpoint": "A String", # Required. The token endpoint in the OAuth provider to exchange for an access token.
},
"serviceAccountAuthConfig": { # Configurations for authentication using a custom service account. # Optional. Config for service account authentication.
"scopes": [ # Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
"A String",
],
"serviceAccount": "A String", # 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 `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"serviceAgentIdTokenAuthConfig": { # Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. # Optional. Config for ID token auth generated from CES service agent.
},
},
"description": "A String", # Optional. The description of the tool. If not provided, the description of the tool will be derived from the OpenAPI schema, from `operation.description` or `operation.summary`.
"ignoreUnknownFields": True or False, # Optional. If true, the agent will ignore unknown fields in the API response.
"name": "A String", # Optional. The name of the tool. If not provided, the name of the tool will be derived from the OpenAPI schema, from `operation.operationId`.
"openApiSchema": "A String", # Required. The OpenAPI schema in JSON or YAML format.
"serviceDirectoryConfig": { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
"service": "A String", # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
},
"tlsConfig": { # The TLS configuration. # Optional. The TLS configuration. Includes the custom server certificates that the client will trust.
"caCerts": [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
{ # The CA certificate.
"cert": "A String", # 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: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
"displayName": "A String", # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
},
],
},
"url": "A String", # 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.
},
"pythonFunction": { # A Python function tool. # Optional. The python function tool.
"description": "A String", # Output only. The description of the Python function, parsed from the python code's docstring.
"name": "A String", # 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": "A String", # Optional. The Python code to execute for the tool.
},
"systemTool": { # Pre-defined system tool. # Optional. The system tool.
"description": "A String", # Output only. The description of the system tool.
"name": "A String", # Required. The name of the system tool.
},
"toolFakeConfig": { # Configuration for tool behavior in fake mode. # Optional. Configuration for tool behavior in fake mode.
"codeBlock": { # A code block to be executed instead of a real tool call. # Optional. Code block which will be executed instead of a real tool call.
"pythonCode": "A String", # 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.
},
"enableFakeMode": True or False, # Optional. Whether the tool is using fake mode.
},
"updateTime": "A String", # Output only. Timestamp when the tool was last updated.
"widgetTool": { # Represents a widget tool that the agent can invoke. When the tool is chosen by the agent, agent will return the widget to the client. The client is responsible for processing the widget and generating the next user query to continue the interaction with the agent. # Optional. The widget tool.
"dataMapping": { # Configuration for mapping data from a source tool to the widget's input parameters. # Optional. The mapping that defines how data from a source tool is mapped to the widget's input parameters.
"fieldMappings": { # Optional. A map of widget input parameter fields to the corresponding output fields of the source tool.
"a_key": "A String",
},
"mode": "A String", # Optional. The mode of the data mapping.
"pythonFunction": { # A Python function tool. # Optional. Configuration for a Python function used to transform the source tool's output into the widget's input format.
"description": "A String", # Output only. The description of the Python function, parsed from the python code's docstring.
"name": "A String", # 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": "A String", # Optional. The Python code to execute for the tool.
},
"pythonScript": "A String", # Deprecated: Use `python_function` instead.
"sourceToolName": "A String", # Optional. The resource name of the tool that provides the data for the widget (e.g., a search tool or a custom function). Format: `projects/{project}/locations/{location}/agents/{agent}/tools/{tool}`
},
"description": "A String", # Optional. The description of the widget tool.
"name": "A String", # Required. The display name of the widget tool.
"parameters": { # Represents a select subset of an OpenAPI 3.0 schema object. # Optional. The input parameters of the widget tool.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"uiConfig": { # Optional. Configuration for rendering the widget.
"a_key": "", # Properties of the object.
},
"widgetType": "A String", # Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED.
},
},
"toolGenerationConfig": { # The configuration to be used to generate a tool. # Optional. The configuration to be used to generate the tool.
"context": "A String", # Optional. The context which describes the tool to be generated. This can be empty if the tool request & response are provided.
"fileContexts": [ # Optional. The files to be used as context.
{ # Files to be used as context. Files can be provided as raw bytes.
"fileBytes": { # File provided as raw bytes. # Optional. File provided as raw bytes.
"data": "A String", # Required. Raw bytes of the file.
"fileName": "A String", # Required. The name of the file provided as raw bytes.
"mimeType": "A String", # Required. The IANA standard MIME type of the source data.
},
},
],
"openApiToolsetGenerationConfig": { # The configuration to be used to generate an Open API schema. # Optional. The configuration to be used to generate an Open API schema.
"operationGenerationConfigs": [ # Required. The list of operations to be added to the Open API schema.
{ # The configuration to be used to generate an operation in the Open API schema.
"method": "A String", # Required. The uri of the tool. This should include query and path parameters if any.
"path": "A String", # Required. The path of the tool to be appended to the base uri. This should include query and path parameters if any.
"requestJson": "A String", # Required. A sample request to the tool in JSON format. Skip if the tool does not support request body.
"responseJson": "A String", # Required. A sample response from the tool in JSON format.
},
],
"uri": "A String", # Required. The base uri of the tool.
},
},
"toolset": { # A toolset represents a group of dynamically managed tools that can be used by the agent. # The toolset resource to be used by the LLM assistant, can be empty for generating a new toolset.
"connectorToolset": { # A toolset that generates tools from an Integration Connectors Connection. # Optional. A toolset that generates tools from an Integration Connectors Connection.
"authConfig": { # End-user authentication configuration used for Connection calls. The field values must be the names of context variables in the format `$context.variables.`. # 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
"oauth2AuthCodeConfig": { # Oauth 2.0 Authorization Code authentication configuration. # Oauth 2.0 Authorization Code authentication.
"oauthToken": "A String", # Required. Oauth token parameter name to pass through. Must be in the format `$context.variables.`.
},
"oauth2JwtBearerConfig": { # JWT Profile Oauth 2.0 Authorization Grant authentication configuration. # JWT Profile Oauth 2.0 Authorization Grant authentication.
"clientKey": "A String", # Required. Client parameter name to pass through. Must be in the format `$context.variables.`.
"issuer": "A String", # Required. Issuer parameter name to pass through. Must be in the format `$context.variables.`.
"subject": "A String", # Required. Subject parameter name to pass through. Must be in the format `$context.variables.`.
},
},
"connection": "A String", # Required. The full resource name of the referenced Integration Connectors Connection. Format: `projects/{project}/locations/{location}/connections/{connection}`
"connectorActions": [ # Required. The list of connector actions/entity operations to generate tools for.
{ # Configuration of an Action for the tool to use. Note: This can be either an Action or an Operation. See https://cloud.google.com/integration-connectors/docs/entities-operation-action for details.
"connectionActionId": "A String", # ID of a Connection action for the tool to use.
"entityOperation": { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
"entityId": "A String", # Required. ID of the entity.
"operation": "A String", # Required. Operation to perform on the entity.
},
"inputFields": [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
"A String",
],
"outputFields": [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
"A String",
],
},
],
},
"createTime": "A String", # Output only. Timestamp when the toolset was created.
"description": "A String", # Optional. The description of the toolset.
"displayName": "A String", # Optional. The display name of the toolset. Must be unique within the same app.
"etag": "A String", # 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": "A String", # Optional. The execution type of the tools in the toolset.
"mcpToolset": { # A toolset that contains a list of tools that are offered by the MCP server. # Optional. A toolset that contains a list of tools that are offered by the MCP server.
"apiAuthentication": { # Authentication information required for API calls. # 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.
"apiKeyConfig": { # Configurations for authentication with API key. # Optional. Config for API key auth.
"apiKeySecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"keyName": "A String", # 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=", "X-Api-Key" would be the parameter name.
"requestLocation": "A String", # Required. Key location in the request.
},
"bearerTokenConfig": { # Configurations for authentication with a bearer token. # Optional. Config for bearer token auth.
"token": "A String", # Required. The bearer token. Must be in the format `$context.variables.`.
},
"oauthConfig": { # Configurations for authentication with OAuth. # Optional. Config for OAuth.
"clientId": "A String", # Required. The client ID from the OAuth provider.
"clientSecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"oauthGrantType": "A String", # Required. OAuth grant types.
"scopes": [ # Optional. The OAuth scopes to grant.
"A String",
],
"tokenEndpoint": "A String", # Required. The token endpoint in the OAuth provider to exchange for an access token.
},
"serviceAccountAuthConfig": { # Configurations for authentication using a custom service account. # Optional. Config for service account authentication.
"scopes": [ # Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
"A String",
],
"serviceAccount": "A String", # 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 `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"serviceAgentIdTokenAuthConfig": { # Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. # Optional. Config for ID token auth generated from CES service agent.
},
},
"customHeaders": { # Optional. The custom headers to send in the request to the MCP server. The values must be in the format `$context.variables.` and can be set in the session variables. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection for more details.
"a_key": "A String",
},
"serverAddress": "A String", # 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.
"serviceDirectoryConfig": { # Configuration for tools using Service Directory. # Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter.
"service": "A String", # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
},
"tlsConfig": { # The TLS configuration. # Optional. The TLS configuration. Includes the custom server certificates that the client should trust.
"caCerts": [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
{ # The CA certificate.
"cert": "A String", # 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: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
"displayName": "A String", # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
},
],
},
},
"name": "A String", # Identifier. The unique identifier of the toolset. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
"openApiToolset": { # A toolset that contains a list of tools that are defined by an OpenAPI schema. # Optional. A toolset that contains a list of tools that are defined by an OpenAPI schema.
"apiAuthentication": { # Authentication information required for API calls. # Optional. Authentication information required by the API.
"apiKeyConfig": { # Configurations for authentication with API key. # Optional. Config for API key auth.
"apiKeySecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"keyName": "A String", # 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=", "X-Api-Key" would be the parameter name.
"requestLocation": "A String", # Required. Key location in the request.
},
"bearerTokenConfig": { # Configurations for authentication with a bearer token. # Optional. Config for bearer token auth.
"token": "A String", # Required. The bearer token. Must be in the format `$context.variables.`.
},
"oauthConfig": { # Configurations for authentication with OAuth. # Optional. Config for OAuth.
"clientId": "A String", # Required. The client ID from the OAuth provider.
"clientSecretVersion": "A String", # Required. The name of the SecretManager secret version resource storing the client secret. Format: `projects/{project}/secrets/{secret}/versions/{version}` Note: You should grant `roles/secretmanager.secretAccessor` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"oauthGrantType": "A String", # Required. OAuth grant types.
"scopes": [ # Optional. The OAuth scopes to grant.
"A String",
],
"tokenEndpoint": "A String", # Required. The token endpoint in the OAuth provider to exchange for an access token.
},
"serviceAccountAuthConfig": { # Configurations for authentication using a custom service account. # Optional. Config for service account authentication.
"scopes": [ # Optional. The OAuth scopes to grant. If not specified, the default scope `https://www.googleapis.com/auth/cloud-platform` is used.
"A String",
],
"serviceAccount": "A String", # 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 `Authorization` header of the request. The service account must have the `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"serviceAgentIdTokenAuthConfig": { # Configurations for authentication with [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. # Optional. Config for ID token auth generated from CES service agent.
},
},
"ignoreUnknownFields": True or False, # Optional. If true, the agent will ignore unknown fields in the API response for all operations defined in the OpenAPI schema.
"openApiSchema": "A String", # Required. The OpenAPI schema of the toolset.
"serviceDirectoryConfig": { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
"service": "A String", # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`. Location of the service directory must be the same as the location of the app.
},
"tlsConfig": { # The TLS configuration. # Optional. The TLS configuration. Includes the custom server certificates
"caCerts": [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
{ # The CA certificate.
"cert": "A String", # 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: ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ```
"displayName": "A String", # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
},
],
},
"url": "A String", # 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.
},
"toolFakeConfig": { # Configuration for tool behavior in fake mode. # Optional. Configuration for tools behavior in fake mode.
"codeBlock": { # A code block to be executed instead of a real tool call. # Optional. Code block which will be executed instead of a real tool call.
"pythonCode": "A String", # 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.
},
"enableFakeMode": True or False, # Optional. Whether the tool is using fake mode.
},
"updateTime": "A String", # Output only. Timestamp when the toolset was last updated.
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
get(name, x__xgafv=None)
Gets details of the specified app.
Args:
name: string, Required. The resource name of the app to retrieve. (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An app serves as a top-level container for a group of agents, including the root agent and its sub-agents, along with their associated configurations. These agents work together to achieve specific goals within the app's context.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A String", # Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud Storage](https://cloud.google.com/storage). Note: Please make sure the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has `storage.objects.get` permission to the Cloud Storage object.
"prebuiltAmbientNoise": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A String", # 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: `disable_barge_in` is deprecated in favor of `disable_barge_in_control` in ChannelProfile.
},
"inactivityTimeout": "A String", # 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.
"synthesizeSpeechConfigs": { # Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig. 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"speakingRate": 3.14, # 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.
"voice": "A String", # 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](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A String", # 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: `projects/{project}/secrets/{secret}/versions/{version}`
"privateKey": "A String", # Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`
"tlsCertificate": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"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"
"A String",
],
"enableOriginCheck": True or False, # Optional. Indicates whether origin check for the web widget is enabled. If `true`, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.
"enablePublicAccess": True or False, # Optional. Indicates whether public access to the web widget is enabled. If `true`, the web widget will be publicly accessible. If `false`, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.
"enableRecaptcha": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # Optional. Whether to escalate the session in EndSession. If session is escalated, metadata in EndSession will contain `session_escalated = true`. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent for details.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by [supported language code](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A String", # 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # 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.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
{ # A persona represents an end user in an evaluation.
"description": "A String", # Optional. The description of the persona.
"displayName": "A String", # Required. The display name of the persona. Unique within an app.
"name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
"personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
"speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
"environment": "A String", # Optional. The simulated audio environment.
"speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
"voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
},
},
],
"evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
"goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
"goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
"scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
"scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for scenario evaluations.
},
"globalInstruction": "A String", # 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: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A String", # Optional. Deprecated: This feature is no longer supported. Use `enable_multilingual_support` instead to improve handling of multilingual input. The action to perform when an agent receives input in an unsupported language. 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 EndSession signal with corresponding metadata to terminate the conversation.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A String", # 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 `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"cloudLoggingSettings": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) deidentify template name to instruct on how to de-identify content. Format: `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`
"enableRedaction": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) inspect template name to configure detection of sensitive data types. Format: `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A String", # Optional. The time zone of the app from the [time zone database](https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
},
"toolExecutionMode": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
}
importApp(parent, body=None, x__xgafv=None)
Imports the specified app.
Args:
parent: string, Required. The parent resource name with the location of the app to import. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for AgentService.ImportApp.
"appContent": "A String", # Raw bytes representing the compressed zip file with the app folder structure.
"appId": "A String", # Optional. The ID to use for the imported app. * If not specified, a unique ID will be automatically assigned for the app. * Otherwise, the imported app will use this ID as the final component of its resource name. If an app with the same ID already exists at the specified location in the project, the content of the existing app will be replaced.
"displayName": "A String", # Optional. The display name of the app to import. * If the app is created on import, and the display name is specified, the imported app will use this display name. If a conflict is detected with an existing app, a timestamp will be appended to the display name to make it unique. * If the app is a reimport, this field should not be set. Providing a display name during reimport will result in an INVALID_ARGUMENT error.
"gcsUri": "A String", # The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI from which to import app. The format of this URI must be `gs:///`.
"ignoreAppLock": True or False, # Optional. Flag for overriding the app lock during import. If set to true, the import process will ignore the app lock.
"importOptions": { # Configuration options for the app import process. These options control how the import behaves, particularly when conflicts arise with existing app data. # Optional. Options governing the import process for the app.
"conflictResolutionStrategy": "A String", # Optional. The strategy to use when resolving conflicts during import.
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
importEvaluations(parent, body=None, x__xgafv=None)
Imports evaluations into the app.
Args:
parent: string, Required. The app to import the evaluations into. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for EvaluationService.ImportEvaluations.
"conversationList": { # A list of conversation resource names. # The conversations to import the evaluations from.
"conversations": [ # Optional. Conversation resource names.
"A String",
],
},
"csvContent": "A String", # Raw bytes representing the csv file with the evaluations structure.
"gcsUri": "A String", # The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI from which to import evaluations. The format of this URI must be `gs:///`.
"importOptions": { # Configuration options for the evaluation import process. These options control how the import behaves, particularly when conflicts arise with existing evaluations data. # Optional. Options governing the import process for the evaluations.
"conflictResolutionStrategy": "A String", # Optional. The strategy to use when resolving conflicts during import.
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists apps in the given project and location.
Args:
parent: string, Required. The resource name of the location to list apps from. (required)
filter: string, Optional. Filter to be applied when listing the apps. See https://google.aip.dev/160 for more details.
orderBy: string, Optional. Field to sort by. Only "name" and "create_time" is supported. See https://google.aip.dev/132#ordering for more details.
pageSize: integer, Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.
pageToken: string, Optional. The next_page_token value returned from a previous list AgentService.ListApps call.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for AgentService.ListApps.
"apps": [ # The list of apps.
{ # An app serves as a top-level container for a group of agents, including the root agent and its sub-agents, along with their associated configurations. These agents work together to achieve specific goals within the app's context.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A String", # Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud Storage](https://cloud.google.com/storage). Note: Please make sure the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has `storage.objects.get` permission to the Cloud Storage object.
"prebuiltAmbientNoise": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A String", # 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: `disable_barge_in` is deprecated in favor of `disable_barge_in_control` in ChannelProfile.
},
"inactivityTimeout": "A String", # 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.
"synthesizeSpeechConfigs": { # Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig. 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"speakingRate": 3.14, # 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.
"voice": "A String", # 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](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A String", # 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: `projects/{project}/secrets/{secret}/versions/{version}`
"privateKey": "A String", # Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`
"tlsCertificate": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"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"
"A String",
],
"enableOriginCheck": True or False, # Optional. Indicates whether origin check for the web widget is enabled. If `true`, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.
"enablePublicAccess": True or False, # Optional. Indicates whether public access to the web widget is enabled. If `true`, the web widget will be publicly accessible. If `false`, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.
"enableRecaptcha": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # Optional. Whether to escalate the session in EndSession. If session is escalated, metadata in EndSession will contain `session_escalated = true`. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent for details.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by [supported language code](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A String", # 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # 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.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
{ # A persona represents an end user in an evaluation.
"description": "A String", # Optional. The description of the persona.
"displayName": "A String", # Required. The display name of the persona. Unique within an app.
"name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
"personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
"speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
"environment": "A String", # Optional. The simulated audio environment.
"speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
"voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
},
},
],
"evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
"goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
"goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
"scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
"scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for scenario evaluations.
},
"globalInstruction": "A String", # 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: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A String", # Optional. Deprecated: This feature is no longer supported. Use `enable_multilingual_support` instead to improve handling of multilingual input. The action to perform when an agent receives input in an unsupported language. 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 EndSession signal with corresponding metadata to terminate the conversation.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A String", # 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 `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"cloudLoggingSettings": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) deidentify template name to instruct on how to de-identify content. Format: `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`
"enableRedaction": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) inspect template name to configure detection of sensitive data types. Format: `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A String", # Optional. The time zone of the app from the [time zone database](https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
},
"toolExecutionMode": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
},
],
"nextPageToken": "A String", # A token that can be sent as ListAppsRequest.page_token to retrieve the next page. Absence of this field indicates there are no subsequent pages.
"unreachable": [ # Unordered list. Locations that could not be reached.
"A String",
],
}
list_next()
Retrieves the next page of results.
Args:
previous_request: The request for the previous page. (required)
previous_response: The response from the request for the previous page. (required)
Returns:
A request object that you can call 'execute()' on to request the next
page. Returns None if there are no more items in the collection.
patch(name, body=None, updateMask=None, x__xgafv=None)
Updates the specified app.
Args:
name: string, Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # An app serves as a top-level container for a group of agents, including the root agent and its sub-agents, along with their associated configurations. These agents work together to achieve specific goals within the app's context.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A String", # Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud Storage](https://cloud.google.com/storage). Note: Please make sure the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has `storage.objects.get` permission to the Cloud Storage object.
"prebuiltAmbientNoise": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A String", # 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: `disable_barge_in` is deprecated in favor of `disable_barge_in_control` in ChannelProfile.
},
"inactivityTimeout": "A String", # 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.
"synthesizeSpeechConfigs": { # Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig. 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"speakingRate": 3.14, # 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.
"voice": "A String", # 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](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A String", # 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: `projects/{project}/secrets/{secret}/versions/{version}`
"privateKey": "A String", # Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`
"tlsCertificate": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"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"
"A String",
],
"enableOriginCheck": True or False, # Optional. Indicates whether origin check for the web widget is enabled. If `true`, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.
"enablePublicAccess": True or False, # Optional. Indicates whether public access to the web widget is enabled. If `true`, the web widget will be publicly accessible. If `false`, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.
"enableRecaptcha": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # Optional. Whether to escalate the session in EndSession. If session is escalated, metadata in EndSession will contain `session_escalated = true`. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent for details.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by [supported language code](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A String", # 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # 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.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
{ # A persona represents an end user in an evaluation.
"description": "A String", # Optional. The description of the persona.
"displayName": "A String", # Required. The display name of the persona. Unique within an app.
"name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
"personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
"speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
"environment": "A String", # Optional. The simulated audio environment.
"speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
"voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
},
},
],
"evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
"goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
"goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
"scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
"scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for scenario evaluations.
},
"globalInstruction": "A String", # 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: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A String", # Optional. Deprecated: This feature is no longer supported. Use `enable_multilingual_support` instead to improve handling of multilingual input. The action to perform when an agent receives input in an unsupported language. 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 EndSession signal with corresponding metadata to terminate the conversation.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A String", # 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 `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"cloudLoggingSettings": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) deidentify template name to instruct on how to de-identify content. Format: `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`
"enableRedaction": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) inspect template name to configure detection of sensitive data types. Format: `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A String", # Optional. The time zone of the app from the [time zone database](https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
},
"toolExecutionMode": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
}
updateMask: string, Optional. Field mask is used to control which fields get updated. If the mask is not present, all fields will be updated.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An app serves as a top-level container for a group of agents, including the root agent and its sub-agents, along with their associated configurations. These agents work together to achieve specific goals within the app's context.
"audioProcessingConfig": { # Configuration for how the input and output audio should be processed and delivered. # Optional. Audio processing configuration of the app.
"ambientSoundConfig": { # Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation. # Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.
"gcsUri": "A String", # Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud Storage](https://cloud.google.com/storage). Note: Please make sure the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has `storage.objects.get` permission to the Cloud Storage object.
"prebuiltAmbientNoise": "A String", # Optional. Deprecated: `prebuilt_ambient_noise` is deprecated in favor of `prebuilt_ambient_sound`.
"prebuiltAmbientSound": "A String", # 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"
"volumeGainDb": 3.14, # 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.
},
"bargeInConfig": { # Configuration for how the user barge-in activities should be handled. # Optional. Configures the agent behavior for the user barge-in activities.
"bargeInAwareness": True or False, # 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.
"disableBargeIn": True or False, # Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored. Deprecated: `disable_barge_in` is deprecated in favor of `disable_barge_in_control` in ChannelProfile.
},
"inactivityTimeout": "A String", # 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.
"synthesizeSpeechConfigs": { # Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig. 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.
"a_key": { # Configuration for how the agent response should be synthesized.
"speakingRate": 3.14, # 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.
"voice": "A String", # 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](https://cloud.google.com/text-to-speech/docs/voices) from Cloud Text-to-Speech.
},
},
},
"clientCertificateSettings": { # Settings for custom client certificates. # Optional. The default client certificate settings for the app.
"passphrase": "A String", # 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: `projects/{project}/secrets/{secret}/versions/{version}`
"privateKey": "A String", # Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`
"tlsCertificate": "A String", # Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.
},
"createTime": "A String", # Output only. Timestamp when the app was created.
"dataStoreSettings": { # Data store related settings for the app. # Optional. The data store settings for the app.
"engines": [ # Output only. The engines for the app.
{ # An engine to which the data stores are connected. See Vertex AI Search: https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
"name": "A String", # Output only. The resource name of the engine. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`
"type": "A String", # Output only. The type of the engine.
},
],
},
"defaultChannelProfile": { # A ChannelProfile configures the agent's behavior for a specific communication channel, such as web UI or telephony. # Optional. The default channel profile used by the app.
"channelType": "A String", # Optional. The type of the channel profile.
"disableBargeInControl": True or False, # 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.
"disableDtmf": True or False, # Optional. Whether to disable DTMF (dual-tone multi-frequency).
"noiseSuppressionLevel": "A String", # Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".
"personaProperty": { # Represents the persona property of a channel. # Optional. The persona property of the channel profile.
"persona": "A String", # Optional. The persona of the channel.
},
"profileId": "A String", # Optional. The unique identifier of the channel profile.
"webWidgetConfig": { # Message for configuration for the web widget. # Optional. The configuration for the web widget.
"modality": "A String", # Optional. The modality of the web widget.
"securitySettings": { # Security settings for the web widget. # Optional. The security settings of the web widget.
"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"
"A String",
],
"enableOriginCheck": True or False, # Optional. Indicates whether origin check for the web widget is enabled. If `true`, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.
"enablePublicAccess": True or False, # Optional. Indicates whether public access to the web widget is enabled. If `true`, the web widget will be publicly accessible. If `false`, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.
"enableRecaptcha": True or False, # Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.
},
"theme": "A String", # Optional. The theme of the web widget.
"webWidgetTitle": "A String", # Optional. The title of the web widget.
},
},
"deploymentCount": 42, # Output only. Number of deployments in the app.
"description": "A String", # Optional. Human-readable description of the app.
"displayName": "A String", # Required. Display name of the app.
"errorHandlingSettings": { # Settings to describe how errors should be handled in the app. # Optional. Error handling settings of the app.
"endSessionConfig": { # Configuration for ending the session in case of system errors (e.g. LLM errors). # Optional. Configuration for ending the session in case of system errors (e.g. LLM errors).
"escalateSession": True or False, # Optional. Whether to escalate the session in EndSession. If session is escalated, metadata in EndSession will contain `session_escalated = true`. See https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent for details.
},
"errorHandlingStrategy": "A String", # Optional. The strategy to use for error handling.
"fallbackResponseConfig": { # Configuration for handling fallback responses. # Optional. Configuration for handling fallback responses.
"customFallbackMessages": { # Optional. The fallback messages in case of system errors (e.g. LLM errors), mapped by [supported language code](https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
"a_key": "A String",
},
"maxFallbackAttempts": 42, # Optional. The maximum number of fallback attempts to make before the agent emitting EndSession Signal.
},
},
"etag": "A String", # 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.
"evaluationMetricsThresholds": { # Threshold settings for metrics in an Evaluation. # Optional. The evaluation thresholds for the app.
"goldenEvaluationMetricsThresholds": { # Settings for golden evaluations. # Optional. The golden evaluation metrics thresholds.
"expectationLevelMetricsThresholds": { # Expectation level metrics thresholds. # Optional. The expectation level metrics thresholds.
"toolInvocationParameterCorrectnessThreshold": 3.14, # Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.
},
"toolMatchingSettings": { # Settings for matching tool calls. # 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.
"extraToolCallBehavior": "A String", # Optional. Behavior for extra tool calls. Defaults to FAIL.
},
"turnLevelMetricsThresholds": { # Turn level metrics thresholds. # Optional. The turn level metrics thresholds.
"overallToolInvocationCorrectnessThreshold": 3.14, # Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.
"semanticSimilarityChannel": "A String", # Optional. The semantic similarity channel to use for evaluation.
"semanticSimilaritySuccessThreshold": 42, # Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
},
},
"goldenHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for golden evaluations.
"hallucinationMetricBehavior": "A String", # Optional. Deprecated: Use `golden_hallucination_metric_behavior` instead. The hallucination metric behavior is currently used for golden evaluations.
"scenarioHallucinationMetricBehavior": "A String", # Optional. The hallucination metric behavior for scenario evaluations.
},
"evaluationPersonas": [ # Optional. The evaluation personas for the app. This field is used to define the personas that can be used for evaluation. Maximum of 30 personas can be defined.
{ # A persona represents an end user in an evaluation.
"description": "A String", # Optional. The description of the persona.
"displayName": "A String", # Required. The display name of the persona. Unique within an app.
"name": "A String", # Required. The unique identifier of the persona. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
"personality": "A String", # Required. An instruction for the agent on how to behave in the evaluation.
"speechConfig": { # Configuration for Text-to-Speech generation. # Optional. Configuration for how the persona sounds (TTS settings).
"environment": "A String", # Optional. The simulated audio environment.
"speakingRate": 3.14, # Optional. The speaking rate. 1.0 is normal. Lower is slower (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent handles fast talkers.
"voiceId": "A String", # Optional. The specific voice identifier/accent to use. Example: "en-US-Wavenet-D" or "en-GB-Standard-A"
},
},
],
"evaluationSettings": { # Settings for evaluation. # Optional. The evaluation settings for the app.
"goldenEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for golden evaluations.
"goldenRunMethod": "A String", # Optional. The default method used to run golden evaluations. This will be used if no golden_run_method is specified in the RunEvaluationRequest.
"scenarioConversationInitiator": "A String", # Optional. Who starts the conversation in a scenario evaluation.
"scenarioEvaluationToolCallBehaviour": "A String", # Optional. Configures the default tool call behaviour for scenario evaluations.
},
"globalInstruction": "A String", # 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: `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
"A String",
],
"languageSettings": { # Language settings of the app. # Optional. Language settings of the app.
"defaultLanguageCode": "A String", # Optional. The default language code of the app.
"enableMultilingualSupport": True or False, # Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.
"fallbackAction": "A String", # Optional. Deprecated: This feature is no longer supported. Use `enable_multilingual_support` instead to improve handling of multilingual input. The action to perform when an agent receives input in an unsupported language. 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 EndSession signal with corresponding metadata to terminate the conversation.
"supportedLanguageCodes": [ # Optional. List of languages codes supported by the app, in addition to the `default_language_code`.
"A String",
],
},
"locked": True or False, # Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.
"loggingSettings": { # Settings to describe the logging behaviors for the app. # Optional. Logging settings of the app.
"audioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"bigqueryExportSettings": { # Settings to describe the BigQuery export behaviors for the app. # Optional. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.
"dataset": "A String", # Optional. The BigQuery **dataset ID** to export the data to.
"enabled": True or False, # Optional. Indicates whether the BigQuery export is enabled.
"project": "A String", # 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 `roles/bigquery.admin` role to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
},
"cloudLoggingSettings": { # Settings to describe the Cloud Logging behaviors for the app. # Optional. Settings to describe the Cloud Logging behaviors for the app.
"enableCloudLogging": True or False, # Optional. Whether to enable Cloud Logging for the sessions.
},
"conversationLoggingSettings": { # Settings to describe the conversation logging behaviors for the app. # Optional. Settings to describe the conversation logging behaviors for the app.
"disableConversationLogging": True or False, # Optional. Whether to disable conversation logging for the sessions.
"retentionWindow": "A String", # Optional. Controls the retention window for the conversation. If not set, the conversation will be retained for 365 days.
},
"evaluationAudioRecordingConfig": { # Configuration for how the audio interactions should be recorded. # Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.
"gcsBucket": "A String", # Optional. The [Cloud Storage](https://cloud.google.com/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 `storage.objects.create` permission to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
"gcsPathPrefix": "A String", # 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 `$project/$location/$app/$date/$session/` will be used.
},
"metricAnalysisSettings": { # Settings to describe the conversation data collection behaviors for LLM analysis metrics pipeline. # Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.
"llmMetricsOptedOut": True or False, # 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.
},
"redactionConfig": { # Configuration to instruct how sensitive data should be handled. # Optional. Configuration for how sensitive data should be redacted.
"deidentifyTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) deidentify template name to instruct on how to de-identify content. Format: `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`
"enableRedaction": True or False, # Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.
"inspectTemplate": "A String", # Optional. [DLP](https://cloud.google.com/dlp/docs) inspect template name to configure detection of sensitive data types. Format: `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
},
},
"metadata": { # Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.
"a_key": "A String",
},
"modelSettings": { # Model settings contains various configurations for the LLM model. # Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.
"model": "A String", # Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.
"temperature": 3.14, # 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.
},
"name": "A String", # Identifier. The unique identifier of the app. Format: `projects/{project}/locations/{location}/apps/{app}`
"pinned": True or False, # Optional. Whether the app is pinned in the app list.
"predefinedVariableDeclarations": [ # Output only. The declarations of predefined variables for the app.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
"rootAgent": "A String", # Optional. The root agent is the entry point of the app. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
"timeZoneSettings": { # TimeZone settings of the app. # Optional. TimeZone settings of the app.
"timeZone": "A String", # Optional. The time zone of the app from the [time zone database](https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
},
"toolExecutionMode": "A String", # Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.
"updateTime": "A String", # Output only. Timestamp when the app was last updated.
"variableDeclarations": [ # Optional. The declarations of the variables.
{ # Defines the structure and metadata for a variable.
"description": "A String", # Required. The description of the variable.
"name": "A String", # Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.
"schema": { # Represents a select subset of an OpenAPI 3.0 schema object. # Required. The schema of the variable.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
},
],
}
retrieveToolSchema(parent, body=None, x__xgafv=None)
Retrieve the schema of the given tool. The schema is computed on the fly for the given instance of the tool.
Args:
parent: string, Required. The resource name of the app which the tool/toolset belongs to. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for ToolService.RetrieveToolSchema.
"tool": "A String", # Optional. The name of the tool to retrieve the schema for. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}
"toolsetTool": { # A tool that is created from a toolset. # Optional. The toolset tool to retrieve the schema for. Only one tool should match the predicate from the toolset. Otherwise, an error will be returned.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for ToolService.RetrieveToolSchema.
"inputSchema": { # Represents a select subset of an OpenAPI 3.0 schema object. # The schema of the tool input parameters.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"outputSchema": { # Represents a select subset of an OpenAPI 3.0 schema object. # The schema of the tool output parameters.
"additionalProperties": # Object with schema name: Schema # 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.
# Object with schema name: Schema
],
"default": "", # Optional. Default value of the data.
"defs": { # Optional. A map of definitions for use by `ref`. Only allowed at the root of the schema.
"a_key": # Object with schema name: Schema
},
"description": "A String", # Optional. The description of the data.
"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"]}
"A String",
],
"items": # Object with schema name: Schema # Optional. Schema of the elements of Type.ARRAY.
"maxItems": "A String", # Optional. Maximum number of the elements for Type.ARRAY.
"maximum": 3.14, # Optional. Maximum value for Type.INTEGER and Type.NUMBER.
"minItems": "A String", # Optional. Minimum number of the elements for Type.ARRAY.
"minimum": 3.14, # Optional. Minimum value for Type.INTEGER and Type.NUMBER.
"nullable": True or False, # Optional. Indicates if the value may be null.
"prefixItems": [ # Optional. Schemas of initial elements of Type.ARRAY.
# Object with schema name: Schema
],
"properties": { # Optional. Properties of Type.OBJECT.
"a_key": # Object with schema name: Schema
},
"ref": "A String", # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named "Pet": ``` type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string ``` 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.
"required": [ # Optional. Required properties of Type.OBJECT.
"A String",
],
"title": "A String", # Optional. The title of the schema.
"type": "A String", # Required. The type of the data.
"uniqueItems": True or False, # Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.
},
"tool": "A String", # The name of the tool that the schema is for. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
"toolsetTool": { # A tool that is created from a toolset. # The toolset tool that the schema is for.
"toolId": "A String", # Optional. The tool ID to filter the tools to retrieve the schema for.
"toolset": "A String", # Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
},
}
runEvaluation(app, body=None, x__xgafv=None)
Runs an evaluation of the app.
Args:
app: string, Required. The app to evaluate. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for EvaluationService.RunEvaluation.
"app": "A String", # Required. The app to evaluate. Format: `projects/{project}/locations/{location}/apps/{app}`
"appVersion": "A String", # Optional. The app version to evaluate. Format: `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
"config": { # EvaluationConfig configures settings for running the evaluation. # Optional. The configuration to use for the run.
"evaluationChannel": "A String", # Optional. The channel to evaluate.
"inputAudioConfig": { # InputAudioConfig configures how the CES agent should interpret the incoming audio data. # Optional. Configuration for processing the input audio.
"audioEncoding": "A String", # Required. The encoding of the input audio data.
"noiseSuppressionLevel": "A String", # Optional. Whether to enable noise suppression on the input audio. Available values are "low", "moderate", "high", "very_high".
"sampleRateHertz": 42, # Required. The sample rate (in Hertz) of the input audio data.
},
"outputAudioConfig": { # OutputAudioConfig configures how the CES agent should synthesize outgoing audio responses. # Optional. Configuration for generating the output audio.
"audioEncoding": "A String", # Required. The encoding of the output audio data.
"sampleRateHertz": 42, # Required. The sample rate (in Hertz) of the output audio data.
},
"toolCallBehaviour": "A String", # Optional. Specifies whether the evaluation should use real tool calls or fake tools.
},
"displayName": "A String", # Optional. The display name of the evaluation run.
"evaluationDataset": "A String", # Optional. An evaluation dataset to run. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{evaluationDataset}`
"evaluations": [ # Optional. List of evaluations to run. Format: `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}`
"A String",
],
"generateLatencyReport": True or False, # Optional. Whether to generate a latency report for the evaluation run.
"goldenRunMethod": "A String", # Optional. The method to run the evaluation if it is a golden evaluation. If not set, default to STABLE.
"optimizationConfig": { # Configuration for running the optimization step after the evaluation run. # Optional. Configuration for running the optimization step after the evaluation run. If not set, the optimization step will not be run.
"assistantSession": "A String", # Output only. The assistant session to use for the optimization based on this evaluation run. Format: `projects/{project}/locations/{location}/apps/{app}/assistantSessions/{assistantSession}`
"errorMessage": "A String", # Output only. The error message if the optimization run failed.
"generateLossReport": True or False, # Optional. Whether to generate a loss report.
"lossReport": { # Output only. The generated loss report.
"a_key": "", # Properties of the object.
},
"reportSummary": "A String", # Output only. The summary of the loss report.
"shouldSuggestFix": True or False, # Output only. Whether to suggest a fix for the losses.
"status": "A String", # Output only. The status of the optimization run.
},
"personaRunConfigs": [ # Optional. The configuration to use for the run per persona.
{ # Configuration for running an evaluation for a specific persona.
"persona": "A String", # Optional. The persona to use for the evaluation. Format: `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evaluationPersona}`
"taskCount": 42, # Optional. The number of tasks to run for the persona.
},
],
"runCount": 42, # Optional. The number of times to run the evaluation. If not set, the default value is 1 per golden, and 5 per scenario.
"scheduledEvaluationRun": "A String", # Optional. The resource name of the `ScheduledEvaluationRun` that is triggering this evaluation run. If this field is set, the `scheduled_evaluation_run` field on the created `EvaluationRun` resource will be populated from this value. Format: `projects/{project}/locations/{location}/apps/{app}/scheduledEvaluationRuns/{scheduled_evaluation_run}`
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
"error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
"details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
},
"metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
"response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}
testPersonaVoice(app, body=None, x__xgafv=None)
Tests the voice of a persona. Also accepts a default persona.
Args:
app: string, Required. the resource name of the app to test the persona voice for. Format: `projects/{project}/locations/{location}/apps/{app}` (required)
body: object, The request body.
The object takes the form of:
{ # Request message for EvaluationService.TestPersonaVoice.
"personaId": "A String", # Required. The persona ID to test the voice for. Also accepts "default".
"text": "A String", # Required. The text to test the voice for.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for EvaluationService.TestPersonaVoice.
"audio": "A String", # The audio data bytes of the synthesized voice.
}