Read-Box

一个开源的桌面端 AI 读书助手,把电子书扔进去就能自动提炼章节摘要、跟它对话问书里内容、还能出题考你,背后由三个 AI Agent 协作完成。

简介

Read-Box 是产品经理王耑用三周做出的桌面端 AI 读书助手。它的能力可以概括为三件事:导入电子书后自动逐章提炼摘要和关键概念、基于书籍内容进行问答、根据书籍内容出题并评判——分别由提炼 Agent、问答 Agent、陪练 Agent 三个 AI Agent 承担。

与云端读书 App 不同,Read-Box 是一个完整的本地桌面应用(Vue 3 + Tauri 前端壳 + FastAPI 后端 + SQLite 存储),并支持用户在界面上配置多种模型(DeepSeek、Ollama 等)。它的最终统计是:79 个源码文件、8500 行代码、29 个单元测试、3 周开发周期、36MB 安装包,外加 1 个 Claude Code / Codex 可用的 Skill。项目已开源在 github.com/wenhui426/read-box。

Read-Box 的价值不只在产品本身,更在于它作为一个”架构决策教材”——作者把开发过程中每一个”选 A 还是选 B”的瞬间复盘出来,用来说明 AI 时代的产品经理为什么必须理解技术权衡。

关键信息

  • 类型:产品 / 工具(桌面端 AI 读书助手)
  • 领域:AI 应用 / 个人知识管理 / 阅读工具
  • 技术栈:Vue 3 + Tauri(前端)、FastAPI(API 路由)、SQLite(存储)、PyInstaller(打包)
  • 开源地址:github.com/wenhui426/read-box
  • 规模:79 个源码文件 / 8500 行代码 / 29 个单元测试 / 3 周 / 36MB 安装包 / 1 个 Skill
  • 相关概念多Agent架构LLM Provider 抽象层Spec Kit本地化AI阅读助手

核心特性

三个协作 Agent

  • 提炼 Agent:逐章生成摘要、关键概念、金句
  • 问答 Agent:基于书籍内容回答用户问题
  • 陪练 Agent:根据书籍内容出题、评判用户回答

三个 Agent 不直接互相调用,而是通过共享存储层(同一个 SQLite)交换数据,彼此互不感知。问答和陪练还共享同一个上下文管理器(都涉及当前书籍、章节、历史消息等对话状态),保证切换书籍时状态同步、进度一致、历史完整。

四层架构

前端展示层:Vue 3 + Tauri 桌面壳
  ↓ HTTP / SSE
API 路由层:FastAPI(接收请求 → 调度 Agent)
  ↓
Agent 层:提炼 Agent / 问答 Agent / 陪练 Agent
  ↓
存储层:SQLite(书籍数据 / Agent 产出 / 用户配置)

LLM 不属于任何一层,而是 Agent 层的”基础设施”——三个 Agent 都通过统一的 LLM Provider 抽象层 调用模型。

提炼到 Skill 的能力封装

项目完成后,作者把 Read-Box 的核心能力(解析书籍 → 提炼 → 问答 → 陪练)提炼成一个 Claude Code / Codex 可用的 Skill,统一入口命令 /read-book 加上几个解析脚本和测试用例。理由是”项目的价值和项目的形态是两回事”——桌面 App 的核心能力同样可以在命令行里跑,Skill 让能力脱离了桌面 App 的束缚。

不同素材中的观点

  • 2026-07-09-woshipm-pm-architecture-decisions-read-box:作者王耑把 Read-Box 当作一份”架构决策实录”来复盘。他认为让自己收获最大的不是写了多少代码,而是那些架构选择的瞬间:为什么选共享存储层(让 Agent 互不感知,加需求不用改已有代码)、为什么把 LLM 抽成独立一层(未来会变、变了要改多处的东西就该抽象)、配置为什么迭代三次(存储位置和读取时机必须一致)。他还指出整个项目最难的不是 AI,而是用 PyInstaller 把 Python 后端打包进桌面应用,非功能性的”坑”占了 30-40% 的时间。核心主张:AI 时代产品经理要能理解架构决策背后的 trade-off,才能和工程师说同一种语言。

实用信息

  • 产品能力:导入电子书 → 自动逐章提炼摘要/概念/金句 → 对话问答 → 出题陪练
  • 模型配置:支持在界面上配置 DeepSeek、Ollama 等多种模型,配置存 SQLite,路由层在请求时读取并注入 Agent
  • 开源与复用:源码在 github.com/wenhui426/read-box,欢迎 star/fork/PR;核心能力也已封装为 /read-book Skill 供 Claude Code / Codex 使用
  • 踩坑提示:打包用 --onedir 而非 --onefile(后者解压临时目录后 sys.path 路径不对);pnpm 11 构建失败在 pnpm-workspace.yaml 里配置;Axios 超时默认 5 秒太短,LLM 调用要设 10-30 秒

相关页面