Install
openclaw skills install book-learning-assistant书本系统学习助手。支持两种触发方式:(1)提供书名+作者+版次+出版社,AI搜索全书内容框架并输出结构化概览;(2)提供参考电子书文件(EPUB格式),AI直接基于电子书内容安排学习。输出包含逐章速览、全面结构化梳理、核心思想、思维工具与小学生案例。学习者选定章节后进入阶段二,AI用原书案例+小学生案例详细讲解知识点,每个知识点附时效性评估(基于2026年现代研究判断是否过时/错误/需更新)。所有输出基于事实、不得杜撰,举例须小学生能懂,结构化输出、语言简洁。
openclaw skills install book-learning-assistant该技能分两个阶段运行:
触发条件(两种途径,二选一):
途径 A — 提供书籍信息(适用于无电子书时) 学习者提供 4 个信息(至少前 2 个必填)
途径 B — 提供参考电子书(推荐,优先于途径 A)
.epub)执行步骤:
搜索全书框架:使用搜索工具(online-search / web_fetch)搜索该书的内容结构(目录/章节框架)
"<书名>" <作者> 目录、"<书名>" <作者> 内容简介验证搜索结果:评估找到的材料是否足够可靠
结构化输出全书概览,包含四个模块,按以下顺序输出:
━━━ 📖 《书名》· 全书概览 ━━━
【作者】作者名
【版次】第X版(如有)
【出版社】出版社名(如有)
━━━ 一、全书内容框架(速览)━━━
快速摸清全书脉络,每一行就是一章:
第1章 [章节标题] — [一句话核心]
第2章 [章节标题] — [一句话核心]
...
━━━ 二、全面结构化梳理 ━━━
对每章做详细拆解,帮助学习者了解每个章节到底讲了什么内容。
📁 第一部分:[主题名称](如果全书有明确的分组/分篇)
📂 第1章 [标题]
├ 本章讲什么:2-3句话概述本章内容
├ 核心论点/主线:这一章的核心逻辑脉络
├ 关键概念:列出本章最重要的概念
├ 书中案例/论据(如有):书里用了什么例子或证据
├ ⚠️ 时代局限性(如有):该章中至今已过时或有局限的知识,以及对应的现代更新
└ ⚡ 一句话记住:用一个比喻或一句话概括本章
📂 第2章 [标题]
├ 本章讲什么:
├ 核心论点/主线:
├ 关键概念:
├ 书中案例/论据(如有):
├ ⚠️ 时代局限性(如有):
└ ⚡ 一句话记住:
📁 第二部分:[主题名称](分组2)
📂 第X章 ...
...(逐章拆解,直到全书完)
━━━ 三、核心思想 ━━━
用 3-5 段简明阐述全书最核心的思想。避免学术套话,用最直白的语言说清楚:
- 这本书到底想讲什么?
- 它和普通人的关系是什么?
- 为什么这些思想值得了解?
━━━ 四、思维工具(如有)━━━
对书中介绍的每个思维工具/方法论/分析框架:
📐 工具1:[工具名称]
┣ 一句话说明
┣ 【小学生案例】一个生活中孩子能完全理解的例子
┗ 【应用场景】什么情况下可以用这个工具
📐 工具2:[工具名称]
┣ 一句话说明
┣ 【小学生案例】
┗ 【应用场景】
...(逐个工具说明)
📌 全面结构化梳理的关键:
- 结构化梳理不是编造内容,所有细节必须来自搜索到的可靠材料
- 如果某章的内容在搜索结果中找不到,如实标注「未找到详细资料」
- 可以用书的分篇/分组结构来组织,让学习者看到全书的逻辑脉络
- 「一句话记住」是对该章最精炼的概括,帮助学习者建立记忆锚点
- ⚠️ 时代局限性不是可选项:每章都必须评估,即使结论是「无重大时代局限性」,也必须写出来
识别电子书格式:检查文件是否为 EPUB 格式(EPUB 实际上是 ZIP 压缩包,内含 HTML 文件和元数据)
.epub 扩展名(或通过文件头 PK 识别 ZIP 格式).txt / .pdf / .mobi 等其他格式,告知当前只支持 EPUB,建议用户转换解析电子书内部结构:
META-INF/container.xml → 找到 OPF 文件(包描述文件)的路径toc.ncx(或 toc.xhtml)→ 获取 TOC 映射:章节标签 → 对应的内部 HTML 文件路径输出章节目录给用户确认:
📖 [书名] 章节目录
├ 第1章「标题」→ 内部文件: text/part0006.html
├ 第2章「标题」→ 内部文件: text/part0007.html
└ 第3章「标题」→ 内部文件: text/part0008.html
提取并处理章节内容:
基于提取内容输出全书概览:格式同下方「结构化输出全书概览」模板,但内容全部从电子书原文提取,不得杜撰任何书中不存在的内容。来源直接标注为「电子书原文(EPUB)」而非搜索来源。
📌 注意:EPUB 内部 HTML 文件名通常不按章节顺序命名(如
part0006.html可能对应第 1 章),必须依赖toc.ncx来建立正确的章节映射。不要根据文件名猜测章节编号。
触发条件:学习者从阶段一的输出中,选定要学习的具体章节或内容范围。
执行步骤:
确认学习范围:学习者提供章节编号或内容描述
针对性讲解,输出格式如下:
━━━ 📘 第X章:章节标题 ━━━
━━━ 核心论题 ━━━
一句话概括本章的核心主张。
━━━ 核心问题 ━━━
**问题**:这一章试图回答的核心问题是什么?
**说明**:为什么这个问题重要?它和我们有什么关系?
**例子**:用一个例子帮助理解这个问题
---
━━━ 一、书中内容(按原书顺序)━━━
按原书叙述逻辑梳理,保留作者的论证顺序。
可以使用标题/列表/缩进保持可读性。
---
━━━ 二、知识点与例子 ━━━
### 【知识点1】[名称]
**说明**:一句话解释这个知识点
⚠️ **知识时效性评估**:
> 该知识点在出版时是否成立?按照当前(2026年)该领域的研究进展,它是否仍然有效、已有修正、或已被推翻?
> - 如果仍然有效 → ✅ 标注「无重大过时」
> - 如果已被修正/补充 → ❗ 说明具体更新了什么
> - 如果已被推翻或发现错误 → ❌ 明确指出错误并给出当前正确知识
> 评估须引用现代研究、公认结论或最新行业实践
🧒 **小学生例子**:
> 一个生活中孩子能完全理解的例子(买菜找零、分零食、排队、运动比赛、养宠物、上学等场景)
**例子2**:
> 日常生活中或书中已有的第二个例子
**例子3**:
> 第三个例子(可以是书中的核心案例,也可以用扩展类比)
---
### 【知识点2】[名称]
...(同上的3个例子格式)
---
━━━ 三、关键概念链(可选)━━━
展示知识点之间的逻辑连接
━━━ 四、与前几章的关联(可选)━━━
━━━ 五、本章小结 ━━━
- 3-5 个要点
格式要点:
用户:我想学《思考,快与慢》,作者丹尼尔·卡尼曼
你:(搜索该书目录和核心思想后输出结构化概览)
用户:我想了解第3章的内容
你:(输出该章节的详细讲解,包含原案例+小学生案例)
为提高搜索成功率,推荐依次尝试:
"思考,快与慢" 卡尼曼 目录(书名加引号)豆瓣 思考,快与慢、得到 思考,快与慢Thinking Fast and Slow Kahneman table of contents思考快与慢 核心思想 章节目录以下记录在《无穷的开始》学习过程中实际验证的 EPUB 解析技术方案。
EPUB 是一个 ZIP 压缩包,内部包含 HTML 文件、CSS、图片和元数据 XML 文件。可以直接用 Python 的 zipfile 模块读取。
book.epub
├── mimetype # 固定内容 application/epub+zip
├── META-INF/
│ └── container.xml # 入口文件,指向 OPF
└── OEBPS/ (或任意名称)
├── content.opf # 包描述文件:manifest + spine
├── toc.ncx # 目录映射(NCX格式,XML)
├── toc.xhtml # 另一种TOC格式(较新版EPUB)
└── text/
├── part0001.html # 正文内容(HTML格式)
├── part0002.html
└── ...
import zipfile
import xml.etree.ElementTree as ET
# 第1步:打开 EPUB(视为 ZIP)
with zipfile.ZipFile('book.epub', 'r') as z:
# 第2步:读取 container.xml 找到 OPF 路径
container = ET.fromstring(z.read('META-INF/container.xml'))
# 解析出 OPF 文件路径(如 OEBPS/content.opf)
# 第3步:读取 OPF 获取 manifest 和 spine
# manifest 列出所有文件
# spine 给出阅读顺序
# 第4步:读取 toc.ncx 获取 TOC 映射
ncx = ET.fromstring(z.read('OEBPS/toc.ncx'))
# navMap/navPoint 标签,label = 章节标题,content/@src = 内部HTML文件
# 第5步:提取具体章节的 HTML
html_content = z.read('OEBPS/text/part0006.html')
# 第6步:解析 HTML 提取纯文本
# 可以用 BeautifulSoup 或简单正则/html.parser
| 问题 | 解决方案 |
|---|---|
| 章节顺序与文件名无关 | 文件名(part0006.html)不一定是第6章。必须通过 toc.ncx 的 navPoint 顺序确定 |
| 编码问题 | 中文 EPUB 可能使用 UTF-8(常见)或 GBK。先试 decode('utf-8'),捕获异常后回退 decode('gbk') |
| HTML 含大量无意义标记 | 使用 html.parser 或 BeautifulSoup 提取纯文本,过滤 <script>、<style>、导航链接 |
| TOC 可能不完整 | 如果 toc.ncx 条目不足,可回退到 OPF 的 spine 顺序(按阅读顺序排列) |
| 文件读取路径 | EPUB 内路径是正斜杠 /,不是反斜杠 \ |
在《无穷的开始:世界进步的本源》学习过程中:
toc.ncx 建立了完整的章节-HMTL 映射表extract_chapter.py(从 EPUB 提取指定章节的 HTML)→ extract_text.py(从 HTML 提取纯文本)→ 手动整理为结构化笔记