Magisterium AI

Habilidades

Magisterium AI expone las siguientes habilidades a través del protocolo A2A. Especifica la habilidad que se utilizará mediante metadata.skillId en el mensaje. Si se omite skillId, se usa catholic_qa por defecto.

HabilidadIDDescripción
Preguntas y respuestas católicascatholic_qaPreguntas y respuestas completas con citas de más de 29.000 documentos magisteriales, la Sagrada Escritura y los Padres de la Iglesia.
Búsqueda de documentosdocument_searchBúsqueda semántica en documentos magisteriales, encíclicas, secciones del catecismo y derecho canónico.
Recuperación de documentosdocument_fetchRecupera el texto completo y los metadatos de un documento específico por su ID.
Lecturas litúrgicasliturgical_readingsObtén las lecturas de la Misa católica para cualquier fecha u ocasión litúrgica.
Santos del díasaints_of_the_dayObtén los santos conmemorados en una fecha determinada según el Martirologio Romano.
Búsqueda de santosaint_lookupBusca un santo, beato, venerable o siervo de Dios por nombre o ID canónico.
Búsqueda de clero católicoperson_lookupBusca una figura del clero católico (obispo, cardenal, arzobispo, etc.) por nombre o ID canónico.
Búsqueda de papapope_lookupBusca un papa por nombre o ID canónico.
Búsqueda de diócesisdiocese_lookupBusca una jurisdicción eclesiástica (diócesis, archidiócesis, eparquía) con metadatos del directorio, estadísticas principales y los datos financieros más recientes.
Serie temporal de estadísticas de diócesisdiocese_statistics_lookupDevuelve la serie temporal anual completa de estadísticas de una diócesis: 19 métricas, una fila por año.

Todas las habilidades se invocan mediante el método 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" }
    }
  }
}

Las respuestas siempre vuelven como una Task (kind: "task") con status.state: "completed" y uno o más artifacts. Cada artefacto tiene un artifactId único, un name específico de la habilidad y una o más parts (text, data o file).


catholic_qa

Formula una pregunta en lenguaje natural y recibe una respuesta extensa con citas. Es la habilidad más capaz (y que más recursos consume) — se ejecuta con el mismo modelo que impulsa magisterium.com.

Entrada: una única parte de texto con la pregunta.

Artefacto: name: "catholic_qa_response" que contiene:

  • Una parte text con la respuesta completa.
  • Una parte data con citations (cuando se han utilizado fuentes).
  • Una parte data con related_questions (cuando el modelo devuelve sugerencias).
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 utiliza una variante de límite de uso más estricta que el resto de habilidades. Consulta Referencia de API → Límites de uso.

document_search

Recupera referencias a documentos que coincidan con una consulta semántica en la base de conocimiento de Magisterium.

Entrada: una única parte de texto con la consulta.

Artefacto: name: "search_results" con una única parte data:

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

Usa el campo id de un resultado para invocar document_fetch y obtener el texto completo.

document_fetch

Recupera el texto completo y los metadatos de un documento por su ID. Esta habilidad acepta una parte data en lugar de una parte de texto:

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

Si el llamador envía una parte de texto, el manejador la trata como si fuera el ID del documento.

Artefacto: name: "document" con dos partes:

  • Una parte text con el cuerpo del documento.
  • Una parte data con { id, title, author, ref }.

Si el documento no se encuentra, el artefacto contiene una única parte text con el texto "Document not found.".

liturgical_readings

Obtén las lecturas de la Misa católica para una fecha determinada. Acepta una consulta de fecha en lenguaje natural — p. ej. "today", "next Sunday" o "Easter Sunday 2026".

Entrada: una única parte de texto con la consulta de fecha.

Artefacto: name: "mass_readings" con una única parte text que contiene las lecturas formateadas. Si no hay lecturas disponibles para la fecha solicitada, la parte dice "No mass readings found.".

saints_of_the_day

Consulta los santos conmemorados en una fecha determinada según el Martirologio Romano.

Entrada: una parte data con una fecha absoluta, o una parte de texto tratada como consulta de fecha:

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

Artefacto: name: "martyrology" con una única parte text que contiene la entrada del martirologio formateada. Las fechas sin datos devuelven "No martyrology data found.".


