Kezdő lépések
Ez az útmutató végigvezeti Önt az első Magisterium A2A végponti kérés elküldésén, az eredményül kapott feladat lekérésén és a strukturált válasz olvasásán.
Előfeltételek
- Fizetős Magisterium csomag (Pro, Organization vagy Enterprise). Az ingyenes fiókok
PLAN_REQUIREDhibát kapnak az A2A-tól. - Az Ön
magisterium.comfiókjához kötött OAuth 2.0 hozzáférési token. Az A2A ugyanazt az OAuth folyamatot használja, mint a Magisterium MCP szerver; az engedélyezési végpontot, a token végpontot és a dinamikus regisztrációs végpontot az OAuth metaadatokból ismerheti meg ahttps://www.magisterium.com/.well-known/oauth-authorization-servercímen. - A hívni kívánt képességek — a teljes listát lásd itt: Képességek.
Figyelem: az API Console-ban létrehozott hosszú élettartamú API kulcsok működnek a Chat Completions, Search és News végpontokhoz, de A2A-hoz nem érvényesek — az A2A csak az OAuth által kibocsátott felhasználói tokeneket fogadja el.
Exportálja a hozzáférési tokent környezeti változóként, hogy az alábbi példák automatikusan átvegyék:
export MAGISTERIUM_TOKEN=<your-access-token-here>1. lépés: Fedezze fel az ügynököt
A végpont meghívása előtt letöltheti a nyilvános Agent Card-ot, hogy megnézze, milyen képességek érhetők el, és megerősítse a protokoll verzióját:
curl https://www.magisterium.com/.well-known/agent.jsonA kártya nem igényel hitelesítést. Az orkesztrátorok egy óráig gyorsítótárazhatják — a végpont a Cache-Control: public, max-age=3600 beállítást állítja.
2. lépés: Küldje el első üzenetét
Minden A2A művelet egyetlen JSON-RPC végponton megy keresztül: POST https://www.magisterium.com/api/v1/a2a. Az alábbi példa a catholic_qa képességen hívja meg a message/send-et.
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. lépés: Olvassa el a választ
A message/send egy Task objektumot ad vissza kind: "task" értékkel. Egy szinkron képesség-hívás mindig a két terminális állapot egyikében ér véget:
status.state == "completed"— az eredmények aresult.artifactshelyen vannak. Minden artefaktumnak van egyartifactId-ja, egy opcionálisname-je és egy vagy többpartseleme (text,datavagyfile).status.state == "failed"— a hiba oka astatus.message.parts[0].textmezőben található.
{
"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. lépés: Feladat lekérése vagy megszakítása
A feladatokat 24 órán át tároljuk, és ID alapján újra lekérhetők a tasks/get használatával:
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" }
}'Ha egy feladatot meg kell szakítania, hívja a tasks/cancel-t ugyanazzal az ID-val. Mivel minden Magisterium képesség szinkron módon zárul, a megszakítás csak ritka újrapróbálkozási forgatókönyvekben hasznos — egy már completed vagy failed feladat nem szakítható meg, és INVALID_PARAMS hibát ad vissza.
Gyakori hibák
| Kód | Jelentés | Javítás |
|---|---|---|
-32004 | Nincs jogosultság | Ellenőrizze az Authorization fejlécet, és hogy a hozzáférési token érvényes-e és nem járt-e le. |
-32005 | Fizetős csomag szükséges | Frissítse fiókját itt: magisterium.com/plan. |
-32002 | A képesség nem található | Ellenőrizze, hogy a metadata.skillId megfelel-e az Agent Card-ban felsorolt egyik ID-nak. |
-32003 | Kérési korlát túllépve | Várjon retryAfter másodpercet (a hiba data mezőjében található) újrapróbálkozás előtt. |
A teljes metódus- és hibakód listát lásd: API referencia.