🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Four Dimensional Deep Reading

by @zhangboheng

Simultaneously analyze books using 4 personas with multi-dimensional methods, producing structured insights on first principles, comparisons, and diverse per...

Versionv1.7.5
Downloads632
Installs1
Stars1
TERMINAL
clawhub install four-dimensional-deep-reading

📖 About This Skill


name: four-dimensional-deep-reading version: 1.7.5 author: 张权 (Zhang Quan) author_website: https://www.luckydesigner.space author_brand: Luckydesigner(行运设计师) author_pen_name: 伯衡君 description: Four-Dimensional Deep Reading skill. Triggers when: (1) User provides a book title or file for analysis (2) Multi-perspective breakdown of content is needed (3) First principles, structured notes, counterarguments, and random identity perspectives are desired. Summons 4 virtual personas to read simultaneously, then synthesizes and saves to reports folder. Supports multi-language output (English/Chinese/Japanese/Korean/etc.). Version 1.7.5 - Added book introduction in standard mode + output path quality check. Version 1.7.4 - Added auto book review search + detailed book introduction. Version 1.7.3 - Added Speed Reading Mode.

Four-Dimensional Deep Reading

🎓 User Onboarding

When a user uses this skill for the first time, provide an interactive onboarding guide in their language. The onboarding should explain:

1. What this skill does - Multi-perspective deep analysis 2. The 4 personas - Their roles and what they contribute 3. How to use the report - Understanding the output structure 4. Tips for best results - Getting the most value

Language-Specific Onboarding Templates

#### English (en)

🎓 Welcome to Four-Dimensional Deep Reading!

This skill summons 4 virtual personas to analyze your content from different angles simultaneously:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 Axiom Analyst → First Principles Thinking │ │ Strips away surface details to find fundamental truths │ │ │ │ 📝 LMS Architect → Structured Notes │ │ Organizes insights into Logic-Method-Summary format │ │ │ │ ⚡ Black Swan Hunter → Counterarguments & Edge Cases │ │ Finds what could go wrong and challenges assumptions │ │ │ │ 🎲 Random Variable X → Unexpected Perspectives │ │ Brings fresh insights from random identity angles │ └─────────────────────────────────────────────────────────────┘

📊 What you'll get: • A comprehensive analysis report (saved to workspace/reports/) • Multiple perspectives on the same content • Actionable insights and structured notes • Critical thinking challenges

⚡ Speed Reading Mode: • Get core insights in just 30 seconds • Trigger: Say "speed read [book title]" or "quick read [book title]" • Output: Core premises + One-sentence summary + Key questions • Best for: Quick book screening, time-constrained insights

💡 Tips for best results: • Provide specific book titles or upload files for deeper analysis • Ask follow-up questions about specific sections • Use the LMS structure to create your own notes

🔄 Analysis Mode Comparison: | Mode | Time | Output | Best For | |------|------|--------|----------| | Speed Mode | ~30s | Core premises + Summary + Questions | Quick screening | | Standard Mode | ~2min | Full 4-persona analysis | Deep understanding | | H-V Mode | ~5min | 4-persona + H-V analysis | Comprehensive research |

Ready to start? Just provide a book title or file!

#### 中文 (zh)

🎓 欢迎使用四维深度阅读!

本技能召唤 4 个虚拟角色从不同角度同时分析你的内容:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 第一性原理师 → 公理化思维分析 │ │ 剥离表象,追溯底层假设和核心公理 │ │ │ │ 📝 结构化笔记官 → LMS 结构输出 │ │ 将洞察组织为 Logic-Method-Summary 格式 │ │ │ │ ⚡ 黑天鹅猎手 → 反驳论证与边界检测 │ │ 寻找失效点和边缘情况,挑战假设 │ │ │ │ 🎲 随机变量 X → 意外视角洞察 │ │ 从随机身份角度带来全新思考 │ └─────────────────────────────────────────────────────────────┘

📊 你将获得: • 一份综合分析报告(自动保存到 workspace/reports/) • 同一内容的多视角解读 • 可执行的洞察和结构化笔记 • 批判性思维挑战

⚡ 速读模式(Speed Reading Mode): • 只需30秒,快速获取核心洞察 • 触发方式:说「速读【书名】」或「快速阅读【书名】」 • 输出:核心前提 + 一句话总结 + 关键问题 • 适合:快速筛选书籍、时间紧迫时获取要点

💡 使用建议: • 提供具体书名或上传文件可获得更深入的分析 • 对特定部分提出追问 • 使用 LMS 结构创建自己的笔记

🔄 分析模式对比: | 模式 | 时间 | 输出内容 | 适用场景 | |------|------|----------|----------| | 速读模式 | ~30秒 | 核心前提+一句话总结+关键问题 | 快速筛选 | | 标准模式 | ~2分钟 | 4角色完整分析 | 深度理解 | | 横纵模式 | ~5分钟 | 4角色+横纵分析 | 全面研究 |

准备好了吗?提供一本书名或文件即可开始!

#### 日本語 (ja)

🎓 四次元深読みへようこそ!

このスキルは4人の仮想ペルソナを召喚し、異なる角度から同時にコンテンツを分析します:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 公理分析者 → 第一原理思考 │ │ 表面を取り除き、根本的な真実を見つける │ │ │ │ 📝 LMS設計者 → 構造化ノート │ │ 洞察をLogic-Method-Summary形式で整理 │ │ │ │ ⚡ ブラックスワン探求者 → 反論とエッジケース │ │ 何がうまくいかないかを見つけ、仮定に挑戦 │ │ │ │ 🎲 ランダム変数X → 予期しない視点 │ │ ランダムなアイデンティティから新鮮な洞察をもたらす │ └─────────────────────────────────────────────────────────────┘

📊 得られるもの: • 包括的な分析レポート(workspace/reports/に保存) • 同じコンテンツの複数の視点 • 実行可能な洞察と構造化されたノート • 批判的思考の課題

💡 最高の結果を得るためのヒント: • より深い分析のために具体的な書名を提供するか、ファイルをアップロード • 特定のセクションについてフォローアップの質問をする • LMS構造を使用して自分のノートを作成

準備はできましたか?書名またはファイルを提供してください!

#### 한국어 (ko)

🎓 4차원 깊은 읽기에 오신 것을 환영합니다!

이 스킬은 4명의 가상 페르소나를 소환하여 다른 각도에서 동시에 콘텐츠를 분석합니다:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 공리 분석가 → 제1원칙 사고 │ │ 표면을 벗겨내고 근본적인 진실을 찾습니다 │ │ │ │ 📝 LMS 설계자 → 구조화된 노트 │ │ 통찰력을 Logic-Method-Summary 형식으로 정리 │ │ │ │ ⚡ 블랙 스완 사냥꾼 → 반론과 엣지 케이스 │ │ 무엇이 잘못될 수 있는지 찾고 가정에 도전 │ │ │ │ 🎲 무작위 변수 X → 예상치 못한 관점 │ │ 무작위 정체성에서 새로운 통찰을 가져옵니다 │ └─────────────────────────────────────────────────────────────┘

📊 얻을 수 있는 것: • 포괄적인 분석 보고서 (workspace/reports/에 저장) • 동일한 콘텐츠에 대한 여러 관점 • 실행 가능한 통찰력과 구조화된 노트 • 비판적 사고 과제

💡 최상의 결과를 위한 팁: • 더 깊은 분석을 위해 구체적인 책 제목을 제공하거나 파일을 업로드 • 특정 섹션에 대한 후속 질문 • LMS 구조를 사용하여 자신만의 노트 만들기

준비되셨나요? 책 제목이나 파일을 제공하세요!

#### Français (fr)

🎓 Bienvenue dans la Lecture Profonde Quadridimensionnelle!

Cette compétence invoque 4 personas virtuels pour analyser votre contenu sous différents angles simultanément:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 Analyste d'Axiomes → Pensée des Premiers Principes │ │ Élimine les détails de surface pour trouver les vérités │ │ │ │ 📝 Architecte LMS → Notes Structurées │ │ Organise les insights en format Logic-Method-Summary │ │ │ │ ⚡ Chasseur de Cygne → Contre-arguments et Cas Limites │ │ Trouve ce qui pourrait mal tourner et défie les hypothèses│ │ │ │ 🎲 Variable Aléatoire X → Perspectives Inattendues │ │ Apporte des insights frais d'angles identitaires aléatoires│ └─────────────────────────────────────────────────────────────┘

📊 Ce que vous obtiendrez: • Un rapport d'analyse complet (sauvegardé dans workspace/reports/) • Plusieurs perspectives sur le même contenu • Des insights actionnables et des notes structurées • Des défis de pensée critique

💡 Conseils pour de meilleurs résultats: • Fournissez des titres de livres spécifiques ou téléchargez des fichiers • Posez des questions de suivi sur des sections spécifiques • Utilisez la structure LMS pour créer vos propres notes

Prêt à commencer? Fournissez simplement un titre de livre ou un fichier!

#### Deutsch (de)

🎓 Willkommen beim Vierdimensionalen Tiefenlesen!

Diese Fähigkeit beschwört 4 virtuelle Personas, um Ihren Inhalt gleichzeitig aus verschiedenen Blickwinkeln zu analysieren:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 Axiom-Analytiker → First-Principles-Denken │ │ Entfernt Oberflächliches, um fundamentale Wahrheiten zu finden│ │ │ │ 📝 LMS-Architekt → Strukturierte Notizen │ │ Organisiert Erkenntnisse im Logic-Method-Summary-Format │ │ │ │ ⚡ Schwarzer-Schwan-Jäger → Gegenargumente & Randfälle │ │ Findet was schiefgehen könnte und stellt Annahmen in Frage│ │ │ │ 🎲 Zufallsvariable X → Unerwartete Perspektiven │ │ Bringt frische Einblicke aus zufälligen Identitätswinkeln│ └─────────────────────────────────────────────────────────────┘

📊 Was Sie erhalten: • Einen umfassenden Analysebericht (gespeichert in workspace/reports/) • Mehrere Perspektiven auf denselben Inhalt • Umsetzbare Erkenntnisse und strukturierte Notizen • Kritisches Denken Herausforderungen

💡 Tipps für beste Ergebnisse: • Geben Sie spezifische Buchtitel an oder laden Sie Dateien hoch • Stellen Sie Folgefragen zu bestimmten Abschnitten • Verwenden Sie die LMS-Struktur für eigene Notizen

Bereit anzufangen? Geben Sie einfach einen Buchtitel oder eine Datei an!

#### Español (es)

🎓 ¡Bienvenido a la Lectura Profunda Cuatridimensional!

Esta habilidad invoca 4 personas virtuales para analizar tu contenido desde diferentes ángulos simultáneamente:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 Analista de Axiomas → Pensamiento de Primeros Principios│ │ Elimina detalles superficiales para encontrar verdades │ │ │ │ 📝 Arquitecto LMS → Notas Estructuradas │ │ Organiza ideas en formato Logic-Method-Summary │ │ │ │ ⚡ Cazador de Cisne → Contraargumentos y Casos Límite │ │ Encuentra qué podría salir mal y desafía suposiciones │ │ │ │ 🎲 Variable Aleatoria X → Perspectivas Inesperadas │ │ Trae insights frescos desde ángulos de identidad aleatorios│ └─────────────────────────────────────────────────────────────┘

📊 Lo que obtendrás: • Un informe de análisis completo (guardado en workspace/reports/) • Múltiples perspectivas sobre el mismo contenido • Insights accionables y notas estructuradas • Desafíos de pensamiento crítico

💡 Consejos para mejores resultados: • Proporciona títulos de libros específicos o sube archivos • Haz preguntas de seguimiento sobre secciones específicas • Usa la estructura LMS para crear tus propias notas

¿Listo para empezar? ¡Solo proporciona un título de libro o archivo!

#### Português (pt)

