தொடங்குதல்
இந்த வழிகாட்டி, 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 | Agent Card-இல் பட்டியலிடப்பட்ட ID-உடன் metadata.skillId பொருந்துகிறதா என்பதை உறுதிப்படுத்தவும். |
-32003 | Rate limit exceeded | மீண்டும் முயற்சி செய்வதற்கு முன் retryAfter வினாடிகள் (பிழையின் data-இல் உள்ளது) காத்திருக்கவும். |
ஒவ்வொரு முறைக்கும் பிழை குறியீட்டிற்கும் முழு API குறிப்பு-ஐப் பார்க்கவும்.