Magisterium AI

Skills

Magisterium AI stellt die folgenden Skills über das A2A-Protokoll bereit. Geben Sie den zu verwendenden Skill über metadata.skillId in der Nachricht an. Wird skillId weggelassen, wird standardmäßig catholic_qa verwendet.

SkillIDBeschreibung
Katholisches Q&Acatholic_qaVollständige Q&A mit Zitaten aus über 29.000 lehramtlichen Dokumenten, der Heiligen Schrift und den Kirchenvätern.
Dokumentensuchedocument_searchSemantische Suche über lehramtliche Dokumente, Enzykliken, Katechismus-Abschnitte und das Kirchenrecht.
Dokumentabrufdocument_fetchAbruf des vollständigen Textes und der Metadaten eines bestimmten Dokuments anhand seiner ID.
Liturgische Lesungenliturgical_readingsAbruf der katholischen Messlesungen für jedes Datum oder jeden liturgischen Anlass.
Heilige des Tagessaints_of_the_dayAbruf der an einem bestimmten Datum gefeierten Heiligen aus dem Martyrologium Romanum.
Heiligen-Suchesaint_lookupSuchen Sie einen Heiligen, Seligen, Ehrwürdigen oder Diener Gottes anhand des Namens oder der kanonischen ID.
Suche nach katholischen Klerikernperson_lookupSuchen Sie eine katholische Klerusperson (Bischof, Kardinal, Erzbischof usw.) anhand des Namens oder der kanonischen ID.
Papst-Suchepope_lookupSuchen Sie einen Papst anhand des Namens oder der kanonischen ID.
Diözesen-Suchediocese_lookupSuchen Sie eine kirchliche Jurisdiktion (Diözese, Erzdiözese, Eparchie) mit Verzeichnis-Metadaten, Eckdaten-Statistiken und den neuesten Finanzdaten.
Zeitreihe der Diözesen-Statistikdiocese_statistics_lookupLiefert die vollständige jährliche Statistik-Zeitreihe einer Diözese — 19 Kennzahlen, eine Zeile pro Jahr.

Alle Skills werden über die JSON-RPC-Methode message/send aufgerufen.

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "message/send",
  "params": {
    "message": {
      "role": "user",
      "messageId": "unique-id",
      "kind": "message",
      "parts": [{ "kind": "text", "text": "your query here" }],
      "metadata": { "skillId": "document_search" }
    }
  }
}

Die Antworten kommen immer als Task (kind: "task") mit status.state: "completed" und einem oder mehreren artifacts zurück. Jedes Artefakt hat eine eindeutige artifactId, einen skill-spezifischen name und einen oder mehrere parts (text, data oder file).


catholic_qa

Stellen Sie eine Frage in natürlicher Sprache und erhalten Sie eine zitierte, ausführliche Antwort. Dies ist der leistungsfähigste (und ressourcenintensivste) Skill — er läuft auf demselben Modell, das auch magisterium.com antreibt.

Eingabe: ein einzelner Text-Part mit der Frage.

Artefakt: name: "catholic_qa_response" enthält:

  • Einen text-Part mit der vollständigen Antwort.
  • Einen data-Part mit citations (wenn Quellen verwendet wurden).
  • Einen data-Part mit related_questions (wenn das Modell Vorschläge zurückgibt).
json
{
  "artifactId": "art_...",
  "name": "catholic_qa_response",
  "parts": [
    { "kind": "text", "text": "The Catholic Church teaches..." },
    { "kind": "data", "data": { "citations": [ /* ... */ ] } },
    { "kind": "data", "data": { "related_questions": [ /* ... */ ] } }
  ]
}

catholic_qa verwendet eine strengere Rate-Limit-Variante als die anderen Skills. Siehe API-Referenz → Rate-Limits.

document_search

Abruf von Dokumentreferenzen, die einer semantischen Abfrage gegen die Magisterium-Wissensdatenbank entsprechen.

Eingabe: ein einzelner Text-Part mit der Abfrage.

Artefakt: name: "search_results" mit einem einzigen data-Part:

