Magisterium AI

Keterampilan

Magisterium AI memaparkan keterampilan berikut melalui protokol A2A. Tentukan keterampilan yang akan digunakan lewat metadata.skillId pada pesan. Jika skillId dihilangkan, catholic_qa digunakan sebagai default.

KeterampilanIDDeskripsi
T&J Katolikcatholic_qaT&J lengkap dengan kutipan dari lebih dari 29.000 dokumen Magisterium, Kitab Suci, dan Bapa Gereja.
Pencarian Dokumendocument_searchPencarian semantik di dokumen Magisterium, ensiklik, bagian katekismus, dan hukum kanon.
Pengambilan Dokumendocument_fetchMengambil teks lengkap dan metadata suatu dokumen tertentu berdasarkan ID-nya.
Bacaan Liturgiliturgical_readingsMendapatkan bacaan Misa Katolik untuk tanggal atau peringatan liturgi mana pun.
Santo Hari Inisaints_of_the_dayMendapatkan para santo yang diperingati pada tanggal tertentu dari Martirologi Romawi.
Pencarian Santosaint_lookupMencari seorang santo, beato, yang mulia, atau hamba Allah berdasarkan nama atau ID kanonik.
Pencarian Klerus Katolikperson_lookupMencari seorang tokoh klerus Katolik (uskup, kardinal, uskup agung, dll.) berdasarkan nama atau ID kanonik.
Pencarian Bapa Sucipope_lookupMencari seorang Bapa Suci berdasarkan nama atau ID kanonik.
Pencarian Keuskupandiocese_lookupMencari sebuah yurisdiksi gerejawi (keuskupan, keuskupan agung, eparki) lengkap dengan metadata direktori, statistik utama, dan data keuangan terbaru.
Deret Waktu Statistik Keuskupandiocese_statistics_lookupMengembalikan deret waktu statistik tahunan lengkap untuk sebuah keuskupan — 19 metrik, satu baris per tahun.

Semua keterampilan dipanggil melalui metode JSON-RPC message/send.

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" }
    }
  }
}

Respons selalu kembali sebagai Task (kind: "task") dengan status.state: "completed" dan satu atau lebih artifacts. Setiap artifact memiliki artifactId unik, name khas-keterampilan, dan satu atau lebih parts (text, data, atau file).


catholic_qa

Ajukan pertanyaan dalam bahasa alami dan terima jawaban panjang yang disertai kutipan. Ini adalah keterampilan yang paling mumpuni (dan paling menyerap sumber daya) — ia dijalankan pada model yang sama dengan yang menggerakkan magisterium.com.

Input: satu bagian teks yang berisi pertanyaan.

Artifact: name: "catholic_qa_response" berisi:

  • Bagian text dengan jawaban lengkap.
  • Bagian data dengan citations (ketika sumber apa pun digunakan).
  • Bagian data dengan related_questions (ketika model mengembalikan saran).
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 menggunakan varian pembatas laju yang lebih ketat daripada keterampilan lain. Lihat Referensi API → Batas Laju.

document_search

Ambil referensi dokumen yang cocok dengan kueri semantik terhadap basis pengetahuan Magisterium.

Input: satu bagian teks berisi kueri.

Artifact: name: "search_results" dengan satu bagian data:

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

Gunakan field id dari suatu hasil untuk memanggil document_fetch guna mendapatkan teks lengkap.

document_fetch

Ambil teks lengkap dan metadata dari sebuah dokumen berdasarkan ID-nya. Keterampilan ini menerima bagian data alih-alih bagian teks:

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

Jika pemanggil mengirim bagian teks, handler akan jatuh kembali memperlakukannya sebagai ID dokumen.

Artifact: name: "document" dengan dua bagian:

  • Bagian text berisi isi dokumen.
  • Bagian data berisi { id, title, author, ref }.

Jika dokumen tidak ditemukan, artifact berisi satu bagian text yang berbunyi "Document not found.".

liturgical_readings

Mendapatkan bacaan Misa Katolik untuk tanggal tertentu. Menerima kueri tanggal dalam bahasa alami — misalnya "today", "next Sunday", atau "Easter Sunday 2026".

Input: satu bagian teks dengan kueri tanggal.

Artifact: name: "mass_readings" dengan satu bagian text berisi bacaan yang sudah diformat. Jika tidak ada bacaan untuk tanggal yang diminta, bagian tersebut berbunyi "No mass readings found.".

saints_of_the_day

Cari para santo yang diperingati pada tanggal tertentu dari Martirologi Romawi.

Input: bagian data dengan tanggal absolut, atau bagian teks yang diperlakukan sebagai kueri tanggal:

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

Artifact: name: "martyrology" dengan satu bagian text berisi entri martirologi yang sudah diformat. Tanggal yang tidak ada akan mengembalikan "No martyrology data found.".


