团队里Agent越来越多,谁建的、干什么的、接了哪些MCP Server,问一圈没人说得清。AWS上周放出了Agent Registry的Preview版,挂在Bedrock AgentCore下面,想解决的就是这个问题------把Agent、工具、MCP Server统一登记,要用的时候搜一下就行。
我花了半天跑通了整个流程,把踩的坑记下来。
它干什么
Agent Registry是一个私有目录。你可以往里面注册Agent、工具、Skill、MCP Server这些东西,每条记录带描述、连接信息、工具schema。团队里其他人想找某个能力,搜一下registry就行,不用翻wiki、问人、看代码。
支持两种搜索方式:关键词搜索和语义搜索。语义搜索的意思是你可以用自然语言描述需求,比如"我要一个能发邮件的工具",它能匹配到注册过的邮件发送Agent。
目前Preview版开在5个Region:us-east-1、us-west-2、ap-northeast-1(东京)、ap-southeast-2(悉尼)、eu-west-1(爱尔兰)。
创建Registry
控制台方式
进AgentCore控制台,左边导航栏选Registry,点Create registry。填个名字,选认证方式------IAM或者JWT二选一,建好之后不能改。
IAM认证适合内部团队用,JWT认证适合对外开放或者跨组织的场景。
还有一个开关:Auto-approval。开了的话,提交记录直接变成Approved状态,马上能搜到。关了的话,需要管理员审批后才可见。生产环境建议关掉,Preview阶段开着省事。
CLI方式
bash
aws bedrock-agentcore-control create-registry \
--name "my-agent-registry" \
--description "团队Agent注册中心" \
--region us-east-1
跑完返回一个registryArn,状态从CREATING变成READY大概要1-2分钟。
Python SDK
python
import boto3
client = boto3.client('bedrock-agentcore-control', region_name='us-east-1')
response = client.create_registry(
name='my-agent-registry',
description='团队Agent注册中心'
)
print(f"Registry ARN: {response['registryArn']}")
print(f"Status: {response['status']}")
注册一个MCP Server
Registry建好之后,往里面添记录。以一个PDF解析MCP Server为例:
控制台操作
进Registry详情页 → Registry records → Create record。填这些:
- Name: pdf-parser-mcp
- Type: 选MCP Server
- Description: 从PDF文件中提取文字和表格数据
- Endpoint URL: 填你MCP Server的地址
如果MCP Server已经在线,可以用URL-based discovery。Registry会自动去拉工具定义和schema,省得手动填。
CLI注册
bash
aws bedrock-agentcore-control create-registry-record \
--registry-name "my-agent-registry" \
--record-name "pdf-parser-mcp" \
--record-type "MCP_SERVER" \
--description "从PDF文件中提取文字和表格数据" \
--metadata '{"endpoint": "https://mcp.example.com/pdf-parser"}' \
--region us-east-1
提交之后,如果开了Auto-approval,记录直接生效。没开的话,管理员需要手动批准。
批准记录(关了Auto-approval的情况)
bash
aws bedrock-agentcore-control approve-registry-record \
--registry-name "my-agent-registry" \
--record-name "pdf-parser-mcp" \
--region us-east-1
搜索Agent和工具
注册了几条记录之后,搜索才有意思。
关键词搜索
bash
aws bedrock-agentcore-control search-registry \
--registry-name "my-agent-registry" \
--query "PDF" \
--region us-east-1
语义搜索
bash
aws bedrock-agentcore-control search-registry \
--registry-name "my-agent-registry" \
--query "我需要一个能从文档里提取结构化数据的工具" \
--search-type SEMANTIC \
--region us-east-1
语义搜索不要求关键词精确匹配,描述需求就行。你不知道别人给工具起了什么名,但你知道自己要什么。
用MCP Client直接查
Agent Registry本身也暴露了MCP Server接口。你可以在IDE里把它当成一个MCP Server接进来,让AI Agent直接查注册中心里有什么可以用。
配置方法:在Claude Code或Cursor的MCP配置里加一个:
json
{
"mcpServers": {
"agent-registry": {
"command": "aws",
"args": [
"bedrock-agentcore-control",
"start-mcp-server",
"--registry-name", "my-agent-registry",
"--region", "us-east-1"
]
}
}
}
这样你在编码的时候,AI助手可以自动搜注册中心,找到合适的工具并调用。
用起来之后
说几个实际跑下来觉得有价值的地方。
我们团队有个客户信息查询Agent,另一个组不知道,自己又写了一个。注册到Registry之后,第二个组在开工前搜了一下,发现已经有了,直接接入,省了两周工作量。
另一个好处是审计。每条记录的访问在CloudTrail里有日志。谁搜了什么、谁调了哪个Agent,都有迹可查。合规团队要的就是这个。
还有一点:MCP Server更新了工具定义后,在Registry里触发一次同步,它自动去拉最新schema。不用你手动改注册信息。
踩过的坑
认证方式建好之后不能改。我第一次建了IAM认证的Registry,后来想改JWT,发现改不了,只能删了重建。所以建之前先想清楚用IAM还是JWT。
目前只有5个Region可用。我的Agent跑在ap-southeast-1(新加坡),只能用最近的ap-northeast-1(东京),跨Region延迟多了几十毫秒。不影响功能,但体感上慢一拍。
语义搜索的中文效果不如英文。我试了同一个需求,英文query命中3条,中文只命中1条。如果搜中文没结果,先换英文试试。
URL-based discovery要求MCP Server公网可达。我有个MCP Server在VPC内网,Registry死活拉不到metadata。后来配了PrivateLink才通。如果你的Server也在内网,提前准备。
还有一个容易忽略的:记录name是永久的,建好不能改。想改名只能删除重建。命名建议用team-function-version的格式,比如data-pdf-parser-v1。
和其他方案对比
Google Cloud上周发布了类似的Agent Garden,Azure有Agent Catalog但还没GA。
AWS这个做法有一点不同:Registry本身暴露了MCP Server接口,Agent可以在运行时直接查注册中心。不需要人工去控制台配置"这个Agent可以调那个工具",Agent自己搜自己接。这比纯Web管理界面实用。
不过现在还是Preview。IAM权限配置比较繁琐,文档里的Python SDK示例有些参数名和实际API对不上(我碰到了两处),跑之前先看CLI的help确认参数。
小结
Agent Registry解决的问题很具体:Agent多了之后找不到、管不住。如果你的团队已经跑了5个以上的Agent或MCP Server,值得花半天试试。
注册一两条记录跑通搜索,半小时够了。真正花时间的是后面的事:制定命名规范、设计审批流程、把现有Agent一个个登记进去。工具给你了,工程实践得自己摸。