技能架構

在代理程式登錄檔中,技能可讓您將指令、選用指令碼和領域知識封裝成模組化功能,擴充代理程式的推論和工作流程。在 Agent Registry 註冊獨立技能後,您就能集中管理版本、控管及共用可重複使用的代理工作邏輯。代理程式登錄也會為代理程式資訊卡上宣告的內嵌 A2A 技能建立索引,讓其他代理程式可以探索及叫用這些技能。

技能類型

Agent Registry 支援兩種技能:

  • 獨立技能:在代理註冊資料庫中,註冊為頂層 Skill 資源的版本管控套件。獨立技能包含 SKILL.md 指令檔案、選用指令碼和中繼資料資產,可獨立於任何單一代理部署作業進行管理。
  • A2A 技能:代理 agent-card.json Agent Card 的 skills 欄位中列出的能力說明,可讓其他代理瞭解何時及如何委派工作。

如要比較這兩種模型,請參閱「獨立和 A2A 技能之間的差異」。

獨立技能

獨立技能是 Agent Registry 中的頂層資源,與代理、MCP 伺服器和端點一併管理。與這些元件不同,獨立技能不會使用個別的 Service 資源。而是直接在三個資源層級註冊、建立版本及查詢獨立技能:

  • 發布者:Publisher 資源,用於建立技能集合的擁有權、驗證層級和技能 ID 語法。
  • 技能容器:Agent Registry 中的頂層 Skill 資源,消費者會在執行階段探索及解析這些資源,每個資源都會維護指向技能預設服務修訂版本的指標。
  • 技能修訂版本:不可變更的唯讀 SkillRevision 資源,包含技能套件的指令、選用指令碼,以及特定版本的中繼資料資產。

發布者

Agent Registry 中的每項獨立技能都屬於一個發布端。發布者會為技能建立來源、驗證層級和命名首碼:

  • Google 代管的發布商 (FIRST_PARTY):由 Google 管理的已驗證發布商,例如 cloud.google.com 和 discoveryengine.googleapis.com。設定代理程式登錄檔並使用下列技能 ID 格式:urn:skill:PUBLISHER_ID:NAMESPACE:SKILL_ID,即可在所有專案中找到這些發布商提供的 Google 代管技能。例如:urn:skill:discoveryengine.googleapis.com:discoveryengine:report-writing。
  • 私人發布者 (PRIVATE):預設的 private 發布者,會自動指派給您在 Google Cloud 管理專案中手動註冊的自訂技能。為避免與已驗證的 Google 代管技能發生命名衝突,Agent Registry 會自動在技能 ID 前方加上 private- 前置字元。您無法註冊自訂 Publisher 資源。私人技能會使用下列統一資源名稱 (URN) 格式做為技能 ID:urn:skill:projects-PROJECT_NUMBER:locations:LOCATION:private-SKILL_ID。例如:urn:skill:projects-PROJECT_NUMBER:locations:global:private-incident-triage。

如需檢查發布者的操作說明,請參閱「查看技能發布者詳細資料」。

技能容器

技能容器是 Skill 資源,代表治理專案和位置中的獨立技能。如果是手動建立的技能,Agent Registry 會產生資源名稱,格式為 projects/PROJECT_NUMBER/locations/LOCATION/skills/private-SKILL_ID。

Skill 資源是 Agent Registry 中探索作業的穩定參考點,並維護下列欄位:

  • 描述性中繼資料:人類可讀的顯示名稱 (displayName)、摘要說明 (description)、技能 ID (skillId) 和發布者屬性。
  • 預設修訂版本指標:defaultRevision 欄位,參照消費者解析或下載技能時,未要求明確修訂版本 ID,而提供的特定 SkillRevision 資源。
  • 目標生命週期狀態:targetState 欄位,用於控制技能處於啟用、停用、淘汰或停用狀態。

如需查看及更新技能的操作說明,請參閱「管理技能」。

技能修訂版本

技能修訂版本 (SkillRevision) 資源代表技能套件不可變更的版本化快照。資源名稱的格式如下:projects/PROJECT_NUMBER/locations/LOCATION/skills/SKILL_ID/revisions/REVISION_ID。