Lima keterampilan berikut adalah pencarian direktori. Masing-masing menerima query dalam bahasa alami (sebagai bagian teks atau field data.query) ditambah ID kanonik opsional, dan mengembalikan profil terstruktur di dalam satu bagian data. Jika baik query maupun ID kanonik tidak diberikan, permintaan ditolak dengan INVALID_PARAMS (-32602).

Ketika kueri tidak dapat diselesaikan, artifact berisi bagian data berbentuk { "error": "not_found", "query": "...", "hint"?: "..." } alih-alih sebuah profil. Tugasnya sendiri tetap selesai dengan sukses — not_found adalah hasil pencarian normal, bukan kesalahan protokol.

saint_lookup

Mencari seorang santo, beato, yang mulia, atau hamba Allah dari direktori cd_saints (sekitar 12.500 tokoh).

Input: data.query (mis. "Therese of Lisieux") atau data.saint_id (kunci utama kanonik, mis. "jerome"). Bagian teks polos juga diterima sebagai query.

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

Artifact: name: "saint_profile" dengan satu bagian data berisi profil kanonik — saint_id, primary_name, canonical_status, vocation, image_url, learn_more_url, hidup dan wafat, hari pesta, alasan kanonisasi, perlindungan, ikonografi, biografi, dan (jika ditemukan beberapa kandidat) sebuah array alternates.

person_lookup

Mencari seorang tokoh klerus Katolik (uskup, kardinal, uskup agung, dll.) dari direktori cd_persons (yang masih hidup, sekitar 3.500 tokoh) dan cd_persons_historical (sekitar 2.200 tokoh). Para Bapa Suci disediakan melalui keterampilan terpisah pope_lookup.

Input: data.query (mis. "Cardinal Tagle") atau data.person_id (kunci utama kanonik). Bagian teks polos juga diterima sebagai query.

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

Artifact: name: "person_profile" dengan satu bagian data berisi profil kanonik — person_id, source_table, primary_name, current_position, image_url, coat_of_arms_url, tanggal tahbisan dan konsekrasi, pengangkatan menjadi kardinal, garis keuskupan, pendidikan, motto, dan alternates apa pun.

Jika kueri hanya mengarah ke seorang Bapa Suci, responsnya adalah { "error": "not_found", "hint": "Top match looks like a pope; try get_pope." }.

pope_lookup

Mencari seorang Bapa Suci dari direktori cd_popes (267 tokoh).

Input: data.query (mis. "Pope Francis", "John Paul II") atau data.pope_id (kunci utama kanonik, mis. "benedict-xvi"). Bagian teks polos juga diterima sebagai query.

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

Artifact: name: "pope_profile" dengan satu bagian data berisi profil kepausan kanonik — pope_id, primary_name, papal_name, ordinal, pope_title, image_url, coat_of_arms_url, birth_name, origin, pontificate, status beatifikasi dan kanonisasi, dan alternates apa pun.

Jika kueri hanya mengarah ke seorang anggota klerus yang bukan Bapa Suci, responsnya adalah { "error": "not_found", "hint": "Top match looks like a non-pope clergy member; try get_person." }.

diocese_lookup

Mencari sebuah yurisdiksi gerejawi (keuskupan, keuskupan agung, eparki, dll.) dari direktori keuskupan (sekitar 3.200 yurisdiksi di seluruh dunia).

Input: data.query (mis. "Archdiocese of Manila") atau data.source_code (kunci utama kanonik, mis. "dmaml"). Bagian teks polos juga diterima sebagai query.

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

Artifact: name: "diocese_profile" dengan satu bagian data berisi metadata direktori (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) ditambah:

  • recent_statistics — hingga 5 tahun angka utama (umat Katolik, total penduduk, persentase Katolik, total imam, paroki, baptisan, seminaris).
  • latest_financials — metrik utama tahun fiskal terbaru (total pendapatan, total pengeluaran, aset bersih, total aset, surplus/defisit) jika tersedia, beserta mata uangnya.
  • alternates — ketika beberapa kandidat cocok.

Untuk analisis tren multi-tahun, gunakan diocese_statistics_lookup sebagai gantinya.

diocese_statistics_lookup

Mengembalikan deret waktu statistik tahunan lengkap untuk sebuah keuskupan — seluruh 19 metrik yang dilacak dalam diocese_statistics.

Input: data.query atau data.source_code (salah satunya wajib), ditambah batas inklusif opsional:

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

Artifact: name: "diocese_statistics_time_series" dengan satu bagian data berisi source_code, diocese_name, year_range: { start, end }, dan sebuah array rows. Setiap baris membawa 19 metrik untuk satu tahun: 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.