REST Resource: projects.locations.apps.tools

资源:工具

工具表示 CES 代理可以采取的行动,以实现特定目标。

JSON 表示法
{
  "name": string,
  "displayName": string,
  "executionType": enum (ExecutionType),
  "timeout": string,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "generatedSummary": string,
  "toolFakeConfig": {
    object (ToolFakeConfig)
  },

  // Union field tool_type can be only one of the following:
  "clientFunction": {
    object (ClientFunction)
  },
  "openApiTool": {
    object (OpenApiTool)
  },
  "googleSearchTool": {
    object (GoogleSearchTool)
  },
  "connectorTool": {
    object (ConnectorTool)
  },
  "dataStoreTool": {
    object (DataStoreTool)
  },
  "pythonFunction": {
    object (PythonFunction)
  },
  "mcpTool": {
    object (McpTool)
  },
  "fileSearchTool": {
    object (FileSearchTool)
  },
  "systemTool": {
    object (SystemTool)
  },
  "agentTool": {
    object (AgentTool)
  },
  "widgetTool": {
    object (WidgetTool)
  },
  "remoteAgentTool": {
    object (RemoteAgentTool)
  }
  // End of list of possible types for union field tool_type.
}
字段
name

string

标识符。工具的资源名称。格式:

  • projects/{project}/locations/{location}/apps/{app}/tools/{tool} 表示独立工具。
  • projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tools/{tool} 用于从工具集中检索到的工具。

这些工具是动态的,仅用于输出;在需要工具的地方无法直接引用它们。

displayName

string

仅限输出。工具的显示名称,根据工具的类型派生。例如,[ClientFunction][Tool.ClientFunction] 的显示名称派生自其 name 属性。

executionType

enum (ExecutionType)

可选。工具的执行类型。

timeout

string (Duration format)

可选。工具执行的超时时间。如果未设置,则 SYNCHRONOUS 工具的默认超时时间为 30 秒,ASYNCHRONOUS 工具的默认超时时间为 60 秒。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

createTime

string (Timestamp format)

仅限输出。工具创建时的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

仅限输出。上次更新工具时的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

etag

string

用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。

generatedSummary

string

仅限输出。如果该工具是由 LLM 助理生成的,则此字段包含生成内容的描述性摘要。

toolFakeConfig

object (ToolFakeConfig)

可选。伪造模式下的工具行为配置。

联合字段 tool_type。工具的类型。tool_type 只能是下列其中一项:
clientFunction

object (ClientFunction)

可选。客户端函数。

openApiTool

object (OpenApiTool)

可选。开放式 API 工具。

googleSearchTool

object (GoogleSearchTool)

可选。Google 搜索工具。

connectorTool

object (ConnectorTool)

可选。Integration Connector 工具。

dataStoreTool

object (DataStoreTool)

可选。数据存储区工具。

pythonFunction

object (PythonFunction)

可选。Python 函数工具。

mcpTool

object (McpTool)

可选。MCP 工具。MCP 工具无法直接创建或更新,而是由 MCP 工具集管理。

fileSearchTool

object (FileSearchTool)

可选。文件搜索工具。

systemTool

object (SystemTool)

可选。系统工具。

agentTool

object (AgentTool)

可选。代理工具。

widgetTool

object (WidgetTool)

可选。微件工具。

remoteAgentTool

object (RemoteAgentTool)

可选。远程代理工具。

ClientFunction

表示代理可以调用的客户端函数。当代理选择工具时,控制权会移交给客户端。客户端负责执行函数并以 ToolResponse 的形式返回结果,以便继续与代理互动。

JSON 表示法
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  },
  "response": {
    object (Schema)
  }
}
字段
name

string

必需。函数名称。

description

string

可选。函数说明。

parameters

object (Schema)

可选。函数参数的架构。

response

object (Schema)

可选。函数响应的架构。

OpenApiTool

由 OpenAPI 架构定义的远程 API 工具。

JSON 表示法
{
  "openApiSchema": string,
  "name": string,
  "description": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "ignoreUnknownFields": boolean,
  "url": string
}
字段
openApiSchema

string

必需。JSON 或 YAML 格式的 OpenAPI 架构。

name

string

可选。工具的名称。如果未提供,工具的名称将从 OpenAPI 架构的 operation.operationId 中派生出来。

description

string

可选。工具的说明。如果未提供,工具的说明将从 OpenAPI 架构(operation.descriptionoperation.summary)中派生。

