搜尋代理、工具和技能

您可以在 Google Cloud 控制台、Google Cloud CLI 或 Agent Registry API 中,透過關鍵字、前置字元或自然語言,搜尋已註冊的代理、Agent2Agent (A2A) 技能、獨立技能和 Model Context Protocol (MCP) 伺服器。關鍵字和前置字元搜尋功能可協助您依名稱、ID 或中繼資料快速找到資源。語意搜尋會根據意圖,在自然語言指令和說明中,找出概念相關的功能。

搜尋查詢會評估代理、MCP 伺服器和技能功能說明、工具結構定義和技能指令。您無法使用搜尋查詢來探索端點。如要瞭解如何依中繼資料列出及篩選端點,請參閱「探索端點並依中繼資料篩選元件」。

事前準備

  1. 設定 Agent Registry。
  2. 如果是單一專案設定,請取得已啟用 Agent Registry 的管理專案ID。如果您為多個專案設定了管理邊界,請使用管理專案的 ID 進行邊界範圍的探索和註冊,或指定成員專案 ID 進行單一專案作業。

  3. 在 Agent Registry 中註冊代理、MCP 伺服器或技能。

  4. 如要使用本文件中的 Google Cloud CLI 指令,請設定 gcloud CLI 環境。

必要的角色

如要取得在 Agent Registry 搜尋代理、工具和技能所需的權限,請要求管理員在已啟用 Agent Registry 的管理專案,授予您 Agent Registry API 檢視者 (roles/agentregistry.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

搜尋代理和工具

如要探索登錄檔中的功能,您可以在 Google Cloud 控制台、gcloud CLI 或 REST API 中搜尋已註冊的代理和 MCP 伺服器。

搜尋代理或 MCP 伺服器時,您可以依顯示名稱、說明或功能關鍵字查詢:

  • 代理:搜尋查詢會檢查代理的顯示名稱、說明、代理 ID,以及代理資訊卡中宣告的內嵌 A2A 技能名稱、說明和標記,找出相符項目。
  • MCP 伺服器:搜尋查詢會檢查伺服器的顯示名稱、說明、MCP 伺服器 ID,以及工具的名稱和說明,找出相符項目。

您可以執行關鍵字搜尋,找出功能中含有特定字詞的資源,例如代理的 A2A 技能或 MCP 伺服器的工具。如要瞭解這些功能在登錄檔中的結構,請參閱 JSON 結構定義。如需可搜尋欄位的完整清單,請參閱 API 參考資料。

關鍵字查詢接受自由文字字串,並支援邏輯運算子 AND、OR 和 NOT:

控制台

  1. 前往 Google Cloud 控制台的「Agent Registry」:

    前往 Agent Registry

  2. 在專案挑選器中,選取 Google Cloud 專案。

  3. 在頁面頂端的「Search your registry」(搜尋登錄檔) 列中,輸入至少三個字元的關鍵字查詢 (例如 flight 或 database),或欄位篩選器 (例如 Name:booking),然後按下 Enter。

    「搜尋結果」表格會顯示所選位置中相符的代理、MCP 伺服器和獨立技能。

gcloud

在 gcloud agent-registry agents search 或 gcloud agent-registry mcp-servers search 指令中提供 --search-string 旗標。

舉例來說,搜尋可處理航班預訂的代理:

gcloud agent-registry agents search \
    --project=PROJECT_ID \
    --location=REGION \
    --search-string="flight OR booking"

搜尋提供資料庫工具的 MCP 伺服器:

gcloud agent-registry mcp-servers search \
    --project=PROJECT_ID \
    --location=REGION \
    --search-string="database"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

REST

向 agents:search 或 mcpServers:search 端點傳送 POST 要求,並在要求主體中加入 searchString 欄位。

舉例來說,搜尋可處理航班預訂的代理:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"searchString": "flight OR booking"}' \
    "https://agentregistry.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/agents:search"

搜尋提供資料庫工具的 MCP 伺服器:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"searchString": "database"}' \
    "https://agentregistry.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/mcpServers:search"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

前置字元搜尋功能經過最佳化,可降低延遲時間,讓應用程式在使用者輸入內容時,動態擷取相關的代理和工具。

