📚 個人閱讀助理 (Reading Assistant)
管理 epub 電子書圖書館,分章節產生摘要,追蹤閱讀進度,提供閱讀建議。
系統架構
資料存放
本 Skill 使用兩層儲存:
1. 本地檔案系統(主要)
- - 書庫根目錄: INLINECODE0
- 每本書一個子資料夾,內含
manifest.json + chapters/ 目錄 - 閱讀進度檔: INLINECODE3
2. Notion(可選,用於雲端同步)
- - 如果使用者有連接 Notion,可同步書籍資訊與摘要到 Notion 資料庫
- 未連接 Notion 時所有功能仍正常運作
進度追蹤檔 (progress.json) 格式
CODEBLOCK0
功能模組
模組 1:匯入書籍 (Import Book)
觸發:使用者提供 epub 檔案路徑或說「匯入」「import」
步驟:
- 1. 確認 epub 檔案路徑存在
- 安裝必要 Python 套件(如尚未安裝):
pip3 install ebooklib beautifulsoup4 lxml
- 3. 執行處理腳本:
python3 ~/.openclaw/workspace/skills/reading-assistant/scripts/process_epub.py \
"<epub檔案路徑>" \
"~/.openclaw/workspace/reading-library/<book_id>"
腳本會自動產生
manifest.json 和
chapters/ch_000.txt ~ ch_NNN.txt
- 4. 讀取
manifest.json,將書籍資訊寫入 INLINECODE7 - 回報匯入結果
回報格式:
CODEBLOCK3
模組 2:閱讀清單 (Reading List)
觸發:「書單」「閱讀清單」「我有哪些書」「reading list」
步驟:
- 1. 讀取 INLINECODE8
- 列出所有書籍的進度
回報格式:
CODEBLOCK4
模組 3:閱讀章節摘要 (Chapter Summary)
觸發:「讀第 N 章」「摘要」「下一章」「繼續」「summary」
步驟:
- 1. 確定目標書籍和章節序號
- 「下一章」或「繼續」→ 從 progress.json 找到 current_chapter + 1
- 「讀第 5 章」→ 指定章節
- 若只有一本在讀中的書,自動選擇;否則詢問
- 2. 讀取對應的章節文字檔:
cat ~/.openclaw/workspace/reading-library/<book_id>/chapters/ch_<NNN>.txt
- 3. 將章節文字交給 LLM(即你自己),以下方結構產生摘要:
摘要結構(嚴格遵循):
CODEBLOCK6
- 4. 更新 progress.json:
-
current_chapter = 本次閱讀的章節序號
-
last_read_date = 今天日期
-
status = "reading"(如果讀完最後一章則改為 "completed")
- 將摘要存入
summaries 物件
- 5. 回報進度:
CODEBLOCK7
模組 4:進度查詢 (Progress Check)
觸發:「讀到哪」「進度」「上次讀到」「progress」
步驟:
- 1. 讀取 progress.json
- 找出 status = "reading" 的書籍
- 顯示最近閱讀紀錄
模組 5:定時推送(搭配 Cron)
本 Skill 可搭配 OpenClaw 的 cron job 實現每日自動閱讀提醒。
在 ~/.openclaw/cron/jobs.json 中加入:
CODEBLOCK8
這會在每天早上 8 點自動觸發,讀取下一章並推送摘要到你的通訊平台(WhatsApp / Telegram / LINE 等)。
Notion 同步(可選)
如果使用者要求將資料同步到 Notion,建立以下資料庫:
閱讀圖書館
CODEBLOCK9
每次更新 progress.json 時,同步更新 Notion 記錄。
注意事項
- - 章節辨識:腳本以 epub 內的 HTML document 為單位切分,不一定完全對應原書章節。匯入後可查看 manifest.json 手動調整標題
- DRM 限制:受 DRM 保護的 epub 無法解析,需先移除 DRM
- 長章節:超過 100,000 字的章節,摘要時會截取前 50,000 字處理
- 版權:本工具用於個人閱讀管理,使用者應確保擁有合法取得的電子書
Version: 1.0.0
Last Updated: 2026-03-23
📚 个人阅读助理 (Reading Assistant)
管理 epub 电子书图书馆,分章节生成摘要,追踪阅读进度,提供阅读建议。
系统架构
数据存储
本 Skill 使用两层存储:
1. 本地文件系统(主要)
- - 书库根目录:~/.openclaw/workspace/reading-library/
- 每本书一个子文件夹,内含 manifest.json + chapters/ 目录
- 阅读进度文件:~/.openclaw/workspace/reading-library/progress.json
2. Notion(可选,用于云端同步)
- - 如果用户已连接 Notion,可将书籍信息与摘要同步到 Notion 数据库
- 未连接 Notion 时所有功能仍正常运行
进度追踪文件 (progress.json) 格式
json
{
books: {
: {
title: 书名,
author: 作者,
total_chapters: 40,
current_chapter: 12,
status: reading,
lastreaddate: 2026-03-23,
added_date: 2026-03-20,
rating: null,
summaries: {
0: { date: 2026-03-20, summary: ... },
1: { date: 2026-03-21, summary: ... }
}
}
}
}
功能模块
模块 1:导入书籍 (Import Book)
触发:用户提供 epub 文件路径或说「导入」「import」
步骤:
- 1. 确认 epub 文件路径存在
- 安装必要 Python 套件(如尚未安装):
bash
pip3 install ebooklib beautifulsoup4 lxml
- 3. 执行处理脚本:
bash
python3 ~/.openclaw/workspace/skills/reading-assistant/scripts/process_epub.py \
\
~/.openclaw/workspace/reading-library/
脚本会自动生成 manifest.json 和 chapters/ch000.txt ~ chNNN.txt
- 4. 读取 manifest.json,将书籍信息写入 progress.json
- 回报导入结果
回报格式:
✅ 导入成功!
📕 书名:世界尽头与冷酷仙境
👤 作者:村上春树
📄 共 40 章(约 180,000 字)
⏱️ 预估总阅读时间:6 小时
📊 状态:未开始
输入 /reading-assistant 或说「我的书单」查看图书馆。
模块 2:阅读清单 (Reading List)
触发:「书单」「阅读清单」「我有哪些书」「reading list」
步骤:
- 1. 读取 ~/.openclaw/workspace/reading-library/progress.json
- 列出所有书籍的进度
回报格式:
📚 你的阅读图书馆
| # | 书名 | 作者 | 进度 | 状态 |
|---|
| 1 | 世界尽头与冷酷仙境 | 村上春树 | 12/40 (30%) | 📖 阅读中 |
| 2 |
挪威的森林 | 村上春树 | 0/16 | 📋 未开始 |
| 3 | 人间失格 | 太宰治 | 4/4 (100%) | ✅ 已完成 |
💡 建议:你上次读「世界尽头与冷酷仙境」到第 12 章,要继续吗?
模块 3:阅读章节摘要 (Chapter Summary)
触发:「读第 N 章」「摘要」「下一章」「继续」「summary」
步骤:
- 1. 确定目标书籍和章节序号
- 「下一章」或「继续」→ 从 progress.json 找到 current_chapter + 1
- 「读第 5 章」→ 指定章节
- 若只有一本在读的书,自动选择;否则询问
- 2. 读取对应的章节文字文件:
bash
cat ~/.openclaw/workspace/reading-library/id>/chapters/ch.txt
- 3. 将章节文字交给 LLM(即你自己),以下方结构生成摘要:
摘要结构(严格遵循):
📖 《书名》— 第 N 章:章节标题
【章节摘要】
150-250 字概述本章主要内容和情节发展。
【关键人物】
• 角色名 — 本章中的行为与变化
【金句节录】
- 1. 「原文句子」
- 「原文句子」
(挑选 2-3 句值得记住的段落)
【延伸思考】
提出 1-2 个值得反思的问题。
【与前章链接】
简述本章与前面章节的关联。
- 4. 更新 progress.json:
- current_chapter = 本次阅读的章节序号
- lastreaddate = 今天日期
- status = reading(如果读完最后一章则改为 completed)
- 将摘要存入 summaries 对象
- 5. 回报进度:
📊 进度更新:13/40 章 (32.5%) | ⏱️ 本章约 8 分钟
💾 摘要已保存
模块 4:进度查询 (Progress Check)
触发:「读到哪」「进度」「上次读到」「progress」
步骤:
- 1. 读取 progress.json
- 找出 status = reading 的书籍
- 显示最近阅读记录
模块 5:定时推送(搭配 Cron)
本 Skill 可搭配 OpenClaw 的 cron job 实现每日自动阅读提醒。
在 ~/.openclaw/cron/jobs.json 中加入:
json
{
reading-reminder: {
schedule: 0 8 *,
prompt: 查看我的阅读进度,如果有正在读的书,帮我摘要下一章。
}
}
这会在每天早上 8 点自动触发,读取下一章并推送摘要到你的通讯平台(WhatsApp / Telegram / LINE 等)。
Notion 同步(可选)
如果用户要求将数据同步到 Notion,建立以下数据库:
阅读图书馆
sql
CREATE TABLE (
书名 TITLE,
作者 RICH_TEXT,
语言 SELECT(中文:blue, 英文:green, 日文:red),
总章数 NUMBER,
目前章节 NUMBER,
阅读状态 SELECT(📋 未开始:gray, 📖 阅读中:blue, ✅ 已完成:green),
Book ID RICH_TEXT,
加入日期 DATE
)
每次更新 progress.json 时,同步更新 Notion 记录。
注意事项
- - 章节识别:脚本以 epub 内的 HTML document 为单位切分,不一定完全对应原书章节。导入后可查看 manifest.json 手动调整标题
- DRM 限制:受 DRM 保护的 epub 无法解析,需先移除 DRM
- 长章节:超过 100,000 字的章节,摘要时会截取前 50,000 字处理
- 版权:本工具用于个人阅读管理,用户应确保拥有合法取得的电子书
Version: 1.0.0
Last Updated: 2026-03-23