搜索智能体、工具和技能

随着智能体生态系统的发展,找到合适的智能体或工具变得至关重要。Agent Registry 提供搜索功能,可让您在智能体、智能体技能和 Model Context Protocol (MCP) 服务器中执行高级关键字搜索、前缀搜索和语义搜索。

本文档介绍了如何构建搜索查询,以发现环境中的功能。

准备工作

在 Agent Registry 中搜索智能体、工具或技能之前,请注册智能体MCP 服务器。您还需要项目 ID 才能执行这些任务。

如需使用本文档中的 gcloud CLI 命令,请确保您已设置 Google Cloud CLI 环境

所需的角色

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

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

搜索代理和工具

如需发现注册表中的功能,您可以搜索已注册的代理MCP 服务器

搜索代理会匹配其基本元数据、说明和在代理卡片中内嵌声明的描述性 A2A 技能。搜索 MCP 服务器时,系统会匹配其说明和确定性工具

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

如需按关键字搜索,请提供 --search-string 标志。此参数接受自由文本查询,并支持逻辑运算符:ANDORNOT

例如,搜索可以处理航班预订的智能体:

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

您还可以根据 MCP 服务器提供的特定工具或其说明来搜索 MCP 服务器。例如,搜索提供数据库工具的 MCP 服务器:

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

替换以下内容:

  • PROJECT_ID:项目 ID。
  • REGION:注册区域。

前缀搜索经过高度优化,可实现低延迟,让您的应用在用户输入内容时动态检索相关代理和工具。

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

例如,搜索显示名称以特定前缀(例如 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:注册区域。

搜索独立技能

您可以搜索在 Agent Registry 中注册的独立技能。借助此功能,您可以发现可重用的功能,并将其附加到代理。

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

搜索模式

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

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

搜索字段和语法

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

字段名称 支持请求行为 前缀搜索 全字段搜索 说明
displayName 不区分大小写 技能面向用户的名称。使用此字段搜索常用名称。
description 不区分大小写 技能的用途和功能的详细说明。使用此字段匹配关键字。
name 不区分大小写 技能的程序化标识符。此字段用于匹配标识符字符串。
skillId 不区分大小写 技能的逻辑统一资源名称 (URN)。 使用此字段可查找特定发布商的资源。例如,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 不适用 上次更新技能时的时间戳。此字段仅在过滤条件中可用。支持范围运算符(例如 <>)和精确匹配。

查询字符串通过 --query 标志或 query 参数附加到命令,并且接受逻辑实参。您可以在搜索请求中使用以下元素:

  • 布尔值运算符:使用 ANDORNOT 运算符来串联要求。
  • 特定于字段的过滤条件:使用 : 运算符指定字段,例如 displayName:database
  • 前缀匹配:使用通配符后缀 :* 可查找以特定前缀开头的匹配项,例如 skillId:db-*

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

以下示例搜索与特定显示名称前缀和说明关键字匹配的技能:

gcloud alpha agent-registry skills search \
  --project=PROJECT_ID \
  --location=REGION \
  --query="displayName:db-* AND description:sql"

替换以下内容:

  • PROJECT_ID:项目 ID。
  • REGION:注册区域。

按语义搜索技能

以下示例执行语义搜索,以查找与数据库查询处理相关的技能,匹配自然语言查询中的概念主题:

gcloud alpha agent-registry skills search \
  --project=PROJECT_ID \
  --location=REGION \
  --query="find skills to handle database queries" \
  --search-type=semantic

替换以下内容:

  • PROJECT_ID:项目 ID。
  • REGION:注册区域。

公开技能

Google 的公开技能可供所有项目在全球范围内发现。如需查看可用的公开技能列表,请参阅 GitHub 上的 google/skills 代码库

当您执行搜索时,Agent Registry 会动态重写输出中公共技能的逻辑资源名称,使其看起来好像托管在您的本地项目中,从而简化集成。