View a markdown version of this page

开始使用 AWS 代理注册表 - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 AWS 代理注册表

迁移现已开放

AWS 代理注册表已在新agent-registry命名空间下启动。对公共预览bedrock-agentcore命名空间的支持将于 2026 年 9 月 17 日停止。有关迁移说明,请参阅综合注册表迁移指南。

在本指南中,您将创建自己的第一个注册表、添加记录、批准并进行搜索。

先决条件

完成先决条件中的步骤。

第 1 步:创建注册表

使用 IAM 授权和手动批准创建注册表。

控制台

使用 IAM-based 授权创建注册表

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表。

  3. 在注册表部分中,选择创建注册表。

  4. 在注册表详细信息部分的名称中,输入注册表的名称。名称必须以字母数字字符开头。有效字符为 a—z、A—Z、0—9、_(下划线)、(连字符)、-(句点)和.(正斜杠)。/该名称最多可包含 64 个字符。

  5. (可选)选择其他详细信息以展开该部分,然后在描述中输入描述以帮助识别此注册表。

  6. 在发现授权部分中,对于身份验证类型,选择使用 IAM 授权(入站授权)。

  7. 在 “记录批准” 部分,开启或关闭 Auto-approval:

    • 启用Auto-approval后,当您提交记录以供批准时,该记录将直接移至 “已批准” 状态,并在不久之后出现在搜索结果中。

    • 关闭Auto-approval时,当您提交记录以供批准时,该记录将变为待批准状态,并要求策展人在发布之前对其进行审核和批准。

  8. (可选)在标签部分中,选择添加新标签以将一个或多个标签附加到注册表。每个标签都有一个密钥和一个可选值。

  9. 选择 “创建注册表” 。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表。

  3. 在注册表部分中,选择创建注册表。

  4. 在注册表详细信息部分的名称中,输入注册表的名称。名称必须以字母数字字符开头。有效字符为 a—z、A—Z、0—9、_(下划线)、(连字符)、-(句点)和.(正斜杠)。/该名称最多可包含 64 个字符。

  5. (可选)选择其他详细信息以展开该部分,然后在描述中输入描述以帮助识别此注册表。

  6. 在 S earch API 授权部分中,对于身份验证类型,选择使用 IAM 授权(入站授权)。

  7. 在 “记录批准” 部分,开启或关闭 Auto-approval:

    • 启用Auto-approval后,当您提交记录以供批准时,该记录将直接移至 “已批准” 状态,并在不久之后出现在搜索结果中。

    • 关闭Auto-approval时,当您提交记录以供批准时,该记录将变为待批准状态,并要求策展人在发布之前对其进行审核和批准。

  8. 选择 “创建注册表” 。

使用 JWT-based 授权创建注册表

