工具:create_agent
在指定应用中创建新代理。
以下代码示例展示了如何使用 curl 调用 create_agent MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://ces.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_agent", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
CreateAgentRequest
| JSON 表示法 |
|---|
{
"parent": string,
"agentId": string,
"agent": {
object ( |
| 字段 | |
|---|---|
parent |
必需。要在其中创建代理的应用的资源名称。 |
agentId |
可选。要用于代理的 ID,该 ID 将成为代理资源名称的最后一个组成部分。如果未提供,系统会自动为代理分配一个唯一 ID。 |
agent |
必需。要创建的代理。 |
代理
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| 字段 | |
|---|---|
name |
标识符。代理的唯一标识符。格式: |
displayName |
必需。代理的显示名称。 |
description |
可选。代理的人类可读说明。 |
modelSettings |
可选。LLM 模型的配置。 |
instruction |
可选。LLM 模型的指令,用于指导代理的行为。 |
tools[] |
可选。代理可用的工具列表。格式: |
childAgents[] |
可选。代理树中的子代理列表。格式: |
beforeAgentCallbacks[] |
可选。在调用代理之前要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
afterAgentCallbacks[] |
可选。在调用代理后要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
beforeModelCallbacks[] |
可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
afterModelCallbacks[] |
可选。在调用模型后要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
beforeToolCallbacks[] |
可选。在调用工具之前要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
afterToolCallbacks[] |
可选。在调用工具后要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
createTime |
仅限输出。创建代理时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。代理上次更新时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
guardrails[] |
可选。代理的护栏列表。格式: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
toolsets[] |
可选。代理的工具集列表。 |
generatedSummary |
仅限输出。如果代理是由 LLM 助理生成的,此字段包含生成内容的描述性摘要。 |
transferRules[] |
可选。客服人员转移规则。如果多个规则匹配,系统将使用列表中的第一个规则。 |
validationErrors[] |
仅限输出。代理中的错误配置或错误,可能会影响代理质量。 |
联合字段 agent_type。代理的类型。agent_type 只能是下列其中一项: |
|
llmAgent |
可选。默认代理类型。 |
remoteDialogflowAgent |
可选。用于执行代理的远程 Dialogflow 代理。如果设置了此字段,系统将忽略所有其他代理级属性。 注意:如果 Dialogflow 代理与应用位于不同的项目中,您应向 CES 服务代理 |
remoteA2aAgent |
可选。用于执行代理的远程 A2A 代理。 |
RemoteDialogflowAgent
| JSON 表示法 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| 字段 | |
|---|---|
agent |
必需。Dialogflow 代理资源名称。格式: |
flowId |
可选。Dialogflow 代理中相应流程的流程 ID。 |
environmentId |
可选。用于代理执行的 Dialogflow 代理的环境 ID。如果未指定,则使用草稿环境。 |
inputVariableMapping |
可选。应用变量名称与要作为输入发送给 Dialogflow 代理的 Dialogflow 会话参数名称之间的映射。 包含一系列 |
outputVariableMapping |
可选。Dialogflow 会话参数名称与应用变量名称的映射,用于在 Dialogflow 代理执行结束后发送回 CES 代理。 包含一系列 |
respectResponseInterruptionSettings |
可选。指示是否遵循在 Dialogflow 代理中配置的消息级中断设置。
|
languageCodeVariable |
可选。包含要用于 Dialogflow 会话的语言代码的变量的名称。如果未指定,系统将使用 Dialogflow 代理的默认语言代码。 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| JSON 表示法 |
|---|
{
"a2aConfig": {
object ( |
| 字段 | |
|---|---|
a2aConfig |
必需。A2A 连接配置。 |
RemoteA2aConfig
| JSON 表示法 |
|---|
{ "apiAuthentication": { object ( |
| 字段 | |
|---|---|
apiAuthentication |
可选。用于调用远程代理的身份验证配置。如果注册表引用已处理身份验证,则为可选。 |
inputVariableMapping |
可选。远程代理的输入变量名称与 GECX 变量名称的映射。 包含一系列 |
outputVariableMapping |
可选。远程代理的输出变量名称与 GECX 变量名称之间的映射。 包含一系列 |
streamingEnabled |
可选。远程代理是否已启用流式传输。 |
contextId |
可选。如果不为空,与远程 A2A 代理的互动将使用此上下文 ID。此 context_id 字段可以引用会话变量,例如 |
联合字段 agent_spec。远程代理的规范。agent_spec 只能是下列其中一项: |
|
agentCard |
可选。以内嵌方式定义的完整代理卡片。 |
agentRegistry |
可选。对 Agent Registry 中代理的引用。格式: |
AgentCard
| JSON 表示法 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 字段 | |
|---|---|
name |
必需。代理的人类可读名称。 |
description |
必需。代理的操作领域/解决方案空间的说明。 |
supportedInterfaces[] |
必需。支持的接口的有序列表。第一个条目是首选。 |
version |
必需。代理的版本。 |
skills[] |
必需。技能表示智能体可以执行的能力单位。这可能有些抽象,但代表了一组更集中的操作,智能体很可能成功完成这些操作。 |
AgentInterface
| JSON 表示法 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 字段 | |
|---|---|
url |
必需。相应接口可用的网址。在正式版中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a” |
protocolBinding |
必需。相应网址支持的协议绑定。这是一个开放形式的字符串,可轻松扩展以用于其他协议绑定。受官方支持的核心模型包括 |
tenant |
在调用代理时要在请求中使用的租户 ID。 |
protocolVersion |
必需。相应接口公开的 A2A protocol 版本。使用每个主要版本的最新受支持次要版本。示例:“0.3”“1.0” |
AgentSkill
| JSON 表示法 |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| 字段 | |
|---|---|
id |
必需。代理技能的唯一标识符。 |
name |
必需。技能的人类可读名称。 |
description |
必需。技能的详细说明。 |
tags[] |
必需。一组描述技能功能的关键字。 |
examples[] |
此技能可处理的提示或场景示例。 |
inputModes[] |
此技能支持的输入媒体类型集,用于替换代理的默认设置。 |
outputModes[] |
相应技能支持的一组输出媒体类型,用于替换代理的默认设置。 |
ApiAuthentication
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项: |
|
apiKeyConfig |
可选。API 密钥身份验证的配置。 |
oauthConfig |
可选。OAuth 的配置。 |
serviceAgentIdTokenAuthConfig |
可选。从 CES 服务代理生成的 ID 令牌身份验证配置。 |
serviceAccountAuthConfig |
可选。服务账号身份验证的配置。 |
bearerTokenConfig |
可选。不记名令牌身份验证的配置。 |
ApiKeyConfig
| JSON 表示法 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 字段 | |
|---|---|
keyName |
必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
必需。存储 API 密钥的 SecretManager Secret 版本资源的名称。格式: 注意:您应向 CES 服务代理 |
requestLocation |
必需。请求中的密钥位置。 |
OAuthConfig
| JSON 表示法 |
|---|
{
"oauthGrantType": enum ( |
| 字段 | |
|---|---|
oauthGrantType |
必需。OAuth 授权类型。 |
clientId |
必需。OAuth 提供方的客户端 ID。 |
clientSecretVersion |
必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
tokenEndpoint |
必需。OAuth 提供方中用于换取访问令牌的令牌端点。 |
scopes[] |
可选。要授予的 OAuth 范围。 |
ServiceAccountAuthConfig
| JSON 表示法 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 字段 | |
|---|---|
serviceAccount |
必需。用于身份验证的服务账号的电子邮件地址。CES 使用此服务账号来交换访问令牌,然后将该访问令牌发送到请求的 服务账号必须具有授予 CES 服务代理 |
scopes[] |
可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 |
BearerTokenConfig
| JSON 表示法 |
|---|
{ "token": string } |
| 字段 | |
|---|---|
token |
必需。不记名令牌。必须采用 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, "thinkingLevel": enum ( |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,代理将从其父智能体继承模型。 |
thinkingLevel |
可选。模型的思考等级。 |
联合字段
|
|
temperature |
可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回拨。 |
proactiveExecutionEnabled |
可选。如果启用,系统还会针对中间模型输出执行回调。此设置仅影响模型后回调。请谨慎启用。通常,模型后回调只需要在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
AgentToolset
| JSON 表示法 |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| 字段 | |
|---|---|
toolset |
必需。工具集的资源名称。格式: |
toolIds[] |
可选。用于过滤工具集的工具 ID。 |
TransferRule
| JSON 表示法 |
|---|
{ "childAgent": string, "direction": enum ( |
| 字段 | |
|---|---|
childAgent |
必需。规则所适用的子代理的资源名称。格式: |
direction |
必需。转移方向。 |
联合字段 rule_type。规则类型。rule_type 只能是下列其中一项: |
|
deterministicTransfer |
可选。一种在满足条件时立即转移到目标客服人员的规则。 |
disablePlannerTransfer |
可选。阻止规划器转移到目标代理的规则。 |
DeterministicTransfer
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 condition_type。要评估的条件。condition_type 只能是下列其中一项: |
|
expressionCondition |
可选。用于评估会话状态条件的规则。如果条件的评估结果为 true,则会发生转移。 |
pythonCodeCondition |
可选。使用 Python 代码块评估条件的规则。如果条件的评估结果为 true,则会发生转移。 |
ExpressionCondition
| JSON 表示法 |
|---|
{ "expression": string } |
| 字段 | |
|---|---|
expression |
必需。cloud.api.Expression 条件的字符串表示形式。 |
PythonCodeCondition
| JSON 表示法 |
|---|
{ "pythonCode": string } |
| 字段 | |
|---|---|
pythonCode |
必需。要执行的 Python 代码。 |
DisablePlannerTransfer
| JSON 表示法 |
|---|
{
"expressionCondition": {
object ( |
| 字段 | |
|---|---|
expressionCondition |
必需。如果条件的评估结果为 true,则规划器将无法转移到目标代理。 |
RequestLocation
请求中 API 密钥的位置。
| 枚举 | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
未指定。不应使用此值。 |
HEADER |
表示 HTTP 标头中的键。 |
QUERY_STRING |
表示查询字符串中的键。 |
OauthGrantType
OAuth 授权类型。仅支持客户端凭据授权。
| 枚举 | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
未指定。默认值为 CLIENT_CREDENTIAL。 |
CLIENT_CREDENTIAL |
表示客户端凭证流程。 |
ThinkingLevel
模型的思考水平配置。
| 枚举 | |
|---|---|
THINKING_LEVEL_UNSPECIFIED |
思考等级未指定。 |
DEFAULT |
默认思考等级。 |
LOW |
低思考等级。 |
MEDIUM |
中等思考等级。 |
HIGH |
高思考等级。 |
方向
转移方向。
| 枚举 | |
|---|---|
DIRECTION_UNSPECIFIED |
未指定方向。 |
PARENT_TO_CHILD |
从父智能体转移到子代理。 |
CHILD_TO_PARENT |
从子智能体转移到父智能体。 |
输出架构
智能体充当基本构建块,可向大语言模型 (LLM) 提供指令,以执行特定任务。
代理
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| 字段 | |
|---|---|
name |
标识符。代理的唯一标识符。格式: |
displayName |
必需。代理的显示名称。 |
description |
可选。代理的人类可读说明。 |
modelSettings |
可选。LLM 模型的配置。 |
instruction |
可选。LLM 模型的指令,用于指导代理的行为。 |
tools[] |
可选。代理可用的工具列表。格式: |
childAgents[] |
可选。代理树中的子代理列表。格式: |
beforeAgentCallbacks[] |
可选。在调用代理之前要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
afterAgentCallbacks[] |
可选。在调用代理后要执行的回调。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
beforeModelCallbacks[] |
可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
afterModelCallbacks[] |
可选。在调用模型后要执行的回调。如果多次调用模型,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
beforeToolCallbacks[] |
可选。在调用工具之前要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
afterToolCallbacks[] |
可选。在调用工具后要执行的回调。如果存在多次工具调用,则回调将执行多次。所提供的回调会按列表中的顺序依次执行。如果回调返回了替换的响应,则执行会停止,并跳过所有剩余的回调。 |
createTime |
仅限输出。创建代理时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。代理上次更新时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
guardrails[] |
可选。代理的护栏列表。格式: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
toolsets[] |
可选。代理的工具集列表。 |
generatedSummary |
仅限输出。如果代理是由 LLM 助理生成的,此字段包含生成内容的描述性摘要。 |
transferRules[] |
可选。客服人员转移规则。如果多个规则匹配,系统将使用列表中的第一个规则。 |
validationErrors[] |
仅限输出。代理中的错误配置或错误,可能会影响代理质量。 |
联合字段 agent_type。代理的类型。agent_type 只能是下列其中一项: |
|
llmAgent |
可选。默认代理类型。 |
remoteDialogflowAgent |
可选。用于执行代理的远程 Dialogflow 代理。如果设置了此字段,系统将忽略所有其他代理级属性。 注意:如果 Dialogflow 代理与应用位于不同的项目中,您应向 CES 服务代理 |
remoteA2aAgent |
可选。用于执行代理的远程 A2A 代理。 |
RemoteDialogflowAgent
| JSON 表示法 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| 字段 | |
|---|---|
agent |
必需。Dialogflow 代理资源名称。格式: |
flowId |
可选。Dialogflow 代理中相应流程的流程 ID。 |
environmentId |
可选。用于代理执行的 Dialogflow 代理的环境 ID。如果未指定,则使用草稿环境。 |
inputVariableMapping |
可选。应用变量名称与要作为输入发送给 Dialogflow 代理的 Dialogflow 会话参数名称之间的映射。 包含一系列 |
outputVariableMapping |
可选。Dialogflow 会话参数名称与应用变量名称的映射,用于在 Dialogflow 代理执行结束后发送回 CES 代理。 包含一系列 |
respectResponseInterruptionSettings |
可选。指示是否遵循在 Dialogflow 代理中配置的消息级中断设置。
|
languageCodeVariable |
可选。包含要用于 Dialogflow 会话的语言代码的变量的名称。如果未指定,系统将使用 Dialogflow 代理的默认语言代码。 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| JSON 表示法 |
|---|
{
"a2aConfig": {
object ( |
| 字段 | |
|---|---|
a2aConfig |
必需。A2A 连接配置。 |
RemoteA2aConfig
| JSON 表示法 |
|---|
{ "apiAuthentication": { object ( |
| 字段 | |
|---|---|
apiAuthentication |
可选。用于调用远程代理的身份验证配置。如果注册表引用已处理身份验证,则为可选。 |
inputVariableMapping |
可选。远程代理的输入变量名称与 GECX 变量名称的映射。 包含一系列 |
outputVariableMapping |
可选。远程代理的输出变量名称与 GECX 变量名称之间的映射。 包含一系列 |
streamingEnabled |
可选。远程代理是否已启用流式传输。 |
contextId |
可选。如果不为空,与远程 A2A 代理的互动将使用此上下文 ID。此 context_id 字段可以引用会话变量,例如 |
联合字段 agent_spec。远程代理的规范。agent_spec 只能是下列其中一项: |
|
agentCard |
可选。以内嵌方式定义的完整代理卡片。 |
agentRegistry |
可选。对 Agent Registry 中代理的引用。格式: |
AgentCard
| JSON 表示法 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 字段 | |
|---|---|
name |
必需。代理的人类可读名称。 |
description |
必需。代理的操作领域/解决方案空间的说明。 |
supportedInterfaces[] |
必需。支持的接口的有序列表。第一个条目是首选。 |
version |
必需。代理的版本。 |
skills[] |
必需。技能表示智能体可以执行的能力单位。这可能有些抽象,但代表了一组更集中的操作,智能体很可能成功完成这些操作。 |
AgentInterface
| JSON 表示法 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 字段 | |
|---|---|
url |
必需。相应接口可用的网址。在正式版中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a” |
protocolBinding |
必需。相应网址支持的协议绑定。这是一个开放形式的字符串,可轻松扩展以用于其他协议绑定。受官方支持的核心模型包括 |
tenant |
在调用代理时要在请求中使用的租户 ID。 |
protocolVersion |
必需。相应接口公开的 A2A protocol 版本。使用每个主要版本的最新受支持次要版本。示例:“0.3”“1.0” |
AgentSkill
| JSON 表示法 |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| 字段 | |
|---|---|
id |
必需。代理技能的唯一标识符。 |
name |
必需。技能的人类可读名称。 |
description |
必需。技能的详细说明。 |
tags[] |
必需。一组描述技能功能的关键字。 |
examples[] |
此技能可处理的提示或场景示例。 |
inputModes[] |
此技能支持的输入媒体类型集,用于替换代理的默认设置。 |
outputModes[] |
相应技能支持的一组输出媒体类型,用于替换代理的默认设置。 |
ApiAuthentication
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项: |
|
apiKeyConfig |
可选。API 密钥身份验证的配置。 |
oauthConfig |
可选。OAuth 的配置。 |
serviceAgentIdTokenAuthConfig |
可选。从 CES 服务代理生成的 ID 令牌身份验证配置。 |
serviceAccountAuthConfig |
可选。服务账号身份验证的配置。 |
bearerTokenConfig |
可选。不记名令牌身份验证的配置。 |
ApiKeyConfig
| JSON 表示法 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 字段 | |
|---|---|
keyName |
必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
必需。存储 API 密钥的 SecretManager Secret 版本资源的名称。格式: 注意:您应向 CES 服务代理 |
requestLocation |
必需。请求中的密钥位置。 |
OAuthConfig
| JSON 表示法 |
|---|
{
"oauthGrantType": enum ( |
| 字段 | |
|---|---|
oauthGrantType |
必需。OAuth 授权类型。 |
clientId |
必需。OAuth 提供方的客户端 ID。 |
clientSecretVersion |
必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
tokenEndpoint |
必需。OAuth 提供方中用于换取访问令牌的令牌端点。 |
scopes[] |
可选。要授予的 OAuth 范围。 |
ServiceAccountAuthConfig
| JSON 表示法 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 字段 | |
|---|---|
serviceAccount |
必需。用于身份验证的服务账号的电子邮件地址。CES 使用此服务账号来交换访问令牌,然后将该访问令牌发送到请求的 服务账号必须具有授予 CES 服务代理 |
scopes[] |
可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 |
BearerTokenConfig
| JSON 表示法 |
|---|
{ "token": string } |
| 字段 | |
|---|---|
token |
必需。不记名令牌。必须采用 |
InputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, "thinkingLevel": enum ( |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,代理将从其父智能体继承模型。 |
thinkingLevel |
可选。模型的思考等级。 |
联合字段
|
|
temperature |
可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回拨。 |
proactiveExecutionEnabled |
可选。如果启用,系统还会针对中间模型输出执行回调。此设置仅影响模型后回调。请谨慎启用。通常,模型后回调只需要在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
AgentToolset
| JSON 表示法 |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| 字段 | |
|---|---|
toolset |
必需。工具集的资源名称。格式: |
toolIds[] |
可选。用于过滤工具集的工具 ID。 |
TransferRule
| JSON 表示法 |
|---|
{ "childAgent": string, "direction": enum ( |
| 字段 | |
|---|---|
childAgent |
必需。规则所适用的子代理的资源名称。格式: |
direction |
必需。转移方向。 |
联合字段 rule_type。规则类型。rule_type 只能是下列其中一项: |
|
deterministicTransfer |
可选。一种在满足条件时立即转移到目标客服人员的规则。 |
disablePlannerTransfer |
可选。阻止规划器转移到目标代理的规则。 |
DeterministicTransfer
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 condition_type。要评估的条件。condition_type 只能是下列其中一项: |
|
expressionCondition |
可选。用于评估会话状态条件的规则。如果条件的评估结果为 true,则会发生转移。 |
pythonCodeCondition |
可选。使用 Python 代码块评估条件的规则。如果条件的评估结果为 true,则会发生转移。 |
ExpressionCondition
| JSON 表示法 |
|---|
{ "expression": string } |
| 字段 | |
|---|---|
expression |
必需。cloud.api.Expression 条件的字符串表示形式。 |
PythonCodeCondition
| JSON 表示法 |
|---|
{ "pythonCode": string } |
| 字段 | |
|---|---|
pythonCode |
必需。要执行的 Python 代码。 |
DisablePlannerTransfer
| JSON 表示法 |
|---|
{
"expressionCondition": {
object ( |
| 字段 | |
|---|---|
expressionCondition |
必需。如果条件的评估结果为 true,则规划器将无法转移到目标代理。 |
RequestLocation
请求中 API 密钥的位置。
| 枚举 | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
未指定。不应使用此值。 |
HEADER |
表示 HTTP 标头中的键。 |
QUERY_STRING |
表示查询字符串中的键。 |
OauthGrantType
OAuth 授权类型。仅支持客户端凭据授权。
| 枚举 | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
未指定。默认值为 CLIENT_CREDENTIAL。 |
CLIENT_CREDENTIAL |
表示客户端凭证流程。 |
ThinkingLevel
模型的思考水平配置。
| 枚举 | |
|---|---|
THINKING_LEVEL_UNSPECIFIED |
思考等级未指定。 |
DEFAULT |
默认思考等级。 |
LOW |
低思考等级。 |
MEDIUM |
中等思考等级。 |
HIGH |
高思考等级。 |
方向
转移方向。
| 枚举 | |
|---|---|
DIRECTION_UNSPECIFIED |
未指定方向。 |
PARENT_TO_CHILD |
从父智能体转移到子代理。 |
CHILD_TO_PARENT |
从子智能体转移到父智能体。 |
工具注释
工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。
除了标题字符串之外,还定义了以下布尔值提示:
readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界,而内存工具不是开放世界。
破坏性提示:✅ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