apiAuthentication

object (ApiAuthentication)

可选。API 所需的身份验证信息。

tlsConfig

object (TlsConfig)

可选。TLS 配置。包含客户端将信任的自定义服务器证书。

serviceDirectoryConfig

object (ServiceDirectoryConfig)

可选。Service Directory 配置。

ignoreUnknownFields

boolean

可选。如果为 true,代理将忽略 API 响应中的未知字段。

url

string

可选。Open API 架构的服务器网址。仅当架构包含服务器网址时,此字段才会在导出过程中设置在环境依赖项中的工具中。在导入过程中,如果此网址存在于环境依赖项中,并且架构具有 $env_var 占位符,则该网址将替换架构中的占位符。

GoogleSearchTool

表示用于执行 Google 网页搜索以进行接地操作的工具。请参阅 https://cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool#google-search

JSON 表示法
{
  "name": string,
  "description": string,
  "contextUrls": [
    string
  ],
  "preferredDomains": [
    string
  ],
  "excludeDomains": [
    string
  ],
  "promptConfig": {
    object (GoogleSearchTool.PromptConfig)
  }
}
字段
name

string

必需。工具的名称。

description

string

可选。工具用途的说明。

contextUrls[]

string

可选。系统将直接从这些网址提取内容,以用于上下文和接地。示例:“https://example.com/path.html”。最多允许添加 20 个网址。

preferredDomains[]

string

可选。指定要将搜索结果限制为哪些网域。示例:“example.com”“another.site”。最多可以指定 20 个网域。

excludeDomains[]

string

可选。要从搜索结果中排除的网域列表。示例:“example.com”。最多可以排除 2000 个网域。

promptConfig

object (GoogleSearchTool.PromptConfig)

可选。传递给规划器的提示指令,用于说明应如何处理文本和语音搜索结果。

GoogleSearchTool.PromptConfig

模型在处理或总结 Google 搜索结果时使用的提示设置。

JSON 表示法
{
  "textPrompt": string,
  "voicePrompt": string
}
字段
textPrompt

string

可选。定义在聊天对话中与代理互动时用于系统指令的提示。如果未设置,系统将使用默认提示。

voicePrompt

string

可选。定义在语音对话中与代理互动时用于系统指令的提示。如果未设置,系统将使用默认提示。

ConnectorTool

ConnectorTool 允许连接到不同的集成。请参阅:https://cloud.google.com/integration-connectors/docs/overview

JSON 表示法
{
  "connection": string,
  "action": {
    object (Action)
  },
  "authConfig": {
    object (EndUserAuthConfig)
  },
  "name": string,
  "description": string
}
字段
connection

string

必需。所引用 Integration Connectors 连接的完整资源名称。格式:projects/{project}/locations/{location}/connections/{connection}

action

object (Action)

必需。供工具使用的操作。

authConfig

object (EndUserAuthConfig)

可选。配置 Integration Connectors 中身份验证的处理方式。默认情况下,管理员身份验证会在 Integration Connectors API 请求中传递。您可以使用其他最终用户身份验证配置来替换它。注意:连接必须启用身份验证替换,才能在此处指定 EUC 配置;否则,ConnectorTool 创建将会失败。如需了解详情,请参阅 https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override

name

string

可选。代理可用于决定是否调用此 ConnectorTool 的工具的名称。

description

string

可选。代理可使用的工具的说明,用于决定是否调用此 ConnectorTool。

DataStoreTool

用于从 Vertex AI Search 数据存储区或引擎中检索信息以作为依据的工具。接受数据存储区或引擎,但不能同时接受两者。请参阅 Vertex AI Search:https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction

JSON 表示法
{
  "name": string,
  "description": string,
  "boostSpecs": [
    {
      object (DataStoreTool.BoostSpecs)
    }
  ],
  "modalityConfigs": [
    {
      object (DataStoreTool.ModalityConfig)
    }
  ],
  "filterParameterBehavior": enum (DataStoreTool.FilterParameterBehavior),

  // Union field search_source can be only one of the following:
  "dataStoreSource": {
    object (DataStoreTool.DataStoreSource)
  },
  "engineSource": {
    object (DataStoreTool.EngineSource)
  }
  // End of list of possible types for union field search_source.
}
字段
name

string

必需。数据存储区工具名称。

description

string

可选。工具说明。

boostSpecs[]

object (DataStoreTool.BoostSpecs)

