元藏·拾真
> 「元藏」取汇聚天下馆藏之意,「拾真」取去伪存真、拾取真品之旨。
> 本 skill 只做一件事:把用户脑中的「想看什么文物」,变成一份全面、可翻页、带缩略图的国内博物馆藏品清单。
一、何时启用
当用户表达以下意图之一时启用本 skill:
- 想查找某类/某件文物在哪些博物馆有收藏(如"唐代的青花瓷""三星堆的青铜面具""哪里有玉璧")。
- 想按材质/朝代/纹饰/器型/地域检索馆藏(如"战国青铜器""元代玉器""故宫的珐琅器")。
- 想要带缩略图的藏品列表、可翻页浏览、查看详情链接。
核心约束:全面性优先。 检索必须覆盖「国家级聚合平台 + 多家重点博物馆」,不得只查单一博物馆就返回结论。
二、严格数据源(唯一可信来源)
所有检索只限于 references/data-sources.md 收录的官方藏品检索页。禁止编造链接、跳转非官方或商业聚合站点。
数据源按 A/B/C/D/E 五层组织:A 层为国家级聚合主入口,B/C/D 层为重点馆,E 层为陶瓷类专项馆;各层具体机构、入口与检索能力见 references/data-sources.md。检索陶、瓷、窑口、釉色、紫砂等主题时,优先追加 E 层。
三、工作流程
第 0 步 · 首次使用引导(仅一次,自动自愈)
技能启动后先做两件事:确保 yc.mcp 已注册到 WorkBuddy 的 mcp.json,再检查授权码是否已配置。两者都只需一次,之后不再打扰用户。
0.1 确保 MCP 已注册(市场安装后本机可能没有 yc.mcp,必须先补上;本技能后续的 yc.mcp 结构化后端依赖它):
- 运行
python scripts/yc_search.py ensure-mcp
- 输出MCP_STATUS: OK→ 已存在且地址正确,跳过;
- 输出MCP_STATUS: ADDED→ 已写入yc.mcp(地址https://mcp.yuanjie.cc:18093/mcp);
- 输出MCP_STATUS: UPDATED→ 原地址不符,已更新为正确地址;
- 输出MCP_STATUS: ERROR | …→ 写入失败(多半是目录无写权限),提示用户手动在~/.workbuddy/mcp.json的mcpServers下加入:
json "yc.mcp": { "type": "http", "url": "https://mcp.yuanjie.cc:18093/mcp" } - 写入后提示用户:需重启 WorkBuddy(或重新信任/启用
yc.mcp)让 MCP 生效,再继续后续步骤。
0.2 检查授权码(未配置则向用户索取并持久化):
- 运行
python scripts/yc_search.py auth
- 输出AUTH_OK→ 已配置,跳过本步;
- 输出AUTH_REQUIRED或AUTH_INVALID:<原因>→ 需要配置。 - 若需配置,用
AskUserQuestion(自由输入)或直接询问用户索取授权码(提醒:可向分发者索取)。 - 拿到后写入并校验(用 stdin 传入,避免码出现在命令行参数):
echo "<用户给的码>" | python scripts/yc_search.py auth --set -
成功输出AUTH_SAVED;码错误则输出AUTH_INVALID并提示用户重输。 - 写入的
.authcode位于 skill 目录,之后永久使用,不再询问。
> 解析优先级:环境变量 YC_MCP_AUTH_CODE > 旧名 YC_MCP_AUTH > .authcode 文件 > 内置默认(分享包默认为空)。
> 注意:绝不在回复中复述或展示授权码本身;只报告「已配置 / 无效请重输」。
0.3 结构化后端(可选):完成 0.1 / 0.2 后,yc.mcp 即作为本技能的可选结构化后端可用。除默认的 WebSearch / WebFetch 广域检索外,可随时用 python scripts/yc_search.py raw --params '{"kiln":"汝窑","pageSize":5}' 等做一次结构化查询作为补充。
Step 1 · 智能语义分析,提取检索关键词
读用户原话,拆出结构化检索维度(不要只取一个词,要尽可能多维度,以提升召回):
| 维度 | 含义 | 提取示例 |
|---|---|---|
| 名称/主题词 | 用户点名的具体器物或泛称 | "青花瓷"→青花瓷;"莲鹤方壶"→莲鹤方壶 |
| 材质/类别 | 陶、瓷、铜/青铜、玉、金银、书画、漆木、石… | "玉器"→玉;"青铜器"→青铜 |
| 年代/朝代 | 史前、商周、战国、汉、唐、宋、元、明、清… | "唐代"→唐 |
| 纹饰/器型/用途 | 龙纹、饕餮、面具、壶、鼎、镜、佛造像… | "面具"→面具 |
| 地域/博物馆 | 具体馆名、省份 | "三星堆"→馆=三星堆;"故宫"→馆=故宫 |
| 关键词组合 | 上述维度的 AND 组合 | "唐代 青花瓷"→唐+青花瓷 |
提取规则:
1. 用户没说朝代/材质时,不要强行补,用主题词直接检索,但在结果里按维度标注。
2. 文言/别名要归一:如"爵"→青铜爵、"琮"→玉琮、"缂丝"→缂丝。
3. ambiguous 时,优先保留用户原词 + 一个上位词(如"青花"同时搜 青花 与 瓷)。
4. 把提取结果先用一句话回显给用户(如:已提取关键词:朝代=唐,材质=瓷,主题=青花;将检索国内博物馆藏品),再开始检索。
Step 2 · 批量检索(检索执行)
按下面三种方式落地,把 Step1 的关键词组合喂进去。至少检索 A 层聚合平台,并按需追加 B/C/D 层重点馆。
方式① 站点限定检索(主力,适用于 A 层与所有支持关键词的馆)
用 WebSearch 执行站点限定查询,把多维关键词组合进引号:
- 聚合全面扫描:site:museumschina.cn "青花瓷"(一次覆盖 2000+ 馆)
- 重点馆精搜:site:digicol.dpm.org.cn "青花瓷"、site:shanghaimuseum.net "青花"、site:njmuseum.com "青花"
- 多维度:site:museumschina.cn "唐" "青花"(如搜索引擎支持多词,否则分两次取交集)
方式② 分类浏览页筛选(适用于仅支持泛查的馆,见 data-sources.md 中🔍标注)
用 WebFetch 直接打开该馆藏品分类/精品页(URL 见 data-sources.md),在返回结果中人工筛出含关键词的条目。适合"某馆里有什么 X"型需求。
方式③ 详情页核验(补全缩略图与归属)
对 Step2 命中的条目,用 WebFetch 打开其详情页(/collection/details?id= 或各馆详情链接),补全:
- 缩略图真实图片 URL(列表页多为懒加载占位,详情页才有实图地址)
- 完整名称、馆藏编号、年代、博物馆归属
检索覆盖度要求(全面性硬指标):
- 默认必查:A1 博物馆聚合机构(全面性底线)。
- 若用户点名某馆/某省 → 追加该馆(B/C/D 层)。
- 若用户泛搜某类文物 → 追加 3~6 家该类别见长的馆(如陶瓷/瓷器→必加 E 层专项馆:景德镇中国陶瓷博物馆、淄博陶瓷琉璃博物馆、宜兴陶瓷博物馆,及对应名窑馆——钧瓷→E4 禹州钧官窑、汝瓷→E6 宝丰汝窑、官窑→E5 南宋官窑、定瓷→E7 陈文增定瓷馆、磁州窑→E8、耀州窑→E9、长沙窑→E10、吉州窑→E11、龙泉青瓷→E12、建盏→E13;综合瓷→故宫/上博/国博/豫博/粤博;紫砂→E3 宜兴陶瓷博物馆;青铜→陕历博/山西博物院/国博/南博/宝鸡;书画→故宫/上博/浙博/辽博)。
- 单次检索至少覆盖 4 个数据源,结果不足时继续扩展,不得过早收尾。
降级与兜底(重要,来自实战)
- A1 博物馆聚合机构对「长尾窄词」索引不稳定:实测
site:museumschina.cn "青花瓷"等宽词可一次命中多馆;但对「存世极少、词频极低」的品类(如"南宋官窑""某孤品窑口"),A1 常只返回平台主页/百科词条,不返回具体藏品页。此时不要反复重试 A1,直接转入兜底:以 B/C/E 层官方源(故宫数字文物库、国博、上博、对应名窑专项馆等)互补,仍须满足"至少覆盖 4 个数据源",并在结果汇总中如实标注"A1 主入口本次未索引到具体条目,已以官方源互补"。 - 专项馆 E 层的价值在窄词时最高:名窑专项馆官网(如 E5 杭州南宋官窑博物馆
ssikiln.com)多以"遗址+出土标本"为主,其藏品常未被搜索引擎单独索引为"数字藏品页",此时改用方式②(WebFetch 官网陈列/遗址页)或用权威百科/报道佐证其代表性藏品名称,并在列表中标注"知识库补充·无独立数字页"。 - 任一层均未命中的馆,在汇总里显式列出"已查未命中:XXX 馆",体现全面性自检。
Step 3 · 汇总与去重
- 合并所有来源命中项。
- 去重键:
名称 + 馆藏编号 + 博物馆。同物异源时保留源馆条目(图更清晰),聚合平台条目作补充。 - 标注每条的:名称、博物馆、年代、材质(能拿到就标)、缩略图、详情链接。
- 总数超过 10 条时,按"相关度 + 年代"排序后分页。
Step 4 · 分页输出(10 条/页,支持翻页)
按以下格式输出当前页(默认第 1 页,每页 10 条):
### 元藏·拾真检索结果 — 第 1 / N 页(共 M 条)
检索词:<回显关键词> | 数据源:博物馆聚合机构 + 故宫 + 上博 + 陕历博 …
| # | 藏品名称 | 所在博物馆 | 缩略图 | 详情 |
|---|----------|------------|--------|------|
| 1 | 青花缠枝莲纹瓶 | 故宫博物院 |  | [详情](<url>) |
| 2 | … | … | (见来源页) | [详情](<url>) |
| … | | | | |
- 缩略图列:能拿到真实图片 URL 就渲染
;拿不到就写「(见来源页)」并保留详情链接——不得伪造图片。 - 翻页:页脚提示
下一页 →(回复"下一页"继续)。用户说"下一页/第2页/更多"时,输出第 2 页,以此类推,直到末页。 - 末页明确标注
— 已到末页 —,并附一句汇总(如"共覆盖 X 家博物馆、Y 件相关藏品")。
四、质量与边界
- 全面性 > 速度:宁可多查几家、多翻几页,也不要漏掉大馆。返回结论前自检:"博物馆聚合机构扫了吗?点名馆查了吗?"
- 只信官方源:所有条目须能回溯到 data-sources.md 中的 URL;无法溯源的不输出。
- 缩略图真实性:列表页懒加载拿不到图时,宁可放详情链接,绝不编造图片地址。
- 版权:缩略图与著录归原博物馆/平台所有,输出须带来源链接;引用图片须遵守各站版权规定。
- 不臆造:年代、材质、馆藏编号以来源页为准;来源缺失的字段留空或标注"待核",不猜测。
- 翻页连续性:翻页时复用同一检索词与已汇总结果,不要重新检索造成错位。
五、参考文件
references/data-sources.md— 严格数据源全表(A/B/C/D/E 层,含每个站点的入口 URL、检索能力、检索方式)。每次检索前先读此表确认入口与能力;检索陶瓷/瓷器类务必先查 E 层专项馆。scripts/yc_search.py— 首次使用引导引擎:ensure-mcp(确保 yc.mcp 已注册到 mcp.json,缺则判定 ADDED 自动写入并保留其它 server)与auth/auth --set -(检查授权码状态 AUTH_OK/AUTH_REQUIRED/AUTH_INVALID,首次使用索取并写入.authcode永久生效)。技能启用时由「第 0 步 · 首次使用引导」调用。