在 Agent Registry 建立 Service 資源,手動註冊代理或 Model Context Protocol (MCP) 伺服器時,您需要提供 JSON 設定檔,宣告其功能。Agent Registry 會先根據開放原始碼規格驗證這些檔案,再建立索引,讓使用者能找到代理 A2A 技能和 MCP 工具。請使用下列 JSON 結構和範例,設定 Agent Cards 和 MCP 工具規格的格式。
代理資訊卡結構定義
註冊符合 A2A 規範的代理時,agent-card.json 酬載須符合官方 Agent2Agent (A2A) 規格。規格檔案的大小上限為 10 KB。skills 陣列欄位支援關鍵字搜尋索引。
Agent Registry 支援 A2A 代理資訊卡的 1.0 和 0.3 版本。選取版本即可查看其 JSON 結構定義和欄位定義:
1.0 版 (建議)
如果是 A2A 代理資訊卡 1.0 版,酬載必須符合官方 A2A 1.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 通訊協定版本,例如1.0.0。tenant(選用):代理擁有者的 ID。
capabilities(選用):指定支援的作業功能,例如:extensions(選用):通訊協定擴充功能的陣列。streaming(選用):布林值,指出代理是否支援串流回覆。pushNotifications(選用):布林值,指出是否支援工作更新的推播通知。extendedAgentCard(選用):布林值,表示代理是否會在通過驗證時提供擴充代理資訊卡。
defaultInputModes(選用):可做為輸入內容的 MIME 類型陣列。defaultOutputModes(選用):輸出內容產生的 MIME 類型陣列。skills:代理具備的 A2A 技能說明陣列:id:A2A 技能的專屬程式輔助 ID。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 通訊協定版本。由於版本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 技能的專屬程式輔助 ID。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:工具的程式輔助 ID。description:工具用途的人類可讀說明。inputSchema:JSON 結構定義物件,定義工具預期的參數。annotations:行為提示,引導自動化調度管理工具代理與工具互動:title:人類可讀的工具標題。readOnlyHint:如果為true,工具只會擷取資料,不會修改環境。預設值為false。destructiveHint:如果為true,工具會執行可能造成永久變更的操作。預設值為true。idempotentHint:如果為true,重複呼叫工具不會產生額外效果。預設值為false。openWorldHint:如果為true,工具會與外部系統互動。預設值為true。