可选。用于提升特定文档的提升规范。

modalityConfigs[]

object (DataStoreTool.ModalityConfig)

可选。数据存储区的模态配置。

filterParameterBehavior

enum (DataStoreTool.FilterParameterBehavior)

可选。过滤条件参数行为。

联合字段 search_source。定义搜索来源,可以是单个数据存储区或引擎。search_source 只能是下列其中一项:
dataStoreSource

object (DataStoreTool.DataStoreSource)

可选。在单个特定数据存储区中搜索。

engineSource

object (DataStoreTool.EngineSource)

可选。在引擎内搜索(可能跨多个数据存储区)。

DataStoreTool.DataStoreSource

在特定 DataStore 中进行搜索的配置。

JSON 表示法
{
  "filter": string,
  "dataStore": {
    object (DataStore)
  }
}
字段
filter

string

可选。数据存储区的过滤条件规范。请参阅:https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

dataStore

object (DataStore)

可选。数据存储区。

DataStore

Vertex AI Search 中的 DataStore 资源。

JSON 表示法
{
  "name": string,
  "type": enum (DataStore.DataStoreType),
  "documentProcessingMode": enum (DataStore.DocumentProcessingMode),
  "displayName": string,
  "createTime": string,
  "connectorConfig": {
    object (DataStore.ConnectorConfig)
  }
}
字段
name

string

必需。DataStore 的完整资源名称。格式:projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}

type

enum (DataStore.DataStoreType)

仅限输出。数据存储区的类型。此字段为只读字段,由服务器填充。

documentProcessingMode

enum (DataStore.DocumentProcessingMode)

仅限输出。数据存储区连接的文档处理模式。仅针对 PUBLIC_WEB 和 UNSTRUCTURED 数据存储区设置。

displayName

string

仅限输出。数据存储区的显示名称。

createTime

string (Timestamp format)

仅限输出。数据存储区的创建时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

connectorConfig

object (DataStore.ConnectorConfig)

仅限输出。数据存储区连接的连接器配置。

DataStore.DataStoreType

数据存储区的类型。

枚举
DATA_STORE_TYPE_UNSPECIFIED 未指定。此值表示未指定数据存储区类型,因此在搜索期间不会使用。
PUBLIC_WEB 包含公开网络内容的数据存储区。
UNSTRUCTURED 包含非结构化私有数据的数据存储区。
FAQ 包含用作 FAQ 的结构化数据的数据存储区。
CONNECTOR 一种数据存储区,可连接到第一方或第三方服务。

DataStore.DocumentProcessingMode

数据存储区的文档处理模式。

枚举
DOCUMENT_PROCESSING_MODE_UNSPECIFIED 未指定。
DOCUMENTS 文档会作为文档进行处理。
CHUNKS 文档会转换为块。

DataStore.ConnectorConfig

数据存储区连接的连接器配置。

JSON 表示法
{
  "collection": string,
  "collectionDisplayName": string,
  "dataSource": string
}
字段
collection

string

数据存储区所属集合的资源名称。

collectionDisplayName

string

数据存储区所属集合的显示名称。

dataSource

string

数据源的名称。示例:salesforcejiraconfluencebigquery

DataStoreTool.EngineSource

在引擎内进行搜索的配置,可能针对特定数据存储区。

JSON 表示法
{
  "engine": string,
  "dataStoreSources": [
    {
      object (DataStoreTool.DataStoreSource)
    }
  ],
  "filter": string
}
字段
engine

string

必需。引擎的完整资源名称。格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}

dataStoreSources[]

object (DataStoreTool.DataStoreSource)

可选。用于定位引擎中的特定 DataStore。如果为空,则搜索适用于与 Engine 关联的所有数据存储区。

filter

string

可选。应用于整个 Engine 搜索的过滤条件。如果提供了“dataStoreSources”,则此属性不相关且不会使用。请参阅:https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

DataStoreTool.BoostSpecs

用于提升特定文档的提升规范。如需了解详情,请参阅 https://cloud.google.com/generative-ai-app-builder/docs/boosting

JSON 表示法
{
  "dataStores": [
    string
  ],
  "spec": [
    {
      object (DataStoreTool.BoostSpec)
    }
  ]
}
字段
dataStores[]

string

必需。应用了提升配置的数据存储区。DataStore 的完整资源名称,例如 projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}。

spec[]

object (DataStoreTool.BoostSpec)

