工具:update_guardrail
更新指定的安全护栏。请务必始终在输入中传递更新掩码。
以下示例演示了如何使用 curl 调用 update_guardrail MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://ces.[REGION].rep.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "update_guardrail", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
AgentService.UpdateGuardrail 的请求消息。
UpdateGuardrailRequest
| JSON 表示法 |
|---|
{
"guardrail": {
object ( |
| 字段 | |
|---|---|
guardrail |
必需。要更新的护栏。 |
updateMask |
可选。字段掩码用于控制要更新的字段。如果未提供掩码,则系统将更新所有字段。 这是完全限定字段名称的逗号分隔列表。示例: |
保护措施
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| 字段 | |
|---|---|
name |
标识符。安全屏障的唯一标识符。格式: |
displayName |
必需。安全屏障的显示名称。 |
description |
可选。安全屏障的说明。 |
enabled |
可选。安全防护措施是否已启用。 |
action |
可选。触发安全护栏时要采取的操作。 |
createTime |
仅限输出。安全措施的创建时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。安全措施上次更新的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
联合字段 guardrail_type。安全护栏类型。guardrail_type 只能是下列其中一项: |
|
contentFilter |
可选。禁止在对话中使用某些内容的护栏。 |
llmPromptSecurity |
可选。如果根据 LLM 分类,提示被认为不安全,则会阻止对话的保护措施。 |
llmPolicy |
可选。如果 LLM 回答根据 LLM 分类被视为违反政策,则阻止对话的安全屏障。 |
modelSafety |
可选。如果 LLM 回答根据模型安全设置被视为不安全,则阻止对话的安全屏障。 |
codeCallback |
可选。根据回调执行结果可能会屏蔽对话的护栏。 |
ContentFilter
| JSON 表示法 |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| 字段 | |
|---|---|
bannedContents[] |
可选。禁用短语列表。适用于用户输入和代理回答。 |
bannedContentsInUserInput[] |
可选。禁用短语列表。仅适用于用户输入。 |
bannedContentsInAgentResponse[] |
可选。禁用短语列表。仅适用于代理回答。 |
matchType |
必需。内容过滤器的匹配类型。 |
disregardDiacritics |
可选。如果为 true,则在匹配期间忽略变音符号。 |
LlmPromptSecurity
| JSON 表示法 |
|---|
{ "failOpen": boolean, // Union field |
| 字段 | |
|---|---|
failOpen |
可选。确定安全屏障遇到 LLM 错误时的行为。- 如果为 true:则绕过安全护栏。- 如果为 false(默认值):安全措施会触发/屏蔽。 注意:如果提供了自定义政策,系统会忽略此字段,而采用相应政策的“fail_open”配置。 |
联合字段 security_config。定义安全配置模式。用户必须选择以下配置之一。security_config 只能是下列其中一项: |
|
defaultSettings |
可选。使用系统预定义的默认安全设置。如需选择此模式,请在请求中添加空的“default_settings”消息。其中的“default_prompt_template”字段将由服务器在响应中填充。 |
customPolicy |
可选。使用用户定义的 LlmPolicy 配置安全防护措施。 |
DefaultSecuritySettings
| JSON 表示法 |
|---|
{ "defaultPromptTemplate": string } |
| 字段 | |
|---|---|
defaultPromptTemplate |
仅限输出。系统使用的默认提示模板。此字段用于显示目的,以向用户展示系统默认使用的提示。此字段为 OUTPUT_ONLY。 |
LlmPolicy
| JSON 表示法 |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| 字段 | |
|---|---|
maxConversationMessages |
可选。检查此政策时,请考虑对话中的最后“n”条消息。如果未设置,则使用默认值 10。 |
modelSettings |
可选。模型设置。 |
prompt |
必需。政策提示。 |
policyScope |
必需。定义在对话期间何时应用政策检查。如果设为 |
failOpen |
可选。如果在政策检查期间发生错误,则会失败打开,并且不会触发安全防护栏。 |
allowShortUtterance |
可选。默认情况下,系统会针对简短话语绕过 LLM 政策检查。启用此设置后,系统会对所有话语(包括通常会跳过的话语)执行政策检查。 |
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, // Union field |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,代理将沿用其父代理的模型。 |
联合字段
|
|
temperature |
可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。 |
ModelSafety
| JSON 表示法 |
|---|
{
"safetySettings": [
{
object ( |
| 字段 | |
|---|---|
safetySettings[] |
必需。安全设置列表。 |
SafetySetting
| JSON 表示法 |
|---|
{ "category": enum ( |
| 字段 | |
|---|---|
category |
必需。有害类别。 |
threshold |
必需。有害内容屏蔽阈值。 |
CodeCallback
| JSON 表示法 |
|---|
{ "beforeAgentCallback": { object ( |
| 字段 | |
|---|---|
beforeAgentCallback |
可选。在调用代理之前要执行的回调。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
afterAgentCallback |
可选。在调用代理后要执行的回调。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
beforeModelCallback |
可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
afterModelCallback |
可选。在调用模型后执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回调。 |
proactiveExecutionEnabled |
可选。如果启用,回调也会在中间模型输出上执行。此设置仅在模型回调后生效。请谨慎启用。通常,after_model_callback 仅需在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
TriggerAction
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 action。要采取的行动。action 只能是下列其中一项: |
|
respondImmediately |
可选。立即使用预配置的回答进行回复。 |
transferAgent |
可选。将对话转接给其他客服人员。 |
generativeAnswer |
可选。使用生成式回答进行回复。 |
RespondImmediately
| JSON 表示法 |
|---|
{
"responses": [
{
object ( |
| 字段 | |
|---|---|
responses[] |
必需。供代理选择的预设回复。系统会随机选择回答。 |
响应
| JSON 表示法 |
|---|
{ "text": string, "disabled": boolean } |
| 字段 | |
|---|---|
text |
必需。智能体要回复的文本。 |
disabled |
可选。响应是否已停用。代理不会使用已停用的回答。 |
TransferAgent
| JSON 表示法 |
|---|
{ "agent": string } |
| 字段 | |
|---|---|
agent |
必需。要将对话转接到的代理的名称。代理必须与当前代理位于同一应用中。格式: |
GenerativeAnswer
| JSON 表示法 |
|---|
{ "prompt": string } |
| 字段 | |
|---|---|
prompt |
必需。用于生成式回答的提示。 |
时间戳
| 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 之间(含边界值)。 |
FieldMask
| JSON 表示法 |
|---|
{ "paths": [ string ] } |
| 字段 | |
|---|---|
paths[] |
一组字段掩码路径。 |
输出架构
安全护栏包含一系列检查和平衡措施,旨在确保代理安全无虞。
保护措施
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "enabled": boolean, "action": { object ( |
| 字段 | |
|---|---|
name |
标识符。安全屏障的唯一标识符。格式: |
displayName |
必需。安全屏障的显示名称。 |
description |
可选。安全屏障的说明。 |
enabled |
可选。安全防护措施是否已启用。 |
action |
可选。触发安全护栏时要采取的操作。 |
createTime |
仅限输出。安全措施的创建时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。安全措施上次更新的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
联合字段 guardrail_type。安全护栏类型。guardrail_type 只能是下列其中一项: |
|
contentFilter |
可选。禁止在对话中使用某些内容的护栏。 |
llmPromptSecurity |
可选。如果根据 LLM 分类,提示被认为不安全,则会阻止对话的保护措施。 |
llmPolicy |
可选。如果 LLM 回答根据 LLM 分类被视为违反政策,则阻止对话的安全屏障。 |
modelSafety |
可选。如果 LLM 回答根据模型安全设置被视为不安全,则阻止对话的安全屏障。 |
codeCallback |
可选。根据回调执行结果可能会屏蔽对话的护栏。 |
ContentFilter
| JSON 表示法 |
|---|
{
"bannedContents": [
string
],
"bannedContentsInUserInput": [
string
],
"bannedContentsInAgentResponse": [
string
],
"matchType": enum ( |
| 字段 | |
|---|---|
bannedContents[] |
可选。禁用短语列表。适用于用户输入和代理回答。 |
bannedContentsInUserInput[] |
可选。禁用短语列表。仅适用于用户输入。 |
bannedContentsInAgentResponse[] |
可选。禁用短语列表。仅适用于代理回答。 |
matchType |
必需。内容过滤器的匹配类型。 |
disregardDiacritics |
可选。如果为 true,则在匹配期间忽略变音符号。 |
LlmPromptSecurity
| JSON 表示法 |
|---|
{ "failOpen": boolean, // Union field |
| 字段 | |
|---|---|
failOpen |
可选。确定安全屏障遇到 LLM 错误时的行为。- 如果为 true:则绕过安全护栏。- 如果为 false(默认值):安全措施会触发/屏蔽。 注意:如果提供了自定义政策,系统会忽略此字段,而采用相应政策的“fail_open”配置。 |
联合字段 security_config。定义安全配置模式。用户必须选择以下配置之一。security_config 只能是下列其中一项: |
|
defaultSettings |
可选。使用系统预定义的默认安全设置。如需选择此模式,请在请求中添加空的“default_settings”消息。其中的“default_prompt_template”字段将由服务器在响应中填充。 |
customPolicy |
可选。使用用户定义的 LlmPolicy 配置安全防护措施。 |
DefaultSecuritySettings
| JSON 表示法 |
|---|
{ "defaultPromptTemplate": string } |
| 字段 | |
|---|---|
defaultPromptTemplate |
仅限输出。系统使用的默认提示模板。此字段用于显示目的,以向用户展示系统默认使用的提示。此字段为 OUTPUT_ONLY。 |
LlmPolicy
| JSON 表示法 |
|---|
{ "maxConversationMessages": integer, "modelSettings": { object ( |
| 字段 | |
|---|---|
maxConversationMessages |
可选。检查此政策时,请考虑对话中的最后“n”条消息。如果未设置,则使用默认值 10。 |
modelSettings |
可选。模型设置。 |
prompt |
必需。政策提示。 |
policyScope |
必需。定义在对话期间何时应用政策检查。如果设为 |
failOpen |
可选。如果在政策检查期间发生错误,则会失败打开,并且不会触发安全防护栏。 |
allowShortUtterance |
可选。默认情况下,系统会针对简短话语绕过 LLM 政策检查。启用此设置后,系统会对所有话语(包括通常会跳过的话语)执行政策检查。 |
ModelSettings
| JSON 表示法 |
|---|
{ "model": string, // Union field |
| 字段 | |
|---|---|
model |
可选。智能体应使用的 LLM 模型。如果未设置,代理将沿用其父代理的模型。 |
联合字段
|
|
temperature |
可选。如果设置,系统将使用此温度值来运行 LLM 模型。温度可控制模型回答的随机性。温度越低,生成的回答就越可预测。温度越高,生成的回答就越有创意。 |
ModelSafety
| JSON 表示法 |
|---|
{
"safetySettings": [
{
object ( |
| 字段 | |
|---|---|
safetySettings[] |
必需。安全设置列表。 |
SafetySetting
| JSON 表示法 |
|---|
{ "category": enum ( |
| 字段 | |
|---|---|
category |
必需。有害类别。 |
threshold |
必需。有害内容屏蔽阈值。 |
CodeCallback
| JSON 表示法 |
|---|
{ "beforeAgentCallback": { object ( |
| 字段 | |
|---|---|
beforeAgentCallback |
可选。在调用代理之前要执行的回调。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
afterAgentCallback |
可选。在调用代理后要执行的回调。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
beforeModelCallback |
可选。在调用模型之前要执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
afterModelCallback |
可选。在调用模型后执行的回调。如果多次调用模型,则回调将执行多次。每个回调函数都应返回一个包含至少以下内容的结构(例如,字典或对象):-“decision”:可以是“OK”或“TRIGGER”。-“reason”:说明决定的字符串。“触发”决定可能会停止进一步处理。 |
回调
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 字段 | |
|---|---|
description |
可选。回调的人类可读说明。 |
disabled |
可选。回调是否已停用。代理会忽略已停用的回调。 |
proactiveExecutionEnabled |
可选。如果启用,回调也会在中间模型输出上执行。此设置仅在模型回调后生效。请谨慎启用。通常,after_model_callback 仅需在收到所有模型回答后执行。启用主动执行可能会对执行费用和延迟时间产生负面影响,因此仅应在极少数情况下启用。 |
联合字段 callback。要执行的回调。callback 只能是下列其中一项: |
|
pythonCode |
必需。要为回调执行的 Python 代码。 |
TriggerAction
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 action。要采取的行动。action 只能是下列其中一项: |
|
respondImmediately |
可选。立即使用预配置的回答进行回复。 |
transferAgent |
可选。将对话转接给其他客服人员。 |
generativeAnswer |
可选。使用生成式回答进行回复。 |
RespondImmediately
| JSON 表示法 |
|---|
{
"responses": [
{
object ( |
| 字段 | |
|---|---|
responses[] |
必需。供代理选择的预设回复。系统会随机选择回答。 |
响应
| JSON 表示法 |
|---|
{ "text": string, "disabled": boolean } |
| 字段 | |
|---|---|
text |
必需。智能体要回复的文本。 |
disabled |
可选。响应是否已停用。代理不会使用已停用的回答。 |
TransferAgent
| JSON 表示法 |
|---|
{ "agent": string } |
| 字段 | |
|---|---|
agent |
必需。要将对话转接到的代理的名称。代理必须与当前代理位于同一应用中。格式: |
GenerativeAnswer
| JSON 表示法 |
|---|
{ "prompt": string } |
| 字段 | |
|---|---|
prompt |
必需。用于生成式回答的提示。 |
时间戳
| 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 之间(含边界值)。 |
工具注释
破坏性提示:✅ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