技能
Magisterium AI 通过 A2A 协议公开以下技能。通过消息中的 metadata.skillId 指定要使用的技能。如果省略 skillId,则默认使用 catholic_qa。
| 技能 | ID | 描述 |
|---|---|---|
| 天主教问答 | catholic_qa | 完整问答,附带来自 29,000 多份训导文献、《圣经》及教父著作的引用。 |
| 文献搜索 | 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,内含完整回答。 - 一个
datapart,包含citations(当使用了任何来源时)。 - 一个
datapart,包含related_questions(当模型返回建议时)。
{
"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 获取一份文献的完整正文和元数据。该技能接受一个 data part,而不是文本 part:
{
"parts": [{ "kind": "data", "data": { "id": "12345" } }]
}如果调用方发送的是文本 part,处理程序会退回到将其视为文献 ID。
Artifact: name: "document",包含两个 part:
- 一个
textpart,包含文献正文。 - 一个
datapart,包含{ id, title, author, ref }。
如果找不到该文献,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",包含单个 data part,内含目录元数据(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),以及:
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",包含单个 data part,内含 source_code、diocese_name、year_range: { start, end } 以及一个 rows 数组。每行包含某一年的 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。