必需。提升规范列表。

DataStoreTool.BoostSpec

用于提升特定文档的提升规范。

JSON 表示法
{
  "conditionBoostSpecs": [
    {
      object (DataStoreTool.BoostSpec.ConditionBoostSpec)
    }
  ]
}
字段
conditionBoostSpecs[]

object (DataStoreTool.BoostSpec.ConditionBoostSpec)

必需。提升规范列表。

DataStoreTool.BoostSpec.ConditionBoostSpec

条件的提升规范。

JSON 表示法
{
  "condition": string,
  "boost": number,
  "boostControlSpec": {
    object (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec)
  }
}
字段
condition

string

必需。用于指定提升条件的表达式。语法与过滤表达式语法相同。目前,唯一支持的条件是 BCP-47 语言代码列表。示例:提升英语或法语建议的效果:(lang_code: ANY("en", "fr"))

boost

number

可选。提升的强度,应介于 [-1, 1] 之间。设为负值代表降位。 默认值为 0.0。

设置为 1.0 可大幅提升建议的权重。不过,这并不一定意味着最佳结果会是提升后的建议。

设置为 -1.0 可大幅降低建议的权重。不过,系统可能仍会显示其他相关建议。

设置为 0.0 表示不应用任何提升。系统会忽略提升条件。

boostControlSpec

object (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec)

可选。基于客户定义的属性值的自定义排名复杂规范。

DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec

基于客户指定的属性值的自定义排名规范。与上述简单的(条件、提升)组合相比,它可提供更多用于自定义排名的控件。

JSON 表示法
{
  "fieldName": string,
  "attributeType": enum (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType),
  "interpolationType": enum (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType),
  "controlPoints": [
    {
      object (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint)
    }
  ]
}
字段
fieldName

string

可选。将用于确定提升幅度的字段的名称。

attributeType

enum (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType)

可选。用于确定提升幅度的属性类型。属性值可以从指定 fieldName 的字段值派生而来。对于数值,这很简单,即 attributeValue = numerical_field_value。不过,对于新鲜度,attributeValue = (time.now() - datetime_field_value)。

interpolationType

enum (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType)

可选。用于连接下列控制点的插值类型。

controlPoints[]

object (DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint)

可选。用于定义曲线的控制点。单调函数(通过上面的 interpolationType 定义)会通过此处列出的控制点。

DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType

要针对其应用自定义排名的属性(或函数)。

枚举
ATTRIBUTE_TYPE_UNSPECIFIED 未指定 AttributeType。
NUMERICAL 数值字段的值将用于动态更新提升幅度。在这种情况下,控制点的 attributeValue(即 x 值)将是指定了 boostAmount 的数值字段的实际值。
FRESHNESS 对于新鲜度应用场景,属性值将是当前时间与指定日期时间字段中的日期之间的时长。该值必须采用 XSD dayTimeDuration 值(ISO 8601 时长值的受限子集)的格式。该值的格式为:[nD][T[nH][nM][nS]]。例如 5D3DT12H30MT24H

DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType

要应用的插值类型。默认值为线性(分段线性)。

枚举
INTERPOLATION_TYPE_UNSPECIFIED 插值类型未指定。在这种情况下,该字段会默认设置为线性。
LINEAR 系统将应用分段线性插值。

DataStoreTool.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint

用于定义曲线的控制点。通过这些控制点定义的曲线只能单调递增或递减(可接受常量值)。

JSON 表示法
{
  "attributeValue": string,
  "boostAmount": number
}
字段
attributeValue

string

可选。可以是以下值之一:1. 数值字段值。2. 新鲜度对应的时长规范:该值必须采用 XSD dayTimeDuration 值(ISO 8601 时长值的受限子集)的格式。该值的格式为:[nD][T[nH][nM][nS]]

boostAmount

number

可选。如果 attributeValue 的求值结果为上述指定的值,则该字段的值用于提升得分(介于 -1 到 1 之间)。

DataStoreTool.ModalityConfig

如果指定,将针对指定模态应用给定配置。

JSON 表示法
{
  "modalityType": enum (DataStoreTool.ModalityConfig.ModalityType),
  "rewriterConfig": {
    object (DataStoreTool.RewriterConfig)
  },
  "summarizationConfig": {
    object (DataStoreTool.SummarizationConfig)
  },
  "groundingConfig": {
    object (DataStoreTool.GroundingConfig)
  }
}
字段
modalityType

