工具: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 |
ID。防護措施的專屬 ID。格式: |
displayName |
這是必要旗標,防護措施的顯示名稱。 |
description |
選用。安全防護措施說明。 |
enabled |
選用。是否啟用安全防護措施。 |
action |
選用。觸發防護措施時採取的動作。 |
createTime |
僅供輸出。建立防護措施的時間戳記。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
updateTime |
僅供輸出。上次更新防護措施的時間戳記。 使用 RFC 3339,產生的輸出內容一律會經過 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 |
選用。在呼叫代理程式前執行的回呼。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
afterAgentCallback |
選用。呼叫代理程式後要執行的回呼。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
beforeModelCallback |
選用。在呼叫模型前執行的回呼。如果多次呼叫模型,回呼就會執行多次。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
afterModelCallback |
選用。模型呼叫後要執行的回呼。如果多次呼叫模型,回呼就會執行多次。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
回撥電話
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 欄位 | |
|---|---|
description |
選用。使用者可理解的回呼說明。 |
disabled |
選用。回呼是否已停用。代理程式會忽略已停用的回呼。 |
proactiveExecutionEnabled |
選用。如果啟用這項功能,系統也會對中繼模型輸出內容執行回呼。這項設定只會影響模型回呼後續作業。請謹慎啟用。通常在收到所有模型回覆後,才需要執行模型回呼。啟用主動執行功能可能會對執行費用和延遲時間造成負面影響,因此只應在極少數情況下啟用。 |
聯集欄位 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 |
代表自 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 |
ID。防護措施的專屬 ID。格式: |
displayName |
這是必要旗標,防護措施的顯示名稱。 |
description |
選用。安全防護措施說明。 |
enabled |
選用。是否啟用安全防護措施。 |
action |
選用。觸發防護措施時採取的動作。 |
createTime |
僅供輸出。建立防護措施的時間戳記。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
updateTime |
僅供輸出。上次更新防護措施的時間戳記。 使用 RFC 3339,產生的輸出內容一律會經過 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 |
選用。在呼叫代理程式前執行的回呼。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
afterAgentCallback |
選用。呼叫代理程式後要執行的回呼。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
beforeModelCallback |
選用。在呼叫模型前執行的回呼。如果多次呼叫模型,回呼就會執行多次。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
afterModelCallback |
選用。模型呼叫後要執行的回呼。如果多次呼叫模型,回呼就會執行多次。每個回呼函式都應傳回至少包含下列項目的結構 (例如 dict 或物件): -「decision」:可以是「OK」或「TRIGGER」。-「reason」:說明決定的字串。「觸發」決定可能會停止後續處理程序。 |
回撥電話
| JSON 表示法 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 欄位 | |
|---|---|
description |
選用。使用者可理解的回呼說明。 |
disabled |
選用。回呼是否已停用。代理程式會忽略已停用的回呼。 |
proactiveExecutionEnabled |
選用。如果啟用這項功能,系統也會對中繼模型輸出內容執行回呼。這項設定只會影響模型回呼後續作業。請謹慎啟用。通常在收到所有模型回覆後,才需要執行模型回呼。啟用主動執行功能可能會對執行費用和延遲時間造成負面影響,因此只應在極少數情況下啟用。 |
聯集欄位 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 |
代表自 Unix 紀元 1970-01-01T00:00:00Z 起算的世界標準時間秒數。必須介於 -62135596800 和 253402300799 之間 (含),對應至 0001-01-01T00:00:00Z 至 9999-12-31T23:59:59Z。 |
nanos |
以奈秒為單位的非負秒數小數。這個欄位是時間長度的奈秒部分,並非秒數的替代值。如果第二個值為負數,且包含分數,奈秒值仍須為非負數,且會向前計時。必須介於 0 至 999,999,999 之間 (含)。 |
工具註解
破壞性提示:✅ | 等冪提示:❌ | 唯讀提示:❌ | 開放世界提示:❌