Magisterium AI

Dokumentacja API

Wszystkie metody są wywoływane przez POST pod adresem https://www.magisterium.com/api/v1/a2a z użyciem JSON-RPC 2.0. Każde żądanie musi zawierać Authorization: Bearer $MAGISTERIUM_TOKEN (token użytkownika wydany przez OAuth — zobacz Uwierzytelnianie) oraz Content-Type: application/json.

Metody

message/send

Wyślij wiadomość do umiejętności i otrzymaj ukończone zadanie. Wszystkie umiejętności Magisterium są synchroniczne — odpowiedź zawiera terminalny stan zadania (completed lub failed), nigdy pośredni status working.

Parametry:

PoleTypWymaganeOpis
messageMessageTakWiadomość użytkownika z częściami i opcjonalnymi metadanymi.
message.rolestringTakMusi być "user".
message.messageIdstringTakUnikalne ID dla tej wiadomości.
message.kindstringTakMusi być "message".
message.partsPart[]TakCo najmniej jedna część (text lub data).
message.metadata.skillIdstringNieUmiejętność do wywołania. Domyślnie catholic_qa.
message.contextIdstringNieOpcjonalne ID kontekstu do grupowania powiązanych zadań. Jeśli pominięte, serwer je wygeneruje.
configurationobjectNieZarezerwowane do przyszłego użytku.

Zwraca: Obiekt Task z kind: "task".

tasks/get

Pobierz wcześniej utworzone zadanie po jego ID.

Parametry:

PoleTypWymaganeOpis
idstringTakID zadania zwrócone z message/send.

Zwraca: Obiekt Task lub błąd TASK_NOT_FOUND, jeśli zadanie wygasło lub nie istnieje. Zadania są przechowywane przez 24 godziny.

tasks/cancel

Anuluj zadanie, jeśli znajduje się w stanie umożliwiającym anulowanie. Ponieważ wszystkie umiejętności są realizowane synchronicznie, większość zadań jest już w stanie terminalnym (completed / failed) w chwili zwrócenia odpowiedzi — próba anulowania zadania terminalnego zwraca INVALID_PARAMS z komunikatem Invalid state transition.

Parametry:

PoleTypWymaganeOpis
idstringTakID zadania do anulowania.

Zwraca: Zaktualizowany obiekt Task ze status.state: "canceled".

Cykl życia zadania

Umiejętności Magisterium działają synchronicznie, więc zadanie jest zapisywane w pamięci dopiero po zakończeniu umiejętności — zawsze w stanie terminalnym. Stany submitted i working są częścią szerszej specyfikacji A2A, ale implementacja Magisterium nigdy ich nie produkuje; zawsze zaobserwujesz tylko jeden z trzech stanów terminalnych poniżej.

StanZnaczenie
completedTerminalny — wyniki są w artifacts. Zwracany przez message/send, gdy umiejętność zakończy się pomyślnie.
failedTerminalny — status.message zawiera przyczynę niepowodzenia. Zwracany przez message/send, gdy umiejętność rzuci wyjątek.
canceledTerminalny — osiągalny tylko przez wywołanie tasks/cancel na nieterminalnym zadaniu. Ponieważ zadania są już w stanie terminalnym, gdy message/send zwraca odpowiedź, w praktyce anulowanie jest odrzucane z INVALID_PARAMS dla każdego zadania, do którego masz odniesienie.

Każde zadanie zawiera też:

  • contextId — identyfikator grupujący, który możesz ponownie wykorzystać w kolejnych wiadomościach, aby powiązać pokrewne zadania.
  • history — uporządkowaną listę wiadomości użytkownika i agenta, które wytworzyły artefakty zadania.

Kody błędów

KodNazwaOpis
-32700Parse errorNieprawidłowe ciało JSON.
-32600Invalid requestBrak pól jsonrpc, method lub id.
-32601Method not foundNieznana metoda JSON-RPC.
-32602Invalid paramsBrakujące lub nieprawidłowe parametry (również zwracane dla nieprawidłowych przejść stanu tasks/cancel).
-32603Internal errorNieoczekiwany błąd po stronie serwera.
-32001Task not foundID zadania nie istnieje lub wygasło.
-32002Skill not foundNieznane skillId w metadanych wiadomości.
-32003Rate limit exceededZbyt wiele żądań. Sprawdź retryAfter (sekundy) w data błędu.
-32004UnauthorizedBrak lub nieprawidłowy token Bearer.
-32005Paid plan requiredA2A wymaga planu Pro, Organization lub Enterprise.

Status HTTP odzwierciedla klasę błędu: 401 dla UNAUTHORIZED, 403 dla PLAN_REQUIRED, 429 dla RATE_LIMITED oraz 200 dla wszystkich pozostałych błędów JSON-RPC (zgodnie z konwencją JSON-RPC zwracającą 200 z ciałem error).

Limity żądań

A2A dzieli ten sam pool limitów żądań co MCP — zobacz Cennik MCP dla limitów żądań na plan.

Wymuszane są dwa warianty:

  • Default — dotyczy document_search, document_fetch, liturgical_readings i saints_of_the_day.
  • Expensive — dotyczy wyłącznie catholic_qa, ponieważ uruchamia pipeline odpowiedzi oparty na LLM. Ten wariant używa bardziej restrykcyjnego, niższego limitu.

Po osiągnięciu limitu obiekt data błędu zawiera retryAfter w sekundach. Wywołujący powinni odczekać ten interwał przed ponowieniem.

CORS

Endpoint odpowiada na żądania preflight OPTIONS i zwraca permisywne nagłówki CORS (Access-Control-Allow-Origin: *, Allow-Methods: POST, OPTIONS, Allow-Headers: Content-Type, Authorization), dzięki czemu A2A może być wywoływany z orkiestratorów przeglądarkowych bez proxy.