身份提供商授权使用 JSON Web 令牌 (JWT) 来控制对注册表的可发现数据平面 API 和 MCP 端点的访问权限。您可以使用 Amazon Cognito 快速设置授权,也可以自带身份提供商来启用 OAuth 2.0。

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表。

  3. 在注册表部分中,选择创建注册表。

  4. 在注册表详细信息部分的名称中,输入注册表的名称。名称必须以字母数字字符开头。有效字符为 a—z、A—Z、0—9、_(下划线)、(连字符)、-(句点)和.(正斜杠)。/该名称最多可包含 64 个字符。

  5. (可选)选择其他详细信息以展开该部分,然后在描述中输入描述以帮助识别此注册表。

  6. 在发现授权部分中,对于身份验证类型,选择使用 JSON Web 令牌 (JWT)(入站授权)。

  7. 对于 JWT 架构配置,请选择以下选项之一:

    1. 使用 Cognito 快速创建配置(推荐)— AWS 代理注册表使用 Amazon Cognito 作为身份提供商代表您创建授权配置。无需其他配置。

    2. 使用现有的身份提供商配置 -带上自己的身份提供商来启用 OAuth 2.0。如果选择此选项,请完成以下步骤:

      1. 对于发现 URL,请输入您的身份提供商提供的发现 URL。 AWS 代理注册表使用此 URL 自动获取您的提供商的登录、令牌和验证设置。您可以在身份提供商的控制面板或文档(例如https://cognito-identity.amazonaws.com/.well-known/openid-configuration)中找到此 URL。

        注意

        创建注册表后无法更改发现 URL。

      2. (可选)在 JWT 授权配置下,选择 “允许的受众” 以提供允许的受众列表, AWS 代理注册表将对照 JWT 令aud牌中的声明进行验证。OAuth 2.0 中的受众声明 (aud) 指定了令牌适用于哪个资源服务器 (API)。这样可以确保令牌在处理请求之前是正确的接收者,从而防止令牌在未签发的其他 API 上重复使用。

      3. (可选)选择 “允许的客户端” 以提供允许的客户机标识符列表, AWS 代理注册表将根据 JWT 令牌中的client_id声明对这些标识符进行验证。A client_id 是应用程序的公共唯一标识符,该应用程序请求访问令牌以访问注册表的可发现数据平面 API 或 MCP 端点。如果启用此选项,请在 “客户机” 字段中输入一个或多个客户端 ID,然后选择 “添加客户端” 以添加其他客户机。

      4. (可选)选择 “允许的范围” 以提供允许的权限列表,定义为范围。如果已配置,则传入令牌中的至少一个范围值必须与其中一个配置值相匹配。作用域充当权限来限制应用程序可以执行的操作。

      5. (可选)选择自定义声明,提供一组规则,将传入令牌中的特定声明与预定义值相匹配。对于每条规则,指定声明名称、值类型(STRIN G 或 STRING_ARRAY)和所需的匹配值。

  8. 在 “记录批准” 部分,开启或关闭 Auto-approval:

    1. 启用Auto-approval后,当您提交记录以供批准时,该记录将直接移至 “已批准” 状态,并立即出现在搜索结果中。

    2. 关闭Auto-approval时,当您提交记录以供批准时,该记录将变为待批准状态,并要求注册管理机构管理员在发布之前对其进行审核和批准。

  9. (可选)在标签部分中,选择添加新标签以将一个或多个标签附加到注册表。每个标签都有一个密钥和一个可选值。

  10. 选择 “创建注册表” 。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表。

  3. 在注册表部分中,选择创建注册表。

  4. 在注册表详细信息部分的名称中,输入注册表的名称。名称必须以字母数字字符开头。有效字符为 a—z、A—Z、0—9、_(下划线)、(连字符)、-(句点)和.(正斜杠)。/该名称最多可包含 64 个字符。

  5. (可选)选择其他详细信息以展开该部分,然后在描述中输入描述以帮助识别此注册表。

  6. 在 S earch API 授权部分中,对于身份验证类型,选择使用 JSON Web 令牌 (JWT)(入站授权)。

  7. 对于 JWT 架构配置,请选择以下选项之一:

    1. 使用 Cognito 快速创建配置(推荐)— AWS 代理注册表使用 Amazon Cognito 作为身份提供商代表您创建授权配置。无需其他配置。

    2. 使用现有的身份提供商配置 -带上自己的身份提供商来启用 OAuth 2.0。如果选择此选项,请完成以下步骤:

      1. 对于发现 URL,请输入您的身份提供商提供的发现 URL。 AWS 代理注册表使用此 URL 自动获取您的提供商的登录、令牌和验证设置。您可以在身份提供商的控制面板或文档(例如https://cognito-identity.amazonaws.com/.well-known/openid-configuration)中找到此 URL。

        注意

        创建注册表后无法更改发现 URL。

      2. (可选)在 JWT 授权配置下,选择 “允许的受众” 以提供允许的受众列表, AWS 代理注册表将对照 JWT 令aud牌中的声明进行验证。OAuth 2.0 中的受众声明 (aud) 指定了令牌适用于哪个资源服务器 (API)。这样可以确保令牌在处理请求之前是正确的接收者,从而防止令牌在未签发的其他 API 上重复使用。

      3. (可选)选择 “允许的客户端” 以提供允许的客户机标识符列表, AWS 代理注册表将根据 JWT 令牌中的client_id声明对这些标识符进行验证。A client_id 是请求访问令牌以访问注册表搜索 API 的应用程序的公共唯一标识符。如果启用此选项,请在 “客户机” 字段中输入一个或多个客户端 ID,然后选择 “添加客户端” 以添加其他客户机。

      4. (可选)选择 “允许的范围” 以提供允许的权限列表,定义为范围。如果已配置,则传入令牌中的至少一个范围值必须与其中一个配置值相匹配。作用域充当权限来限制应用程序可以执行的操作。

      5. (可选)选择自定义声明,提供一组规则,将传入代币中的特定声明与预定义值进行匹配。对于每条规则,指定声明名称、值类型(STRIN G 或 STRING_ARRAY)和所需的匹配值。

  8. 在 “记录批准” 部分,开启或关闭 Auto-approval:

    1. 启用Auto-approval后,当您提交记录以供批准时,该记录将直接移至 “已批准” 状态,并立即出现在搜索结果中。

    2. 关闭Auto-approval时,当您提交记录以供批准时,该记录将变为待批准状态,并要求注册管理机构管理员在发布之前对其进行审核和批准。

  9. 选择 “创建注册表” 。

注意

* 至少需要一个 JWT 授权配置字段:允许的受众、允许的客户端、允许的范围或自定义声明。如果您配置了多个, AWS 代理注册表会验证所有这些。* 创建注册表后无法更改发现 URL。* 创建注册表后无法更改授权类型(IAM 或 JWT)。* 注册表一次仅支持一种形式的入站授权类型——IAM SigV4 或 JWT 不记名令牌。您不能同时使用两者。仅支持通过 IAM-based 注册表通过 IAM 进行搜索;仅支持通过基于 Oauth 的注册表通过 Oauth 进行搜索。

创建注册表后,控制台导航到注册表详细信息页面。注册表的初始状态为 “正在创建”。 AWS 代理注册表为注册表分配一个 ARN,您可以在注册表详细信息部分中找到该信息。配置完成后,注册表状态更改为 “就绪”。当注册表的状态为 “就绪” 时,您可以向其添加记录。

AWS CLI

例
AWS Agent Registry namespace
aws agent-registry-control create-registry \ --name "MyFirstRegistry" \ --description "My first Agent Registry" \ --region us-east-1
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control create-registry \ --name "MyFirstRegistry" \ --description "My first Agent Registry" \ --region us-east-1

注册表状态从 “正在创建” 开始,并在配置完成后过渡到 “就绪”。

AWS SDK

例
AWS Agent Registry namespace
import boto3 client = boto3.client('agent-registry-control') response = client.create_registry( name='my-agent-registry', description='My first Agent Registry' ) print(response['registryArn'])
Amazon Bedrock AgentCore namespace (to be deprecated)
import boto3 client = boto3.client('bedrock-agentcore-control') response = client.create_registry( name='my-agent-registry', description='My first Agent Registry' ) print(response['registryArn'])

第 2 步:添加注册表记录

在注册表中为 MCP 服务器创建记录。

控制台

注册记录代表代理、工具、技能或自定义资源。

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表,然后选择要添加记录的注册表的名称。

  3. 在注册表记录部分,选择创建记录。

  4. 选择来源类型:

    1. 从端点同步 -提供端点 URL 和可选凭据,以从 MCP 服务器或代理 (A2A) 端点提取元数据。有关详细信息,请参见同步来自外部来源的记录。

    2. 手动 -手动配置记录详细信息和协议配置。继续执行以下步骤。

  5. 在记录详细信息部分的 “名称” 中,输入记录的唯一名称。该名称在注册表中必须是唯一的—— Name 和的组合Record version必须是唯一的。名称必须以字母数字字符开头。有效字符为 a—z、A—Z、0—9、_(下划线)、(连字符)、-(句点)和.(正斜杠)。/该名称最多可包含 255 个字符。

  6. (可选)在 “显示名称” 中,为记录输入一个人类可读的标签。它出现在注册记录表和搜索结果中,旁边是记录的技术名称。

  7. (可选)在描述中,输入记录的描述。描述可以是 1 到 4,096 个字符。

  8. 对于记录版本,输入记录的版本标识符(例如,1.0.0或v2.1)。

  9. 在 “记录类型和描述符” 部分:

    1. 在 “类型” 下,选择记录的语义类型。该类型决定哪些主描述符键有效。

      • MCP — 专为 AI 工具和代理通信设计的协议。处理上下文管理和结构化消息格式。

      • 代理 — 专为安全代理与代理交互而设计的协议。支持分布式工作流程和信息交换。

      • 技能 — 使用 markdown 文档和可选的结构化定义注册代理技能。

      • 自定义 — 针对特殊通信模式的自定义协议实现。定义您自己的接口规范和集成要求。

    2. 在 “描述符” 下,选择记录描述符数据的形状。可用选项取决于您选择的类型:

      • MCP → MCP 服务器或自定义

      • 代理 → A2A 代理卡、 MCP 服务器或自定义

      • 技能 → 代理技能定义或自定义

      • 自定义 → 自定义

  10. 根据您选择的描述符,会出现一个特定描述符的编辑器:

    1. MCP 服务器 -从 “架构版本” 下拉列表中选择一个架构版本(例如,2025-12-11),然后在 MCP 服务器定义编辑器中从 “模型上下文协议” 网站输入模型上下文协议注册表 server.json。 该定义必须符合所选版本的官方 MCP 服务器架构。要查看官方架构作为参考,请打开 “显示官方架构” 。(可选)选择添加工具定义以添加此服务器上可用的工具及其输入参数、输出和使用示例。选择架构版本(例如2025-11-25),然后在您的工具定义编辑器中输入您的工具定义。

    2. A2A 代理卡 — 架构版本为0.3。在编辑器中输入您的代理卡定义。要查看官方架构作为参考,请打开 “显示官方架构” 。

    3. 代理技能定义 -对于技能文档,请输入描述此技能的降价代码。(可选)选择 “包括技能定义” 以添加结构化定义。选择架构版本并将定义作为 JSON 对象输入。

    4. 自定义 -以 JSON 对象的形式输入您的自定义定义。

  11. (可选)在标签部分中,选择添加新标签以将一个或多个标签附加到记录中。每个标签都有一个密钥和一个可选值。

  12. 选择创建记录。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表,然后选择要添加记录的注册表的名称。

  3. 在注册表记录部分,选择创建记录。

  4. 选择来源类型:

    1. 从端点同步 -提供端点 URL 和可选凭据,以从 MCP 服务器或代理 (A2A) 端点提取元数据。有关详细信息,请参见同步来自外部来源的记录。

    2. 手动 -手动配置记录详细信息和协议配置。继续执行以下步骤。

  5. 在 “记录详细信息” 部分的 “名称” 中,输入记录的名称。名称必须以字母数字字符开头。有效字符为 a—z、A—Z、0—9、_(下划线)、(连字符)、-(句点)和.(正斜杠)。/该名称最多可包含 255 个字符。

  6. (可选)在描述中,输入记录的描述。描述可以是 1 到 4,096 个字符。

  7. 对于记录版本,输入记录的版本标识符(例如,1.0.0或v2.1)。

  8. 在记录类型部分中,选择与您的资源匹配的类型:

    1. MCP — 专为 AI 工具和代理通信设计的协议。处理上下文管理和结构化消息格式。如果您选择此类型,请完成以下步骤:

      1. 在 MCP 服务器定义部分,从 “架构版本” 下拉列表中选择一个架构版本(例如,2025-12-11),然后在 “您的 MCP 服务器定义编辑器” 中,从 “模型上下文协议” 网站输入模型上下文协议注册表 server.json。该定义必须符合所选版本的官方 MCP 服务器架构。要查看官方架构作为参考,请打开 “显示官方架构” 。

      2. (可选)选择添加工具定义以添加此服务器上可用的特定工具及其输入参数、输出和用法示例,以增强可发现性。如果您选择此选项,请从 “架构版本” 下拉列表中选择一个架构版本(例如,2025-11-25),然后在 “您的工具定义编辑器” 中输入您的工具定义。要查看官方工具架构作为参考,请打开 “显示官方架构” 。

    2. 代理 — 专为安全代理与代理交互而设计的协议。支持分布式工作流程和信息交换。如果选择此类型,则架构版本为0.3。在编辑器中输入您的代理卡定义。要查看官方架构作为参考,请打开 “显示官方架构” 。

    3. 代理技能 — 使用 markdown 文档和可选的结构化定义注册代理技能。如果您选择此类型,请完成以下步骤:

      1. 要查看技能文档,请输入描述此技能的 markdown 文档。

      2. (可选)选择 “包括技能定义” 以添加结构化定义。如果您选择此选项,请从架构版本下拉列表中选择架构版本,然后在编辑器中以 JSON 对象的形式输入技能定义。

    4. 自定义 — 针对特殊通信模式的自定义协议实现。定义您自己的接口规范和集成要求。如果您选择此类型,请在编辑器中以 JSON 对象的形式输入您的自定义定义。

  9. 选择创建记录。

注意

要向注册表中添加不符合标准 MCP 或 A2A 协议架构的服务器或代理,请使用自定义记录类型。

选择 “创建记录” 后, AWS 代理注册表开始设置记录。记录的初始状态为 “正在创建”。配置完成后,状态更改为 “草稿”。要使该记录可供他人查找,请将其提交以供批准。有关更多信息,请参阅步骤 3:提交记录以供审批。

AWS CLI

例
AWS Agent Registry namespace
aws agent-registry-control create-registry-record \ --registry-id <registryId> \ --name "weather-server" \ --display-name "WeatherServer" \ --record-type MCP \ --descriptors '{"mcpServer": {"data": "{\"name\": \"weather/mcp-server\", \"description\": \"Weather data service\", \"version\": \"1.0.0\"}", "dataSchemaVersion": "2025-12-11"}}' \ --record-version "1.0" \ --region us-east-1
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control create-registry-record \ --registry-id <registryId> \ --name "WeatherServer" \ --descriptor-type MCP \ --descriptors '{"mcp": {"server": {"inlineContent": "{\"name\": \"weather/mcp-server\", \"description\": \"Weather data service\", \"version\": \"1.0.0\"}"}}}' \ --record-version "1.0" \ --region us-east-1

该记录在 “创建” 状态下创建,并在处理完成时转换为 “草稿”。有关创建其他类型记录的更多 AWS CLI 示例,请参阅创建和管理记录部分。

AWS SDK

例
AWS Agent Registry namespace
import boto3 import json client = boto3.client('agent-registry-control') server_content = json.dumps({ "name": "io.example/weather-server", "description": "A weather MCP server", "version": "1.0.0" }) tools_content = json.dumps({ "tools": [{ "name": "get_weather", "description": "Get the current weather for a location", "inputSchema": { "type": "object", "properties": { "location": { "type": "string", "description": "City name" } }, "required": ["location"] } }] }) response = client.create_registry_record( registryId='<registryId>', name='my-mcp-server', displayName='My MCP Server', recordType='MCP', descriptors={ 'mcpServer': { 'data': server_content, 'dataSchemaVersion': '2025-12-11', 'additionalData': { 'tools': { 'data': tools_content, 'dataSchemaVersion': '2024-11-05' } } } }, recordVersion='1.0' ) print(f"Record ARN: {response['recordArn']}") print(f"Status: {response['status']}") # CREATING
Amazon Bedrock AgentCore namespace (to be deprecated)
import boto3 import json client = boto3.client('bedrock-agentcore-control') server_content = json.dumps({ "name": "io.example/weather-server", "description": "A weather MCP server", "version": "1.0.0" }) tools_content = json.dumps({ "tools": [{ "name": "get_weather", "description": "Get the current weather for a location", "inputSchema": { "type": "object", "properties": { "location": { "type": "string", "description": "City name" } }, "required": ["location"] } }] }) response = client.create_registry_record( registryId='<registryId>', name='my-mcp-server', descriptorType='MCP', descriptors={ 'mcp': { 'server': { 'schemaVersion': '2025-12-11', 'inlineContent': server_content }, 'tools': { 'protocolVersion': '2024-11-05', 'inlineContent': tools_content } } }, recordVersion='1.0' ) print(f"Record ARN: {response['recordArn']}") print(f"Status: {response['status']}") # CREATING

第 3 步:提交记录以供批准

控制台

提交记录以供批准将启动审核流程,使该记录可供查阅。您可以从注册表或记录详细信息页面提交记录。

从注册记录表中提交记录以供批准

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要提交的记录。

  4. 选择 “更新状态”,然后选择 “提交以供批准” 。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要提交的记录。

  4. 选择 “更新状态”,然后选择 “提交以供批准” 。

从记录详细信息页面提交记录以供审批

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要提交的记录的名称。

  4. 选择 “更新状态”,然后选择 “提交以供批准” 。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要提交的记录的名称。

  4. 选择 “更新状态”,然后选择 “提交以供批准” 。

在您提交记录以供批准后,记录状态会根据注册机构的批准设置而变化:

  • 如果注册表已Auto-approval开启,则记录状态将直接更改为 “已批准”,并在不久之后显示在搜索结果中。

  • 如果注册表已关Auto-approval闭,则记录状态将更改为待批准,并要求注册管理机构管理员在发布之前对其进行审核和批准。

AWS CLI

例
AWS Agent Registry namespace
aws agent-registry-control submit-registry-record-for-approval \ --registry-id <registryId> \ --record-id <recordId> \ --region us-east-1
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control submit-registry-record-for-approval \ --registry-id <registryId> \ --record-id <recordId> \ --region us-east-1

该记录移至 PENDING_APPROVAL(如果启用了自动批准,则直接移至 “已批准”)。

AWS SDK

例
AWS Agent Registry namespace
import boto3 client = boto3.client('agent-registry-control') response = client.submit_registry_record_for_approval( registryId='<registryId>', recordId='<recordId>' ) print(f"Record ARN: {response['recordArn']}") print(f"Record ID: {response['recordId']}") print(f"Status: {response['status']}") # PENDING_APPROVAL or APPROVED print(f"Updated At: {response['updatedAt']}")
Amazon Bedrock AgentCore namespace (to be deprecated)
import boto3 client = boto3.client('bedrock-agentcore-control') response = client.submit_registry_record_for_approval( registryId='<registryId>', recordId='<recordId>' ) print(f"Record ARN: {response['recordArn']}") print(f"Record ID: {response['recordId']}") print(f"Status: {response['status']}") # PENDING_APPROVAL or APPROVED print(f"Updated At: {response['updatedAt']}")

第 4 步:批准记录

控制台

批准注册表中的记录

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要批准的记录。

  4. 选择 “更新状态”,然后选择 “批准” 。

  5. 在确认对话框中,输入状态更改的原因。

  6. 选择确认。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要批准的记录。

  4. 选择 “更新状态”,然后选择 “批准” 。

  5. 在确认对话框中,输入状态更改的原因。

  6. 选择确认。

从记录详细信息页面批准记录

例
AWS Agent Registry namespace
  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要批准的记录的名称。

  4. 在记录详细信息页面中,选择更新状态,然后选择批准。

  5. 在确认对话框中,输入状态更改的原因。

  6. 选择确认。

Amazon Bedrock AgentCore namespace (to be deprecated)
  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 在 “注册记录” 部分,选择要批准的记录的名称。

  4. 在记录详细信息页面中,选择更新状态,然后选择批准。

  5. 在确认对话框中,输入状态更改的原因。

  6. 选择确认。

AWS CLI

例
AWS Agent Registry namespace
aws agent-registry-control update-registry-record-status \ --registry-id <registryId> \ --record-id <recordId> \ --status APPROVED \ --status-reason "Reviewed and approved" \ --region us-east-1
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control update-registry-record-status \ --registry-id <registryId> \ --record-id <recordId> \ --status APPROVED \ --status-reason "Reviewed and approved" \ --region us-east-1

AWS SDK

例
AWS Agent Registry namespace
import boto3 client = boto3.client('agent-registry-control') response = client.update_registry_record_status( registryId='<registryId>', recordId='<recordId>', status='APPROVED', statusReason='Meets all requirements' ) print(f"Record ARN: {response['recordArn']}") print(f"Status: {response['status']}") # APPROVED print(f"Reason: {response['statusReason']}")
Amazon Bedrock AgentCore namespace (to be deprecated)
import boto3 client = boto3.client('bedrock-agentcore-control') response = client.update_registry_record_status( registryId='<registryId>', recordId='<recordId>', status='APPROVED', statusReason='Meets all requirements' ) print(f"Record ARN: {response['recordArn']}") print(f"Status: {response['status']}") # APPROVED print(f"Reason: {response['statusReason']}")

第 5 步:发现批准的记录

记录目录是用于浏览和搜索注册表中已批准记录的控制台页面。当您在记录目录页面上选择注册表时,控制台会自动列出其批准的记录。从那里你可以翻阅列表,或使用搜索框运行自然语言查询。以编程方式,用于ListDiscoverableRegistryRecords在一次调用中浏览、搜索和BatchGetDiscoverableRegistryRecord获取多条记录的完整详细信息。SearchDiscoverableRegistryRecords

控制台

注意

Console-based 发现仅适用于使用 IAM 作为授权类型的注册表。如果您的注册表使用 JSON 网络令牌 (JWT),请使用诸如 curl 或 Postman 之类的 HTTP 客户端,在请求标头中使用有效的 JWT 承载令牌,直接调用可发现的数据平面 API。 AWS CLI 和 AWS 软件开发工具包使用 IAM SigV4 签名,不能与注册表一起使用。 JWT-authorized 有关更多详细信息,请参阅搜索注册表记录。

例
AWS Agent Registry namespace

浏览或搜索批准的记录

  1. 打开AWS 代理注册表控制台。

  2. 在导航窗格中,选择 “录制目录” 。

  3. 在 “注册表” 下,选择要浏览其批准记录的注册机构。该页面会自动列出该注册表中所有批准的记录。

  4. (可选)在页面右上角的 “卡片” 和 “表格” 视图之间切换。

  5. (可选)在搜索批准的记录中,输入自然语言查询或名称以缩小结果范围,然后选择搜索。

  6. 选择一张卡片或一行以打开记录的完整详细信息。

记录目录仅显示处于 “已批准” 状态的记录。不显示处于 “草稿”、“待批准”、“已拒绝” 或 “已弃用” 状态的记录。

Amazon Bedrock AgentCore namespace (to be deprecated)

搜索注册表记录

  1. 在Bedrock-AgentCore 控制台中打开 AWS 代理注册表页面。

  2. 在导航窗格中,选择注册表,然后选择注册表名称。

  3. 选择 “搜索记录” 选项卡。

  4. 在 “搜索批准的记录” 字段中,输入您的搜索查询。

  5. (可选)要按特定属性筛选结果,请选择搜索字段展开 “属性” 菜单,然后选择筛选器:名称、描述符类型或版本。

  6. 选择搜索。

搜索仅返回处于 “已批准” 状态的记录。处于 “草稿”、“待批准”、“已拒绝” 或 “已弃用” 状态等其他状态的记录不会出现在搜索结果中。

AWS CLI

浏览批准的记录 — 在注册表中列出批准的记录:

aws agent-registry list-discoverable-registry-records \ --registry-id "<registry-id>" \ --region us-east-1

搜索批准的记录 — 运行混合语义 + 关键字搜索:

例
AWS Agent Registry namespace
aws agent-registry search-discoverable-registry-records \ --search-query "weather" \ --registry-ids "<registry-id>" \ --region us-east-1
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore search-registry-records \ --search-query "weather" \ --registry-ids "<registry-id>" \ --region us-east-1

一次检索多条记录的完整详细信息:

aws agent-registry batch-get-discoverable-registry-record \ --entries '[{"registryId": "<registry-id>", "recordIds": ["<recordId-1>", "<recordId-2>"]}]' \ --region us-east-1
注意

ListDiscoverableRegistryRecordsBatchGetDiscoverableRegistryRecord并且仅在agent-registry命名空间中可用。它们在bedrock-agentcore命名空间中不可用。

AWS SDK

浏览批准的记录:

import boto3 client = boto3.client('agent-registry') list_response = client.list_discoverable_registry_records( registryId='<registry-id>', maxResults=20 ) for record in list_response['registryRecords']: print(f"{record['displayName']} ({record['name']}) - {record['recordType']}")

搜索批准的记录:

例
AWS Agent Registry namespace
import boto3 client = boto3.client('agent-registry') response = client.search_discoverable_registry_records( registryIds=['arn:aws:agent-registry:us-east-1:<account>:registry/<registryId>'], searchQuery='weather forecast tool', maxResults=10 ) for record in response['registryRecords']: print(f"Record: {record['displayName']} ({record['recordId']})") print(f" Name: {record['name']}") print(f" Type: {record['recordType']}") print(f" Status: {record['status']}") print(f" Version: {record['recordVersion']}")
Amazon Bedrock AgentCore namespace (to be deprecated)
import boto3 client = boto3.client('bedrock-agentcore') response = client.search_registry_records( registryIds=['arn:aws:bedrock-agentcore:us-east-1:<account>:registry/<registryId>'], searchQuery='weather forecast tool', maxResults=10 ) for record in response['registryRecords']: print(f"Record: {record['name']} ({record['recordId']})") print(f" Type: {record['descriptorType']}") print(f" Status: {record['status']}") print(f" Version: {record['version']}")

一次检索多条记录的完整详细信息:

batch_response = client.batch_get_discoverable_registry_record( entries=[{'registryId': '<registry-id>', 'recordIds': ['<recordId-1>', '<recordId-2>']}] ) for record in batch_response['registryRecords']: print(f"{record['displayName']} ({record['name']}) - {record['recordType']}") for err in batch_response['errors']: print(f"Error for {err['recordId']}: {err['errorCode']}")

你建造了什么

  • 具有 IAM 授权和手动批准的注册表

  • 描述 MCP 服务器的注册表记录

  • 经批准的记录可在记录目录中浏览和搜索

后续步骤

  • 在和的基础上构建目录式的ListDiscoverableRegistryRecords探索体验 BatchGetDiscoverableRegistryRecord

  • 设置亚马逊 EventBridge 通知以自动执行您的批准流程

  • 为您的代理、服务器、技能和自定义资源添加更多记录