設定語意管理政策和政策引擎
本節說明如何從基礎架構準備階段過渡到政策撰寫階段。
必要條件
設定語意管理政策前,請先完成下列步驟。
啟用必要的 API
開始前,請先啟用語意管理政策及其網路元件所需的 API:
gcloud services enable \
aiplatform.googleapis.com \
agentregistry.googleapis.com \
networkservices.googleapis.com \
networksecurity.googleapis.com \
compute.googleapis.com \
dns.googleapis.com \
--project=PROJECT_ID
代理程式資格規定
如要在Google Cloud 控制台的語意控管政策代理程式選取器中顯示代理程式,必須部署代理程式的推論引擎,並設定 identity_type=AGENT_IDENTITY 和 agent_gateway_config。如果缺少任一項目, Google Cloud 控制台會從選取器中篩除代理程式。API 和 gcloud 會改為傳回明確錯誤。
如要部署符合這些需求的代理程式,請按照「透過 Agent Gateway 轉送 Agent Runtime 流量」一文的說明操作。這兩個欄位在現有的推論引擎中都無法變更,因此如果部署的代理程式缺少這兩個欄位,就必須重新部署,修補作業無法解決問題。
如要確認現有代理程式是否符合資格,請確認其推理引擎的spec.effectiveIdentity開頭為 agents.global.:
gcloud ai reasoning-engines describe REASONING_ENGINE_ID \
--region=LOCATION \
--project=PROJECT_ID \
--format='value(spec.effectiveIdentity)' \
| grep -q '^agents.global.' \
&& echo "Eligible" || echo "Not eligible"
支援的地區
下列地區位置支援語意管理政策引擎和語意管理政策:
| 地理位置 | 可用地區 |
|---|---|
| 美洲 | us-central1、us-east1、us-east4、us-west1 |
| 歐洲 | europe-southwest1、europe-west1、europe-west4、europe-west8 |
佈建和啟用
啟用語意管理政策引擎。這會佈建必要的執行階段環境。 佈建作業通常約需 2 到 3 分鐘。不過,如果需求量高或暖機集區正在重新填入,佈建時間最多可能需要 20 分鐘。選擇下列其中一個佈建選項:
- Google 代管繫結:Google 會在您的專案中建立基礎網路資源,並自動管理其生命週期。 Google Cloud
- 自行管理的繫結:您直接在 Google Cloud 專案中建立及管理必要的網路資源 (
network、subnetwork和dnsZoneName)。
完成佈建後,您必須將政策引擎連線至 Agent Gateway。
Google 管理的繫結
REST
curl -X PATCH \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine?updateMask=SemanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{ "gatewayConfigs": {
"GATEWAY_NAME": {
"network": "NETWORK_NAME",
"subnetwork": "SUBNETWORK_NAME",
"dnsZoneName": "DNS_NAME" }
}
}'
gcloud
gcloud beta ai semantic-governance-policy-engine update \
--location=LOCATION \
--project=PROJECT_ID \
--gateway-config="name='GATEWAY_NAME',network=NETWORK_NAME,subnetwork=SUBNETWORK_NAME,dns-zone-name=DNS_NAME"
更改下列內容:
GATEWAY_NAME,並提供不重複的閘道名稱。DNS_NAME,並將其替換為要使用的私人 DNS 區域名稱。PROJECT_ID替換為 Google Cloud 專案 ID (projects/PROJECT_ID/global/networks/default)。如果您使用自訂網路和子網路,請相應地替換完整的network和subnetwork資源路徑。
自行管理的繫結
REST
curl -X PATCH "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine"
}'
gcloud
gcloud beta ai semantic-governance-policy-engine update \
--location=LOCATION \
--project=PROJECT_ID
這個指令會傳回長時間執行的作業。您可以將 OPERATION 替換為回應中的 name 值,輪詢作業狀態:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/OPERATION" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
或者,請檢查整體引擎狀態,直到 state 欄位傳回
ACTIVE:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
設定網路
佈建政策引擎後,請設定 Agent Gateway 與政策引擎通訊所需的網路元件。
1. 佈建虛擬私有雲網路和子網路
在這個步驟中,您將建立虛擬私有雲網路、子網路,以及僅限 Proxy 的子網路,用於代理程式流量。顯示的 IP 範圍 (10.11.12.0/24 和 10.11.13.0/24) 僅為範例。您可以根據網路設計使用任何 RFC 1918 私人範圍。
建立虛擬私有雲網路:
gcloud compute networks create NETWORK_NAME \ --subnet-mode=auto \ --project=PROJECT_ID將
NETWORK_NAME替換為虛擬私有雲網路的名稱 (例如agent-network)。建立子網路:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=LOCATION \ --range=10.11.12.0/24 \ --project=PROJECT_ID將
SUBNET_NAME替換為子網路名稱 (例如agent-subnet)。建立僅限 Proxy 的子網路 (管理型負載平衡器必須使用):
gcloud compute networks subnets create PROXY_SUBNET_NAME \ --network=NETWORK_NAME \ --region=LOCATION \ --range=10.11.13.0/24 \ --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \ --project=PROJECT_ID將
PROXY_SUBNET_NAME替換為僅限 Proxy 子網路的名稱 (例如agent-proxy-subnet)。
2. 佈建私人 DNS 區域
建立私人 DNS 區域,允許 Agent Gateway 解析政策引擎的主機名稱:
gcloud dns managed-zones create DNS_ZONE_NAME \
--description="Private zone for my internal agentic VPC services" \
--dns-name="internal.example.com." \
--visibility=private \
--networks=NETWORK_NAME \
--project=PROJECT_ID
Replace the following:
DNS_ZONE_NAME:DNS 區域的名稱 (例如my-private-zone)。internal.example.com.:區域的 DNS 名稱,包括結尾處的點號。
3. 建立網路連結
建立網路連結,允許 Agent Gateway 連線至虛擬私有雲中的資源。連線偏好設定必須設為 ACCEPT_AUTOMATIC。
gcloud compute network-attachments create NETWORK_ATTACHMENT_NAME \
--region=LOCATION \
--subnets=SUBNET_NAME \
--connection-preference=ACCEPT_AUTOMATIC \
--project=PROJECT_ID
Replace the following:
NETWORK_ATTACHMENT_NAME:網路連結的名稱 (例如sgp-nw-attachment)。SUBNET_NAME:您在步驟 1 中建立的子網路。
4. 建立靜態 IP、PSC 端點和 DNS 記錄
預留靜態 IP 位址、建立指向政策引擎服務連結的 Private Service Connect (PSC) 端點,並建立 DNS 記錄,確保端點可連線。
# Reserve a static IP address
gcloud compute addresses create STATIC_IP_NAME \
--region=LOCATION \
--subnet=SUBNET_NAME \
--purpose=GCE_ENDPOINT \
--project=PROJECT_ID
# Capture the reserved IP address
IP=$(gcloud compute addresses describe STATIC_IP_NAME \
--region=LOCATION \
--project=PROJECT_ID \
--format=value(address))
# Create the PSC endpoint
gcloud compute forwarding-rules create PSC_ENDPOINT_NAME \
--region=LOCATION \
--network=NETWORK_NAME \
--address=STATIC_IP_NAME \
--target-service-attachment=PSC_SERVICE_ATTACHMENT \
--project=PROJECT_ID
# Create a DNS A record for the policy engine
gcloud dns record-sets create SGP_DNS_HOSTNAME \
--zone=DNS_ZONE_NAME \
--type=A \
--ttl=300 \
--rrdatas=$IP \
--project=PROJECT_ID
更改下列內容:
STATIC_IP_NAME:保留 IP 位址的名稱 (例如sgp-psc-ip)。PSC_ENDPOINT_NAME:PSC 端點的名稱 (例如sgp-psc-endpoint)。PSC_SERVICE_ATTACHMENT:從佈建回應中儲存的pscServiceAttachment值。SGP_DNS_HOSTNAME:私人 DNS 區域下的主機名稱,格式為LOCATION.DNS_ZONE_SUFFIX,其中DNS_ZONE_SUFFIX是您建立私人 DNS 區域時指定的 DNS 名稱。舉例來說,如果您的位置是us-west1,而 DNS 區域後置字串是internal.example.com,請使用us-west1.internal.example.com。
5. 設定 Agent Gateway 的虛擬私有雲連線
建立網路資源後,您必須在 Agent Gateway 上註冊網路連結和 DNS 對等互連,才能透過私人網路連線至政策引擎。
如需詳細操作說明,請參閱 Agent Gateway 設定指南中的「設定 VPC 連線」。您至少必須:
- 使用 Agent Gateway 輸出設定,註冊步驟 3 中建立的網路連結。
- 註冊 DNS 對等互連,讓閘道可以解析步驟 4 中建立的私人 DNS 主機名稱。
將政策引擎連線至 Agent Gateway
設定網路後,您必須建立授權擴充功能和授權政策,Agent Gateway 才能將流量轉送至政策引擎進行評估。
建立授權擴充功能:建立授權擴充功能,指向政策引擎的 DNS 主機名稱。使用您在「設定網路」(步驟 4) 中建立 DNS 記錄的相同
SGP_DNS_HOSTNAME。這是 Agent Gateway 將流量傳送至政策引擎進行評估的機制。gcloud
在 YAML 檔案 (
authz-ext.yaml) 中定義擴充功能設定,然後匯入:name: AUTHZ_EXTENSION_NAME service: SGP_DNS_HOSTNAME authority: SGP_DNS_HOSTNAME failOpen: false loadBalancingScheme: LOAD_BALANCING_SCHEME_UNSPECIFIEDgcloud service-extensions authz-extensions import AUTHZ_EXTENSION_NAME \ --source=authz-ext.yaml \ --location=LOCATION \ --project=PROJECT_IDREST
curl -X POST \ "https://networkservices.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzExtensions?authzExtensionId=AUTHZ_EXTENSION_NAME" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "service": "SGP_DNS_HOSTNAME", "authority": "SGP_DNS_HOSTNAME", "failOpen": false, "loadBalancingScheme": "LOAD_BALANCING_SCHEME_UNSPECIFIED" }'將
SGP_DNS_HOSTNAME替換為您在「設定網路」(步驟 4) 中建立 A 記錄的 DNS 主機名稱。這個指令會傳回長時間執行的作業。請等待作業完成後再繼續操作。
建立授權政策:建立授權政策,將擴充功能繫結至 Agent Gateway。這會告知 Agent Gateway 透過政策引擎傳送流量以進行評估。
gcloud
在 YAML 檔案 (
authz-policy.yaml) 中定義授權政策設定,然後匯入:name: AUTHZ_POLICY_NAME target: loadBalancingScheme: LOAD_BALANCING_SCHEME_UNSPECIFIED resources: - projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME httpRules: - to: operations: - paths: - prefix: / when: "!request.headers['content-type'].startsWith('application/grpc') && (request.path.endsWith(':generateContent') || request.path.endsWith(':streamGenerateContent'))" action: CUSTOM policyProfile: CONTENT_AUTHZ customProvider: authzExtension: resources: - projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAMEgcloud network-security authz-policies import AUTHZ_POLICY_NAME \ --source=authz-policy.yaml \ --location=LOCATION \ --project=PROJECT_IDREST
curl -X POST \ "https://networksecurity.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzPolicies?authzPolicyId=AUTHZ_POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "target": { "loadBalancingScheme": "LOAD_BALANCING_SCHEME_UNSPECIFIED", "resources": ["projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME"] }, "httpRules": [{ "to": { "operations": [{"paths": [{"prefix": "/"}]}] }, "when": "!request.headers['"'"'content-type'"'"'].startsWith('"'"'application/grpc'"'"') && (request.path.endsWith('"'"':generateContent'"'"') || request.path.endsWith('"'"':streamGenerateContent'"'"'))" }], "action": "CUSTOM", "policyProfile": "CONTENT_AUTHZ", "customProvider": { "authzExtension": { "resources": ["projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAME"] } } }'這個指令會傳回長時間執行的作業。請等待作業完成後再繼續操作。
建立政策
政策引擎啟用後,即可為代理定義技術和行為防護措施。
- 定義範圍:判斷政策適用於代理執行的所有動作,還是特定工具。
- 撰寫限制條件:以簡單的英文提供業務規則。
控制台
- 前往 Google Cloud 控制台的「語意控管政策」頁面。
- 按一下「+ 新增政策」。
- 在「新增政策」側邊面板中,設定下列項目:
- 名稱:輸入政策的專屬 ID。名稱只能包含小寫英文字母、數字和連字號。
- 說明:(選填) 輸入政策目的的簡要說明。
- 代理程式選取:選取這項規則適用的特定代理程式或所有代理程式。如果選擇器為空白,或缺少您預期的代理程式,請參閱代理程式資格規定。
- 存取目標:
- 如要將限制套用至每個動作,請勾選「將限制套用至所有工具」核取方塊。
- 如要指定特定資源,請從下拉式選單中選取 MCP 伺服器和個別工具。
- 限制:以自然語言輸入商家規則 (最多 5,000 個半形字元)。
- 點選「建立」。
gcloud
您可以使用 gcloud beta ai semantic-governance-policies create 指令,在代理程式範圍 (適用於所有工具) 或工具範圍設定限制。
找出代理商 ID
如要建立政策,您需要從代理程式登錄取得代理程式的專屬 ID。列出專案中的代理程式,找出 ID:
gcloud alpha agent-registry agents list \
--project=PROJECT_ID \
--location=LOCATION
代理程式 ID 是 name 欄位的最後一個區段 (例如 agentregistry-00000000-0000-0000-abcd-012345678901)。請在下列指令中,將此值用於 AGENT_ID 參數。
執行語意管理政策指令前,請先設定區域 API 端點覆寫:
gcloud config set api_endpoint_overrides/aiplatform \
https://LOCATION-aiplatform.googleapis.com/
建立代理程式範圍政策
gcloud beta ai semantic-governance-policies create POLICY_ID \
--location=LOCATION \
--display-name="Semantic governance policy for ShippingAgent-1" \
--description="Applies to all tool calls from the Cymbal shipping assistant agent" \
--agent=AGENT_ID \
--natural-language-constraint="Always use UPS as the shipping provider for shipments within the USA. Always use DHL as the shipping provider for shipments within the EU." \
--project=PROJECT_ID
尋找 MCP 伺服器
gcloud alpha agent-registry mcp-servers list \
--project=PROJECT_ID \
--location=LOCATION
建立工具範圍政策
gcloud beta ai semantic-governance-policies create POLICY_ID \
--location=LOCATION \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--agent=AGENT_ID \
--mcp-tools="mcp-server=MCP_SERVER,tools=TOOL_NAME" \
--natural-language-constraint="NLC_TEXT" \
--project=PROJECT_ID
啟用模擬測試模式
您可以啟用模擬測試模式 (DRY_RUN)。模擬測試是僅供稽核或模擬的模式,可讓您評估政策,但不強制執行。在此模式下,政策引擎會根據限制條件評估所有工具呼叫,並記錄結果,但絕不會封鎖動作。這項功能可讓您先測試及驗證限制,再啟用強制執行功能。
如要啟用模擬測試模式,請在授權擴充功能的
中繼資料中新增 sgpEnforcementMode: DRY_RUN:
curl -X PATCH \
"https://networkservices.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAME?updateMask=metadata" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"metadata": {
"sgpEnforcementMode": "DRY_RUN"
}
}'
模擬測試模式:
- 無論判斷結果為何,一律允許所有工具呼叫。
- 系統會記錄判決和理由,以供審查。
- 您可以查看記錄,找出會遭到封鎖的動作,並在切換至強制執行模式前,調整限制條件。
如要切換回正常強制執行模式,請從中繼資料中移除 sgpEnforcementMode:
curl -X PATCH \
"https://networkservices.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAME?updateMask=metadata" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"metadata": {}
}'
查看政策評估記錄
政策引擎會為每次評估作業,在專案的 Cloud Logging 中寫入結構化記錄項目。這個項目會記錄整體 verdict,以及每個工具或動作的 verdict 和 rationale 陣列。evaluations
- 從控制台:在「政策」頁面選取政策。
- 在「詳細資料」面板的「可觀測性」部分,依序點選「Cloud Logging」>「查看詳細資料」。
在 Logs Explorer 中:在查詢方塊中輸入
semantic-governance-policy,或使用下列明確篩選器:logName="projects/PROJECT_ID/logs/semantic-governance-policy"
以下是記錄項目的範例:
{
"jsonPayload": {
"token_usage": 1859,
"verdict": "ALLOW",
"token_usage_breakdown": {"output": 43, "thinking": 0, "input": 1816, "total": 1859},
"evaluations": [
{
"toolName": "process_refund",
"verdict": "ALLOW",
"actionName": "process_refund",
"rationale": "The action is aligned with the user's request to process a refund and complies with the constraints regarding order ID length."
}
]
},
"resource": {"type": "global", "labels": {"project_id": "PROJECT_NUMBER"}},
"logName": "projects/PROJECT_ID/logs/semantic-governance-policy"
}
關鍵欄位:
verdict:整體決策,可以是ALLOW或DENY。evaluations[].rationale:政策引擎針對每項工具或動作做出特定判決的理由。token_usage:評估作業消耗的模型權杖數量。
啟用要求追蹤
政策引擎會將評估的每項要求追蹤記錄匯出至專案的 Cloud Trace,方便您檢查每項要求的延遲時間和政策執行情況。如要接收這些追蹤記錄,請啟用 Cloud Trace API,並授予 Vertex AI 服務帳戶 (P4SA) 寫入追蹤記錄的權限。
啟用 Cloud Trace API:
gcloud services enable cloudtrace.googleapis.com \ --project=PROJECT_ID將 Cloud Trace 代理程式角色 (
roles/cloudtrace.agent) 授予 Vertex AI 服務帳戶。這個角色只會授予追蹤寫入權限 (cloudtrace.traces.patch):export PROJECT_NUM=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
設定完成後,透過代理程式傳送要求,並在專案的追蹤記錄探索器中查看追蹤記錄。
管理政策設定
語意管理政策執行完畢後,您可以刪除個別政策,或將引擎與 Agent Gateway 中斷連線。
刪除政策
如要移除個別政策,但不影響整體語意管理政策整合:
gcloud beta ai semantic-governance-policies delete POLICY_ID \
--location=LOCATION \
--project=PROJECT_ID
或者,使用下列 curl 指令:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicies/POLICY_ID" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
取消佈建政策引擎
REST
curl -X POST "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine:deprovision" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{}'
gcloud
gcloud beta ai semantic-governance-policy-engine deprovision \
--location=LOCATION \
--project=PROJECT_ID
將政策引擎與 Agent Gateway 中斷連線
您可以將政策引擎與 Agent Gateway 中斷連線,停止根據限制評估工具呼叫。
刪除將語意管理政策強制執行作業繫結至代理閘道的授權政策:
gcloud network-security authz-policies delete AUTHZ_POLICY_NAME \
--location=LOCATION \
--project=PROJECT_ID
如要稍後重新連線政策引擎,請按照「將政策引擎連線至 Agent Gateway」一文的說明,重新建立授權政策。
(選用) 刪除授權擴充功能
刪除設定期間建立的授權擴充功能。
gcloud network-services authz-extensions delete AUTHZ_EXTENSION_NAME \
--location=LOCATION \
--project=PROJECT_ID
(選用) 清理客戶管理的資源
取消佈建引擎只會拆除 Google 管理的支援資源。如不再需要設定期間在專案中建立的資源,請手動刪除。
移除私人 DNS 區域
gcloud dns managed-zones delete DNS_ZONE_NAME \
--project=PROJECT_ID
移除子網路和虛擬私有雲
gcloud compute networks subnets delete SUBNET_NAME \
--region=LOCATION \
--project=PROJECT_ID
gcloud compute networks delete NETWORK_NAME \
--project=PROJECT_ID
(選用) 移除 IAM 繫結
如果您已授予 Vertex AI 服務帳戶 (P4SA) 權限,可以移除這些權限:
export PROJECT_NUM=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin"
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.iam.gserviceaccount.com" \
--role="roles/dns.admin"
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.iam.gserviceaccount.com" \
--role="roles/cloudtrace.agent"
(選用) 停用 Cloud Trace API
gcloud services disable cloudtrace.googleapis.com --project=PROJECT_ID
(選用) 停用 Agent Platform API
gcloud services disable aiplatform.googleapis.com --project=PROJECT_ID
偵錯政策強制執行
| 問題 | 可能原因 | 檢查項目 |
|---|---|---|
| 工具呼叫允許,但預期會遭到封鎖 | 政策與範圍和代理不符,或限制過於寬鬆 | 在評估記錄中,確認政策是否相符並查看結果;修正 NLC |
| 工具呼叫遭拒,但預期應允許 | 限制過於嚴格或規則衝突 | 查看記錄中的 rationale,調整 NLC,並在模擬測試模式中疊代 |
| 完全沒有判決 | 引擎未啟用或閘道未繫結 | 確認引擎 state 為 ACTIVE,且授權政策和/或擴充功能存在 |
如要偵錯非預期的判決結果,請按照下列步驟操作:
錯誤目錄
下表列出管理語意管理政策時可能遇到的錯誤,以及解決步驟:
| 錯誤名稱 | 說明 | 建議做法 |
|---|---|---|
SEMANTIC_GOVERNANCE_POLICY_ALREADY_EXISTS |
您指定的政策 ID 已存在於這個專案和位置。 | 使用專屬政策 ID,或使用 PATCH 要求更新現有政策。 |
SEMANTIC_GOVERNANCE_POLICY_ETAG_MISMATCH |
您要求中的 etag 與資源的目前版本不符。 | 請先擷取最新版本的政策,取得目前的 ETag,再嘗試更新。 |
SEMANTIC_GOVERNANCE_POLICY_AGENT_REQUIRED |
要求中缺少 agent 欄位。 |
指定要套用這項政策的代理資源名稱。 |
SEMANTIC_GOVERNANCE_POLICY_CONSTRAINT_REQUIRED |
缺少「natural_language_constraint」欄位。 |
在限制條件欄位中,以簡單的英文提供業務規則。 |
SEMANTIC_GOVERNANCE_POLICY_AGENT_INVALID_NAME |
代理程式資源名稱格式錯誤。 | 確認格式:projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID。 |
SEMANTIC_GOVERNANCE_POLICY_AGENT_UNSUPPORTED_REGION |
Agent Registry 不支援為代理程式指定的區域。 | 使用 Agent Registry 和語意管理政策都支援的區域。 |
SEMANTIC_GOVERNANCE_POLICY_AGENT_NOT_FOUND |
找不到指定的代理。 | 確認代理程式存在於指定專案和位置的代理程式登錄中。 |
SEMANTIC_GOVERNANCE_POLICY_AGENT_NOT_CONFIGURED |
服務專員缺少有效的 RuntimeIdentity。 |
請先為服務專員設定有效的執行階段身分,再套用政策。 |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_NOT_FOUND |
找不到指定的 MCP 伺服器。 | 確認 MCP 伺服器已在專案的 Agent Registry 中註冊。 |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_INVALID_NAME |
MCP 伺服器資源名稱格式錯誤。 | 確認格式:projects/PROJECT_ID/locations/LOCATION/mcpServers/SERVER_ID。 |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_UNSUPPORTED_REGION |
不支援為 MCP 伺服器指定的區域。 | 使用 MCP 伺服器支援的地區。 |
SEMANTIC_GOVERNANCE_POLICY_REGISTRY_DENIED |
缺少權限,因此系統無法查詢代理程式登錄。 | 啟用 Agent Registry API,並確認帳戶具備 agentregistry.viewer 角色。 |
SEMANTIC_GOVERNANCE_POLICY_ENGINE_NOT_ENABLED_IN_REGION |
政策引擎在要求區域中未啟用。 | 按照「設定網路」一文的步驟操作,在您所在的區域啟用引擎。 |
SEMANTIC_GOVERNANCE_POLICY_ENGINE_SERVICE_NOT_AVAILABLE_IN_LOCATION |
要求的地區不支援語意管理政策引擎服務。 | 請使用支援地區的其中一個,執行語意管理政策引擎服務。 |
後續步驟
- 進一步瞭解 Vertex AI gcloud CLI 指令。
- 在 Log Explorer 中監控政策判定結果。