REST Resource: projects.locations.collections.engines.assistants

Resource: Assistant

Discovery Engine Assistant resource.

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "googleSearchGroundingEnabled": boolean,
  "webGroundingType": enum (WebGroundingType),
  "vertexAiAgentConfigs": [
    {
      object (VertexAiAgentConfig)
    }
  ],
  "enabledActions": {
    string: {
      object (ActionList)
    },
    ...
  },
  "customerPolicy": {
    object (CustomerPolicy)
  },
  "vertexAiSearchToolConfig": {
    object (VertexAiSearchToolConfig)
  },
  "styleAndFormattingInstructions": string,
  "agentConfigs": [
    {
      object (AgentConfig)
    }
  ],
  "enableEndUserAgentCreation": boolean
}
Fields
name

string

Immutable. Resource name of the assistant. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/assistants/{assistant}

It must be a UTF-8 encoded string with a length limit of 1024 characters.

displayName

string

Required. The assistant display name.

It must be a UTF-8 encoded string with a length limit of 128 characters.

description

string

Optional. description for additional information. Expected to be shown on the configuration UI, not to the users of the assistant.

googleSearchGroundingEnabled
(deprecated)

boolean

Optional. Deprecated. Use webGroundingType instead.

webGroundingType

enum (WebGroundingType)

