Book Report

Other

根据书名生成详细HTML读书报告和简洁弹药库,包含主题、人物、关系图、获奖、作者及金句,便于自学和交流讲解。

Install

openclaw skills install book-report

book-report skill

用途

输入一个书名(或书名+作者),输出两件套:

  1. HTML 报告reports/<书名>-<日期>.html)— 给你"看完了解这本书"用
  2. 弹药库reports/chat-弹药库-<书名>-v1.md)— 给你"跟人聊能现成调出"用

适用范围

擅长

  • 中文经典/中国现当代文学(《平凡的世界》《活着》《红楼梦》《三体》等)
  • 维基百科 + 百度百科 + 知乎 都有条目的大众读物
  • 茅盾文学奖/鲁迅文学奖/诺贝尔文学奖等获奖作品

不擅长(会降级告知用户)

  • 冷门/学术/外文原版(web 抓不全)
  • 用户传了 PDF 想要"逐字原文"(当前不支持 PDF 解析,仅做 web 兜底)
  • 网络小说/未出版手稿(无结构化数据源)

数据源策略(保守三件套)

用途备注
百度百科主题/情节/人物/获奖必有
维基百科(zh)主题/情节/作者必有
知乎评价/争议/读者金句选有

不抓

  • 豆瓣(反爬严,2024 后不稳)
  • 微信读书评论(要登录态)
  • 起点/晋江/番茄等网络小说站

流程(每本书跑 5-7 步)

  1. 抓源数据lib/fetch.py)— 3 个源并行
  2. 结构化抽取(LLM 处理)— 从源数据中提取 9 个固定字段
  3. 渲染 HTMLlib/render.py)— 套 templates/report.html.j2
  4. 渲染弹药库lib/render.py)— 套 templates/chat-kit.md.j2
  5. 浏览器自检 — 打开 HTML,看 Mermaid 渲染、字号、可读性
  6. 信息可信度扫一遍 — 按本 skill 的"不展示原则"清理不确定信息
  7. 交付 — 告知用户两个文件路径

9 个固定字段(必抽齐)

#字段来源
1book_title书名
2book_summary一句话总结
3theme核心主题 + 三部/章节梗概
4characters主要人物(4-10 个)
5relationships人物关系(Mermaid flowchart)
6awards获奖情况 + 评语要点
7author作者生平 + 创作背景
8other_works作者其他作品(长/中/短/杂文)
9quotes5-10 句金句(必须标注"未原文核对"

弹药库必含 4 块

  1. 3 句开场(反常识/代际/生活 三选一)
  2. 6 个故事(按"画面 > 节奏 > 共情 > 灰度 > 作者 > 销量"排序)
  3. 5 个反问接住("讲什么"/vs 经典书/过时吗/为什么火/作者怎样)
  4. 3 句收尾(记一个人 / 戳一句 / 留尾巴)

「不展示」原则(用户强偏好)

凡是"凭印象写"的细节,没有 100% 把握就

  • 改成模糊表述("几章"/"部分支线"/"经典一版")
  • 或直接删除
  • 绝对不展示具体集数/章数/演员名/排名/销量/未核对的"原话"

例外:维基/百度已确认的事实(生卒年、奖项年份、书名/作者名)保留具体数字。

质量自检清单(每本必走)

□ 9 个字段是否都填了?缺哪几个要在报告里标"未抓到"
□ Mermaid 关系图能否渲染?(必打开看一次)
□ 金句是否全部标"未原文核对"?
□ 是否有"凭印象写的具体数字"?有就改/删
□ 弹药库 4 块是否齐全?
□ 文件路径是否告知用户?

失败模式(必须老实告诉用户)

  • 源数据缺失 → 报告里留 "未抓到" 标签,不编造
  • 关系图超过 25 节点 → 拆成 2 张
  • 抓取超时 → 重试 2 次后放弃,告知用户
  • 维基无条目(如冷门书) → 改用百度 + 知乎 双源 + 提示用户数据稀薄