json
{
  "artifactId": "art_...",
  "name": "search_results",
  "parts": [
    {
      "kind": "data",
      "data": {
        "results": [
          { "id": "12345", "url": "https://...", "title": "Lumen Gentium" }
        ]
      }
    }
  ]
}

Verwenden Sie das id-Feld eines Ergebnisses, um document_fetch für den vollständigen Text aufzurufen.

document_fetch

Abruf des vollständigen Textes und der Metadaten eines Dokuments anhand seiner ID. Dieser Skill akzeptiert einen data-Part anstelle eines Text-Parts:

json
{
  "parts": [{ "kind": "data", "data": { "id": "12345" } }]
}

Sendet der Aufrufer einen Text-Part, greift der Handler darauf zurück, ihn als Dokument-ID zu behandeln.

Artefakt: name: "document" mit zwei Parts:

  • Einem text-Part mit dem Dokumenteninhalt.
  • Einem data-Part mit { id, title, author, ref }.

Wird das Dokument nicht gefunden, enthält das Artefakt einen einzelnen text-Part mit "Document not found.".

liturgical_readings

Abruf der katholischen Messlesungen für ein bestimmtes Datum. Akzeptiert eine Datumsabfrage in natürlicher Sprache — z. B. „heute", „nächsten Sonntag" oder „Ostersonntag 2026".

Eingabe: ein einzelner Text-Part mit der Datumsabfrage.

Artefakt: name: "mass_readings" mit einem einzigen text-Part, der die formatierten Lesungen enthält. Sind für das angeforderte Datum keine Lesungen verfügbar, lautet der Part "No mass readings found.".

saints_of_the_day

Nachschlagen der Heiligen, die an einem bestimmten Datum aus dem Martyrologium Romanum gefeiert werden.

Eingabe: ein data-Part mit einem absoluten Datum oder ein Text-Part, der als Datumsabfrage behandelt wird:

json
{
  "parts": [{ "kind": "data", "data": { "date": "2026-03-19" } }]
}

Artefakt: name: "martyrology" mit einem einzigen text-Part, der den formatierten Martyrologium-Eintrag enthält. Fehlende Daten liefern "No martyrology data found.".


Die fünf nachstehenden Skills sind Verzeichnis-Suchen. Jeder akzeptiert eine query in natürlicher Sprache (als Text-Part oder als Feld data.query) sowie eine optionale kanonische ID und gibt ein strukturiertes Profil in einem einzigen data-Part zurück. Werden weder query noch eine kanonische ID übergeben, wird die Anfrage mit INVALID_PARAMS (-32602) abgelehnt.

Wenn die Abfrage nicht aufgelöst werden kann, enthält das Artefakt anstelle eines Profils einen data-Part der Form { "error": "not_found", "query": "...", "hint"?: "..." }. Die Aufgabe selbst wird dennoch erfolgreich abgeschlossen — not_found ist ein normales Suchergebnis und kein Protokollfehler.

saint_lookup

Suchen Sie einen Heiligen, Seligen, Ehrwürdigen oder Diener Gottes im Verzeichnis cd_saints (~12.500 Personen).

Eingabe: data.query (z. B. "Therese of Lisieux") oder data.saint_id (kanonischer Primärschlüssel, z. B. "jerome"). Ein einzelner Text-Part wird als query akzeptiert.

json
{
  "parts": [{ "kind": "data", "data": { "query": "Catherine of Siena" } }]
}

Artefakt: name: "saint_profile" mit einem einzigen data-Part, der das kanonische Profil enthält — saint_id, primary_name, canonical_status, vocation, image_url, learn_more_url, Lebens- und Sterbedaten, Festtag, Heiligsprechungsverfahren, Patronate, Ikonografie, Biografie und (falls mehrere Kandidaten gefunden wurden) ein alternates-Array.

person_lookup

Suchen Sie eine katholische Klerusperson (Bischof, Kardinal, Erzbischof usw.) in den Verzeichnissen cd_persons (lebend, ~3.500) und cd_persons_historical (~2.200). Päpste werden über den separaten Skill pope_lookup bereitgestellt.

Eingabe: data.query (z. B. "Cardinal Tagle") oder data.person_id (kanonischer Primärschlüssel). Ein einzelner Text-Part wird als query akzeptiert.