Optional. The type of web grounding to use. LINT.ThenChange(//depot/google3/google/cloud/discoveryengine/v1main/widgetConfig.proto)

vertexAiAgentConfigs[]

object (VertexAiAgentConfig)

Optional. List of Vertex AI Agents that can be reached through the assistant.

enabledActions

map (key: string, value: object (ActionList))

Optional. The enabled actions on this assistant. The keys are connector name, for example "projects/{projectId}/locations/{locationId}/collections/{collectionId}/dataconnector The values consist of admin enabled actions towards the connector instance. Admin can selectively enable multiple actions on any of the connector instances that they created in the project. For example {"jira1ConnectorName": [(actionId1, "createTicket"), (actionId2, "transferTicket")], "gmail1ConnectorName": [(actionId3, "sendEmail"),..] }

customerPolicy

object (CustomerPolicy)

Optional. Customer policy for the assistant.

vertexAiSearchToolConfig

object (VertexAiSearchToolConfig)

Optional. Configuration options for the Vertex AI Search tool.

styleAndFormattingInstructions

string

Optional. Common system instruction snippet for setting conversation style, tone and formatting. Added to all LLM prompts via the placeholder [STYLE_AND_FORMATTING_INSTRUCTIONS].

agentConfigs[]

object (AgentConfig)

Optional. List of Agents that can be reached through the assistant.

enableEndUserAgentCreation

boolean

Optional. Indicates whether end users are allowed to create agents in the Agentspace.

WebGroundingType

LINT.IfChange The type of web grounding to use.

Enums
WEB_GROUNDING_TYPE_UNSPECIFIED Default, unspecified setting. This is the same as disabled.
WEB_GROUNDING_TYPE_DISABLED Web grounding is disabled.

VertexAiAgentConfig

Represents an external Vertex AI Agent that can be reached through the assistant.

JSON representation
{
  "displayName": string,
  "name": string,
  "toolDescription": string
}
Fields
displayName

string

Required. Display name of the Vertex AI Agent used for reference in the assistant.

name

string

Required. Resource name of the Vertex AI Agent. Format: projects/{project}/locations/{location}/agents/{agent}

toolDescription

string

Required. The tool description of the Vertex AI Agent. This description will be used by the LLM to decide whether the agent is relevant to the user question and the question should be routed to the agent.

ActionList

The enabled actions on a connector

JSON representation
{
  "actionInfo": [
    {
      object (ActionInfo)
    }
  ]
}
Fields
actionInfo[]

object (ActionInfo)

The list of actions with corresponding action information.

ActionInfo

Information to identify an action.

JSON representation
{
  "actionName": string,
  "actionDisplayName": string
}
Fields
actionName

string

The name of the action as defined by DataConnectorService.QueryAvailableActions.

actionDisplayName

string

The display name of the action.

CustomerPolicy

Customer-defined policy for the assistant.

JSON representation
{
  "bannedPhrases": [
    {
      object (BannedPhrase)
    }
  ]
}
Fields
bannedPhrases[]

object (BannedPhrase)

Optional. List of banned phrases.

BannedPhrase

Definition of a customer-defined banned phrase. A banned phrase is not allowed to appear in the user query or the LLM response, or else the answer will be refused.

JSON representation
{
  "phrase": string,
  "matchType": enum (BannedPhraseMatchType),
  "ignoreDiacritics": boolean
}
Fields
phrase

string

Required. The raw string content to be banned.

matchType

enum (BannedPhraseMatchType)

Optional. Match type for the banned phrase.

ignoreDiacritics

boolean

Optional. If true, diacritical marks (e.g., accents, umlauts) are ignored when matching banned phrases. For example, "cafe" would match "café".

BannedPhraseMatchType

The matching method for the banned phrase.

Enums
BANNED_PHRASE_MATCH_TYPE_UNSPECIFIED Defaults to SIMPLE_STRING_MATCH.
SIMPLE_STRING_MATCH The banned phrase matches if it is found anywhere in the text as an exact substring.
WORD_BOUNDARY_STRING_MATCH Banned phrase only matches if the pattern found in the text is surrounded by word delimiters. The phrase itself may still contain word delimiters.

VertexAiSearchToolConfig

Configuration options for the Vertex AI Search tool that the assistant may use when processing queries.

JSON representation
{
  "llmSystemInstructions": string
}
Fields
llmSystemInstructions

string

System instructions for answering based on the search results of Vertex AI Search. Note that the answer produced by the search tool may differ from the final answer of the assistant.

In general, system instructions are a set of natural language instructions that the model processes before it processes prompts. It tells the model how it should behave and respond to prompts. See https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/system-instructions

Example: "Use information only from the sources to answer. Also, make sure to nicely format the answer with Markdown."

If not specified, the internal default will be used.

AgentConfig

Configuration options for the agents that the assistant may call when processing queries.

JSON representation
{
  "id": string,
  "displayName": string,
  "toolDescription": string,
  "icon": {
    object (Image)
  },
  "authorizations": [
    string
  ],

  // Union field connection_info can be only one of the following:
  "vertexAiSdkAgentConnectionInfo": {
    object (VertexAiSdkAgentConnectionInfo)
  },
  "httpAgentConnectionInfo": {
    object (HttpAgentConnectionInfo)
  }
  // End of list of possible types for union field connection_info.
}
Fields
id

string

Required. A unique, human-readable id for the agent. Must match the following regular expression: [a-z][a-zA-Z0-9_-]*.

displayName

string

Required. Display name of the agent used for reference in the assistant.

toolDescription

string

Required. The tool description of the agent. This description will be used by the LLM to decide whether the agent is relevant to the user question and the question should be routed to the agent.

icon

object (Image)

Required. The icon that represents the agent on the UI.

authorizations[]

string

Optional. Resource names of the required authorizations. If the user is not authorized, the service will return a number of authorization URIs that the user must open in a browser and authorize. Once all authorizations are granted, the user can retry the query, and the authorizations will be forwarded to the agent.

Format: projects/{project}/locations/{location}/authorizations/{authorization}

Union field connection_info. The connection configuration of the agent. connection_info can be only one of the following:
vertexAiSdkAgentConnectionInfo

object (VertexAiSdkAgentConnectionInfo)

Required. Connection information for a Vertex AI SDK agent

httpAgentConnectionInfo

object (HttpAgentConnectionInfo)

Required. Connection info for an HTTP agent.

VertexAiSdkAgentConnectionInfo

Connection information for a Vertex AI SDK agent - currently only agents exposed through Reasoning Engines are supported.

JSON representation
{
  "reasoningEngine": string
}
Fields
reasoningEngine

string

Resource name of the reasoning engine exposing the agent. Format: projects/{project}/locations/{location}/reasoningEngines/{reasoningEngine}

HttpAgentConnectionInfo

A agent that is reachable by the assistant via HTTP.

JSON representation
{
  "httpUri": string
}
Fields
httpUri

string

Required. The HTTP address of the agent, e.g. "https://example.com/agent1".

Image

Represents an image.

JSON representation
{

  // Union field storage_method can be only one of the following:
  "uri": string,
  "content": string
  // End of list of possible types for union field storage_method.
}
Fields
Union field storage_method. Can be either a URI or the content encoded as a base64 string. storage_method can be only one of the following:
uri

string

Required. Image URI.

content

string

Required. Base64-encoded image file contents.

Methods

create

Creates an Assistant.

delete

Deletes an Assistant.

get

Gets an Assistant.

list

Lists all Assistants under an Engine.

patch

Updates an Assistant

streamAssist

Assists the user with a query in a streaming fashion.