通过创建 Service 资源在 Agent Registry 中手动注册智能体或 Model Context Protocol (MCP) 服务器时,您需要提供声明其功能的 JSON 配置文件。智能体注册表会先根据开源规范验证这些文件,然后再将其编入索引,以便使用者能够发现智能体 A2A 技能和 MCP 工具。请使用以下 JSON 结构和示例来设置 Agent Card 和 MCP 工具规范的格式。
智能体卡片架构
注册符合 A2A 标准的代理时,您的 agent-card.json 载荷必须遵循官方 Agent2Agent (A2A) 规范。规范文件的大小上限为 10 KB。
skills 数组字段支持关键字搜索索引。
智能体注册表支持 A2A 智能体卡片的 1.0 和 0.3 版本。选择一个版本,查看其 JSON 架构和字段定义:
版本 1.0(推荐)
对于 A2A 智能体卡片的 1.0 版本,载荷必须遵循官方 A2A v1.0 规范。在此规范中,您可以在 supportedInterfaces 数组中声明传输端点:
{
"name": "string",
"description": "string",
"version": "string",
"supportedInterfaces": [
{
"url": "string",
"protocolBinding": "string",
"protocolVersion": "string",
"tenant": "string"
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
],
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"examples": [
"string"
]
}
]
}
字段定义
name:代理的人类可读名称。description:对代理用途的简要总结。version:代理的版本,例如1.0.0。supportedInterfaces:受支持的传输和网址组合的数组。每个接口都包含以下内容:url:此接口可访问的端点网址。protocolBinding:此网址支持的协议绑定,例如HTTP+JSON、JSONRPC或GRPC。protocolVersion:此接口公开的 A2A protocol 版本,例如1.0.0。tenant(可选):智能体所有者的标识符。
capabilities(可选):指定支持的操作功能,例如:extensions(可选):协议扩展数组。streaming(可选):一个布尔值,用于指示代理是否支持流式传输回答。pushNotifications(可选):一个布尔值,指示是否支持针对任务更新发送推送通知。extendedAgentCard(可选):一个布尔值,指示智能体在通过身份验证后是否提供扩展智能体卡片。
defaultInputModes(可选):可作为输入接受的 MIME 类型数组。defaultOutputModes(可选):作为输出生成的 MIME 类型的数组。skills:代理拥有的描述性 A2A 技能数组:id:A2A 技能的唯一程序化标识符。name:A2A 技能的人类可读名称。description:对 A2A 技能用途的详细说明。tags:用于对 A2A 技能进行分类的关键字字符串数组。examples:此 A2A 技能处理的示例提示或场景的数组。
版本 0.3
对于 A2A 智能体卡片的 0.3 版本,载荷必须遵循 v0.3.0 规范。在此规范中,主要推理网址和协议版本声明为顶级字段:
{
"name": "string",
"description": "string",
"version": "string",
"protocolVersion": "string",
"url": "string",
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"examples": [
"string"
]
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
]
}
字段定义
name:代理的人类可读名称。description:对智能体用途的简要总结。version:代理的版本,例如1.0.2。protocolVersion:代理实现的 A2A protocol 版本。由于版本1.0弃用了此顶级字段,因此对于此架构,该值必须为0.3或任何0.3补丁版本(例如0.3.1)。url:可访问代理的端点网址。capabilities(可选):一个对象,用于指定代理支持的操作功能,例如streaming、pushNotifications或stateTransitionHistory。defaultInputModes(可选):一个字符串数组,用于定义智能体接受的默认 MIME 类型,例如["text/plain"]。defaultOutputModes(可选):一个字符串数组,用于定义智能体作为输出生成的默认 MIME 类型,例如["text/plain"]。skills:代理拥有的描述性 A2A 技能数组:id:A2A 技能的唯一程序化标识符。name:A2A 技能的人类可读名称。description:对 A2A 技能用途的详细说明。tags:用于对 A2A 技能进行分类的关键字字符串数组。examples:此 A2A 技能处理的示例提示或场景的数组。
MCP 工具架构
注册 MCP 服务器时,您的 toolspec.json 载荷必须包含符合 MCP Tool 对象架构的工具列表。
预期载荷是一个包含单个 tools 字段的 JSON 对象,与标准 MCP 工具或列表请求返回的载荷完全相同。此规范文件的文件大小上限为 10 KB。
{
"tools": [
{
"name": "string",
"description": "string",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"title": "string",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
}
}
]
}
字段定义
tools:服务器提供的工具数组:name:工具的程序化标识符。description:对工具用途的人类可读说明。inputSchema:一个 JSON 架构对象,用于定义工具的预期参数。annotations:指导编排器智能体如何与工具交互的行为提示:title:工具的人类可读标题。readOnlyHint:如果为true,则该工具仅检索数据,不会修改其环境。默认值为false。destructiveHint:如果为true,则该工具会执行可能导致永久性更改的操作。默认值为true。idempotentHint:如果为true,则重复调用该工具不会产生额外效果。默认值为false。openWorldHint:如果为true,则该工具会与外部系统交互。默认值为true。