如果您正在建構自動化調度管理介面或自動完成功能,可以在代理程式註冊資料庫中執行前置字串搜尋,找出以指定字串開頭的結果。前置字元搜尋會使用 * 後置字元萬用字元符號,搜尋字詞的開頭:

gcloud

執行 gcloud agent-registry agents search 或 gcloud agent-registry mcp-servers search 指令,並加上前置字元運算式。

例如,搜尋顯示名稱開頭為 Best_A2A_* 的代理:

gcloud agent-registry agents search \
    --project=PROJECT_ID \
    --location=REGION \
    --search-string="displayName:Best_A2A_*"

同樣地,搜尋顯示名稱開頭為 Prod_Server_* 的 MCP 伺服器:

gcloud agent-registry mcp-servers search \
    --project=PROJECT_ID \
    --location=REGION \
    --search-string="displayName:Prod_Server_*"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

REST

在要求主體的 searchString 欄位中傳遞前置字元運算式:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"searchString": "displayName:Best_A2A_*"}' \
    "https://agentregistry.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/agents:search"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

跨管理邊界搜尋

如果您設定了管理邊界,可以從管理專案,在該邊界內所有成員專案的某個位置搜尋代理和 MCP 伺服器:

gcloud agent-registry agents search \
    --project=MANAGEMENT_PROJECT_ID \
    --location=LOCATION \
    --search-string="analytics"

更改下列內容:

  • MANAGEMENT_PROJECT_ID:管理專案的 ID。
  • LOCATION:要搜尋管理邊界的位置,例如 us-central1 等區域、us 或 eu 等多區域,或 global。Agent Registry 會匯總管理專案和邊界內所有成員專案中,相同位置的資源。

如要將管理專案的結果範圍縮小至特定成員專案,請傳遞設為 "project_id=MEMBER_PROJECT_ID" 的 --filter 旗標。如要只在單一成員專案中搜尋,不進行跨專案匯總,請改為在 --project 旗標中指定該成員專案的 ID。

從管理專案搜尋時:

  • 匯總自動探索到的資源:Agent Registry 會在管理邊界內的所有成員專案中,搜尋指定位置自動探索到的代理和 MCP 伺服器,以及在管理專案中該位置建立的任何已註冊 Service 資源。
  • 要求範圍資源名稱:在搜尋結果中,每個傳回的 Agent 或 McpServer 資源 name 欄位都會保留元件的 ID,並使用要求網址中指定的專案。
  • 專案範圍註冊資源:在成員專案中手動註冊的 Service 資源和建立的 Binding 資源,仍會限定在該成員專案範圍內,不會顯示在管理專案搜尋結果中。如要讓這些資源在管理邊界內顯示,請在管理專案中建立。

搜尋獨立技能

您可以搜尋在 Agent Registry 註冊的獨立技能。這項功能可讓您探索可重複使用的功能,並附加至代理。

搜尋技能時,系統會搜尋預設的技能修訂版本。如要更新技能的預設修訂版本,請參閱「更新技能中繼資料或預設修訂版本」。

搜尋模式

您可以根據需求,使用兩種技能搜尋模式:

  • 關鍵字搜尋:僅掃描基本中繼資料屬性,例如顯示名稱、說明、資源名稱和技能 ID。這個模式經過最佳化,適用於低延遲搜尋、精確查詢和名稱自動完成。如需範例,請參閱「依關鍵字或運算式搜尋技能」。
  • 語意搜尋:自動為 SKILL.md 酬載的完整內容建立索引,包括自然語言指令、指令碼和中繼資料資產。這個模式會找出概念主題,並經過最佳化調整,可讓協調器代理根據您的意圖,動態探索相關功能套件。如需範例,請參閱「依語意搜尋技能」。

搜尋欄位和語法

依中繼資料或關鍵字字串搜尋時,系統會為下列欄位建立索引:

