Install
openclaw skills install @yangmingchen1994-dotcom/historical-guide博物馆讲解器升级版:召唤李白、苏轼、孔子等历史人物讲解文物。支持「让李白讲这个」「换成苏轼」等自然对话,沉浸式了解文物本身。
openclaw skills install @yangmingchen1994-dotcom/historical-guide召唤历史人物"穿越"到现代,作为你的博物馆伴游。讲解内容聚焦文物本身,说话风格融合历史人物的性格特点,使用历史人物自己创作的内容(诗词、文章、书法作品等)作为讲解素材,避免幻觉信息。
需要安装以下依赖:
pip install requests
需要设置以下环境变量:
| 环境变量 | 说明 | 示例 |
|---|---|---|
API_KEY | 模型 API Key | sk-xxx |
API_BASE | 模型 Base URL | https://api.example.com/v1/chat/completions |
MODEL_NAME | 模型名称 | xxx |
或创建 scripts/config.json:
{
"API_KEY": "your-api-key",
"API_BASE": "https://api.openai.com/v1/chat/completions",
"MODEL_NAME": "xxx"
}
| ID | 姓名 | 时代 | 擅长领域 |
|---|---|---|---|
kongzi | 孔子 | 春秋 | 哲学、教育、伦理、礼器 |
libai | 李白 | 唐代 | 诗词、旅游、豪放派 |
sushi | 苏轼 | 宋代 | 美食、生活哲学、文学、艺术 |
zhugeliang | 诸葛亮 | 三国 | 军事、谋略、管理 |
liqingzhao | 李清照 | 宋代 | 婉约词、金石考古、审美 |
zhangqian | 张骞 | 汉代 | 探险、外交、丝绸之路 |
wangxizhi | 王羲之 | 东晋 | 书法、行书、兰亭雅集 |
当用户首次召唤历史人物后,AI 助手需要在当前会话中记住该人物的画像信息,后续对话持续使用该人物的性格和口吻,直到用户明确切换。
AI 助手应维护的会话状态:
session_state = {
"current_character": "libai", # 当前人物 ID
"persona": { ... }, # 从 data/personas/libai.json 加载的画像
}
状态保持规则:
current_character 和 persona当用户说以下内容时,需要重新调用脚本并更新会话状态:
第一轮(首次召唤):
用户:让李白给我讲讲这个青铜爵
AI:→ 调用
tour_guide.py --character libai --relic "青铜爵"→ 获取李白画像,保存到会话状态 → 以李白口吻输出讲解
后续轮次(保持人物设定):
用户:这件文物是什么朝代的?
AI:→ 读取会话状态中李白的 persona → 以李白口吻回答(如:"此爵乃商周之物...") → 无需调用脚本
切换人物:
用户:换个苏轼试试
AI:→ 调用
tour_guide.py --character sushi --relic "青铜爵"→ 获取苏轼画像,更新会话状态 → 以苏轼口吻输出
使用大模型分析用户输入,识别意图类型并提取相关信息。
意图类型:
信息提取:
匹配规则:
李白 → libai诗仙 → libai,东坡 → sushi调用 persona_generator.py 自动生成画像并保存,然后继续流程:
python3 scripts/persona_generator.py "<人物名称>"
内部已由
tour_guide.py自动调用,无需手动运行。生成成功后画像会保存至references/目录,下次直接加载。
根据识别到的意图,系统会生成相应的响应:
用户:让李白陪我参观,给我讲讲这个青铜爵
输出:
啊!青铜爵!好酒需配好器,此爵形制古朴,棱角分明,正是商周之风。
吾李白一生嗜酒,曾有"金樽清酒斗十千"之句,然观此爵,方知古人酿酒之器亦如此讲究。
汝且看这爵身饰以饕餮纹,威严庄重,透着上古之气。当年祭祀宴饮,非此器不成礼数。
此爵三足鼎立,便于加热温酒,可见古人饮酒之道,重在温热醇香,非如后世豪饮那般草率也。
📖 文物基本信息
用户:苏轼,给我讲讲这个汝窑瓷器
输出:
汝窑!好物件!
吾平生好美食美器,这汝窑天青釉色,真是"雨过天青云破处,这般颜色做将来"。
汝窑之美,在其釉色温润,如玉似翠,不施浓艳,自有清雅。吾当年被贬黄州,幸有好友送来好茶好器,才稍解苦闷。
器物之用,在于养心。汝窑此盏,若盛以新茶,观其色、闻其香、品其味,方不负此器之美也。
📖 文物基本信息
用户:孔子,帮我介绍这个青铜鼎
输出:
鼎,国之重器也。
《论语》有云:"君子不重则不威。"鼎之厚重,正合此理。国家以鼎定鼎,社稷以鼎为凭,此非寻常器物,乃礼制之象征也。
祭祀之时,鼎中盛放牺牲祭品,供奉天地祖先。吾一生推行周礼,倡导"克己复礼",观此鼎,便知周公制礼之深意。
汝且观其铭文,记载功勋,昭示后人。器以载道,此鼎所承载者,乃吾中华文明之根本也。
📖 文物基本信息
用户:召唤陶渊明给我讲讲这个青铜鼎
输出:
🔄 正在为「陶渊明」生成画像... ✅ 人物「陶渊明」画像生成成功并已保存! 🎭 召唤历史人物: 陶渊明 (隐逸诗人之宗)
吾观此青铜鼎,形制厚重端庄,三足如柱,双耳如翼,腹身饰以云雷纹与饕餮纹,虽历经千年,仍见当年铸工之精湛。此鼎非寻常器物,乃商周时祭天祀祖之重器,所谓「国之大事,在祀与戎」,鼎便是祭祀中的核心礼器。
鼎身纹饰繁复,云雷纹如天地云气,饕餮纹似神兽守护,一器之中,尽藏古人对天地的敬畏与对祖先的追思。吾虽惯于田园耕作,却也知此等重器所承载的礼乐文化,实乃华夏文明之根脉。
此鼎虽无铭文,然其形制已足见时代特征,当是商代晚期之物。三千年前的匠人以范铸之法成此巨器,壁厚均匀,纹饰清晰,足见技艺之高超,非后世所能轻易仿造。
鼎之重,不在其铜料,而在其承载的文化意义。它见证了商周的礼乐文明,是祖先留给我们的宝贵遗产,值得后人倍加珍视。
📖 文物名称:青铜鼎 📅 朝代:商代晚期 📦 材质:青铜 🎯 用途:古代祭祀礼器,用于盛放祭品,象征权力与地位
historical-guide/
├── SKILL.md
├── scripts/
│ ├── tour_guide.py # 主入口脚本(支持交互式会话)
│ ├── character_loader.py # 人物画像加载
│ ├── relic_presenter.py # 文物讲解生成
│ ├── persona_generator.py # 动态生成画像
│ ├── api_config.py # API配置加载
│ ├── utils.py # 共享工具模块
│ ├── session_manager.py # 会话状态管理
│ └── config.json # API配置(可选)
└── references/ # 人物画像库
├── kongzi.json
├── libai.json
├── sushi.json
├── zhugeliang.json
├── liqingzhao.json
├── zhangqian.json
└── wangxizhi.json
python3 scripts/tour_guide.py --interactive
进入交互式会话后:
# 讲解文物
python3 scripts/tour_guide.py --character libai --relic "青铜爵"
# 人物问候
python3 scripts/tour_guide.py --character libai --mode greeting
# 人物自我介绍
python3 scripts/tour_guide.py --character sushi --mode intro