스킬
Magisterium AI는 A2A 프로토콜을 통해 다음 스킬을 노출합니다. 메시지의 metadata.skillId를 통해 사용할 스킬을 지정하세요. skillId가 생략되면 기본값으로 catholic_qa가 사용됩니다.
| 스킬 | ID | 설명 |
|---|---|---|
| 가톨릭 Q&A | catholic_qa | 29,000개 이상의 교도 문서, 성경 및 교부 저작에서 인용을 포함한 완전한 Q&A. |
| 문서 검색 | document_search | 교도 문서, 회칙, 교리서 항목 및 교회법에 대한 의미 기반 검색. |
| 문서 가져오기 | document_fetch | 특정 문서의 전문과 메타데이터를 ID로 가져옵니다. |
| 전례 독서 | liturgical_readings | 임의의 날짜 또는 전례 시기에 대한 가톨릭 미사 독서를 가져옵니다. |
| 오늘의 성인 | saints_of_the_day | 로마 순교록에서 지정된 날짜에 기념되는 성인을 가져옵니다. |
| 성인 조회 | saint_lookup | 이름 또는 표준 ID로 성인, 복자, 가경자 또는 하느님의 종을 조회합니다. |
| 가톨릭 성직자 조회 | person_lookup | 이름 또는 표준 ID로 가톨릭 성직자(주교, 추기경, 대주교 등)를 조회합니다. |
| 교황 조회 | pope_lookup | 이름 또는 표준 ID로 교황을 조회합니다. |
| 교구 조회 | diocese_lookup | 교회 관할구(교구, 대교구, 총대주교구)를 디렉터리 메타데이터, 핵심 통계 및 최신 재무 정보와 함께 조회합니다. |
| 교구 통계 시계열 | diocese_statistics_lookup | 한 교구의 연도별 통계 시계열 전체를 반환합니다 — 19개 지표, 연도별 한 행. |
모든 스킬은 message/send JSON-RPC 메서드를 통해 호출됩니다.
{
"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" }
}
}
}응답은 항상 Task (kind: "task")로 반환되며 status.state: "completed"와 하나 이상의 artifacts를 갖습니다. 각 artifact에는 고유한 artifactId, 스킬별 name, 하나 이상의 parts (text, data 또는 file)가 있습니다.
catholic_qa
자연어로 질문을 하고 인용이 포함된 긴 형식의 답변을 받습니다. 이것은 가장 강력하고 (가장 자원 집약적인) 스킬입니다 — magisterium.com을 구동하는 동일한 모델에서 실행됩니다.
입력: 질문을 포함하는 단일 텍스트 part.
Artifact: name: "catholic_qa_response", 다음을 포함:
- 전체 답변이 포함된
textpart. citations가 포함된datapart (출처가 사용된 경우).related_questions가 포함된datapart (모델이 제안을 반환한 경우).
{
"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는 다른 스킬보다 더 엄격한 속도 제한 변형을 사용합니다. API 참조 → 속도 제한을 참조하세요.
document_search
Magisterium 지식베이스에 대한 의미 쿼리와 일치하는 문서 참조를 가져옵니다.
입력: 쿼리를 포함하는 단일 텍스트 part.
Artifact: name: "search_results", 단일 data part 포함:
{
"artifactId": "art_...",
"name": "search_results",
"parts": [
{
"kind": "data",
"data": {
"results": [
{ "id": "12345", "url": "https://...", "title": "Lumen Gentium" }
]
}
}
]
}결과의 id 필드를 사용하여 document_fetch를 호출하고 전문을 가져오세요.
document_fetch
ID로 문서의 전문과 메타데이터를 가져옵니다. 이 스킬은 텍스트 part 대신 data part를 받습니다:
{
"parts": [{ "kind": "data", "data": { "id": "12345" } }]
}호출자가 텍스트 part를 보낸 경우, 핸들러는 이를 문서 ID로 취급하는 것으로 대체합니다.
Artifact: name: "document", 두 개의 part를 포함:
- 문서 본문을 포함하는
textpart. { id, title, author, ref }를 포함하는datapart.
문서를 찾을 수 없는 경우, artifact는 "Document not found."를 읽는 단일 text part를 포함합니다.
liturgical_readings
지정된 날짜의 가톨릭 미사 독서를 가져옵니다. 자연어 날짜 쿼리를 수락합니다 — 예: "today", "next Sunday" 또는 "Easter Sunday 2026".
입력: 날짜 쿼리를 포함하는 단일 텍스트 part.
Artifact: name: "mass_readings", 포맷된 독서를 포함하는 단일 text part. 요청된 날짜에 독서가 없는 경우 해당 part는 "No mass readings found."를 읽습니다.
saints_of_the_day
로마 순교록에서 지정된 날짜에 기념되는 성인을 조회합니다.
입력: 절대 날짜를 가진 data part, 또는 날짜 쿼리로 취급되는 텍스트 part:
{
"parts": [{ "kind": "data", "data": { "date": "2026-03-19" } }]
}Artifact: name: "martyrology", 포맷된 순교록 항목을 포함하는 단일 text part. 누락된 날짜는 "No martyrology data found."를 반환합니다.
아래 다섯 개의 스킬은 디렉터리 조회입니다. 각 스킬은 자연어 query(텍스트 part 또는 data.query 필드)와 선택적 표준 ID를 받아, 단일 data part 안에 구조화된 프로필을 담아 반환합니다. query도 표준 ID도 제공되지 않으면 요청은 INVALID_PARAMS(-32602)로 거부됩니다.
쿼리를 해석할 수 없는 경우, artifact는 프로필 대신 { "error": "not_found", "query": "...", "hint"?: "..." } 형태의 data part를 포함합니다. 작업 자체는 여전히 성공적으로 완료됩니다 — not_found는 정상적인 조회 결과이며 프로토콜 오류가 아닙니다.
saint_lookup
cd_saints 디렉터리(약 12,500명)에서 성인, 복자, 가경자 또는 하느님의 종을 조회합니다.
입력: data.query(예: "Therese of Lisieux") 또는 data.saint_id(표준 기본 키, 예: "jerome"). 단순 텍스트 part도 query로 받아들입니다.
{
"parts": [{ "kind": "data", "data": { "query": "Catherine of Siena" } }]
}Artifact: name: "saint_profile", 표준 프로필을 포함하는 단일 data part — saint_id, primary_name, canonical_status, vocation, image_url, learn_more_url, 생애와 죽음, 축일, 시성 사유, 수호 대상, 도상, 전기, 그리고(여러 후보가 발견된 경우) alternates 배열.
person_lookup
cd_persons(생존, 약 3,500명)와 cd_persons_historical(약 2,200명) 디렉터리에서 가톨릭 성직자(주교, 추기경, 대주교 등)를 조회합니다. 교황은 별도의 pope_lookup 스킬로 제공됩니다.
입력: data.query(예: "Cardinal Tagle") 또는 data.person_id(표준 기본 키). 단순 텍스트 part도 query로 받아들입니다.
{
"parts": [{ "kind": "data", "data": { "query": "Cardinal Tagle" } }]
}Artifact: name: "person_profile", 표준 프로필을 포함하는 단일 data part — person_id, source_table, primary_name, current_position, image_url, coat_of_arms_url, 사제 서품 및 주교 서품 일자, 추기경 서임, 주교 계보, 학력, 사목 표어, 그리고 임의의 alternates.
쿼리가 교황으로만 해석되면 응답은 { "error": "not_found", "hint": "Top match looks like a pope; try get_pope." }입니다.
pope_lookup
cd_popes 디렉터리(267명)에서 교황을 조회합니다.
입력: data.query(예: "Pope Francis", "John Paul II") 또는 data.pope_id(표준 기본 키, 예: "benedict-xvi"). 단순 텍스트 part도 query로 받아들입니다.
{
"parts": [{ "kind": "data", "data": { "query": "John Paul II" } }]
}Artifact: name: "pope_profile", 표준 교황 프로필을 포함하는 단일 data part — pope_id, primary_name, papal_name, ordinal, pope_title, image_url, coat_of_arms_url, birth_name, origin, pontificate, 시복 및 시성 상태, 그리고 임의의 alternates.
쿼리가 교황이 아닌 성직자에만 해석되면 응답은 { "error": "not_found", "hint": "Top match looks like a non-pope clergy member; try get_person." }입니다.
diocese_lookup
교구 디렉터리(전 세계 약 3,200개 관할구)에서 교회 관할구(교구, 대교구, 총대주교구 등)를 조회합니다.
입력: data.query(예: "Archdiocese of Manila") 또는 data.source_code(표준 기본 키, 예: "dmaml"). 단순 텍스트 part도 query로 받아들입니다.
{
"parts": [{ "kind": "data", "data": { "query": "Archdiocese of Manila" } }]
}Artifact: name: "diocese_profile", 디렉터리 메타데이터(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)와 더불어 다음을 포함하는 단일 data part:
recent_statistics— 최대 5년치 핵심 수치(가톨릭 신자 수, 총 인구, 가톨릭 비율, 사제 총수, 본당 수, 세례 수, 신학생 수).latest_financials— 가능한 경우, 가장 최근 회계연도의 핵심 지표(총수입, 총지출, 순자산, 총자산, 흑자/적자)와 통화.alternates— 여러 후보가 일치한 경우.
다년간의 추세 분석에는 대신 diocese_statistics_lookup을 사용하세요.
diocese_statistics_lookup
한 교구의 연도별 통계 시계열 전체를 반환합니다 — diocese_statistics에서 추적하는 19개 지표 모두.
입력: data.query 또는 data.source_code(둘 중 하나는 필수)와 선택적 폐구간 경계:
{
"parts": [{
"kind": "data",
"data": {
"source_code": "dmaml",
"start_year": 2010,
"end_year": 2024
}
}]
}Artifact: name: "diocese_statistics_time_series", source_code, diocese_name, year_range: { start, end }, 그리고 rows 배열을 포함하는 단일 data part. 각 행은 한 해의 19개 지표를 담습니다: 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.