enum (DataStoreTool.ModalityConfig.ModalityType)

必需。模态类型。

rewriterConfig

object (DataStoreTool.RewriterConfig)

可选。重写器配置。

summarizationConfig

object (DataStoreTool.SummarizationConfig)

可选。总结配置。

groundingConfig

object (DataStoreTool.GroundingConfig)

可选。接地配置。

DataStoreTool.ModalityConfig.ModalityType

模态类型。

枚举
MODALITY_TYPE_UNSPECIFIED 未指定的模态类型。
TEXT 文本模态。
AUDIO 音频模态。

DataStoreTool.RewriterConfig

重写器配置。

JSON 表示法
{
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "disabled": boolean
}
字段
modelSettings

object (ModelSettings)

必需。LLM 模型的配置。

prompt

string

可选。提示定义。如果未设置,系统将使用默认提示。

disabled

boolean

可选。重写器是否已停用。

DataStoreTool.SummarizationConfig

总结配置。

JSON 表示法
{
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "disabled": boolean
}
字段
modelSettings

object (ModelSettings)

可选。LLM 模型的配置。

prompt

string

可选。提示定义。如果未设置,系统将使用默认提示。

disabled

boolean

可选。是否已停用总结功能。

DataStoreTool.GroundingConfig

接地配置。

JSON 表示法
{
  "groundingLevel": number,
  "disabled": boolean
}
字段
groundingLevel

number

可选。根据检索到的来源得出的回答接地性阈值。该值的可配置范围为 [1, 5]。该级别用于设置回答接地程度的阈值,这意味着接地程度得分低于该阈值的所有回答都将回退到仅返回相关内容片段。

例如,如果将此参数设置为 3,则表示只有当回答的依据充分性得分达到 3 或更高时,系统才会返回回答。

disabled

boolean

可选。接地是否已停用。

DataStoreTool.FilterParameterBehavior

过滤条件参数行为。

枚举
FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED 默认过滤行为。为连接器数据存储区添加了过滤条件参数。对于其余数据存储区类型,过滤条件输入参数会被省略。
ALWAYS_INCLUDE 始终为所有数据存储区类型添加过滤条件参数。
NEVER_INCLUDE 无论数据存储区类型如何,过滤条件参数都绝不会包含在工具参数列表中。

PythonFunction

Python 函数工具。

JSON 表示法
{
  "name": string,
  "pythonCode": string,
  "description": string
}
字段
name

string

可选。要执行的 Python 函数的名称。必须与 Python 代码中定义的 Python 函数名称匹配。区分大小写。如果未提供名称,系统将使用 Python 代码中定义的第一个函数。

pythonCode

string

可选。要为工具执行的 Python 代码。

description

string

仅限输出。从 Python 代码的文档字符串中解析出的 Python 函数说明。

McpTool

一种 MCP 工具。如需了解详情,请参阅 https://modelcontextprotocol.io/specification/2025-06-18/server/tools

JSON 表示法
{
  "name": string,
  "description": string,
  "inputSchema": {
    object (Schema)
  },
  "outputSchema": {
    object (Schema)
  },
  "serverAddress": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "customHeaders": {
    string: string,
    ...
  }
}
字段
name

string

必需。MCP 工具的名称。

description

string

可选。MCP 工具的说明。

inputSchema

object (Schema)

可选。MCP 工具的输入实参的架构。

outputSchema

object (Schema)

可选。MCP 工具的输出实参的架构。

serverAddress

string

必需。MCP 服务器的服务器地址,例如“https://example.com/mcp/”。如果服务器是使用 MCP SDK 构建的,则网址应以“/mcp/”为后缀。仅支持基于可流式传输的 HTTP 传输的服务器。这与 McpToolset 中的 serverAddress 相同。如需了解详情,请参阅 https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http

apiAuthentication

object (ApiAuthentication)

可选。针对 MCP 服务器执行该工具所需的身份验证信息。对于不记名令牌身份验证,令牌仅适用于工具执行,而不适用于列出工具。这要求无需身份验证即可列出工具。

tlsConfig

object (TlsConfig)

可选。TLS 配置。包含客户端应信任的自定义服务器证书。

serviceDirectoryConfig

object (ServiceDirectoryConfig)

可选。VPC-SC 的 Service Directory 配置,用于解析边界内的服务名称。

customHeaders

map (key: string, value: string)