🎓 Bem-vindo à Leitura Profunda Quadridimensional!

Esta habilidade invoca 4 personas virtuais para analisar seu conteúdo de diferentes ângulos simultaneamente:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 Analista de Axiomas → Pensamento de Primeiros Princípios│ │ Remove detalhes superficiais para encontrar verdades │ │ │ │ 📝 Arquiteto LMS → Notas Estruturadas │ │ Organiza insights em formato Logic-Method-Summary │ │ │ │ ⚡ Caçador de Cisne → Contra-argumentos e Casos Limite │ │ Encontra o que pode dar errado e desafia suposições │ │ │ │ 🎲 Variável Aleatória X → Perspectivas Inesperadas │ │ Traz insights frescos de ângulos de identidade aleatórios│ └─────────────────────────────────────────────────────────────┘

📊 O que você obterá: • Um relatório de análise completo (salvo em workspace/reports/) • Múltiplas perspectivas sobre o mesmo conteúdo • Insights acionáveis e notas estruturadas • Desafios de pensamento crítico

💡 Dicas para melhores resultados: • Forneça títulos de livros específicos ou carregue arquivos • Faça perguntas de acompanhamento sobre seções específicas • Use a estrutura LMS para criar suas próprias notas

Pronto para começar? Basta fornecer um título de livro ou arquivo!

#### Русский (ru)

🎓 Добро пожаловать в Четырёхмерное Глубокое Чтение!

Этот навык призывает 4 виртуальных персоны для анализа вашего контента с разных углов одновременно:

┌─────────────────────────────────────────────────────────────┐ │ 🔬 Аналитик Аксиом → Мышление Первых Принципов │ │ Убирает поверхностные детали, чтобы найти истину │ │ │ │ 📝 Архитектор LMS → Структурированные Заметки │ │ Организует идеи в формате Logic-Method-Summary │ │ │ │ ⚡ Охотник за Чёрным → Контраргументы и Краевые Случаи │ │ Находит что может пойти не так и оспаривает предположения│ │ │ │ 🎲 Случайная Переменная X → Неожиданные Перспективы │ │ Приносит свежие идеи со случайных углов идентичности │ └─────────────────────────────────────────────────────────────┘

📊 Что вы получите: • Комплексный аналитический отчёт (сохранён в workspace/reports/) • Множество перспектив на один и тот же контент • Практические идеи и структурированные заметки • Задачи критического мышления

💡 Советы для лучших результатов: • Предоставьте конкретные названия книг или загрузите файлы • Задавайте уточняющие вопросы по конкретным разделам • Используйте структуру LMS для создания собственных заметок

Готовы начать? Просто предоставьте название книги или файл!

When to Show Onboarding

Show the onboarding guide when: 1. First-time user - User has never used the skill before 2. Explicit request - User asks "how to use this skill" or "help me understand" 3. After error - User seems confused about the output format

Implementation

def should_show_onboarding(user_id: str, skill_usage_count: dict) -> bool:
    """Determine if onboarding should be shown"""
    return skill_usage_count.get(user_id, 0) < 1

def get_onboarding_message(language: str) -> str: """Get language-specific onboarding message""" ONBOARDING_TEMPLATES = { "en": ENGLISH_ONBOARDING, "zh": CHINESE_ONBOARDING, "ja": JAPANESE_ONBOARDING, "ko": KOREAN_ONBOARDING, "fr": FRENCH_ONBOARDING, "de": GERMAN_ONBOARDING, "es": SPANISH_ONBOARDING, "pt": PORTUGUESE_ONBOARDING, "ru": RUSSIAN_ONBOARDING, } return ONBOARDING_TEMPLATES.get(language, ONBOARDING_TEMPLATES["en"])


Core Mechanism

When a user provides a book title or file, summon 4 virtual personas to read and analyze in parallel.

⚡ Book Review Search (v1.7.4): Auto-search book reviews from multiple sources to enrich analysis with reader perspectives, expert evaluations, and critical reception.

📖 Detailed Book Introduction (v1.7.4): Auto-fetch comprehensive book metadata including: author background, publication history, chapter structure, core themes, and reader demographics.

⚡ Speed Reading Mode (v1.7.3): Quick 30-second analysis with only Axiom Analyst + One-sentence summary. Triggered by "速读【书名】" or "speed read [book title]".

Speed Mode Output Format:

## ⚡ 速读报告:[书名]

核心前提

[3-5条不可再分解的原子命题]

一句话总结

> [核心观点,不超过30字]

关键问题

1. [问题1] 2. [问题2] 3. [问题3]


⏱️ 分析时间:~30秒

