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.
| Habilidad | ID | Descripción |
|---|---|---|
| Preguntas y respuestas católicas | catholic_qa | Preguntas 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 documentos | document_search | Búsqueda semántica en documentos magisteriales, encíclicas, secciones del catecismo y derecho canónico. |
| Recuperación de documentos | document_fetch | Recupera el texto completo y los metadatos de un documento específico por su ID. |
| Lecturas litúrgicas | liturgical_readings | Obtén las lecturas de la Misa católica para cualquier fecha u ocasión litúrgica. |
| Santos del día | saints_of_the_day | Obtén los santos conmemorados en una fecha determinada según el Martirologio Romano. |
| Búsqueda de santo | saint_lookup | Busca un santo, beato, venerable o siervo de Dios por nombre o ID canónico. |
| Búsqueda de clero católico | person_lookup | Busca una figura del clero católico (obispo, cardenal, arzobispo, etc.) por nombre o ID canónico. |
| Búsqueda de papa | pope_lookup | Busca un papa por nombre o ID canónico. |
| Búsqueda de diócesis | diocese_lookup | Busca 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ócesis | diocese_statistics_lookup | Devuelve 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.
{
"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
textcon la respuesta completa. - Una parte
dataconcitations(cuando se han utilizado fuentes). - Una parte
dataconrelated_questions(cuando el modelo devuelve sugerencias).
{
"artifactId": "art_...",
"name": "catholic_qa_response",
"parts": [
{ "kind": "text", "text": "The Catholic Church teaches..." },
{ "kind": "data", "data": { "citations": [ /* ... */ ] } },
{ "kind": "data", "data": { "related_questions": [ /* ... */ ] } }
]
}
catholic_qautiliza 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:
{
"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:
{
"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
textcon el cuerpo del documento. - Una parte
datacon{ 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:
{
"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.
{
"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.
{
"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.
{
"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.
{
"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:
{
"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.