Las cinco habilidades siguientes son búsquedas en el directorio. Cada una acepta una query en lenguaje natural (como parte de texto o como campo data.query) más un ID canónico opcional, y devuelve un perfil estructurado dentro de una única parte data. Si no se proporcionan ni query ni un ID canónico, la solicitud se rechaza con INVALID_PARAMS (-32602).

Cuando la consulta no puede resolverse, el artefacto contiene una parte data con la forma { "error": "not_found", "query": "...", "hint"?: "..." } en lugar de un perfil. La tarea en sí se completa con éxito: not_found es un resultado normal de la búsqueda, no un error de protocolo.

saint_lookup

Busca un santo, beato, venerable o siervo de Dios en el directorio cd_saints (~12.500 figuras).

Entrada: data.query (p. ej. "Therese of Lisieux") o data.saint_id (clave primaria canónica, p. ej. "jerome"). Una parte de texto sola se acepta como query.

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

Artefacto: name: "saint_profile" con una única parte data que contiene el perfil canónico — saint_id, primary_name, canonical_status, vocation, image_url, learn_more_url, vida y muerte, fecha de la fiesta, causa de canonización, patronazgo, iconografía, biografía y (si se encuentran varios candidatos) un array alternates.

person_lookup

Busca una figura del clero católico (obispo, cardenal, arzobispo, etc.) en los directorios cd_persons (vivos, ~3.500) y cd_persons_historical (~2.200). Los papas se exponen mediante la habilidad separada pope_lookup.

Entrada: data.query (p. ej. "Cardinal Tagle") o data.person_id (clave primaria canónica). Una parte de texto sola se acepta como query.

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

Artefacto: name: "person_profile" con una única parte data que contiene el perfil canónico — person_id, source_table, primary_name, current_position, image_url, coat_of_arms_url, fechas de ordenación y consagración, elevación al cardenalato, linaje episcopal, formación, lema y los alternates que correspondan.

Si la consulta se resuelve únicamente como un papa, la respuesta es { "error": "not_found", "hint": "Top match looks like a pope; try get_pope." }.

pope_lookup

Busca un papa en el directorio cd_popes (267 figuras).

Entrada: data.query (p. ej. "Pope Francis", "John Paul II") o data.pope_id (clave primaria canónica, p. ej. "benedict-xvi"). Una parte de texto sola se acepta como query.

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

Artefacto: name: "pope_profile" con una única parte data que contiene el perfil papal canónico — pope_id, primary_name, papal_name, ordinal, pope_title, image_url, coat_of_arms_url, birth_name, origin, pontificate, estado de beatificación y canonización, y los alternates que correspondan.

Si la consulta se resuelve únicamente como un miembro del clero que no es papa, la respuesta es { "error": "not_found", "hint": "Top match looks like a non-pope clergy member; try get_person." }.

diocese_lookup

Busca una jurisdicción eclesiástica (diócesis, archidiócesis, eparquía, etc.) en el directorio de diócesis (~3.200 jurisdicciones en todo el mundo).

Entrada: data.query (p. ej. "Archdiocese of Manila") o data.source_code (clave primaria canónica, p. ej. "dmaml"). Una parte de texto sola se acepta como query.

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

Artefacto: name: "diocese_profile" con una única parte data que contiene los metadatos del directorio (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) además de:

  • recent_statistics — hasta 5 años de cifras destacadas (católicos, población total, porcentaje de católicos, total de sacerdotes, parroquias, bautismos, seminaristas).
  • latest_financials — las métricas destacadas del ejercicio fiscal más reciente (ingresos totales, gastos totales, activos netos, activos totales, superávit/déficit) cuando estén disponibles, con la moneda.
  • alternates — cuando coincidieron varios candidatos.

Para análisis de tendencias plurianuales, utiliza diocese_statistics_lookup en su lugar.

diocese_statistics_lookup

Devuelve la serie temporal anual completa de estadísticas de una diócesis — las 19 métricas registradas en diocese_statistics.

Entrada: data.query o data.source_code (uno es obligatorio), más límites inclusivos opcionales:

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

Artefacto: name: "diocese_statistics_time_series" con una única parte data que contiene source_code, diocese_name, year_range: { start, end } y un array rows. Cada fila aporta 19 métricas para un año: 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.