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 スキルは同期的です — レスポンスには終端タスクの状態(completed または failed)が含まれ、中間の working ステータスが返されることはありません。

パラメータ:

フィールド必須説明
messageMessageはいpart とオプションのメタデータを含むユーザーメッセージ。
message.rolestringはい"user" である必要があります。
message.messageIdstringはいこのメッセージの一意な ID。
message.kindstringはい"message" である必要があります。
message.partsPart[]はい少なくとも 1 つの part(text または data)。
message.metadata.skillIdstringいいえ呼び出すスキル。既定は catholic_qa
message.contextIdstringいいえ関連するタスクをグループ化するためのオプションの context ID。省略された場合、サーバーが生成します。
configurationobjectいいえ将来のために予約されています。

戻り値: kind: "task" を持つ Task オブジェクト。

tasks/get

以前に作成されたタスクを ID で取得します。

パラメータ:

フィールド必須説明
idstringはいmessage/send から返されたタスク ID。

戻り値: Task オブジェクト、または期限切れ・欠落している場合は TASK_NOT_FOUND エラー。タスクは 24 時間 保存されます。

tasks/cancel

タスクがキャンセル可能な状態にある場合にキャンセルします。すべてのスキルは同期的に解決されるため、レスポンスが返ってくる時点ですでに多くのタスクが終端状態(completed / failed)にあります — 終端状態のタスクのキャンセルを試みると、Invalid state transition メッセージと共に INVALID_PARAMS が返されます。

パラメータ:

フィールド必須説明
idstringはいキャンセルするタスク ID。

戻り値: status.state: "canceled" となった更新済みの Task オブジェクト。

タスクのライフサイクル

Magisterium のスキルは同期的に実行されるため、タスクはスキルが終了した後にのみストレージに永続化されます — 常に終端状態です。submittedworking の状態は、より広範な A2A 仕様の一部ですが、Magisterium の実装では 決して生成されません。観察できるのは以下の 3 つの終端状態のいずれかだけです。

状態意味
completed終端 — 結果は artifacts にあります。スキルが正常に完了したときに message/send から返されます。
failed終端 — status.message に失敗の理由が含まれます。スキルが例外をスローしたときに message/send から返されます。
canceled終端 — 非終端状態のタスクに対して tasks/cancel を呼び出した場合にのみ到達します。message/send が返ってくる時点でタスクはすでに終端状態にあるため、実際にはハンドルを持っているどのタスクに対しても、キャンセルは INVALID_PARAMS で拒否されます。

各タスクには以下も含まれます:

  • contextId — 関連するタスクを結びつけるために、後続のメッセージで再利用できるグループ識別子。
  • history — タスクの artifact を生成した、ユーザーとエージェントのメッセージの順序付きリスト。

エラーコード

コード名前説明
-32700Parse errorJSON ボディが無効です。
-32600Invalid requestjsonrpcmethod、または id フィールドが欠落しています。
-32601Method not found未知の JSON-RPC メソッド。
-32602Invalid paramsパラメータが欠落または無効です(tasks/cancel の無効な状態遷移でも返されます)。
-32603Internal error予期しないサーバー側の障害。
-32001Task not foundタスク ID が存在しないか、期限切れです。
-32002Skill not foundメッセージのメタデータ内の skillId が未知です。
-32003Rate limit exceededリクエストが多すぎます。エラーの data にある retryAfter(秒)を確認してください。
-32004UnauthorizedBearer トークンが欠落または無効です。
-32005Paid plan requiredA2A には Pro、Organization、または Enterprise プランが必要です。

HTTP ステータスはエラークラスを反映します: UNAUTHORIZED には 401PLAN_REQUIRED には 403RATE_LIMITED には 429、その他の JSON-RPC エラーはすべて 200200 と共に error ボディを返す JSON-RPC の規約に従う)。

レートリミット

A2A は MCP と同じレートリミットプールを共有します — プランごとのリクエスト上限については MCP 価格 を参照してください。

2 つの変種が適用されます:

  • 既定document_searchdocument_fetchliturgical_readings、および saints_of_the_day に適用されます。
  • 高コストcatholic_qa のみに適用されます。これは LLM ベースの回答パイプラインを実行するためです。この変種はより厳しい、低い上限を使用します。

制限に達した場合、エラーの data オブジェクトに retryAfter が秒単位で含まれます。呼び出し元は、再試行する前にその間隔だけバックオフする必要があります。

CORS

このエンドポイントは OPTIONS プリフライトリクエストに応答し、寛容な CORS ヘッダー(Access-Control-Allow-Origin: *Allow-Methods: POST, OPTIONSAllow-Headers: Content-Type, Authorization)を返すため、A2A はプロキシなしでブラウザーベースのオーケストレーターから呼び出すことができます。