可选。要在发送到 MCP 服务器的请求中发送的自定义标头。这些值必须采用 $context.variables.<name_of_variable> 格式,并且可以在会话变量中设置。如需了解详情,请参阅 https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

FileSearchTool

文件搜索工具可让代理搜索应用/代理开发者上传的文件。它具有预设功能,可针对上传的文件提供相对优质的搜索结果,并对检索到的结果进行总结。

JSON 表示法
{
  "corpusType": enum (FileSearchTool.CorpusType),
  "name": string,
  "description": string,
  "fileCorpus": string
}
字段
corpusType

enum (FileSearchTool.CorpusType)

可选。语料库的类型。默认值为 FULLY_MANAGED。

name

string

必需。工具名称。

description

string

可选。工具说明。

fileCorpus

string

可选。存储文件的语料库。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

FileSearchTool.CorpusType

Vertex RAG 语料库的类型。

枚举
CORPUS_TYPE_UNSPECIFIED 未指定的语料库类型。
USER_OWNED 语料库由用户创建并归用户所有。
FULLY_MANAGED 语料库由代理创建。

SystemTool

预定义的系统工具。

JSON 表示法
{
  "name": string,
  "description": string
}
字段
name

string

必需。系统工具的名称。

description

string

仅限输出。系统工具的说明。

AgentTool

表示一种允许代理调用其他代理的工具。

JSON 表示法
{
  "name": string,
  "description": string,
  "rootAgent": string,
  "agent": string
}
字段
name

string

必需。代理工具的名称。

description

string

可选。工具用途的说明。

rootAgent
(deprecated)

string

可选。已弃用:请改用 agent。作为工具入口点的根代理的资源名称。格式:projects/{project}/locations/{location}/agents/{agent}

agent

string

可选。作为工具入口点的代理的资源名称。格式:projects/{project}/locations/{location}/agents/{agent}

WidgetTool

表示代理可以调用的 widget 工具。当智能体选择工具后,会将 widget 返回给客户端。客户端负责处理 widget 并生成下一个用户查询,以继续与代理互动。

JSON 表示法
{
  "name": string,
  "description": string,
  "widgetType": enum (WidgetTool.WidgetType),
  "uiConfig": {
    object
  },
  "dataMapping": {
    object (WidgetTool.DataMapping)
  },
  "textResponseConfig": {
    object (WidgetTool.TextResponseConfig)
  },

  // Union field input can be only one of the following:
  "parameters": {
    object (Schema)
  }
  // End of list of possible types for union field input.
}
字段
name

string

必需。widget 工具的显示名称。

description

string

可选。widget 工具的说明。

widgetType

enum (WidgetTool.WidgetType)

可选。微件工具的类型。如果未指定,则默认类型为 CUSTOMIZED。

uiConfig

object (Struct format)

可选。用于呈现 widget 的配置。

dataMapping

object (WidgetTool.DataMapping)

可选。用于定义如何将来源工具中的数据映射到 widget 的输入参数的映射。

textResponseConfig

object (WidgetTool.TextResponseConfig)

可选。始终包含的文本回答的配置。

联合字段 input。widget 工具的输入。input 只能是下列其中一项:
parameters

object (Schema)

可选。widget 工具的输入参数。

WidgetTool.WidgetType

所有可用的 widget 类型。将来可能会向此枚举添加新值。

枚举
WIDGET_TYPE_UNSPECIFIED 未指定 widget 类型。
CUSTOM 自定义 widget 类型。
PRODUCT_DETAILS 商品详情 widget。
QUICK_ACTIONS “快速操作”widget。
PRODUCT_COMPARISON 商品比较微件。
ADVANCED_PRODUCT_DETAILS 高级商品详情 widget。
SHORT_FORM Shorts 微件。
OVERALL_SATISFACTION 总体满意度 widget。
ORDER_SUMMARY 订单摘要微件。
APPOINTMENT_DETAILS 预约详情 widget。
APPOINTMENT_SCHEDULER 预约安排工具微件。
CONTACT_FORM 联系表单微件。

WidgetTool.DataMapping

用于将数据从源工具映射到 widget 的输入参数的配置。

JSON 表示法
{
  "sourceToolName": string,
  "fieldMappings": {
    string: string,
    ...
  },
  "pythonFunction": {
    object (PythonFunction)
  },
  "mode": enum (WidgetTool.DataMapping.Mode),
  "pythonScript": string
}
字段
sourceToolName

