Magisterium AI

Довідник API

Усі методи викликаються через POST за адресою https://www.magisterium.com/api/v1/a2a з використанням JSON-RPC 2.0. Кожен запит повинен містити Authorization: Bearer $MAGISTERIUM_TOKEN (користувацький токен, виданий через OAuth — див. Автентифікацію) та Content-Type: application/json.

Методи

message/send

Надіслати повідомлення навичці та отримати завершене завдання. Усі навички Magisterium синхронні — відповідь містить термінальний стан завдання (completed чи failed), але ніколи проміжний статус working.

Параметри:

ПолеТипОбов'язковеОпис
messageMessageТакПовідомлення користувача з частинами та необов'язковими метаданими.
message.rolestringТакМає бути "user".
message.messageIdstringТакУнікальний ID для цього повідомлення.
message.kindstringТакМає бути "message".
message.partsPart[]ТакЩонайменше одна частина (text або data).
message.metadata.skillIdstringНіНавичка для виклику. За замовчуванням catholic_qa.
message.contextIdstringНіНеобов'язковий ID контексту для групування пов'язаних завдань. Якщо пропущено, сервер згенерує його.
configurationobjectНіЗарезервовано для майбутнього використання.

Повертає: Об'єкт Task з kind: "task".

tasks/get

Отримати раніше створене завдання за його ID.

Параметри:

ПолеТипОбов'язковеОпис
idstringТакID завдання, повернений з message/send.

Повертає: Об'єкт Task, або помилку TASK_NOT_FOUND, якщо завдання прострочене або відсутнє. Завдання зберігаються 24 години.

tasks/cancel

Скасувати завдання, якщо воно знаходиться в стані, що допускає скасування. Оскільки всі навички виконуються синхронно, більшість завдань уже знаходяться в термінальному стані (completed / failed) на момент повернення відповіді — спроба скасувати термінальне завдання повертає INVALID_PARAMS із повідомленням Invalid state transition.

Параметри:

ПолеТипОбов'язковеОпис
idstringТакID завдання для скасування.

Повертає: Оновлений об'єкт Task зі status.state: "canceled".

Життєвий цикл завдання

Навички Magisterium виконуються синхронно, тому завдання зберігається у сховищі лише після завершення навички — завжди у термінальному стані. Стани submitted і working є частиною ширшої специфікації A2A, але реалізація Magisterium їх ніколи не створює; ви завжди спостерігатимете лише один з трьох термінальних станів нижче.

СтанЗначення
completedТермінальний — результати знаходяться в artifacts. Повертається message/send, коли навичка успішно завершується.
failedТермінальний — status.message містить причину збою. Повертається message/send, коли навичка викидає виняток.
canceledТермінальний — досяжний лише при виклику tasks/cancel для нетермінального завдання. Оскільки на момент повернення message/send завдання вже знаходяться у термінальному стані, на практиці скасування відхиляється з INVALID_PARAMS для будь-якого завдання, до якого у вас є доступ.

Кожне завдання також містить:

  • contextId — груповий ідентифікатор, який можна повторно використовувати в наступних повідомленнях для зв'язування пов'язаних завдань.
  • history — упорядкований список повідомлень користувача та агента, які призвели до артефактів завдання.

Коди помилок

КодНазваОпис
-32700Parse errorНекоректне тіло JSON.
-32600Invalid requestВідсутні поля jsonrpc, method або id.
-32601Method not foundНевідомий метод JSON-RPC.
-32602Invalid paramsВідсутні або некоректні параметри (також повертається для недопустимих переходів стану tasks/cancel).
-32603Internal errorНепередбачений збій на стороні сервера.
-32001Task not foundID завдання не існує або прострочений.
-32002Skill not foundНевідомий skillId у метаданих повідомлення.
-32003Rate limit exceededЗабагато запитів. Перевірте retryAfter (у секундах) у data помилки.
-32004UnauthorizedВідсутній або недійсний Bearer-токен.
-32005Paid plan requiredA2A потребує плану Pro, Organization або Enterprise.

HTTP-статус відображає клас помилки: 401 для UNAUTHORIZED, 403 для PLAN_REQUIRED, 429 для RATE_LIMITED і 200 для всіх інших помилок JSON-RPC (згідно з конвенцією JSON-RPC повертати 200 з тілом error).

Ліміти запитів

A2A використовує той самий пул лімітів запитів, що й MCP — див. Ціни MCP для обмежень запитів на кожен план.

Застосовуються два варіанти:

  • Default — застосовується до document_search, document_fetch, liturgical_readings та saints_of_the_day.
  • Expensive — застосовується лише до catholic_qa, оскільки він запускає конвеєр відповідей на базі LLM. Цей варіант використовує суворіший, знижений ліміт.

При досягненні ліміту об'єкт data помилки містить retryAfter у секундах. Виклик має витримати цей інтервал перед повторною спробою.

CORS

Ендпоінт відповідає на попередні запити OPTIONS і повертає дозвільні заголовки CORS (Access-Control-Allow-Origin: *, Allow-Methods: POST, OPTIONS, Allow-Headers: Content-Type, Authorization), тому A2A можна викликати з браузерних оркестраторів без проксі.