Speed Mode Trigger Keywords:

  • 中文:速读、快速阅读、简读、概览
  • English: speed read, quick read, brief overview, summarize
  • 日本語: 速読、クイックリード
  • 한국어: 속독, 퀵 리드
  • ⚡ Parallel Processing (v1.6.0): All 4 personas execute simultaneously using sessions_spawn, reducing total analysis time by ~75%.

    Implementation: See scripts/parallel_analysis.py for the parallel execution module.

    Horizontal-Vertical Analysis Integration: Beyond the traditional 4 personas, adds two analytical dimensions—"Diachronic Timeline" and "Synchronic Competitor Benchmarking"—forming a "4 Personas × 2 H-V Axes" matrix reading framework.

    Auto-Save: After analysis completes, automatically saves the report to workspace/reports/.


    📥 Book Acquisition & Preprocessing Module

    🚀 Enhanced Data Fetching (v1.5.0)

    核心优化

  • 多源备份:豆瓣 → Goodreads → Wikipedia → Google Books,自动切换
  • 本地缓存:7天有效期,避免重复请求
  • 错误重试:指数退避,最多重试3次
  • 智能合并:多源数据按优先级合并
  • 实现文件reference/book_fetcher_enhanced.py

    使用方式

    from book_fetcher_enhanced import fetch_book_info

    获取书籍信息(自动多源备份)

    info = fetch_book_info("原子习惯") info = fetch_book_info("Atomic Habits", author="James Clear")

    清理过期缓存

    from book_fetcher_enhanced import clear_cache cleared = clear_cache()

    查看缓存统计

    from book_fetcher_enhanced import get_cache_stats stats = get_cache_stats()

    缓存位置/root/.openclaw/workspace/.cache/book_fetcher/


    📚 Auto Book Review Search (v1.7.4新增)

    功能说明:自动从多个平台搜索书籍评论,丰富分析维度

    数据来源

    | 平台 | 语言 | 评论类型 | 获取难度 | |------|------|----------|----------| | 豆瓣评论 | 中文 | 用户长评、书评 | ⭐⭐ | | 知乎讨论 | 中文 | 专业问答、评价 | ⭐⭐⭐ | | Goodreads Reviews | 英文 | 用户评论、专业书评 | ⭐⭐ | | Amazon Reviews | 英文 | 用户评分、VP评论 | ⭐⭐ | | Booklog | 日文 | 用户书评 | ⭐⭐⭐ | | Yes24 | 韩文 | 用户评论 | ⭐⭐⭐ |

    搜索关键词策略

    # 中文书籍
    [书名] 书评
    [书名] 读后感
    [书名] 评价
    [作者] 书评

    英文书籍

    [book name] review [book name] review analysis [book name] criticism [author] book review

    日文书籍

    [書名] 書評 [著者] レビュー

    评论分析维度

  • 正面评价高频词
  • 负面评价高频词
  • 争议性观点
  • 专家 vs 普通读者分歧
  • 与同类书比较评价
  • 输出格式

    ## 📚 书评综述

    整体评价倾向

  • 正面:[X]%
  • 中性:[X]%
  • 负面:[X]%
  • 核心正面观点

    1. [高频正面观点1] 2. [高频正面观点2]

    核心负面观点

    1. [高频负面观点1] 2. [高频负面观点2]

    争议与分歧

    [专家与读者观点分歧]

    精选评论引用

    > "[精选评论片段]" - 来源平台


    📖 Detailed Book Introduction (v1.7.4新增)

    功能说明:获取书籍的详细介绍,包括作者背景、出版信息、章节结构等

    自动获取信息

    | 信息类型 | 来源 | 说明 | |----------|------|------| | 作者简介 | 豆瓣/Goodreads/维基 | 教育背景、代表作品、获奖情况 | | 出版历程 | 豆瓣/Amazon | 初版时间、版本迭代、发行量 | | 章节结构 | 豆瓣TOC/京东/Amazon | 完整目录、章节数量 | | 核心主题 | 书籍简介/书评提炼 | 一句话介绍、适合人群 | | 媒体评价 | 豆瓣/Amazon/媒体网站 | 名人推荐、媒体评论 | | 获奖情况 | 搜索结果 | 书籍获奖、榜单排名 |

    获取流程

    1. 语言检测 → 选择数据源
    2. 主数据源获取 → 豆瓣/Goodreads
    3. 补充数据源获取 → 维基/媒体
    4. 信息聚合 → 结构化输出
    5. 质量校验 → 缺失字段标记
    

    输出格式

    ## 📖 书籍详细介绍

    基本信息

    | 字段 | 内容 | |------|------| | 书名 | [书名] | | 作者 | [作者] | | 译者 | [译者,如适用] | | 出版社 | [出版社] | | 出版年 | [年份] | | 页数 | [页数] | | ISBN | [ISBN] |

    作者简介

    [作者背景介绍]

    书籍简介

    [一句话介绍] [详细简介]

    章节结构

    | 章节 | 标题 | 核心内容 | |------|------|----------| | 第1章 | [标题] | [内容] | | ... | ... | ... |

    适合人群

  • [人群1]
  • [人群2]
  • 获奖与荣誉

  • [奖项1]
  • [奖项2]

  • Method A: By Book Title (Web Search)

    When user provides only a book title, auto-retrieve follows this flow:

    Step 1: Language Detection & Source Selection
      → Detect book title language (Chinese / English / Japanese / Korean / etc.)
      → Route to appropriate data source based on language

    Step 2: Multi-source metadata search (Language-Specific)

    【Chinese Books】 → Douban (豆瓣) → Rating, summary, TOC, author info, reviews → Dangdang (当当) → Price, ranking, reader demographics → Zhihu (知乎) → Discussion threads, expert opinions → Baidu Baike → Author biography, creation background

    【English Books】 → Goodreads → Rating, reviews, reader demographics, similar books → Amazon Books → Rating, bestseller ranking, editorial reviews → Google Books → Preview chapters, metadata, ISBN → Wikipedia → Creation background, version history → LibraryThing → Tags, collections, work information

    【Japanese Books】 → Amazon JP → Rating, reviews → Booklog (ブクログ) → User reviews, ratings → Goodreads (fallback) → International reviews

    【Korean Books】 → Yes24 → Rating, reviews, bestseller status → Aladin → Reader reviews, ratings → Goodreads (fallback) → International reviews

    【Other Languages】 → Goodreads (primary) → International book database → Google Books → Metadata and preview → Wikipedia (lang-specific) → Background information

    Step 3: Content aggregation → Merge sources into structured JSON → Extract: title, author, ISBN, publication year, chapter list, summary, ratings

    Implementation Tools:

  • web_tool() for all book platform pages
  • search_tool for resource links
  • Output as structured JSON for persona analysis

  • 🌐 Language-Specific Retrieve Functions

    #### Chinese Books (豆瓣/Douban)

    def retrieve_douban_book_info(book_name):
        """Retrieve Chinese book info from Douban"""
        # Use web_tool tool to retrieve book information
        # Use web_tool tool to retrieve book information
        return book_info
        
        return {
            "title": extract_title(content),
            "author": extract_author(content),
            "rating": extract_rating(content),        # 0-10 scale
            "rating_count": extract_rating_count(content),
            "summary": extract_summary(content),
            "chapters": extract_toc(content),
            "publisher": extract_publisher(content),
            "pub_date": extract_pub_date(content),
            "isbn": extract_isbn(content),
            "tags": extract_tags(content),
            "source": "douban"
        }
    

    #### English Books (Goodreads)

    def retrieve_goodreads_book_info(book_name, author=None):
        """Retrieve English book info from Goodreads"""
        # Use web_tool tool to retrieve book information
        # Goodreads search query combines book name and author
        return book_info
        
        return {
            "title": extract_title(content),
            "author": extract_author(content),
            "rating": extract_rating(content),        # 0-5 scale
            "rating_count": extract_rating_count(content),
            "summary": extract_description(content),
            "genres": extract_genres(content),
            "pages": extract_num_pages(content),
            "isbn": extract_isbn(content),
            "similar_books": extract_similar_books(content),  # Goodreads feature
            "reviews": extract_top_reviews(content),
            "source": "goodreads"
        }
    

    #### English Books (Amazon)

    def retrieve_amazon_book_info(book_name):
        """Retrieve English book info from Amazon Books"""
        # Use web_tool tool to retrieve book information
        # Amazon Books search endpoint
        return book_info
        
        return {
            "title": extract_title(content),
            "author": extract_author(content),
            "rating": extract_rating(content),        # 0-5 scale
            "rating_count": extract_rating_count(content),
            "price": extract_price(content),
            "bestseller_rank": extract_bestseller_rank(content),
            "editorial_review": extract_editorial_review(content),
            "source": "amazon"
        }
    

    #### Japanese Books (Booklog)

    def retrieve_booklog_info(book_name):
        """Retrieve Japanese book info from Booklog"""
        # Use web_tool tool to retrieve book information
        # Booklog (ブクログ) Japanese book reviews
        return book_info
        
        return {
            "title": extract_title(content),
            "author": extract_author(content),
            "rating": extract_rating(content),
            "reviews": extract_reviews(content),
            "source": "booklog"
        }
    

    #### Korean Books (Yes24)

    def retrieve_yes24_info(book_name):
        """Retrieve Korean book info from Yes24"""
        # Use web_tool tool to retrieve book information
        # Yes24 Korean book database
        return book_info
        
        return {
            "title": extract_title(content),
            "author": extract_author(content),
            "rating": extract_rating(content),
            "price": extract_price(content),
            "source": "yes24"
        }
    


    🔄 Unified Book Info Retrieveer

    def retrieve_book_info(book_name, author=None, language=None):
        """
        Unified entry: auto-detect language and retrieve from appropriate sources
        
        Priority by language:
        - Chinese: Douban → Baidu Baike → Zhihu → Wikipedia ZH
        - English: Goodreads → Google Books → Wikipedia EN → Amazon
        - Japanese: Booklog → Amazon JP → Goodreads
        - Korean: Yes24 → Aladin → Goodreads
        - Other: Goodreads → Wikipedia EN → Google Books
        
        Enhanced Features (v1.5.0):
        - Multi-source backup with automatic failover
        - Local cache with 7-day expiration
        - Retry with exponential backoff (max 3 retries)
        - Smart data merging from multiple sources
        """
        # Auto-detect language if not provided
        if not language:
            language = detect_language(book_name)
        
        # Use enhanced fetcher with cache and retry
        from book_fetcher_enhanced import fetch_book_info
        return fetch_book_info(book_name, author)
    

    📊 Data Source Configuration

    # 数据源优先级配置
    SOURCE_PRIORITY = {
        "zh": ["douban", "baidu_baike", "zhihu", "wikipedia_zh"],
        "en": ["goodreads", "google_books", "wikipedia_en", "amazon"],
        "ja": ["booklog", "amazon_jp", "goodreads"],
        "ko": ["yes24", "aladin", "goodreads"],
        "default": ["goodreads", "wikipedia_en", "google_books"]
    }

    字段优先级(哪个来源的数据更可信)

    FIELD_PRIORITY = { "rating": ["douban", "goodreads", "amazon"], "summary": ["douban", "goodreads", "wikipedia"], "reviews": ["douban", "goodreads", "amazon"], }

    重试配置

    RETRY_CONFIG = { "max_retries": 3, "base_delay": 1.0, # 秒 "max_delay": 10.0, # 秒 }

    缓存配置

    CACHE_CONFIG = { "cache_dir": "/root/.openclaw/workspace/.cache/book_fetcher", "expire_days": 7, }

    ⚠️ Error Handling Strategy

    ┌─────────────────────────────────────────────────────┐
    │              数据获取错误处理流程                    │
    ├─────────────────────────────────────────────────────┤
    │                                                     │
    │  1. 尝试数据源 A                                    │
    │     ├─ 成功 → 返回数据                              │
    │     └─ 失败 → 记录错误,进入步骤2                   │
    │                                                     │
    │  2. 检查本地缓存                                    │
    │     ├─ 有缓存且未过期 → 返回缓存                    │
    │     └─ 无缓存或已过期 → 进入步骤3                   │
    │                                                     │
    │  3. 尝试数据源 B(带重试)                          │
    │     ├─ 第1次失败 → 等待1秒后重试                    │
    │     ├─ 第2次失败 → 等待2秒后重试                    │
    │     ├─ 第3次失败 → 等待4秒后重试                    │
    │     └─ 全部失败 → 进入步骤4                         │
    │                                                     │
    │  4. 尝试数据源 C...                                 │
    │     └─ 依次尝试所有数据源                           │
    │                                                     │
    │  5. 全部失败                                        │
    │     └─ 返回部分数据 + 错误信息                      │
    │                                                     │
    └─────────────────────────────────────────────────────┘
    

    def detect_language(text): """Detect text language using character patterns""" # Chinese: CJK Unified Ideographs if any('\u4e00' <= c <= '\u9fff' for c in text): return 'zh' # Japanese: Hiragana or Katakana if any('\u3040' <= c <= '\u309f' or '\u30a0' <= c <= '\u30ff' for c in text): return 'ja' # Korean: Hangul if any('\uac00' <= c <= '\ud7af' for c in text): return 'ko' # Default to English return 'en'

    def retrieve_english_book_info(book_name, author=None): """Retrieve English book info from multiple sources""" result = {} # Primary: Goodreads try: result['goodreads'] = retrieve_goodreads_book_info(book_name, author) except Exception as e: print(f"Goodreads retrieve failed: {e}") # Secondary: Amazon try: result['amazon'] = retrieve_amazon_book_info(book_name) except Exception as e: print(f"Amazon retrieve failed: {e}") # Tertiary: Google Books try: result['google_books'] = retrieve_google_books_info(book_name, author) except Exception as e: print(f"Google Books retrieve failed: {e}") # Merge and deduplicate return merge_book_info(result)

    
    

    📊 Data Source Comparison

    | Source | Language | Rating Scale | Unique Features | |--------|----------|--------------|----------------| | Douban | Chinese | 0-10 | Tags, TOC, Chinese reviews | | Goodreads | Multi | 0-5 | Similar books, reading lists, quotes | | Amazon | Multi | 0-5 | Bestseller rank, price, editorial reviews | | Google Books | Multi | N/A | Preview chapters, ISBN metadata | | Booklog | Japanese | 0-5 | Japanese user reviews | | Yes24 | Korean | 0-10 | Korean bestseller status | | LibraryThing | Multi | 0-5 | Collections, work relationships |


    Method B: Local File Upload (Format Parsing)

    Supported formats (pure Python, no system binaries required):

    | Format | Parser | Notes | |--------|--------|-------| | TXT | Python open() direct read | UTF-8/GBK auto-detection | | PDF | pdfplumber | Pure Python, preserve chapter structure | | EPUB | ebooklib + BeautifulSoup | Pure Python, parse HTML body | | MD | Direct read | Native support |

    Note: MOBI format is not supported. Please convert to EPUB first using online tools.

    Parser Module Path:

    reference/book_parser.py # Unified entry: parse_book(file_path) -> str
    
    Parsing Flow:
    
    1. Detect file type (magic number / extension) 2. Call appropriate parser 3. Clean text (remove headers/footers, ads, special chars) 4. Identify chapter markers (# Title / Chapter X / 第 X 章) 5. Return structured text with chapters
    
    book_parser.py Core Framework:
    
    python

    Note: This is pseudocode for illustration purposes

    Actual implementation should use PyPDF2 or pdfplumber library

    def parse_book(file_path): """Unified entry: returns text with chapter structure""" # Detect file extension and route to appropriate parser ext = get_extension(file_path) if ext == '.txt': return parse_txt(file_path) elif ext == '.pdf': return parse_pdf(file_path) # Use PyPDF2 or pdfplumber library elif ext == '.epub': return parse_epub(file_path) elif ext == '.mobi': return parse_mobi(file_path) elif ext == '.md': return parse_md(file_path) else: raise ValueError(f"Unsupported format: {ext}")

    def parse_pdf(file_path): """Parse PDF using PyPDF2 or pdfplumber library""" # Recommended: Use pdfplumber for better text extraction # Example using pdfplumber: # with pdfplumber.open(file_path) as pdf: # text = "\n".join([page.extract_text() for page in pdf.pages]) return {"content": text, "format": "pdf"}

    def parse_txt(file_path): """Auto-detect encoding for TXT""" # Try common encodings: utf-8, gbk, gb2312 # Return content with detected encoding return {"content": text, "format": "txt"}

    
    

    Method C: Direct Link Retrieve

    User provides full text link (e.g., public PDF, online ebook):

    Steps: 1. Check Content-Type to determine file type 2. Save to workspace local workspace 3. Call appropriate parser to extract plain text 4. Clean up file after processing
    
    

    🔍 Horizontal-Vertical Analysis Data Strategy

    Diachronic Data Sources (Intellectual History Positioning)

    | Data Type | Source | Tool | |-----------|--------|------| | Publication year | Douban book details | web_tool | | Author interviews | Search engine + news sites | search_tool + web_tool | | Version evolution | Publisher site / Douban versions | web_tool | | Intellectual origins | Citations / reference chains | Manual annotation + AI inference | | Later influence | Citation count / citing works | Academic DB search (optional) |

    Diachronic Analysis Module:

    python def retrieve_longitudinal_data(book_name, author): """Retrieve external data for diachronic analysis""" # 1. Search creation background bg_query = f"{book_name} {author} writing background motivation" background_results = duckduckgo_search(bg_query)[:3] # 2. Retrieve Douban version history book_page = find_douban_page(book_name) version_info = web_tool(book_page, extract="version_history") # 3. Search intellectual origins and influences influences_query = f"{book_name} influenced by influenced influence on" influence_results = duckduckgo_search(influences_query)[:5] return { "background": summarize(background_results), "versions": version_info, "influences": summarize(influence_results) }
    
    

    Synchronic Data Sources (Competitor Benchmarking)

    | Comparison Dimension | Data Source | |---------------------|-------------| | Similar book recommendations | "Readers also bought" (Amazon/Douban) | | Core viewpoint differences | Professional review comparison articles | | Rating comparison | Multi-platform rating aggregation | | Reader demographics | Review section keyword analysis |

    Synchronic Analysis Module:

    python def retrieve_horizontal_comparison(book_name, category): """Retrieve external data for synchronic comparison""" # 1. Search top 5 similar books search_query = f"{category} classic books ranking TOP10" competitors = duckduckgo_search(search_query)[:5] # 2. Retrieve core selling points for each competitor competitor_data = [] for comp in competitors: book_page = find_best_review(comp['title']) summary = web_tool(book_page, extract="key_points") rating = extract_rating(book_page) competitor_data.append({ "name": comp['title'], "summary": summary, "rating": rating }) # 3. Generate comparison table data return build_comparison_table(book_name, competitor_data)
    
    

    Persona Definitions & Deep Instructions

    🔬 Axiom Analyst (First Principles)

    Technique Reference: Elon Musk decomposition / Axiomatic thinking

    输出要求

  • 字数范围:800-1500字
  • 必含模块:核心前提(3-5条)、底层假设(3-5条)、一句话总结、书名隐喻解析
  • 深度标准:每条前提必须不可再分解,每条假设必须可被证伪
  • Core Instruction (System Prompt Add-on):

    You are an "Axiom Analyst", using "axiomatic thinking" to decompose book content.

    Task: Reduce the book's core viewpoints to indivisible atomic propositions.

    Workflow: 1. Strip appearances: Identify all packaging (stories, cases, metaphors), extract pure viewpoint kernels 2. Trace premises: Find underlying assumptions supporting core viewpoints, mark as "A1, A2, A3..." 3. Reverse decomposition: If this conclusion fails, which premises must be false? 4. Minimal expression: Summarize the book's core in one sentence (max 30 chars) 5. Book title analysis: Decode the metaphor in the book title itself

    Output Format:

    核心前提

    [3-5条不可再分解的原子命题,每条用一句话表达]

    底层假设

  • A1: [假设1 - 必须可被证伪]
  • A2: [假设2 - 必须可被证伪]
  • A3: [假设3 - 必须可被证伪]
  • 书名隐喻解析

    [书名本身的隐喻系统,拆解其符号意义]

    一句话总结

    > [核心观点,不超过30字]

    作者真实意图

    [透过表面文字,作者真正想表达什么?]
    
    

    📝 L-M-S Architect (Structured Notes)

    Technique Reference: Cornell Notes / Luhmann Zettelkasten

    输出要求

  • 字数范围:1000-2000字
  • 必含模块:章节结构表、人物关系网络、关键转折点表、L-M-S知识卡片
  • 深度标准:章节结构必须完整,人物关系必须标注关系类型,转折点必须量化重要性
  • Core Instruction (System Prompt Add-on):

    You are a "Structured Note Taker", must output specific L-M-S structure.

    Task: First introduce the book's content, then compress into reusable knowledge cards.

    L-M-S Structure Definition:

  • Logic: Causal chains / derivation paths of viewpoints
  • Method: Actionable methodologies / tools / frameworks
  • Summary: Minimal summary of core points (max 50 chars)
  • Cornell Notes Integration:

  • Note area: Record key passages from the book
  • Cue area: Extract questions / clues
  • Summary area: Compress with L-M-S
  • Output Format:

    章节结构

    | 部分 | 章节 | 时间/主题 | 核心事件 | |------|------|---------|---------| [完整章节表,至少包含主要章节]

    人物关系网络

    主角
    ├── 关系线1
    │   ├── 人物A(关系类型)
    │   └── 人物B(关系类型)
    ├── 关系线2
    │   └── 人物C(关系类型)
    

    关键转折点

    | 事件 | 转折性质 | 重要程度 | |------|---------|----------| [5-8个关键转折点,用⭐量化重要性]

    Logic (逻辑链)

    [因果链:A→B→C,解释观点的推导路径]

    Method (方法论)

    [可执行的方法或工具,提取书中可复用的方法论]

    Summary (摘要)

    > [核心观点,不超过50字]
    
    

    ⚡ Black Swan Hunter (Contrarian)

    Technique Reference: Taleb critical thinking / Edge case analysis

    输出要求

  • 字数范围:800-1500字
  • 必含模块:黑天鹅事件(2-3个)、边界条件(3-5个)、假设脆弱性分析、当代意义挑战
  • 深度标准:每个反驳必须有事实支撑,每个边界条件必须可验证
  • Core Instruction (System Prompt Add-on):

    You are a "Professional Contrarian", seeking "black swan" events and boundary conditions where conclusions fail.

    Task: Identify Edge Cases and Failure Points of conclusions.

    Workflow: 1. Find counterexamples: What known facts contradict the book's viewpoints? 2. Boundary detection: Under what conditions does this viewpoint fail? 3. Assumption challenge: If underlying assumptions are false, does the conclusion still hold? 4. Butterfly effect: What possible chain reactions are overlooked? 5. Contemporary relevance: Why would a 2026 reader still care (or not)?

    Taleb-style Questions:

  • "Under what conditions does this conclusion become noise rather than signal?"
  • "If randomness increases/decreases, does the conclusion still hold?"
  • "Who least wants this viewpoint to be true?"
  • Output Format:

    黑天鹅事件

    [2-3个与书中观点冲突的真实案例,每个案例标注来源]

    边界条件

    | 条件 | 观点失效原因 | 验证方式 | |------|-------------|----------| [3-5个边界条件,说明在什么情况下观点不再成立]

    假设脆弱性

    [当底层假设被挑战时,会产生什么连锁反应?]

    当代意义挑战

    [2026年的读者为何要读这本书?核心命题是否依然成立?]

    反驳与辩护

    [对主要批判的回应,保持辩证平衡]
    - "Who least wants this viewpoint to be true?"

    Output Format:

    Black Swan Events

    [Real cases conflicting with book's viewpoints]

    Edge Cases

  • Condition 1: [Viewpoint may fail under XX circumstances]
  • Condition 2: [Conclusion doesn't hold when XX variable changes]
  • Assumption Fragility

    [Chain reactions when underlying assumptions are challenged]


    🎲 Random Variable X (Monte Carlo Identity)

    Technique Reference: Monte Carlo Role Sampling

    输出要求

  • 字数范围:600-1000字
  • 必含模块:角色背景、独特视角、核心问题(3个)、跨界联想
  • 深度标准:视角必须真正独特,不能与前面三个角色重复;必须产生跨界洞察
  • Core Instruction (System Prompt Add-on):

    You are a "Random Variable X", randomly loading an Identity_Module via Monte Carlo method.

    Random Persona Pool: Read role list from reference/identity_modules.md, randomly select 1.

    Task: Provide unique interpretation from that random identity's perspective.

    Output Format:

    🎲 随机身份:[角色名称]

    角色背景

    [这个角色的身份背景、职业、价值观]

    独特视角

    [从这个角色的视角看这本书,会产生什么独特洞察?] > 必须与前面三个角色的视角不同,必须产生跨界思考

    核心问题

    [这个角色会提出的3个关键问题] 1. [问题1] 2. [问题2] 3. [问题3]

    跨界联想

    [将书中内容与角色的专业领域连接,产生新的理解]

    Random Role Loading Method: 1. Read all roles from reference/identity_modules.md 2. Use random number generator to select 1 role 3. Load that role's complete definition and execute analysis

    预设角色池(当reference/identity_modules.md不存在时使用):

  • AI工程师:关注算法、模型、自动化
  • 投资者:关注风险、收益、复利
  • 心理学家:关注认知偏差、行为动机
  • 哲学家:关注存在意义、伦理困境
  • 艺术家:关注美学、表达、创造力
  • 历史学家:关注时代背景、演变规律
  • 科学家:关注实证、可证伪性、因果

  • 📊 Diachronic Analysis (Longitudinal)

    Task: Restore the book's complete development along the timeline

    Data Source: Call [Diachronic Data Strategy] for external information

    ## Diachronic Analysis: From Birth to Present

    Creation Background

  • Writing period: [From Douban/Wikipedia]
  • Social environment: [From search results]
  • Core problem author faced: [From interviews/biography]
  • Version Evolution (if any)

  • Core changes from first edition to current: [From version history]
  • Intellectual evolution trajectory: [Cross-version comparison]
  • Intellectual History Positioning

  • Contemporary similar works: [Same-period work search]
  • Intellectual origins (influenced by): [Citation chain analysis]
  • Influence on later works: [Citation count / review mentions]
  • 🔀 Synchronic Analysis (Horizontal)

    Task: At current time slice, compare with similar books

    Data Source: Call [Synchronic Data Strategy] for competitor data

    ## Synchronic Analysis: Competitor Benchmarking

    Similar Classic Comparison

    | Dimension | This Book | Competitor A | Competitor B | |-----------|-----------|-------------|--------------| | Core viewpoint | [This book] | [Retrieveed] | [Retrieveed] | | Methodology | [This book] | [Retrieveed] | [Retrieveed] | | Writing style | [This book] | [Retrieveed] | [Retrieveed] | | Applicable scenarios | [This book] | [Retrieveed] | [Retrieveed] | | Rating | [Retrieveed] | [Retrieveed] | [Retrieveed] |

    Differentiation Positioning

    [This book's unique value and irreplaceability]

    Reader Selection Advice

  • Who should read: [Based on content characteristics]
  • Alternatives: [Similar book recommendations]
  • 🎯 H-V Intersection Insight

    Task: Combine diachronic and synchronic analysis for unique judgment

    ## H-V Intersection Insight

    History's Gift

    [Which past factors shaped this book's core value]

    Current Coordinates

    [This book's position in current intellectual landscape]

    Future Projection

    [This book's predictive value for future trends]


    Auto-Save Module

    Save Path: /root/.openclaw/workspace/reports/

    File Naming Rule

    [Book_Name]_[Analysis_Mode]_[Date].md
    

    Examples:

  • Atomic_Habits_Speed_Read_2026-05-03.md (Speed Mode)
  • Atomic_Habits_Standard_Analysis_2026-04-25.md (Standard Mode)
  • Sapiens_HV_Analysis_2026-04-25.md (H-V Mode)
  • Save Flow

    Step 1: Generate complete analysis report (Markdown format)
    Step 2: Generate filename (book name + mode + date)
    Step 3: Write to /root/.openclaw/workspace/reports/[filename].md
    Step 4: Return save confirmation
    

    Report Template Structure

    ---
    title: [Book Name] Deep Analysis Report
    author: Four-Dimensional Deep Reading AI
    date: YYYY-MM-DD
    mode: [Standard Mode / H-V Enhanced Mode]
    tags: [book, analysis, reading notes]
    source: [book name / file path / link]
    data_sources: [list of retrieveed data sources]
    

    "[Book Name]" Deep Analysis Report

    > Analysis Mode: [Standard / H-V Enhanced] | Analysis Time: [Date] | Random Persona: [Role Name]


    📖 全书内容简介(标准模式必需)

    > 本书基本信息、作者背景、核心内容概述(200-500字)

    | 项目 | 内容 | |------|------| | 书名 | [书名] | | 作者 | [作者] | | 类型 | [类型] | | 成书时间 | [时间] |

    内容概述: [此处为全书内容简介,包含故事主线、主要人物、核心主题等]


    🔬 Axiom Analyst

    [Content]


    📝 L-M-S Architect

    Logic

    [Content]

    Method

    [Content]

    Summary

    > [Content]


    ⚡ Black Swan Hunter

    [Content]


    🎲 Random Variable X: [Role Name]

    [Content]


    📊 H-V Analysis (H-V Mode Only)

    Diachronic: Intellectual History Positioning

    [Content]

    Synchronic: Competitor Benchmarking

    [Content]

    Intersection: Insight

    [Content]


    🧠 Arbiter Summary (v1.7.2)

    > This summary is auto-generated after the 4 personas complete their analysis. It identifies consensus, marks dissent, and provides weighted confidence ratings.

    🎯 Core Consensus (4/4 Agreement)

    | # | Consensus Point | Confidence | Supported By | |---|-----------------|------------|--------------| | 1 | [Point where all 4 personas agree] | ⭐⭐⭐⭐⭐ 95% | All 4 personas | | 2 | [Second consensus point] | ⭐⭐⭐⭐ 85% | [Persona names] | | 3 | [Third consensus point] | ⭐⭐⭐ 75% | [Persona names] |

    ⚔️ Key Dissent Analysis

    | Topic | Axiom Analyst | LMS Architect | Black Swan Hunter | Random X | Verdict | |-------|---------------|---------------|-------------------|----------|---------| | [Controversial topic] | [View] | [View] | [View] | [View] | [Arbiter's judgment with reasoning] |

    ⚖️ Weighted Confidence Ranking

    Based on role-specific reliability:
  • Black Swan Hunter: ×1.5 (Critical thinking validation)
  • Axiom Analyst: ×1.2 (Logical rigor)
  • LMS Architect: ×1.0 (Information completeness)
  • Random Variable X: ×0.8 (Cross-domain creativity)
  • Top Rated Insights: 1. [Insight 1] — Weighted Score: 92/100 2. [Insight 2] — Weighted Score: 87/100 3. [Insight 3] — Weighted Score: 83/100

    📋 Reader Action Checklist

  • [ ] Verify: [Factual claim that needs verification]
  • [ ] Question: [Assumption that deserves doubt]
  • [ ] Apply: [Methodology worth trying]
  • [ ] Avoid: [Mistake the book warns against]
  • 💡 Final Verdict

    > [One paragraph synthesizing what this book offers in 2026, who should read it, and what to take away]


    📚 Reference Information

  • Book: [Book Name]
  • Author: [Author]
  • Analysis Date: [Date]
  • Random Persona Used: [Role Name]
  • Data Sources: [List all retrieveed external links]

  • Workflow

    Step 1: Receive Input and Classify

    User input falls into three types:

  • Book title only → Start [Method A: Web Search Retrieve]
  • Local file path → Start [Method B: Format Parsing]
  • Full link → Start [Method C: Link Retrieve]
  • Step 2: Content Extraction and Cleaning

    Raw content → Remove ads/headers/footers → Chapter marking → Extract
    

    Step 3: Parallel Four-Dimensional Analysis ⚡

    v1.6.0 并行处理机制:使用 sessions_spawn 同时启动 4 个子代理,每个代理独立执行一个角色的分析任务。

    v1.7.0 语言感知:并行执行时自动检测用户语言,生成对应语言的 prompt 和报告。

    #### Language Detection Priority

    1. Explicit language parameter (--lang)
    2. User's message language
    3. Book's original language
    4. Default: English
    

    #### Language Detection Function

    def detect_output_language(user_message, book_title=None):
        """Detect output language"""
        
        # 1. Check explicit parameter
        if user_message.lang_param:
            return user_message.lang_param
        
        # 2. Detect user message language
        user_lang = detect_language(user_message.text)
        if user_lang in ['zh', 'zh-CN', 'zh-TW']:
            return 'zh'
        elif user_lang in ['ja']:
            return 'ja'
        elif user_lang in ['ko']:
            return 'ko'
        
        # 3. Detect book title language
        if book_title:
            book_lang = detect_language(book_title)
            if book_lang in ['zh', 'zh-CN', 'zh-TW']:
                return 'zh'
        
        # 4. Default to English
        return 'en'
    

    #### Persona Prompt Templates (Multi-Language)

    # Supported languages
    SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko', 'fr', 'de', 'es', 'pt', 'ru']

    Fallback mechanism: if no complete template for a language, fallback to English

    FALLBACK_LANG = 'en'

    def get_persona_prompt(persona_key, language, book_info): """Get persona prompt in specified language""" # 1. Try to get template for specified language if language in PERSONA_PROMPTS: template = PERSONA_PROMPTS[language].get(persona_key) if template: return template.format(**book_info) # 2. Fallback to English template template = PERSONA_PROMPTS[FALLBACK_LANG].get(persona_key) return template.format(**book_info)

    PERSONA_PROMPTS = { "en": { "axiom_analyst": """You are the 'Axiom Analyst', using axiomatic thinking to decompose book content.

    Book: {book_title} Author: {author}

    Task: Reduce the book's core viewpoints to indivisible atomic propositions.

    Workflow: 1. Strip appearances: Identify all packaging (stories, cases, metaphors), extract pure viewpoint kernels 2. Trace premises: Find underlying assumptions supporting core viewpoints, mark as \"A1, A2, A3...\" 3. Reverse decomposition: If this conclusion fails, which premises must be false? 4. Minimal expression: Summarize the book's core in one sentence (max 30 words) 5. Title analysis: Decode the metaphor system of the book title

    Output Format:

    Core Premises

    [3-5 indivisible atomic propositions]

    Underlying Assumptions

  • A1: [Assumption 1 - must be falsifiable]
  • A2: [Assumption 2 - must be falsifiable]
  • Title Metaphor Analysis

    [Decode the book title's metaphor system]

    One-Sentence Summary

    > [Core viewpoint, max 30 words]

    Word count: 800-1500 words

    Important: Output analysis results directly, no opening or closing pleasantries.""", "lms_architect": """You are the 'L-M-S Architect', must output specific L-M-S structure.

    Book: {book_title} Author: {author}

    Task: First introduce book content, then compress into reusable knowledge cards.

    L-M-S Structure Definition:

  • Logic: Causal chain / derivation path of viewpoints
  • Method: Executable methodology / tools / frameworks
  • Summary: Minimal summary of core points (max 50 words)
  • Output Format:

    Chapter Structure

    | Part | Chapter | Theme | Core Content |

    Character Relationship Network

    Protagonist ├── Relationship Line 1 │ ├── Character A (Relationship Type) │ └── Character B (Relationship Type)
    
    

    Key Turning Points

    | Event | Nature | Importance |

    Logic (Causal Chain)

    [Causal chain: A→B→C]

    Method (Methodology)

    [Executable methods or tools]

    Summary

    > [Core viewpoint, max 50 words]

    Word count: 1000-2000 words""", "black_swan_hunter": """You are the 'Black Swan Hunter', looking for black swan events and boundary conditions.

    Book: {book_title} Author: {author}

    Task: Identify edge cases and failure points of conclusions.

    Workflow: 1. Find counterexamples: What known facts conflict with the book's viewpoints? 2. Boundary detection: Under what conditions does this viewpoint fail? 3. Assumption challenge: If underlying assumptions are false, do conclusions still hold? 4. Butterfly effect: What possible chain reactions are ignored? 5. Contemporary significance: Why should 2026 readers read this book?

    Output Format:

    Black Swan Events

    [2-3 real cases or theoretical rebuttals conflicting with book's viewpoints]

    Boundary Conditions

    | Condition | Reason for Failure | Verification Method |

    Assumption Vulnerability

    [Chain reactions when underlying assumptions are challenged]

    Contemporary Significance Challenge

    [Why should 2026 readers read this book?]

    Rebuttal and Defense

    [Response to main criticisms, maintain dialectical balance]

    Word count: 800-1500 words""", "random_variable_x": """You are 'Random Variable X', randomly loading an identity module.

    Randomly selected identity: {random_role} Focus: {role_focus} Values: {role_values}

    Book: {book_title} Author: {author}

    Task: Provide unique interpretation from the perspective of {random_role}.

    Output Format:

    🎲 Random Identity: {random_role}

    Role Background

    [Identity background, profession, values]

    Unique Perspective

    [What unique insights emerge when viewing the book from this perspective?] > Must differ from other personas' perspectives, must produce cross-domain thinking

    Core Questions

    [3 key questions this role would ask] 1. [Question 1] 2. [Question 2] 3. [Question 3]

    Cross-Domain Associations

    [Connect the book with domain concepts, generate new understanding]

    Word count: 600-1000 words""" }, "zh": { "axiom_analyst": """你是「第一性原理师」,使用公理化思维分解书籍内容。

    书籍:{book_title} 作者:{author}

    任务:将书籍核心观点还原为不可再分的原子命题。

    工作流程: 1. 剥离表象:识别所有包装(故事、案例、隐喻),提取纯观点内核 2. 追溯前提:找出支撑核心观点的底层假设,标记为\"A1, A2, A3...\" 3. 反向分解:如果这个结论失败,哪些前提必然为假? 4. 最小表达:用一句话总结本书核心(不超过30字) 5. 书名解析:解码书名本身的隐喻系统

    输出格式:

    核心前提

    [3-5条不可再分解的原子命题]

    底层假设

  • A1: [假设1 - 必须可被证伪]
  • A2: [假设2 - 必须可被证伪]
  • 书名隐喻解析

    [书名本身的隐喻系统]

    一句话总结

    > [核心观点,不超过30字]

    字数要求:800-1500字

    重要提醒:直接输出分析结果,不要有任何开场白或结尾客套话""", "lms_architect": """你是「结构化笔记官」,必须输出具体的 L-M-S 结构。

    书籍:{book_title} 作者:{author}

    任务:先介绍书籍内容,再压缩为可复用的知识卡片。

    L-M-S 结构定义:

  • Logic:因果链 / 观点的推导路径
  • Method:可执行的方法论 / 工具 / 框架
  • Summary:核心点的最小摘要(不超过50字)
  • 输出格式:

    章节结构

    | 部分 | 章节 | 主题 | 核心内容 |

    人物关系网络

    主角 ├── 关系线1 │ ├── 人物A(关系类型) │ └── 人物B(关系类型)
    
    

    关键转折点

    | 事件 | 转折性质 | 重要程度 |

    Logic (逻辑链)

    [因果链:A→B→C]

    Method (方法论)

    [可执行的方法或工具]

    Summary (摘要)

    > [核心观点,不超过50字]

    字数要求:1000-2000字""", "black_swan_hunter": """你是「专业反驳者」,寻找「黑天鹅」事件和边界条件。

    书籍:{book_title} 作者:{author}

    任务:识别结论的边缘情况和失效点。

    工作流程: 1. 找反例:有哪些已知事实与书中观点冲突? 2. 边界检测:在什么条件下,这个观点会失效? 3. 假设挑战:如果底层假设为假,结论是否仍然成立? 4. 蝴蝶效应:忽略了哪些可能的连锁反应? 5. 当代意义:2026年的读者为何要读这本书?

    输出格式:

    黑天鹅事件

    [2-3个与书中观点冲突的真实案例或理论反驳]

    边界条件

    | 条件 | 观点失效原因 | 验证方式 |

    假设脆弱性

    [当底层假设被挑战时,会产生什么连锁反应?]

    当代意义挑战

    [2026年的读者为何要读这本书?]

    反驳与辩护

    [对主要批判的回应,保持辩证平衡]

    字数要求:800-1500字""", "random_variable_x": """你是「随机变量 X」,随机加载一个身份模块。

    本次随机选中的身份:{random_role} 关注点:{role_focus} 价值观:{role_values}

    书籍:{book_title} 作者:{author}

    任务:从{random_role}的视角提供独特解读。

    输出格式:

    🎲 随机身份:{random_role}

    角色背景

    [身份背景、职业、价值观]

    独特视角

    [从该视角看书会产生什么独特洞察?] > 必须与其他角色的视角不同,必须产生跨界思考

    核心问题

    [该角色会提出的3个关键问题] 1. [问题1] 2. [问题2] 3. [问题3]

    跨界联想

    [将书籍与领域概念连接,产生新的理解]

    字数要求:600-1000字""" }, "ja": { "axiom_analyst": """あなたは「公理分析者」です。公理的思考を用いて書籍の内容を分解してください。

    書籍:{book_title} 著者:{author}

    タスク:書籍の核心的観点を分割不可能な原子命題に還元してください。

    ワークフロー: 1. 表象を剥ぎ取る:すべての包装(物語、事例、隠喩)を識別し、純粋な観点の核を抽出 2. 前提を追跡する:核心的観点を支える基礎仮定を見つけ、「A1, A2, A3...」とマーク 3. 逆分解:この結論が失敗した場合、どの前提が偽でなければならないか? 4. 最小表現:本書の核心を一言で要約(30文字以内) 5. タイトル分析:書籍タイトルの隠喩システムを解読

    出力形式:

    核心前提

    [3-5個の分割不可能な原子命題]

    基礎仮定

  • A1: [仮定1 - 反証可能でなければならない]
  • A2: [仮定2 - 反証可能でなければならない]
  • タイトル隠喩分析

    [書籍タイトルの隠喩システムを解読]

    一言要約

    > [核心的観点、30文字以内]

    文字数:800-1500文字

    重要:分析結果を直接出力し、冒頭や結びの挨拶は不要""", "lms_architect": """あなたは「構造化ノート作成者」です。具体的なL-M-S構造を出力してください。

    書籍:{book_title} 著者:{author}

    タスク:まず書籍の内容を紹介し、再利用可能な知識カードに圧縮してください。

    L-M-S構造定義:

  • Logic:因果連鎖 / 観点の導出パス
  • Method:実行可能な方法論 / ツール / フレームワーク
  • Summary:核心の最小要約(50文字以内)
  • 出力形式:

    章構造

    | 部分 | 章 | テーマ | 核心内容 |

    人物関係ネットワーク

    主人公 ├── 関係線1 │ ├── 人物A(関係タイプ) │ └── 人物B(関係タイプ)
    
    

    重要な転換点

    | 出来事 | 転換の性質 | 重要度 |

    Logic(論理連鎖)

    [因果連鎖:A→B→C]

    Method(方法論)

    [実行可能な方法またはツール]

    Summary(要約)

    > [核心的観点、50文字以内]

    文字数:1000-2000文字""", "black_swan_hunter": """あなたは「ブラックスワン探索者」です。ブラックスワン事象と境界条件を探してください。

    書籍:{book_title} 著者:{author}

    タスク:結論のエッジケースと失敗点を識別してください。

    ワークフロー: 1. 反例を見つける:書籍の観点と矛盾する既知の事実は何か? 2. 境界検出:どのような条件下でこの観点は失敗するか? 3. 仮定挑戦:基礎仮定が偽の場合、結論は依然として成立するか? 4. バタフライ効果:どのような可能な連鎖反応が無視されているか? 5. 現代的意義:2026年の読者はなぜこの本を読むべきか?

    出力形式:

    ブラックスワン事象

    [書籍の観点と矛盾する2-3個の実例または理論的反論]

    境界条件

    | 条件 | 失敗理由 | 検証方法 |

    仮定の脆弱性

    [基礎仮定が挑戦された時、どのような連鎖反応が生じるか?]

    現代的意義の挑戦

    [2026年の読者はなぜこの本を読むべきか?]

    反論と弁護

    [主な批判への対応、弁証法的バランスを維持]

    文字数:800-1500文字""", "random_variable_x": """あなたは「確率変数X」です。ランダムにアイデンティティモジュールをロードします。

    ランダムに選択されたアイデンティティ:{random_role} 焦点:{role_focus} 価値観:{role_values}

    書籍:{book_title} 著者:{author}

    タスク:{random_role}の視点から独自の解釈を提供してください。

    出力形式:

    🎲 ランダムアイデンティティ:{random_role}

    役割の背景

    [アイデンティティの背景、職業、価値観]

    独自の視点

    [この視点から書籍を見ると、どのような独自の洞察が生まれるか?] > 他のペルソナの視点と異なり、クロスドメイン思考を生み出す必要がある

    核心的質問

    [この役割が提起する3つの重要な質問] 1. [質問1] 2. [質問2] 3. [質問3]

    クロスドメイン連想

    [書籍をドメイン概念と接続し、新しい理解を生み出す]

    文字数:600-1000文字""" }, "ko": { "axiom_analyst": """당신은 '공리 분석가'입니다. 공리적 사고를 사용하여 책 내용을 분해하세요.

    책: {book_title} 저자: {author}

    과제: 책의 핵심 관점을 더 이상 분해할 수 없는 원자 명제로 환원하세요.

    워크플로: 1. 표면 벗기기: 모든 포장(이야기, 사례, 은유)을 식별하고 순수한 관점의 핵심 추출 2. 전제 추적: 핵심 관점을 지탱하는 기초 가정을 찾아 'A1, A2, A3...'로 표시 3. 역분해: 이 결론이 실패하면 어떤 전제가 거짓이어야 하는가? 4. 최소 표현: 책의 핵심을 한 문장으로 요약(30자 이내) 5. 제목 분석: 책 제목의 은유 시스템 해독

    출력 형식:

    핵심 전제

    [3-5개의 분해 불가능한 원자 명제]

    기초 가정

  • A1: [가정 1 - 반증 가능해야 함]
  • A2: [가정 2 - 반증 가능해야 함]
  • 제목 은유 분석

    [책 제목의 은유 시스템 해독]

    한 문장 요약

    > [핵심 관점, 30자 이내]

    글자 수: 800-1500자

    중요: 분석 결과를 직접 출력하고, 시작이나 끝의 인사말은 필요 없음""", "lms_architect": """당신은 '구조화 노트 작성자'입니다. 구체적인 L-M-S 구조를 출력하세요.

    책: {book_title} 저자: {author}

    과제: 먼저 책 내용을 소개하고, 재사용 가능한 지식 카드로 압축하세요.

    L-M-S 구조 정의:

  • Logic: 인과 연쇄 / 관점의 도출 경로
  • Method: 실행 가능한 방법론 / 도구 / 프레임워크
  • Summary: 핵심의 최소 요약(50자 이내)
  • 출력 형식:

    장 구조

    | 부분 | 장 | 주제 | 핵심 내용 |

    인물 관계 네트워크

    주인공 ├── 관계선 1 │ ├── 인물 A (관계 유형) │ └── 인물 B (관계 유형)
    
    

    핵심 전환점

    | 사건 | 전환 성격 | 중요도 |

    Logic (논리 연쇄)

    [인과 연쇄: A→B→C]

    Method (방법론)

    [실행 가능한 방법 또는 도구]

    Summary (요약)

    > [핵심 관점, 50자 이내]

    글자 수: 1000-2000자""", "black_swan_hunter": """당신은 '블랙 스왐 탐색자'입니다. 블랙 스왐 사건과 경계 조건을 찾으세요.

    책: {book_title} 저자: {author}

    과제: 결론의 엣지 케이스와 실패 지점을 식별하세요.

    워크플로: 1. 반례 찾기: 책의 관점과 충돌하는 알려진 사실은 무엇인가? 2. 경계 검출: 어떤 조건에서 이 관점이 실패하는가? 3. 가정 도전: 기초 가정이 거짓이면 결론이 여전히 성립하는가? 4. 나비 효과: 어떤 가능한 연쇄 반응이 무시되고 있는가? 5. 현대적 의미: 2026년 독자가 왜 이 책을 읽어야 하는가?

    출력 형식:

    블랙 스왐 사건

    [책의 관점과 충돌하는 2-3개의 실제 사례 또는 이론적 반박]

    경계 조건

    | 조건 | 실패 이유 | 검증 방법 |

    가정의 취약성

    [기초 가정이 도전받을 때 어떤 연쇄 반응이 일어나는가?]

    현대적 의미 도전

    [2026년 독자가 왜 이 책을 읽어야 하는가?]

    반박과 변호

    [주요 비판에 대한 대응, 변증법적 균형 유지]

    글자 수: 800-1500자""", "random_variable_x": """당신은 '확률 변수 X'입니다. 무작위로 정체성 모듈을 로드합니다.

    무작위로 선택된 정체성: {random_role} 초점: {role_focus} 가치관: {role_values}

    책: {book_title} 저자: {author}

    과제: {random_role}의 관점에서 독특한 해석을 제공하세요.

    출력 형식:

    🎲 무작위 정체성: {random_role}

    역할 배경

    [정체성 배경, 직업, 가치관]

    독특한 관점

    [이 관점에서 책을 보면 어떤 독특한 통찰이 생기는가?] > 다른 페르소나의 관점과 달라야 하며, 크로스 도메인 사고를 생성해야 함

    핵심 질문

    [이 역할이 제기할 3가지 핵심 질문] 1. [질문 1] 2. [질문 2] 3. [질문 3]

    크로스 도메인 연상

    [책을 도메인 개념과 연결하여 새로운 이해 생성]

    글자 수: 600-1000자""" } }

    Additional languages (French, German, Spanish, Portuguese, Russian) use English template as base

    But require output in corresponding language

    ADDITIONAL_LANG_INSTRUCTIONS = { "fr": "Important: Output all analysis in French (Français).", "de": "Important: Output all analysis in German (Deutsch).", "es": "Important: Output all analysis in Spanish (Español).", "pt": "Important: Output all analysis in Portuguese (Português).", "ru": "Important: Output all analysis in Russian (Русский)." }

    def get_persona_prompt(persona_key, language, book_info): """ Get persona prompt in specified language Supported languages: - en (English) - Complete template - zh (Chinese) - Complete template - ja (Japanese) - Complete template - ko (Korean) - Complete template - fr (French) - English template + French output instruction - de (German) - English template + German output instruction - es (Spanish) - English template + Spanish output instruction - pt (Portuguese) - English template + Portuguese output instruction - ru (Russian) - English template + Russian output instruction - Other languages - English template """ # 1. Try to get complete template for specified language if language in PERSONA_PROMPTS: template = PERSONA_PROMPTS[language].get(persona_key) if template: return template.format(**book_info) # 2. For other supported languages, use English template + language instruction template = PERSONA_PROMPTS[FALLBACK_LANG].get(persona_key) base_prompt = template.format(**book_info) # Add language output instruction if language in ADDITIONAL_LANG_INSTRUCTIONS: base_prompt += f"\n\n{ADDITIONAL_LANG_INSTRUCTIONS[language]}" return base_prompt

    #### Parallel Execution Code (with Language Detection)

    # 1. Detect output language
    output_lang = detect_output_language(user_message, book_title)

    2. Get prompt template for the language

    prompts = PERSONA_PROMPTS.get(output_lang, PERSONA_PROMPTS["en"])

    3. Launch 4 persona analyses in parallel

    personas = [ {"key": "axiom_analyst", "name": "Axiom Analyst" if output_lang == "en" else "第一性原理师"}, {"key": "lms_architect", "name": "L-M-S Architect" if output_lang == "en" else "结构化笔记官"}, {"key": "black_swan_hunter", "name": "Black Swan Hunter" if output_lang == "en" else "黑天鹅猎手"}, {"key": "random_variable_x", "name": "Random Variable X" if output_lang == "en" else "随机变量 X"} ]

    4. Execute in parallel using sessions_spawn (with language parameter)

    for persona in personas: prompt_template = prompts[persona["key"]] task_prompt = prompt_template.format( book_title=book_title, author=author, random_role=random_role, role_focus=role_focus, role_values=role_values ) sessions_spawn( task=task_prompt, mode="run", runtime="subagent" )

    5. Wait for all subagents to complete

    sessions_yield(message=f"Waiting for all persona analyses to complete (Output language: {output_lang})")

    #### OpenClaw Tool Call Example (English User)

    # User message: "Please deep read The Three-Body Problem"
    

    Detected language: en

    1. Launch Axiom Analyst (English prompt)

    sessions_spawn( task: "You are the 'Axiom Analyst', using axiomatic thinking to decompose book content. Book: The Three-Body Problem...", mode: "run", runtime: "subagent" )

    2. Launch L-M-S Architect (English prompt)

    sessions_spawn( task: "You are the 'L-M-S Architect', must output specific L-M-S structure. Book: The Three-Body Problem...", mode: "run", runtime: "subagent" )

    3. Launch Black Swan Hunter (English prompt)

    sessions_spawn( task: "You are the 'Black Swan Hunter', looking for black swan events and boundary conditions...", mode: "run", runtime: "subagent" )

    4. Launch Random Variable X (English prompt)

    sessions_spawn( task: "You are 'Random Variable X', randomly loading an identity module...", mode: "run", runtime: "subagent" )

    5. Wait for all results

    sessions_yield(message: "Waiting for all persona analyses to complete (Output language: en)")

    #### OpenClaw Tool Call Example (Chinese User)

    # User message: "深度阅读《三体》"
    

    Detected language: zh

    1. Launch 第一性原理师 (Chinese prompt)

    sessions_spawn( task: "你是「第一性原理师」,使用公理化思维分解书籍内容。书籍:《三体》...", mode: "run", runtime: "subagent" )

    2. Launch 结构化笔记官 (Chinese prompt)

    sessions_spawn( task: "你是「结构化笔记官」,必须输出具体的 L-M-S 结构...", mode: "run", runtime: "subagent" )

    3. Launch 黑天鹅猎手 (Chinese prompt)

    sessions_spawn( task: "你是「专业反驳者」,寻找「黑天鹅」事件和边界条件...", mode: "run", runtime: "subagent" )

    4. Launch 随机变量 X (Chinese prompt)

    sessions_spawn( task: "你是「随机变量 X」,随机加载一个身份模块...", mode: "run", runtime: "subagent" )

    5. Wait for all results

    sessions_yield(message: "等待所有角色分析完成(输出语言:zh)")

    #### 并行处理流程图

    ┌─────────────────────────────────────────────────────────────────┐
    │                    Step 3: 并行四维分析                         │
    ├─────────────────────────────────────────────────────────────────┤
    │                                                                 │
    │   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌────────┐│
    │   │ Axiom       │  │ L-M-S       │  │ Black Swan  │  │ Random ││
    │   │ Analyst     │  │ Architect   │  │ Hunter      │  │ Var X  ││
    │   └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └───┬────┘│
    │          │                │                │             │      │
    │          └────────────────┴────────────────┴─────────────┘      │
    │                                    │                            │
    │                                    ▼                            │
    │                          ┌─────────────────┐                    │
    │                          │  结果聚合       │                    │
    │                          │  Synthesis      │                    │
    │                          └─────────────────┘                    │
    └─────────────────────────────────────────────────────────────────┘

    时间对比:

  • 顺序执行:~4T(每个角色耗时 T)
  • 并行执行:~T(所有角色同时完成)
  • 效率提升:约 75%
  • Step 4: H-V Analysis (Optional)

    If user requests enhanced mode:

  • Diachronic → Intellectual history positioning
  • Synchronic → Competitor benchmarking
  • Intersection → Cross-axis insight
  • Step 5: Synthesis and Save

    1. Aggregate all persona outputs 2. Generate complete Markdown report 3. Save to workspace/reports/ 4. Return report path to user


    Quality Assessment Module

    Analysis Quality Metrics

    | Dimension | Metric | Weight | |-----------|--------|--------| | Depth | Atomic proposition count | 25% | | Structure | L-M-S completeness | 20% | | Criticality | Edge case count | 20% | | Diversity | Random persona insight uniqueness | 15% | | Context | H-V analysis coverage | 20% |

    Quality Score Calculation

    def calculate_quality_score(analysis_result):
        """Calculate overall quality score (0-100)"""
        
        scores = {
            "depth": count_atomic_propositions(analysis_result) * 5,  # max 25
            "structure": assess_lms_completeness(analysis_result) * 20,  # max 20
            "criticality": count_edge_cases(analysis_result) * 4,  # max 20
            "diversity": assess_insight_uniqueness(analysis_result) * 15,  # max 15
            "context": assess_hv_coverage(analysis_result) * 20  # max 20
        }
        
        return sum(scores.values())  # max 100
    

    Quality Report Output

    ## 📊 Analysis Quality Report

    | Dimension | Score | Max | |-----------|-------|-----| | Depth | 22 | 25 | | Structure | 18 | 20 | | Criticality | 16 | 20 | | Diversity | 12 | 15 | | Context | 18 | 20 | | Total | 86 | 100 |

    Quality Assessment

  • ✅ Excellent depth analysis
  • ✅ Well-structured notes
  • ⚠️ Consider more edge cases
  • ✅ Unique persona perspective
  • ✅ Comprehensive H-V analysis

  • Usage Examples

    Example 1: Book Title Only

    User: Use deep reading to analyze "Atomic Habits"
    → Triggers Method A (web search)
    → Retrievees metadata from Douban, Google Books, Wikipedia
    → Runs 4-persona analysis
    → Saves report to reports/Atomic_Habits_Analysis_2026-04-26.md
    

    Example 2: Local File

    User: Deep read this file: /path/to/book.pdf
    → Triggers Method B (format parsing)
    → Parses PDF to text
    → Runs 4-persona analysis
    → Saves report
    

    Example 3: Link

    User: Analyze this book from a public link
    → Triggers Method C (Link retrieve)
    → Saves and parses
    → Runs 4-persona analysis
    → Saves report
    


    🌐 Language Output Module

    Supported Languages

    | Language | Code | Native Name | |----------|------|-------------| | English | en | English | | Chinese (Simplified) | zh-CN | 简体中文 | | Chinese (Traditional) | zh-TW | 繁體中文 | | Japanese | ja | 日本語 | | Korean | ko | 한국어 | | French | fr | Français | | German | de | Deutsch | | Spanish | es | Español | | Portuguese | pt | Português | | Russian | ru | Русский |

    Language Detection Logic

    def detect_output_language(user_input, book_language=None):
        """Determine output language based on context"""
        
        # Priority order:
        # 1. Explicit language parameter
        # 2. User's message language
        # 3. Book's original language
        # 4. Default (English)
        
        if user_input.language_param:
            return user_input.language_param
        
        detected = detect_language(user_input.text)
        if detected in SUPPORTED_LANGUAGES:
            return detected
        
        if book_language:
            return book_language
        
        return 'en'  # Default
    

    Language-Specific Output Templates

    #### English Template

    ## 🔬 Axiom Analyst
    

    Core Premises

    [Atomic propositions in English]

    Underlying Assumptions

  • A1: [Assumption 1]
  • A2: [Assumption 2]
  • #### Chinese Template (Simplified)

    ## 🔬 第一性原理师
    

    核心前提

    [原子命题,中文表达]

    底层假设

  • A1: [假设 1]
  • A2: [假设 2]
  • #### Japanese Template

    ## 🔬 公理分析者
    

    核心前提

    [原子命題、日本語で]

    基礎仮定

  • A1: [仮定 1]
  • A2: [仮定 2]
  • Persona Name Localization

    | Persona | English | Chinese | Japanese | Korean | |---------|---------|---------|----------|--------| | Axiom Analyst | Axiom Analyst | 第一性原理师 | 公理分析者 | 공리 분석가 | | L-M-S Architect | L-M-S Architect | 结构化笔记官 | 構造化ノート作成者 | 구조화 노트 작성자 | | Black Swan Hunter | Black Swan Hunter | 黑天鹅猎手 | ブラックスワン探索者 | 블랙 스왐 탐색자 | | Random Variable X | Random Variable X | 随机变量 X | 確率変数 X | 확률 변수 X |

    Section Header Localization

    | Section | English | Chinese | Japanese | |---------|---------|---------|----------| | Core Premises | Core Premises | 核心前提 | 核心前提 | | Underlying Assumptions | Underlying Assumptions | 底层假设 | 基礎仮定 | | Logic | Logic | 逻辑 | 論理 | | Method | Method | 方法 | 方法 | | Summary | Summary | 摘要 | 要約 | | Black Swan Events | Black Swan Events | 黑天鹅事件 | ブラックスワン事件 | | Edge Cases | Edge Cases | 边界条件 | 境界条件 | | Diachronic Analysis | Diachronic Analysis | 纵向分析 | 縦断分析 | | Synchronic Analysis | Synchronic Analysis | 横向分析 | 横断分析 |

    Usage Examples with Language

    # English output (default)
    User: Analyze "Atomic Habits" with deep reading

    Chinese output

    User: 用深度阅读分析《原子习惯》 User: Analyze "Atomic Habits" --lang zh-CN

    Japanese output

    User: 深読みで「アトミック・ハビッツ」を分析して User: Analyze "Atomic Habits" --lang ja

    Explicit language parameter

    User: Analyze "三体" --lang en # Chinese book, English output

    Language-Aware Report Naming

    def generate_report_filename(book_name, language, date):
        """Generate language-aware filename"""
        
        lang_suffix = {
            'en': '',
            'zh-CN': '_中文',
            'zh-TW': '_繁體',
            'ja': '_日本語',
            'ko': '_한국어'
        }.get(language, '')
        
        return f"{book_name}_Deep_Analysis{lang_suffix}_{date}.md"
    


    Configuration

    Environment Variables

    DEEP_READER_REPORTS_DIR=/root/.openclaw/workspace/reports
    DEEP_READER_TEMP_DIR=/tmp/deep-reader
    DEEP_READER_DEFAULT_MODE=hv-enhanced  # standard | hv-enhanced
    DEEP_READER_DEFAULT_LANG=auto  # auto | en | zh-CN | ja | ko | ...
    

    Skill Parameters

    | Parameter | Default | Description | |-----------|---------|-------------| | mode | hv-enhanced | Analysis mode: speed | standard | hv-enhanced | | lang | auto | Output language (auto-detect if auto) | | save_report | true | Auto-save report | | random_persona_category | all | Restrict random persona pool | | quality_threshold | 70 | Minimum quality score to pass |

    Mode Comparison

    | Mode | Time | Personas | Output | Best For | |------|------|----------|--------|----------| | speed | ~30s | Axiom Analyst only | Core premises + Summary + Questions | Quick screening | | standard | ~2min | All 4 personas | Full 4-persona analysis | Deep understanding | | hv-enhanced | ~5min | All 4 + H-V | 4-persona + Horizontal-Vertical | Comprehensive research |


    Dependencies & Installation

    Core Dependencies (Auto-installed with skill)

    | Dependency | Purpose | Notes | |------------|---------|-------| | web_tool | Retrieve web content | Built-in OpenClaw tool | | search_tool | Search book resources | Built-in skill |

    File Parsing Dependencies (Optional)

    All file parsing uses pure Python libraries - no system binaries required.

    | Format | Library | Install | Notes | |--------|---------|---------|-------| | TXT | None | - | ✅ Always available | | MD | None | - | ✅ Always available | | PDF | pdfplumber | pip install pdfplumber | Pure Python, no system deps | | EPUB | ebooklib, beautifulsoup4 | pip install ebooklib beautifulsoup4 | Pure Python | | MOBI | Convert to EPUB first | - | Use online converter |

    Quick Install (for local file parsing)

    pip install pdfplumber ebooklib beautifulsoup4 lxml
    

    Or install from requirements.txt:

    pip install -r requirements.txt
    

    Dependency Check

    python3 -c "import pdfplumber; print('PDF OK')"
    python3 -c "import ebooklib; print('EPUB OK')"
    


    Usage Examples

    Example 1: Speed Reading Mode (Quick Analysis)

    User: 速读《原子习惯》
    User: Speed read "Atomic Habits"
    User: 快速阅读《三体》

    → Triggers Speed Reading Mode → Uses only Axiom Analyst persona → Output: Core premises + One-sentence summary + Key questions → Time: ~30 seconds → Saves mini-report to reports/_Speed_Read_.md

    Example 2: Book Title Only (Web Search)

    User: Analyze "Atomic Habits" with deep reading
    User: Use four-dimensional deep reading on "Tao Te Ching"
    User: 用四维深度阅读分析《漫长的旅途》

    → Triggers Method A (web search) → Retrievees metadata from Douban, Google Books, Wikipedia → Runs 4-persona analysis → Saves report to reports/_Deep_Analysis_.md

    Example 2: Local TXT File

    User: Deep read this file: /path/to/book.txt
    User: 分析这个文件:/home/user/我的书.txt

    → Triggers Method B (format parsing) → Auto-detects encoding (UTF-8/GBK/GB2312/Big5) → Runs 4-persona analysis → Saves report

    Example 3: Local Markdown File

    User: Analyze /path/to/notes.md with deep reading
    User: 深度阅读这个 Markdown:./chapter1.md

    → Triggers Method B (format parsing) → Detects ## headers as chapter markers → Runs 4-persona analysis

    Example 4: PDF File (requires pdftotext)

    User: Deep read /path/to/book.pdf
    User: 分析 PDF:./saves/ebook.pdf

    → Triggers Method B (PDF parsing) → Uses pdftotext to extract text with layout preservation → Detects chapter markers → Runs 4-persona analysis

    Example 5: EPUB File (requires ebooklib)

    User: Analyze /path/to/book.epub with four-dimensional deep reading
    User: 深度阅读 EPUB:./books/novel.epub

    → Triggers Method B (EPUB parsing) → Extracts HTML content from EPUB → Preserves chapter structure → Runs 4-persona analysis

    Example 6: Link (Direct Retrieve)

    User: Analyze this book from a public link
    User: 深度阅读这个在线电子书链接

    → Triggers Method C (Link retrieve) → Saves to workspace → Detects file type from Content-Type header → Parses and analyzes → Cleans up temp file

    Example 7: With Language Parameter

    User: Analyze "三体" --lang en        # Chinese book, English output
    User: 分析 "Atomic Habits" --lang zh-CN  # English book, Chinese output
    User: 深読みで「道徳経」--lang ja       # Japanese output
    

    Example 8: With Mode Parameter

    User: Analyze "1984" --mode speed        # Speed reading (~30s)
    User: 分析《红楼梦》--mode standard     # Standard 4-persona
    User: 深度阅读《三体》--mode hv-enhanced  # Full H-V analysis
    User: 速读《原子习惯》                    # Speed mode (trigger keyword)
    


    ✅ 质检清单 (Quality Checklist)

    报告生成后必须通过以下质检项,不合格则返工修正:

    一、角色输出完整性

    | 检查项 | 标准 | 通过条件 | |--------|------|----------| | 第一性原理师 | 800-1500字 | 包含核心前提、底层假设、书名隐喻、一句话总结 | | 结构化笔记师 | 1000-2000字 | 包含章节结构、人物网络、转折点、L-M-S | | 黑天鹅猎手 | 800-1500字 | 包含黑天鹅事件、边界条件、假设脆弱性 | | 随机变量X | 600-1000字 | 包含角色背景、独特视角、核心问题、跨界联想 |

    二、内容质量标准

    | 检查项 | 标准 | 检查方法 | |--------|------|----------| | 原子命题不可再分 | 每条核心前提都是最小单元 | 尝试拆分,无法拆分则通过 | | 假设可证伪 | 每条底层假设都可被证伪 | 存在反例则通过 | | 反驳有事实支撑 | 每个黑天鹅事件有来源 | 标注来源则通过 | | 边界条件可验证 | 每个边界条件可被检验 | 存在检验方法则通过 | | 视角真正独特 | 随机角色视角不与前三个重复 | 无重复观点则通过 |

    三、横纵分析质量(H-V模式)

    | 检查项 | 标准 | 通过条件 | |--------|------|----------| | 纵向叙事完整 | 有起源、演进、阶段划分 | 故事线完整则通过 | | 横向对比充分 | 至少对比3个同类作品 | 对比表完整则通过 | | 交汇洞察新颖 | 不是前文内容的缩写 | 有新判断则通过 |

    四、写作风格检查

    | 检查项 | 禁止 | 检查方法 | |--------|------|----------| | 无AI套话 | "首先...其次...最后"、"综上所述" | 未出现则通过 | | 无空洞词 | "赋能"、"抓手"、"打造闭环" | 未出现则通过 | | 无教科书开头 | "在当今...的时代"、"随着...的发展" | 未出现则通过 | | 无高频踩雷 | "说白了"、"意味着什么?"、"本质上" | 出现<2次则通过 |

    五、信息来源标注

    | 检查项 | 标准 | 通过条件 | |--------|------|----------| | 关键事实有来源 | 重要论断标注出处 | 有来源链接则通过 | | 暂缺信息诚实标注 | 不编造无法获取的信息 | 标注"暂缺"则通过 |

    六、输出路径检查

    | 检查项 | 标准 | 通过条件 | |--------|------|----------| | 文件保存目录 | 必须在 /root/.openclaw/workspace/reports/ | 目录正确则通过 | | 文件命名规范 | 格式:[书名]_[模式]_[日期].md | 命名规范则通过 | | 文件存在性 | 报告生成后文件必须实际存在 | 文件存在则通过 | | 文件非空 | 文件大小 > 1KB | 有内容则通过 |

    质检评分计算

    def calculate_quality_score(report):
        """计算质检总分 (0-100)"""
        
        scores = {
            "角色完整性": check_persona_completeness(report) * 25,  # max 25
            "内容质量": check_content_quality(report) * 25,  # max 25
            "横纵分析": check_hv_quality(report) * 20,  # max 20
            "写作风格": check_writing_style(report) * 15,  # max 15
            "来源标注": check_source_attribution(report) * 15  # max 15
        }
        
        total = sum(scores.values())
        return {
            "scores": scores,
            "total": total,
            "passed": total >= 70  # 70分及格
        }
    

    质检报告输出模板

    ## 📊 质检报告

    | 检查维度 | 得分 | 满分 | 状态 | |----------|------|------|------| | 角色完整性 | 23 | 25 | ✅ | | 内容质量 | 22 | 25 | ✅ | | 横纵分析 | 18 | 20 | ✅ | | 写作风格 | 14 | 15 | ✅ | | 来源标注 | 13 | 15 | ⚠️ | | 总分 | 90 | 100 | ✅ 通过 |

    改进建议

  • ⚠️ 来源标注:建议补充更多数据来源

  • 📁 报告生成检查 (Report Generation Check) - v1.7.2

    报告生成后必须确认以下内容:

    一、文件保存检查

    | 检查项 | 标准 | 通过条件 | |--------|------|----------| | 文件存在 | 报告文件已创建 | ls workspace/reports/ 存在则通过 | | 命名规范 | 格式:书名-四维深度阅读-YYYY-MM-DD.md | 符合格式则通过 | | 内容非空 | 文件大小 > 1KB | 文件不为空则通过 |

    二、仲裁者总结检查 (v1.7.2新增)

    | 检查项 | 标准 | 通过条件 | |--------|------|----------| | 核心共识存在 | 包含 ## 核心共识## 🎯 | 找到则通过 | | 分歧分析存在 | 包含 ## 分歧## ⚔️ | 找到则通过 | | 加权可信度 | 包含权重乘数说明 | 包含 BS×1.5 等则通过 | | 行动清单 | 包含 4 项检查 (Verify/Question/Apply/Avoid) | 4项齐全则通过 | | 最终评判 | 包含一句话总结 | 找到 [Final Verdict][最终评判] 则通过 |

    三、报告完整性快速检查

    # 脚本:report_check.sh
    #!/bin/bash
    REPORT_FILE="$1"

    echo "=== 报告生成检查 ==="

    1. 文件存在

    if [ -f "$REPORT_FILE" ]; then echo "✅ 文件存在: $REPORT_FILE" else echo "❌ 文件不存在: $REPORT_FILE" exit 1 fi

    2. 包含4个角色

    for role in "第一性原理师" "结构化笔记官" "黑天鹅猎手" "随机变量"; do if grep -q "$role\|Axiom\|LMS\|Black Swan" "$REPORT_FILE"; then echo "✅ 包含角色: $role" else echo "⚠️ 缺少角色: $role" fi done

    3. 包含仲裁者总结 (v1.7.2)

    if grep -q "仲裁者\|Arbiter\|核心共识\|Consensus" "$REPORT_FILE"; then echo "✅ 包含仲裁者总结" else echo "⚠️ 缺少仲裁者总结 (v1.7.2)" fi

    echo "=== 检查完成 ==="

    四、多语言适配检查

    | 语言 | 检查项 | |------|--------| | 中文 (zh) | 包含"仲裁者"、"核心共识"、"分歧" | | 英文 (en) | 包含"Arbiter"、"Consensus"、"Dissent" | | 日文 (ja) | 包含"仲裁者"、"コア"、"不合" | | 韩文 (ko) | 包含"중재자"、"합의"、"不合" |


    📈 Performance Metrics (v1.5.0)

    Data Fetching Success Rate

    | Metric | Before | After | Improvement | |--------|--------|-------|-------------| | Success Rate | ~70% | ~95% | +25% | | Avg Response Time | 3-5s | 1-2s (cached) | -60% | | Retry Coverage | 0% | 100% | +100% | | Cache Hit Rate | 0% | ~40% | +40% |

    Cache Statistics

    # 查看缓存统计
    from book_fetcher_enhanced import get_cache_stats
    stats = get_cache_stats()
    

    输出: {"total": 15, "size_mb": 0.05}


    File Format Details

    TXT File Parsing

  • Encoding Detection: UTF-8 → GBK → GB2312 → Big5 (auto-tried in order)
  • Chapter Detection: Regex patterns for common chapter markers
  • - Chinese: 第 X 章, 第 X 部分, 第 X 卷 - English: Chapter X, Part X, Section X - Numeric: 1., 1.1, etc.

    Markdown File Parsing

  • Chapter Detection: ## headers as chapter markers
  • Structure Preservation: Headers, lists, code blocks preserved
  • Encoding: UTF-8 (default), GBK fallback
  • PDF File Parsing

  • Tool: pdftotext from poppler-utils
  • Layout: Preserved with -layout flag
  • Limitation: Scanned PDFs (images) require OCR (not supported)
  • EPUB File Parsing

  • Tool: ebooklib + BeautifulSoup
  • Structure: HTML parsed, chapter titles extracted from

    /

  • Metadata: Title, author extracted from EPUB metadata
  • MOBI File Parsing

  • Tool: calibre (ebook-convert)
  • Process: MOBI → EPUB → Parse
  • Note: Calibre is large (~200MB), install only if needed

  • License

    MIT License

    Changelog

    v1.7.5 (2026-05-06)

  • 新增标准模式全书内容简介输出
  • 新增质检输出路径检查
  • v1.7.4 (2026-05-06)

  • 新增自动搜索书评和书籍详细信息
  • v1.7.3 (2026-05-03)

  • 新增速读模式,30秒快速分析
  • v1.7.2 (2026-05-02)

  • 新增仲裁者总结模块
  • v1.7.1 (2026-04-30)

  • 新增多语言用户引导
  • v1.7.0 (2026-04-28)

  • 新增多语言并行处理支持
  • v1.6.0 (2026-04-28)

  • 新增并行角色处理,速度提升75%
  • v1.5.0 (2026-04-27)

  • 新增多源数据获取优化
  • v1.4.4 (2026-04-27)

  • 移除subprocess,仅保留纯Python
  • v1.2.0 (2026-04-26)

  • 新增完整文件解析文档
  • v1.1.0 (2026-04-26)

  • 新增多语言输出支持
  • v1.0.0 (2026-04-26)

  • 初始版本发布
  • ⚙️ Configuration

    Environment Variables

    DEEP_READER_REPORTS_DIR=/root/.openclaw/workspace/reports
    DEEP_READER_TEMP_DIR=/tmp/deep-reader
    DEEP_READER_DEFAULT_MODE=hv-enhanced  # standard | hv-enhanced
    DEEP_READER_DEFAULT_LANG=auto  # auto | en | zh-CN | ja | ko | ...
    

    Skill Parameters

    | Parameter | Default | Description | |-----------|---------|-------------| | mode | hv-enhanced | Analysis mode: speed | standard | hv-enhanced | | lang | auto | Output language (auto-detect if auto) | | save_report | true | Auto-save report | | random_persona_category | all | Restrict random persona pool | | quality_threshold | 70 | Minimum quality score to pass |

    Mode Comparison

    | Mode | Time | Personas | Output | Best For | |------|------|----------|--------|----------| | speed | ~30s | Axiom Analyst only | Core premises + Summary + Questions | Quick screening | | standard | ~2min | All 4 personas | Full 4-persona analysis | Deep understanding | | hv-enhanced | ~5min | All 4 + H-V | 4-persona + Horizontal-Vertical | Comprehensive research |