Magisterium AI

Referensi API

Semua metode dipanggil melalui POST ke https://www.magisterium.com/api/v1/a2a menggunakan JSON-RPC 2.0. Setiap permintaan harus menyertakan Authorization: Bearer $MAGISTERIUM_TOKEN (token pengguna yang diterbitkan OAuth — lihat Autentikasi) dan Content-Type: application/json.

Metode

message/send

Kirim pesan ke sebuah keterampilan dan terima tugas yang telah selesai. Semua keterampilan Magisterium bersifat sinkron — respons berisi status tugas terminal (completed atau failed), tidak pernah status working antara.

Params:

FieldTipeWajibDeskripsi
messageMessageYaPesan pengguna dengan parts dan metadata opsional.
message.rolestringYaHarus "user".
message.messageIdstringYaID unik untuk pesan ini.
message.kindstringYaHarus "message".
message.partsPart[]YaSetidaknya satu part (text atau data).
message.metadata.skillIdstringTidakKeterampilan yang akan dipanggil. Default-nya catholic_qa.
message.contextIdstringTidakContext ID opsional untuk mengelompokkan tugas terkait. Jika dihilangkan, server akan menghasilkannya.
configurationobjectTidakDicadangkan untuk penggunaan mendatang.

Mengembalikan: Objek Task dengan kind: "task".

tasks/get

Mengambil tugas yang sebelumnya dibuat berdasarkan ID-nya.

Params:

FieldTipeWajibDeskripsi
idstringYaID tugas yang dikembalikan dari message/send.

Mengembalikan: Objek Task, atau error TASK_NOT_FOUND jika kedaluwarsa atau tidak ada. Tugas disimpan selama 24 jam.

tasks/cancel

Membatalkan tugas jika dalam keadaan dapat dibatalkan. Karena semua keterampilan diselesaikan secara sinkron, sebagian besar tugas sudah berada dalam status terminal (completed / failed) pada saat respons dikembalikan — mencoba membatalkan tugas terminal akan mengembalikan INVALID_PARAMS dengan pesan Invalid state transition.

Params:

FieldTipeWajibDeskripsi
idstringYaID tugas yang akan dibatalkan.

Mengembalikan: Objek Task terbaru dengan status.state: "canceled".

Siklus Hidup Tugas

Keterampilan Magisterium berjalan secara sinkron, sehingga sebuah tugas hanya disimpan ke storage setelah keterampilan selesai — selalu dalam status terminal. Status submitted dan working adalah bagian dari spesifikasi A2A yang lebih luas, tetapi tidak pernah dihasilkan oleh implementasi Magisterium; Anda hanya akan mengamati salah satu dari tiga status terminal di bawah ini.

StatusArti
completedTerminal — hasilnya ada di artifacts. Dikembalikan oleh message/send ketika keterampilan berhasil selesai.
failedTerminal — status.message berisi alasan kegagalan. Dikembalikan oleh message/send ketika keterampilan melempar error.
canceledTerminal — hanya dapat dicapai dengan memanggil tasks/cancel pada tugas yang belum terminal. Karena tugas sudah dalam status terminal pada saat message/send kembali, dalam praktiknya pembatalan ditolak dengan INVALID_PARAMS untuk setiap tugas yang handle-nya Anda pegang.

Setiap tugas juga membawa:

  • contextId — pengenal pengelompokan yang dapat Anda gunakan kembali pada pesan tindak lanjut untuk mengaitkan tugas-tugas terkait.
  • history — daftar berurutan pesan pengguna dan agen yang menghasilkan artifact tugas.

Kode Error

KodeNamaDeskripsi
-32700Parse errorBody JSON tidak valid.
-32600Invalid requestField jsonrpc, method, atau id hilang.
-32601Method not foundMetode JSON-RPC tidak dikenal.
-32602Invalid paramsParameter hilang atau tidak valid (juga dikembalikan untuk transisi status tasks/cancel yang tidak valid).
-32603Internal errorKegagalan tak terduga di sisi server.
-32001Task not foundID tugas tidak ada atau telah kedaluwarsa.
-32002Skill not foundskillId tidak dikenal di metadata pesan.
-32003Rate limit exceededTerlalu banyak permintaan. Periksa retryAfter (detik) di data error.
-32004UnauthorizedToken Bearer hilang atau tidak valid.
-32005Paid plan requiredA2A memerlukan paket Pro, Organisasi, atau Perusahaan.

Status HTTP mencerminkan kelas error: 401 untuk UNAUTHORIZED, 403 untuk PLAN_REQUIRED, 429 untuk RATE_LIMITED, dan 200 untuk semua error JSON-RPC lainnya (sesuai konvensi JSON-RPC yang mengembalikan 200 dengan body error).

Batas Laju

A2A berbagi pool pembatas laju yang sama dengan MCP — lihat Harga MCP untuk batas permintaan per paket.

Dua varian diberlakukan:

  • Default — berlaku untuk document_search, document_fetch, liturgical_readings, dan saints_of_the_day.
  • Mahal — hanya berlaku untuk catholic_qa, karena ia menjalankan pipeline jawaban berbasis LLM. Varian ini menggunakan batas yang lebih ketat dan lebih rendah.

Ketika Anda mencapai batas, objek data error berisi retryAfter dalam detik. Pemanggil harus menunda selama interval itu sebelum mencoba lagi.

CORS

Endpoint merespons permintaan preflight OPTIONS dan mengembalikan header CORS yang permisif (Access-Control-Allow-Origin: *, Allow-Methods: POST, OPTIONS, Allow-Headers: Content-Type, Authorization), sehingga A2A dapat dipanggil dari orkestrator berbasis browser tanpa proksi.