欄位名稱 案件行為 前置字串搜尋 搜尋所有欄位 說明
displayName 不區分大小寫 是 是 技能的顯示名稱。在這個欄位搜尋常見名稱。
description 不區分大小寫 否 是 詳細說明技能的用途和功能。在這個欄位輸入要搜尋的關鍵字。
name 不區分大小寫 是 是 技能的資源名稱。在這個欄位依資源名稱搜尋。
skillId 不區分大小寫 是 是 技能的技能 ID。使用這個欄位尋找特定發布商的資產。 舉例來說,Google 代管技能的格式為 urn:skill:PUBLISHER_ID:NAMESPACE:SKILL_ID。
publisher 不區分大小寫 是 否 與技能相關聯的發布者。使用這個欄位,依發布機構篩選。
frontmatter.name 不區分大小寫 否 否 SKILL.md 檔案前置資料中定義的技能名稱。
frontmatter.description 不區分大小寫 否 否 SKILL.md 檔案前置資料中定義的技能說明。
frontmatter.compatibility 不區分大小寫 否 否 SKILL.md 檔案前置資料中定義的技能相容性。
frontmatter.license 不區分大小寫 否 否 SKILL.md 檔案前置資料中定義的技能授權。
createTime 不適用 否 否 技能的建立時間戳記。這個欄位僅適用於篩選器。支援範圍運算子 (例如 <、>) 和完全比對。
updateTime 不適用 否 否 技能上次更新的時間戳記。這個欄位僅適用於篩選器。支援範圍運算子 (例如 <、>) 和完全比對。

如要搜尋技能,請在 gcloud CLI 中使用 --query 旗標,或在 REST API 中使用 searchString 參數,提供查詢字串。您可以在搜尋要求中使用下列語法元素:

  • 布林運算子:加入 AND、OR 或 NOT 運算子,鏈結多項條件。
  • 欄位專屬篩選器:使用 : 運算子指定欄位,例如 displayName:database。
  • 前置字串搜尋:使用 * 後置字串萬用字元符號,尋找以特定前置字串開頭的值,例如 displayName:cloud-*。

依關鍵字或運算式搜尋技能

搜尋具有特定顯示名稱前置字元和說明關鍵字的技能:

gcloud

執行 gcloud alpha agent-registry skills search 指令並加上 --search-type=keyword:

gcloud alpha agent-registry skills search \
    --project=PROJECT_ID \
    --location=REGION \
    --query="displayName:cloud-* AND description:database" \
    --search-type=keyword

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

REST

使用 searchString 和 searchType=KEYWORD,向 skills:search 端點傳送 GET 要求:

curl -G -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    --data-urlencode "searchString=displayName:cloud-* AND description:database" \
    --data-urlencode "searchType=KEYWORD" \
    "https://agentregistry.googleapis.com/v1alpha/projects/PROJECT_ID/locations/REGION/skills:search"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

依語意搜尋技能

使用語意搜尋,找出與管理關聯式資料庫相關的技能:

gcloud

執行 gcloud alpha agent-registry skills search 指令並加上 --search-type=semantic:

gcloud alpha agent-registry skills search \
    --project=PROJECT_ID \
    --location=REGION \
    --query="manage and configure relational databases" \
    --search-type=semantic

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

REST

使用 searchString 和 searchType=SEMANTIC,向 skills:search 端點傳送 GET 要求:

curl -G -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    --data-urlencode "searchString=manage and configure relational databases" \
    --data-urlencode "searchType=SEMANTIC" \
    "https://agentregistry.googleapis.com/v1alpha/projects/PROJECT_ID/locations/REGION/skills:search"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:登錄檔區域或 global。

Google 代管技能

任何專案都能找到 Google 代管技能。如要查看可用的 Google 代管技能清單,請前往 GitHub 的 google/skills 存放區。

探索端點並依中繼資料篩選元件

您也可以在代理程式登錄檔中探索任何元件,包括已註冊的端點,方法是列出其集合並篩選結構化中繼資料欄位:

  • 探索端點:由於 Endpoint 資源不支援 :search 查詢,因此您必須在Google Cloud 控制台瀏覽「Endpoints」(端點) 分頁、執行 gcloud agent-registry endpoints list --filter,或呼叫 endpoints.list REST 方法,才能探索端點。如需完整操作說明,請參閱「管理及探索端點」。
  • 篩選代理、MCP 伺服器和技能:如果您知道元件的登錄檔 ID (URN)、顯示名稱或屬性,可以在Google Cloud 控制台篩選集合,或將 --filter 傳遞至 gcloud agent-registry agents list、gcloud agent-registry mcp-servers list 或 gcloud alpha agent-registry skills list。詳情請參閱「管理代理」、「管理 MCP 伺服器和工具」和「管理技能」。