आरंभ करें
यह मार्गदर्शिका आपको Magisterium A2A एंडपॉइंट पर अपना पहला अनुरोध करने, परिणामी कार्य को पुनः प्राप्त करने, और संरचित प्रतिक्रिया पढ़ने के माध्यम से चलाती है।
पूर्वापेक्षाएँ
- एक भुगतान की गई Magisterium योजना (Pro, Organization, या Enterprise)। मुफ्त खातों को A2A से
PLAN_REQUIREDत्रुटि प्राप्त होगी। - आपके
magisterium.comखाते से जुड़ा एक OAuth 2.0 एक्सेस टोकन। A2A Magisterium MCP सर्वर के समान OAuth प्रवाह का उपयोग करता है; प्राधिकरण, टोकन, और डायनेमिक-पंजीकरण एंडपॉइंट कोhttps://www.magisterium.com/.well-known/oauth-authorization-serverपर OAuth मेटाडेटा से खोजें। - वे कौशल जिन्हें आप कॉल करना चाहते हैं — पूरी सूची के लिए कौशल देखें।
ध्यान दें: API Console में बनाई गई दीर्घकालिक API कुंजियाँ Chat Completions, Search, और News के लिए काम करती हैं, लेकिन वे A2A के लिए मान्य नहीं हैं — A2A केवल OAuth द्वारा जारी उपयोगकर्ता टोकन स्वीकार करता है।
अपने एक्सेस टोकन को एक पर्यावरण चर के रूप में निर्यात करें ताकि नीचे दिए गए उदाहरण इसे स्वचालित रूप से उठा सकें:
export MAGISTERIUM_TOKEN=<your-access-token-here>चरण 1: एजेंट की खोज करें
एंडपॉइंट को कॉल करने से पहले, आप यह देखने के लिए सार्वजनिक Agent Card प्राप्त कर सकते हैं कि कौन से कौशल उपलब्ध हैं और प्रोटोकॉल संस्करण की पुष्टि कर सकते हैं:
curl https://www.magisterium.com/.well-known/agent.jsonकार्ड के लिए किसी प्रमाणीकरण की आवश्यकता नहीं होती। ऑर्केस्ट्रेटर इसे एक घंटे के लिए कैश कर सकते हैं — एंडपॉइंट Cache-Control: public, max-age=3600 सेट करता है।
चरण 2: अपना पहला संदेश भेजें
सभी A2A संचालन एक एकल JSON-RPC एंडपॉइंट के माध्यम से जाते हैं: POST https://www.magisterium.com/api/v1/a2a। नीचे दिया गया उदाहरण catholic_qa कौशल पर message/send को कॉल करता है।
curl -X POST https://www.magisterium.com/api/v1/a2a \
-H "Authorization: Bearer $MAGISTERIUM_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"message": {
"role": "user",
"messageId": "msg-001",
"kind": "message",
"parts": [{ "kind": "text", "text": "What does the Church teach about the Real Presence?" }],
"metadata": { "skillId": "catholic_qa" }
}
}
}'const accessToken = process.env.MAGISTERIUM_TOKEN!;
const response = await fetch("https://www.magisterium.com/api/v1/a2a", {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "message/send",
params: {
message: {
role: "user",
messageId: crypto.randomUUID(),
kind: "message",
parts: [
{ kind: "text", text: "What does the Church teach about the Real Presence?" },
],
metadata: { skillId: "catholic_qa" },
},
},
}),
});
const { result: task } = await response.json();
console.log(task.id, task.status.state);
for (const artifact of task.artifacts ?? []) {
for (const part of artifact.parts) {
if (part.kind === "text") console.log(part.text);
}
}import os
import uuid
import httpx
access_token = os.environ["MAGISTERIUM_TOKEN"]
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"message": {
"role": "user",
"messageId": str(uuid.uuid4()),
"kind": "message",
"parts": [
{"kind": "text", "text": "What does the Church teach about the Real Presence?"}
],
"metadata": {"skillId": "catholic_qa"},
}
},
}
response = httpx.post(
"https://www.magisterium.com/api/v1/a2a",
headers={
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
task = response.json()["result"]
print(task["id"], task["status"]["state"])
for artifact in task.get("artifacts", []):
for part in artifact["parts"]:
if part["kind"] == "text":
print(part["text"])चरण 3: प्रतिक्रिया पढ़ें
message/send kind: "task" के साथ एक Task ऑब्जेक्ट लौटाता है। एक तुल्यकालिक कौशल कॉल हमेशा दो अंतिम स्थितियों में से एक में समाप्त होती है:
status.state == "completed"— परिणामresult.artifactsमें रहते हैं। प्रत्येक कलाकृति में एकartifactId, एक वैकल्पिकname, और एक या अधिकparts(text,data, याfile) होते हैं।status.state == "failed"— विफलता का कारणstatus.message.parts[0].textमें होता है।
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"id": "task_abc123",
"contextId": "ctx_def456",
"kind": "task",
"status": { "state": "completed", "timestamp": "2026-04-20T12:00:00.000Z" },
"artifacts": [
{
"artifactId": "art_ghi789",
"name": "catholic_qa_response",
"parts": [
{ "kind": "text", "text": "The Catholic Church teaches..." },
{ "kind": "data", "data": { "citations": [] } }
]
}
]
}
}चरण 4: एक कार्य पुनः प्राप्त करें या रद्द करें
कार्य 24 घंटे तक संग्रहीत रहते हैं और tasks/get का उपयोग करके ID द्वारा पुनः प्राप्त किए जा सकते हैं:
curl -X POST https://www.magisterium.com/api/v1/a2a \
-H "Authorization: Bearer $MAGISTERIUM_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tasks/get",
"params": { "id": "task_abc123" }
}'यदि आपको किसी कार्य को रद्द करने की आवश्यकता है, तो उसी ID के साथ tasks/cancel को कॉल करें। चूँकि सभी Magisterium कौशल तुल्यकालिक रूप से हल होते हैं, रद्दीकरण केवल दुर्लभ पुनः प्रयास परिदृश्यों में उपयोगी होता है — एक कार्य जो पहले से completed या failed हो चुका है, उसे रद्द नहीं किया जा सकता और वह INVALID_PARAMS लौटाएगा।
सामान्य त्रुटियाँ
| कोड | अर्थ | समाधान |
|---|---|---|
-32004 | Unauthorized | Authorization हेडर जाँचें और सुनिश्चित करें कि एक्सेस टोकन वैध है और समाप्त नहीं हुआ है। |
-32005 | Paid plan required | अपना खाता magisterium.com/plan पर अपग्रेड करें। |
-32002 | Skill not found | सत्यापित करें कि metadata.skillId Agent Card में सूचीबद्ध ID से मेल खाता है। |
-32003 | Rate limit exceeded | पुनः प्रयास करने से पहले retryAfter सेकंड प्रतीक्षा करें (त्रुटि के data में मौजूद)। |
हर विधि और त्रुटि कोड के लिए पूरी API संदर्भ देखें।