Magisterium AI

API 參考

所有方法皆透過以 JSON-RPC 2.0 向 https://www.magisterium.com/api/v1/a2a 傳送 POST 請求來呼叫。每個請求都必須包含 Authorization: Bearer $MAGISTERIUM_TOKEN(一個 OAuth 簽發的使用者權杖 —— 請參閱 身份驗證)以及 Content-Type: application/json

方法

message/send

向某個技能傳送訊息並接收已完成的任務。所有 Magisterium 技能皆為同步 —— 回應包含的是最終的任務狀態(completedfailed),而不會是中間的 working 狀態。

參數:

欄位類型是否必填描述
messageMessage使用者訊息,含各 part 與可選中繼資料。
message.rolestring必須為 "user"
message.messageIdstring本訊息的唯一 ID。
message.kindstring必須為 "message"
message.partsPart[]至少一個 part(文字或資料)。
message.metadata.skillIdstring要呼叫的技能。預設為 catholic_qa
message.contextIdstring用於將相關任務分組的可選 context ID。若省略,伺服器會產生一個。
configurationobject保留以供未來使用。

返回: kind: "task"Task 物件。

tasks/get

透過 ID 擷取先前建立的任務。

參數:

欄位類型是否必填描述
idstringmessage/send 返回的任務 ID。

返回: Task 物件,或在任務已過期或不存在時返回 TASK_NOT_FOUND 錯誤。任務會保存 24 小時

tasks/cancel

若任務處於可取消的狀態,則取消該任務。由於所有技能皆為同步解析,大多數任務在回應返回時就已處於終止狀態(completed / failed)—— 嘗試取消處於終止狀態的任務會返回 INVALID_PARAMS 以及 Invalid state transition 訊息。

參數:

欄位類型是否必填描述
idstring要取消的任務 ID。

返回: 更新後的 Task 物件,其 status.state"canceled"

任務生命週期

Magisterium 的技能皆為同步執行,因此任務僅在技能完成後才會持久化到儲存中 —— 始終處於終止狀態。submittedworking 狀態屬於更廣泛的 A2A 規範,但 Magisterium 的實作 從不產生 這兩種狀態;您只會觀察到下列三種終止狀態之一。

狀態含意
completed終止 —— 結果位於 artifacts 中。技能成功完成時由 message/send 傳回。
failed終止 —— status.message 含失敗原因。技能拋出例外時由 message/send 傳回。
canceled終止 —— 僅能透過對非終止狀態的任務呼叫 tasks/cancel 才能到達。由於 message/send 傳回時任務已處於終止狀態,實務上對您持有控制權的任何任務進行取消都會以 INVALID_PARAMS 拒絕。

每個任務也會帶有:

  • contextId —— 一個分組識別子,可在後續訊息中重複使用以連結相關任務。
  • history —— 產生該任務各 artifact 的使用者與代理訊息的有序清單。

錯誤碼

代碼名稱描述
-32700Parse errorJSON 內容無效。
-32600Invalid request缺少 jsonrpcmethodid 欄位。
-32601Method not found未知的 JSON-RPC 方法。
-32602Invalid params缺少或無效的參數(tasks/cancel 狀態轉換非法時亦會返回此錯誤)。
-32603Internal error意外的伺服器端故障。
-32001Task not found任務 ID 不存在或已過期。
-32002Skill not found訊息中繼資料中的 skillId 未知。
-32003Rate limit exceeded請求過多。請檢查錯誤 data 中的 retryAfter(秒)。
-32004Unauthorized缺少或無效的 Bearer 權杖。
-32005Paid plan requiredA2A 需要專業版、組織版或企業版計劃。

HTTP 狀態碼對應錯誤類別:UNAUTHORIZED401PLAN_REQUIRED403RATE_LIMITED429,其他所有 JSON-RPC 錯誤皆為 200(依 JSON-RPC 慣例,以 200 返回且在內文中攜帶 error)。

速率限制

A2A 與 MCP 共用同一個速率限制池 —— 每個計劃的請求上限請參閱 MCP 定價

強制執行兩種變體:

  • 預設 —— 適用於 document_searchdocument_fetchliturgical_readingssaints_of_the_day
  • 高耗 —— 僅適用於 catholic_qa,因為它執行的是基於 LLM 的回答流程。此變體使用更嚴格、更低的上限。

當您達到限制時,錯誤 data 物件中會包含以秒為單位的 retryAfter。呼叫方應在該間隔時間後再重試。

CORS

該端點會回應 OPTIONS 預檢請求,並返回寬鬆的 CORS 標頭(Access-Control-Allow-Origin: *Allow-Methods: POST, OPTIONSAllow-Headers: Content-Type, Authorization),因此 A2A 可以在不需要代理的情況下,由以瀏覽器為基礎的編排器直接呼叫。