搜索智能体、工具和技能

借助 Agent Registry,您可以在 Google Cloud 控制台、Google Cloud CLI 或 Agent Registry API 中,按关键字、前缀或自然语言搜索已注册的智能体、Agent2Agent (A2A) 技能、独立技能和 Model Context Protocol (MCP) 服务器。关键字和前缀搜索可帮助您按名称、标识符或元数据快速查找资源。语义搜索可根据意图,在自然语言指令和说明中查找概念上相关的功能。

搜索查询会评估智能体、MCP 服务器和技能功能说明、工具架构以及技能指令。您无法使用搜索查询来发现端点;如需了解如何按元数据列出和过滤端点,请参阅按元数据发现端点和过滤组件。

准备工作

  1. 设置 Agent Registry。
  2. 获取已启用 Agent Registry 的治理项目的项目 ID。

  3. 在 Agent Registry 中注册智能体、MCP 服务器或技能。

  4. 如需使用本文档中的 Google Cloud CLI 命令,请设置 gcloud CLI 环境。

所需的角色

如需获得在 Agent Registry 中搜索智能体、工具和技能所需的权限,请让您的管理员为您授予已启用 Agent Registry 的治理项目的 Agent Registry API Viewer (roles/agentregistry.viewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

搜索代理和工具

如需发现注册表中的功能,您可以在 Google Cloud 控制台、gcloud CLI 或 REST API 中搜索已注册的智能体和 MCP 服务器。

搜索智能体或 MCP 服务器时,您可以按显示名称、说明或功能关键字进行查询:

  • 智能体:搜索查询会检查智能体的显示名称、说明、智能体标识符,以及其智能体卡片中声明的内嵌 A2A 技能的名称、说明和标签,以查找匹配项。
  • MCP 服务器:搜索查询会检查服务器的显示名称、说明、MCP 服务器标识符及其工具的名称和说明,以查找匹配项。

您可以执行关键字搜索,查找功能中包含特定字词的资源,例如智能体的 A2A 技能或 MCP 服务器的工具。 如需了解这些功能在注册表中的结构,请参阅 JSON 架构。如需查看可搜索字段的完整列表,请参阅 API 参考文档。

关键字查询接受自由文本字符串,并支持逻辑运算符 AND、OR 和 NOT:

控制台

  1. 在 Google Cloud 控制台中,前往 Agent Registry:

    前往 Agent Registry

  2. 从项目选择器中,选择您的 Google Cloud 项目。

  3. 在页面顶部的搜索您的注册表栏中,输入至少包含三个字符的关键字查询(例如 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。

前缀搜索针对低延迟进行了优化,让您的应用能够在用户输入时动态检索相关智能体和工具。

如果您要构建编排器界面或自动补全功能,可以在 Agent Registry 中执行前缀搜索,以查找以给定字符串开头的结果。前缀搜索使用 * 后缀通配符来搜索单词的开头:

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。

搜索独立技能

您可以搜索在 Agent Registry 中注册的独立技能。此功能可让您发现可附加到智能体的可重用功能。

搜索技能时,您搜索的是默认技能修订版本。如需更新技能的默认修订版本,请参阅更新技能元数据或默认修订版本。

搜索模式

您可以根据自己的需求,使用两种技能搜索模式:

  • 关键字搜索:仅扫描基本元数据属性,例如显示名称、说明、资源名称和技能标识符。此模式针对低延迟搜索、精确查找和名称自动补全进行了优化。如需查看示例,请参阅按关键字或表达式搜索技能。
  • 语义搜索:自动为 SKILL.md 载荷的完整内容(包括自然语言指令、脚本和元数据资产)编制索引。此模式可识别概念主题,并针对编排器智能体进行了优化,以便根据您的意图动态发现相关功能包。如需查看示例,请参阅按语义搜索技能。

搜索字段和语法

按元数据或关键字字符串搜索时,系统会为以下字段编制索引:

字段名称 大小写行为 前缀搜索 全字段搜索 说明
displayName 不区分大小写 是 是 技能的显示名称。使用此字段可搜索通用名称。
description 不区分大小写 否 是 技能用途和功能的详细说明。使用此字段搜索关键字。
name 不区分大小写 是 是 技能的资源名称。使用此字段可按资源名称进行搜索。
skillId 不区分大小写 是 是 技能的技能标识符。使用此字段可查找特定发布商的资产。 例如,Google 管理的 skill 的格式为 urn:skill:PUBLISHER_ID:NAMESPACE:SKILL_ID。
publisher 不区分大小写 是 否 与技能关联的发布商。使用此字段可按发布组织进行过滤。
frontmatter.name 不区分大小写 否 否 在 SKILL.md 文件的 front matter 中定义的技能名称。
frontmatter.description 不区分大小写 否 否 SKILL.md 文件的 front matter 中定义的技能说明。
frontmatter.compatibility 不区分大小写 否 否 SKILL.md 文件的 front matter 中定义的技能兼容性。
frontmatter.license 不区分大小写 否 否 SKILL.md 文件的 front matter 中定义的技能许可。
createTime 不适用 否 否 创建技能时的时间戳。此字段仅在过滤条件中可用。支持范围运算符(例如 <、>)和完全匹配。
updateTime 不适用 否 否 上次更新技能时的时间戳。此字段仅在过滤条件中可用。支持范围运算符(例如 <、>)和完全匹配。

如需搜索技能,请在 gcloud CLI 中使用 --query 标志或在 REST API 中使用 searchString 参数提供查询字符串。您可以在搜索请求中使用以下语法元素:

  • 布尔运算符:包含 AND、OR 或 NOT 运算符,用于串联要求。
  • 字段专用过滤条件:使用 : 运算符定位字段,例如 displayName:database。
  • 前缀搜索:使用 * 后缀通配符查找以特定前缀开头的值,例如 displayName:cloud-*。

按关键字或表达式搜索技能

搜索具有特定显示名称前缀和说明关键字的技能:

gcloud

使用 --search-type=keyword 运行 gcloud alpha agent-registry skills search 命令:

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

向 skills:search 端点发送 GET 请求,并附带 searchString 和 searchType=KEYWORD:

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

使用 --search-type=semantic 运行 gcloud alpha agent-registry skills search 命令:

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

向 skills:search 端点发送 GET 请求,并附带 searchString 和 searchType=SEMANTIC:

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 管理的 skill

Google 管理的 skill 可从任何项目中发现。如需查看可用的 Google 管理的 skill 列表,请参阅 GitHub 上的 google/skills 代码库。

发现端点并按元数据过滤组件

您还可以通过列出 Agent Registry 的集合并过滤结构化元数据字段,在 Agent Registry 中发现任何组件,包括已注册的端点:

  • 发现端点:由于 Endpoint 资源不支持 :search 查询,因此您可以通过浏览Google Cloud 控制台中的端点标签页、运行 gcloud agent-registry endpoints list --filter 或调用 endpoints.list REST 方法来发现端点。如需查看完整说明,请参阅管理和发现端点。
  • 过滤智能体、MCP 服务器和技能:如果您知道组件的注册表标识符 (URN)、显示名称或属性,可以在Google Cloud 控制台中过滤集合,或将 --filter 传递给 gcloud agent-registry agents list、gcloud agent-registry mcp-servers list 或 gcloud alpha agent-registry skills list。如需了解详情,请参阅管理代理、管理 MCP 服务器和工具以及管理技能。