json
{
  "parts": [{ "kind": "data", "data": { "query": "Cardinal Tagle" } }]
}

Artefakt: name: "person_profile" mit einem einzigen data-Part, der das kanonische Profil enthält — person_id, source_table, primary_name, current_position, image_url, coat_of_arms_url, Weihe- und Konsekrationsdaten, Erhebung zum Kardinal, Bischofsabfolge, Ausbildung, Wahlspruch und gegebenenfalls alternates.

Wenn die Abfrage nur auf einen Papst aufgelöst wird, lautet die Antwort { "error": "not_found", "hint": "Top match looks like a pope; try get_pope." }.

pope_lookup

Suchen Sie einen Papst im Verzeichnis cd_popes (267 Personen).

Eingabe: data.query (z. B. "Pope Francis", "John Paul II") oder data.pope_id (kanonischer Primärschlüssel, z. B. "benedict-xvi"). Ein einzelner Text-Part wird als query akzeptiert.

json
{
  "parts": [{ "kind": "data", "data": { "query": "John Paul II" } }]
}

Artefakt: name: "pope_profile" mit einem einzigen data-Part, der das kanonische Papstprofil enthält — pope_id, primary_name, papal_name, ordinal, pope_title, image_url, coat_of_arms_url, birth_name, origin, pontificate, Status der Selig- und Heiligsprechung sowie gegebenenfalls alternates.

Wenn die Abfrage nur auf eine nicht-päpstliche Klerusperson aufgelöst wird, lautet die Antwort { "error": "not_found", "hint": "Top match looks like a non-pope clergy member; try get_person." }.

diocese_lookup

Suchen Sie eine kirchliche Jurisdiktion (Diözese, Erzdiözese, Eparchie usw.) im Diözesen-Verzeichnis (~3.200 Jurisdiktionen weltweit).

Eingabe: data.query (z. B. "Archdiocese of Manila") oder data.source_code (kanonischer Primärschlüssel, z. B. "dmaml"). Ein einzelner Text-Part wird als query akzeptiert.

json
{
  "parts": [{ "kind": "data", "data": { "query": "Archdiocese of Manila" } }]
}

Artefakt: name: "diocese_profile" mit einem einzigen data-Part, der die Verzeichnis-Metadaten enthält (source_code, primary_name, jurisdiction_type, rite, country, region_primary, state, city, metropolitan, depends_on, province, cathedral, patron_saint, area, erected, elevated, official_website, image_url, current_bishop) sowie:

  • recent_statistics — bis zu 5 Jahre an Eckdaten (Katholiken, Gesamtbevölkerung, Anteil der Katholiken, Gesamtzahl der Priester, Pfarreien, Taufen, Seminaristen).
  • latest_financials — die Eckkennzahlen des jüngsten Geschäftsjahres (Gesamterträge, Gesamtaufwendungen, Nettovermögen, Gesamtvermögen, Über-/Unterdeckung), sofern verfügbar, mit Währung.
  • alternates — wenn mehrere Kandidaten zugeordnet wurden.

Für mehrjährige Trendanalysen verwenden Sie stattdessen diocese_statistics_lookup.

diocese_statistics_lookup

Liefert die vollständige jährliche Statistik-Zeitreihe einer Diözese — alle 19 Kennzahlen, die in diocese_statistics erfasst werden.

Eingabe: data.query oder data.source_code (eines davon ist erforderlich), zuzüglich optionaler einschließender Grenzen:

json
{
  "parts": [{
    "kind": "data",
    "data": {
      "source_code": "dmaml",
      "start_year": 2010,
      "end_year": 2024
    }
  }]
}

Artefakt: name: "diocese_statistics_time_series" mit einem einzigen data-Part, der source_code, diocese_name, year_range: { start, end } und ein rows-Array enthält. Jede Zeile enthält 19 Kennzahlen für ein Jahr: catholics, total_population, percent_catholic, diocesan_priests, religious_priests, total_priests, catholics_per_priest, permanent_deacons, male_religious, female_religious, parishes, area_km2, churches_or_stations, diocesan_priests_ordained, religious_priests_ordained, seminarians, educational_institutes, charitable_institutes, baptisms.