用SOLO做了一个帮我读书的“AI书童”

我用 SOLO 造了一个"AI书童"——让 AI 帮我读懂书籍的文本内核,方便我调用书籍的知识内容。

背景
我是一名业务员,日常兴趣是读书和运动。但最近几年,因为工作太忙,没有时间去读书。因为读书需要花费大量的时间。有时在出差路上或晚上读书时,也无法静下心,思考书籍的内核思想。

摘要
我用 TRAE SOLO 从零搭建了 一个WEB应用,帮我总结书籍的内核思想,帮我梳理书籍的内容框架,甚至帮我将书中的知识,迁移应用到日常的工作与生活中。还期望它能一键生成视觉卡片,方便我分享出去。
当然,最后实现出来的效果,只达到我想法的30-50%。不过这个过程,让我看到了完美实现的希望。
我自己复盘后,发现是可能自己把AI书童系统定义的过于复杂,导致一些功能,没办法实现。
接下来准备重来一次或再来多次。争取5月份搞定。

实践过程

1、任务拆解:
先拆解了自己的需求:泛读、精读、总结、应用

2、搜集信息,搭建AI阅读的工具框架。
从网络找了大概30多种阅读技能(满足泛读、精读、总结与应用需求),整理成MD文件。

3、把相关指令发送给TRAE SOLO

又经过几轮的对话沟通。

SOLO搭建了一个项目文档:

ai-book-assistant/
├── public/
│ └── templates/ # 视觉卡片模板
├── src/
│ ├── assets/ # 静态资源
│ │ └── icons/
│ ├── components/ # React组件
│ │ ├── ui/ # 基础UI组件
│ │ │ ├── Button.tsx
│ │ │ ├── Card.tsx
│ │ │ ├── Modal.tsx
│ │ │ └── …
│ │ ├── layout/ # 布局组件
│ │ │ ├── Header.tsx
│ │ │ ├── Sidebar.tsx
│ │ │ └── MainLayout.tsx
│ │ ├── reading/ # 阅读模块组件
│ │ │ ├── BookUploader.tsx
│ │ │ ├── PREMProgress.tsx
│ │ │ ├── MicroSkillSelector.tsx
│ │ │ └── …
│ │ ├── notes/ # 笔记模块组件
│ │ │ ├── NoteEditor.tsx
│ │ │ ├── NoteList.tsx
│ │ │ └── …
│ │ └── cards/ # 视觉卡片组件
│ │ ├── CardGenerator.tsx
│ │ ├── CardTemplates.tsx
│ │ └── …
│ ├── features/ # 功能模块(按领域划分)
│ │ ├── books/ # 书籍管理
│ │ ├── reading/ # 阅读流程
│ │ ├── notes/ # 笔记系统
│ │ └── skills/ # 微技能管理
│ ├── hooks/ # 自定义React Hooks
│ │ ├── useReadingFlow.ts
│ │ ├── useAIModel.ts
│ │ ├── useNoteStorage.ts
│ │ └── …
│ ├── services/ # 业务服务
│ │ ├── ai/ # AI模型服务
│ │ │ ├── deepseek.ts
│ │ │ ├── kimi.ts
│ │ │ └── glm.ts
│ │ ├── reading/ # 阅读流程服务
│ │ ├── notes/ # 笔记服务
│ │ └── cards/ # 卡片生成服务
│ ├── store/ # 状态管理(Zustand)
│ │ ├── readingStore.ts
│ │ ├── noteStore.ts
│ │ └── settingsStore.ts
│ ├── lib/ # 工具库
│ │ ├── ai-adapter.ts # AI模型统一适配器
│ │ ├── storage.ts # IndexedDB封装
│ │ └── card-renderer.tsx # 卡片渲染引擎
│ ├── data/ # 静态数据
│ │ ├── reading-skills/ # 阅读微技能库(JSON)
│ │ │ ├── index.json
│ │ │ ├── prepare.json # P阶段
│ │ │ ├── read.json # R阶段
│ │ │ ├── explore.json # E阶段
│ │ │ ├── analyze.json # A阶段
│ │ │ └── migrate.json # M阶段
│ │ └── card-templates/ # 卡片模板
│ ├── types/ # TypeScript类型定义
│ │ ├── reading.ts
│ │ ├── note.ts
│ │ └── skill.ts
│ ├── App.tsx
│ ├── main.tsx
│ └── index.css
├── package.json
├── vite.config.ts
├── tailwind.config.js
└── tsconfig.json

还包括——阅读技能、视觉卡片层……等等

┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 读书笔记 │ → │ 模板选择 │ → │ Canvas渲染 │
│ (结构化) │ │ (预设模板) │ │ (HTML/CSS) │
└──────────────┘ └──────────────┘ └──────────────┘


┌──────────────┐
│ PNG图片 │
│ (可分享) │
└──────────────┘

ai-book-assistant/
├── src/
│ ├── components/
│ │ ├── cards/CardGenerator.tsx # 视觉卡片生成器(5种简约模板)
│ │ ├── layout/Header.tsx # 顶部导航(含PREM进度指示)
│ │ ├── reading/
│ │ │ ├── BookUploader.tsx # 书籍上传组件
│ │ │ ├── MicroSkillSelector.tsx # 微技能选择器
│ │ │ ├── PREMProgress.tsx # 阅读进度条
│ │ │ └── ReadingPhase.tsx # 各阶段阅读分析
│ │ └── ui/SettingsModal.tsx # AI模型设置
│ ├── data/reading-skills/ # 40+阅读微技能配置
│ ├── services/
│ │ ├── ai/aiService.ts # DeepSeek/Kimi适配器
│ │ └── storage.ts # IndexedDB本地存储
│ ├── store/index.ts # Zustand状态管理
│ └── types/index.ts # TypeScript类型定义
├── package.json
├── tailwind.config.js
├── vite.config.ts
└── start.bat # 启动脚本

整个过程,我基本上就是“点确认”+“回答问题”。

最终SOLO确认了所有的功能项目

生成了WEB页面

最后,说说现存的问题:

1、对话输出的结果,过于笼统(不够智能),但我没有时间去测试,不一定是大模型的问题,可能 是我的需求不明确。

2、视觉卡片有点鸡肋,下一轮我打算把这个功能取消掉。集中精力解决“精读+迁移”这两个核心需求。

’少爷‘有福了