更新技能的操作說明、選用指令碼或中繼資料素材資源時,不會直接修改現有套件,而是上傳新的 ZIP 封存檔,建立新修訂版本。Agent Registry 驗證封存檔符合代理技能規格和擷取酬載限制後,修訂版本就會進入有效 (ACTIVE) 狀態。接著,您可以更新父項技能的預設修訂版本指標,提供新的修訂版本。如果刪除設為技能預設修訂版本的修訂版本,Agent Registry 會清除 defaultRevision 指標,並將有效技能轉換為「Disabled」(DISABLED) 狀態。

將技能容器與技能修訂版本快照分開,可帶來下列好處:

  • 確定性執行:固定至特定修訂版本的代理,可避免非預期的提示變更或指令碼更新。
  • 控管復原作業:您可以上傳及驗證新的技能修訂版本,或在發生問題時將 defaultRevision 指標還原至先前的修訂版本。
  • 可稽核性:技能套件的歷來修訂版本會保留並可供檢查,直到明確刪除為止。

如需上傳、下載及刪除修訂版本的操作說明,請參閱「管理技能修訂版本」。

套件規格

獨立技能會封裝為 ZIP 封存檔,符合開放標準代理技能規格。

封存檔的根目錄必須包含 SKILL.md 檔案,以及技能所需的任何指令碼或中繼資料資產。SKILL.md 檔案定義了技能的指令。這個檔案結合了 YAML front matter 中繼資料 (例如 name 和 description)、Agent Runtime 解讀的自然語言指令,以及封存中任何選用指令碼或支援資產的參照。

註冊技能或建立修訂版本時,Agent Registry 會根據擷取酬載限制驗證封存檔、剖析 SKILL.md 檔案,並為中繼資料建立索引,以便搜尋與發現。

技能生命週期狀態

如要控管獨立技能在執行階段的解析和下載方式,您可以將技能容器的 targetState 轉換為四種狀態:

  • Active (ACTIVE):技能已提供、已建立索引供探索,且可用於執行階段解析和酬載下載。如要將技能設為「Active」,其 defaultRevision 指標必須參照有效的 SkillRevision 資源。
  • 停用 (DISABLED):建立技能時的預設初始狀態。系統不會在執行階段提供技能,解析和酬載下載作業會立即失敗。如果技能的 defaultRevision 指標遭到清除,或預設修訂版本遭到刪除,技能也會轉換為「Disabled」狀態。與「已停用」狀態不同,您可以設定有效的 defaultRevision,並將目標狀態更新為「有效」,藉此啟用已停用的技能。
  • 已淘汰 (DEPRECATED):技能仍可解析及下載,但會向消費者指出即將停用。
  • 已停用 (DECOMMISSIONED):最終狀態,技能會永久停用、不再提供,且無法還原為「Active」或任何其他狀態。技能必須先淘汰,才能停用。

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Agent Registry API 更新技能的生命週期狀態,不必刪除歷來修訂版本。如要下載修訂版本的 ZIP 酬載,父項技能必須處於「Active」(有效) 或「Deprecated」(已淘汰) 狀態,且修訂版本本身必須處於「Active」(有效) 狀態。如需逐步說明,請參閱「管理技能生命週期狀態」。

獨立動作和 A2A 動作的差異

Agent Registry 支援獨立技能和內嵌 A2A 技能。下表比較了兩者的特性:

特性 獨立技能 內嵌 A2A 技能
資源類型 Agent Registry 中的頂層 Skill 資源,含有子項 SkillRevision 資源。 Agent 資源中的巢狀陣列。
套件內容 ZIP 封存檔,內含 SKILL.md、選用指令碼和支援素材資源。 代理資訊卡中的 JSON 物件,包含 id、name 和 description。
版本管理模型 不可變更的技能修訂版本快照,具有可設定的 defaultRevision 指標。 直接與代理的 agent-card.json 更新連結。
執行模式 下載並載入代理的結構定義或執行階段環境。 通告工作能力,以便在代理之間委派工作。
規格 Agent Skills 規格。 Agent2Agent (A2A) 規格。
管理範圍 跨專案管理,不受個別代理部署作業影響。 與主機代理程式部署作業的生命週期連結。

後續步驟