string

可选。为 widget 提供数据的工具的资源名称(例如,搜索工具或自定义函数)。格式:projects/{project}/locations/{location}/agents/{agent}/tools/{tool}

fieldMappings

map (key: string, value: string)

可选。widget 输入参数字段与源工具的相应输出字段之间的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

pythonFunction

object (PythonFunction)

可选。用于将源工具的输出转换为 widget 的输入格式的 Python 函数的配置。

mode

enum (WidgetTool.DataMapping.Mode)

可选。数据映射的模式。

pythonScript
(deprecated)

string

已弃用:请改用 pythonFunction

WidgetTool.DataMapping.Mode

用于将数据从源工具映射到 widget 的策略。

枚举
MODE_UNSPECIFIED 未指定模式。
FIELD_MAPPING 使用 fieldMappings 映射进行数据转换。
PYTHON_SCRIPT 使用 pythonScript 进行数据转换。

WidgetTool.TextResponseConfig

随微件返回的文本响应的配置。

JSON 表示法
{
  "type": enum (WidgetTool.TextResponseConfig.Type),
  "staticText": string,
  "textResponseInstruction": string
}
字段
type

enum (WidgetTool.TextResponseConfig.Type)

可选。提供文本响应的策略。

staticText

string

可选。当类型为 STATIC 时要返回的静态文本响应。

textResponseInstruction

string

可选。关于 LLM 如何生成文本回答的指令。如果类型为 LLM_GENERATED,则用作文本响应形参的说明。

WidgetTool.TextResponseConfig.Type

定义如何生成文本回答。

枚举
TYPE_UNSPECIFIED 未指定的类型。
NONE LLM 会根据对话上下文动态决定是否在 widget 旁边生成文本回答。
LLM_GENERATED 明确要求 LLM 生成文本回答。
STATIC 始终使用预定义的静态文本响应。

RemoteAgentTool

表示一种工具,可让代理调用另一个远程代理。

JSON 表示法
{
  "name": string,
  "description": string,
  "agentCard": {
    object (AgentCard)
  }
}
字段
name

string

必需。工具的名称。

description

string

必需。工具的说明。

agentCard

object (AgentCard)

必需。此工具调用的远程代理的代理卡片。

AgentCard

AgentCard 用于传达有关远程代理的关键信息。它是 A2A 协议中定义的 AgentCard 的精简版本 https://a2a-protocol.org/dev/specification/#441-agentcard

JSON 表示法
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "version": string,
  "skills": [
    {
      object (AgentSkill)
    }
  ]
}
字段
name

string

必需。代理的人类可读名称。

description

string

必需。代理的操作领域/解决方案空间的说明。

supportedInterfaces[]

object (AgentInterface)

必需。支持的接口的有序列表。第一个条目是首选。

version

string

必需。代理的版本。

skills[]

object (AgentSkill)

必需。技能是指智能体可以执行的能力单位。这可能有些抽象,但代表了一组更集中的行动,智能体很可能成功完成这些行动。

AgentInterface

声明了与代理交互的目标网址、传输和协议版本。这样,代理就可以通过多种协议绑定机制公开相同的功能。

JSON 表示法
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
字段
url

string

必需。相应接口可用的网址。在正式版中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a”

protocolBinding

string

必需。相应网址支持的协议绑定。这是一个开放形式的字符串,可以轻松扩展以用于其他协议绑定。官方支持的核心模型包括 JSONRPCGRPCHTTP+JSON

tenant

string

在调用代理时要在请求中使用的租户 ID。

protocolVersion

string

必需。相应接口公开的 A2A protocol 版本。针对每个主要版本,使用受支持的最新次要版本。示例:“0.3”“1.0”

AgentSkill

表示代理可以执行的独特功能或函数。

JSON 表示法
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ]
}
字段
id

string

必需。代理技能的唯一标识符。

name

string

必需。技能的人类可读名称。

description

string

必需。技能的详细说明。

tags[]

string

必需。一组描述技能功能的关键字。

examples[]

string

此技能可处理的提示或场景示例。

inputModes[]

string

相应技能支持的输入媒体类型集,用于替换代理的默认设置。

outputModes[]

string

相应技能支持的一组输出媒体类型,用于替换代理的默认设置。

方法

create

在给定应用中创建新工具。

delete

删除指定的工具。

get

获取指定工具的详细信息。

list

列出指定应用中的工具。

patch

更新指定的工具。