问题驱动精读
什么时候用
你有一本书/一篇文章 + 一个具体的现实问题,想从书里找到能用的解决方案。不要自己读完——把问题给 AI,只读有用的部分。
举个例子:你最近在做电商运营,用户转化率一直上不去。有朋友推荐了《影响力》这本书。不用读完 300 页,告诉 AI "我想提高转化率,帮我从《影响力》里找方法"。
能力边界
| ✅ 适合 | ❌ 不适合 |
|---|---|
| 有具体问题,想从书里找答案 | 纯摘要/读书笔记、翻译、书评、全书大纲 |
| 粘贴文本 / 网页链接 / EPUB / PDF | 泛读、通读全书 |
| 中文、英文书籍或文章 | 扫描版 PDF(无文字层,需先 OCR) |
| 单文件 ≤ 50MB(更大请分段或只发相关章节) | 需要实时数据的场景 |
> 高风险领域:问题涉及心理/医疗/法律/投资等,本技能只做「书中观点整理」,不给「你应该……」式行动建议(见 Phase 0 敏感领域检查)。
不确定这个技能适不适合你的情况?先看 references/faq.md。
核心原则
- 跳过的是价值,不是偷懒。 告诉用户哪些不必读,比告诉他所有内容更重要。跳过的章节附一句话理由。
- 三栏是基本单位。 书里说 | 对应你 | 行动,缺一不可。
- 引文必须真实可验证。 "因为第X章说……所以你应该……",且任何"书里说"必须能在提取文本中逐字匹配;匹配不上就换一句或如实说明,绝不编造。
- 宁可如实说少,绝不凑数。 内容不足就明说,不注水、不重复、不编造。
- 任何报错必须包含「原因 + 修改方法」。 不能只报错不指路。
- 拿不准就先问(仅限 Phase 0 的明确场景)。 问题太泛、输入看不懂、有歧义时,先确认再继续。
- 输出语言跟随用户的交流语言。
关键规则速查
| 规则 | 值 |
|---|---|
| 粘贴有效正文下限 | ≥300(中文按字符、英文按单词) |
| 乱码判定 | 可疑字符占比 >5%,或命中乱码特征串 |
| 链接重试 | 失败重试 1 次,仍失败按模板报错 |
| 链接有效正文下限 | <100 判定为"能打开但无内容" |
| 章节收录 | ≥500 收录,>1500 才算有效章节 |
| HIGH 上限 | 最多 3-4 章,超出降为 MEDIUM 并注明 |
| 零相关出口 | HIGH=0 → 停止,如实说明 + 给最接近内容 |
| 兜底 | 任何失败 → 「原因 + 修改方法」+ 换输入方式 |
工作流总览
| Phase | 做什么 | 关键产出 |
|---|---|---|
| 0 | 确认问题 | 一个足够具体的问题 |
| 1 | 获取并提取文本 | 落盘后的干净全文 |
| 2 | 扫描内容,按问题分类 | 章节分类表(HIGH/MEDIUM/SKIP) |
| 3 | 深度分析 | 每章三栏分析 + 开头3条要点 |
| 4 | 综合行动手册 | 本周/本月/本季行动表(含验证方式) |
| 5 | 输出文件 | <书名>-<问题关键词>-精读手册.md + 对话内完整呈现 |
Phase 0: 确认问题
目的:把模糊诉求收敛成一个可执行的具体问题。这一步做不好,后面全白做。
三要素放行规则
用户的描述只要齐备以下三要素就直接放行,不要机械追问:
① 场景(在做什么工作/处于什么情境)② 具体问题(遇到了什么麻烦)③ 诉求(想得到什么)。
- 齐备(如"我在做电商详情页,转化率只有 0.8%,想提升")→ 确认后进入 Phase 1。
- 缺要素 → 按「原因 + 修改方法」追问,模板见
references/error-handling.md。
追问示例(先共情,再问)
> 我理解你的情况:{一句话复述用户的困境}。
> 只差一个信息:{缺失要素}。比如:冲突通常发生在哪个环节(需求评审/开发中/验收)?
> 你可以先发书/链接,我边提取边等你补充。
敏感领域检查
问题涉及心理/医疗/法律/投资等高风险领域时:
> 这本书只能作为知识参考,不能替代专业诊断或咨询(原因)。
> 我会把书中相关内容整理给你看,但不会给"你应该……"式的行动建议;重大决策请咨询专业人士。
此时输出降级为「书中观点整理」,不用行动建议句式。
其他确认
- 同时给了多本书/混合材料 → 先问以哪本为主,分类表加"来源"列。
- 用户没说书名/材料 → 提示必须先提供。
Phase 1: 获取并提取文本
> 第 0 步(必做):读取 references/error-handling.md,取得全部提取脚本与错误模板。若读取失败(平台不支持 references),跳过脚本检测,直接引导用户换输入方式(粘贴)。
定位输入
- 判断输入类型(扩展名/附件):
.txt→ 按 A 处理;.html/.htm→ 按 B 处理;.epub→ C;.pdf→ D;.docx/.mobi等 → 提示"请转成 EPUB/PDF 或直接粘贴文字";无法判断 → 问用户。 - 文件类输入先定位实际路径:优先读消息中的文件路径字段;找不到时检查平台约定的上传目录;仍找不到 → 按"找不到文件"模板处理。
处理路径
| 方式 | 说明 | 关键限制 |
|---|---|---|
| A. 粘贴文本 | 先做文本清洗(去页眉页脚/广告/纯数字重复行),再检查有效正文 | 有效正文 ≥300;乱码检测 |
| B. 网页链接 | 用 web_fetch/browser 抓取 | 失败重试 1 次;有效正文 <100 换方式;无抓取工具 → 直接引导粘贴 |
| C. EPUB | 纯 Python 提取并落盘全文(跨平台) | 有效章节 ≥1;单次 ≤200 个文件 |
| D. PDF | pymupdf 优先、pypdf 备选,全文落盘 .txt | 扫描版无法提取 |
统一兜底:任一方式失败且无法修复 → 按错误手册模板明确告知「原因 + 修改方法」,并提供备选输入方式(粘贴 / 链接 / 文件互换)。
数据衔接(防编造引文,关键)
- 提取脚本会把每章全文写入
_extracted/目录并打印FILE:路径。 - Phase 2 用这些文件做粗分类(只采样);Phase 3 精读时必须用 read_file 读取该章完整文本后再摘录。
- 任何"书里说"必须能在提取文本中逐字匹配。
文件大小:单文件建议 ≤50MB。500+ 页的书可以只发相关章节或分段处理。
Phase 2: 扫描内容,按问题分类
计数单位:中文按字符计,英文按单词计("2000 字"对英文书 ≈ 600 词 ≈ 4000 字符)。
分类方法(比"只看开头"更稳)
对每个候选单元(章节/主题块):
1. 先看章节标题/首段是否命中问题关键词 → 直接判断相关度。
2. 再对头、中、尾三段各取约 500 字采样判断,避免"开头是轶事/引言导致误判"。
3. 全书只有一个内容文件(章节颗粒度异常)时,按正文中的标题样式(h1/h2)切分逻辑单元再分类。
- 🔴 HIGH — 直接回答用户问题 → 精读(最多 3-4 章,超出降为 MEDIUM 并注明理由)
- 🟡 MEDIUM — 相关但非直接 → 速读(首尾+关键段落),输出 1-2 行摘要
- ⚪ SKIP — 无关 → 跳过,附一句话理由
无章节的文章/公众号长文:按空行分隔的段落组划分主题块,每个块起个名字再分类。
分类表(固定格式)
| 章节 | 相关度 | 理由 |
|---|---|---|
分类结束后检查分类结果:
- HIGH = 0 → 停止精读,如实告诉用户:"这本书没有直接回答你的问题。最接近的是第X章(简述),但它主要讲……。建议:① 换一本书 ② 换输入来源 ③ 告诉我更具体的问题,我重新扫描。"(绝不硬凑相关度)
- 输出末尾加一行:"建议只精读:第X、Y章。"
Phase 3: 深度分析
输出前置(先给结论,再给分析)
先输出"先给你 3 条最重要的行动"(一句话一条),再逐章分析,避免用户读不完。
背景闸门
若用户在 Phase 0 提供的个人情况不足 3 句(场景/现状/约束),先按 error-handling.md 模板补问 2-3 个背景问题再输出——否则"对应你"一栏只能靠猜。
每章分析
对 HIGH 章节:先用 read_file 读取该章完整文本,再输出紧凑列表式分析:
📖 书里说:(原文摘录,≤1 句,必须在提取文本中逐字匹配)
👤 对应你:(你的情况)
✅ 行动:(因为第X章……所以你应该……,具体可操作)
每章 1-8 行。可用内容不足 1 行时,如实输出"本章与你的问题相关的内容只有以下 1 条……",绝不凑行数。MEDIUM 章节:同样格式,只给 1-2 行。
练习型/工具型书(每章带练习)时,额外输出一行:📝 书里练习:(该书自带的练习/工具,直接可用)。
Phase 4: 综合行动手册
提炼跨章节行动,附验证方式(用户需要知道怎么判断有效):
| 时间 | 行动 | 来源 | 怎么知道有效 |
|---|---|---|---|
| 🔥 本周 | (立即可以做的行动) | 第X章 | 两周内观察…… |
| 📅 本月 | (安排起来的工作) | 第X、Y章 | …… |
| 🎯 本季度 | (长期规划的行动) | 第Z章 | …… |
每个行动必须引用原文章节来源。
Phase 5: 输出文件
文件名
<书名>-<问题关键词>-精读手册.md
- 书名:用户口述的书名,或文件原标题;写入前把非法字符(\ / : * ? " < > |)替换为 -。
- 关键词:Phase 0 确认后问题摘要的核心词,≤6 字。
写入前
同名文件已存在 → 询问用户(覆盖 / 改名 / 追加时间戳),或默认追加 -v2。
双通道交付(重要)
- 对话内:完整呈现分类表、三栏分析、行动手册——用户可能看不到文件系统。
- 文件:告知绝对路径;无法写文件(沙箱/无权限)时,完整内容输出到对话并说明。
收尾(固定段落)
> 本手册怎么用:先做「本周」里的 1-2 条,按"怎么知道有效"列观察。
> 两周后带着结果回来,我帮你复盘哪些有效、哪些要调整。
用户上下文
按此顺序判断用哪种:
- 用户主动给了路径("我的情况在 ~/xxx/ 里")→ 用 read_file + search_files 读取;读取失败或为空 → "找不到 ~/xxx/,请确认路径,或直接把相关背景贴给我。"
- 用户提及记忆("记得我之前……"/"查我的记录")且有 memory 工具 → 查询已有记忆;无 memory 工具 → 跳过,按无知识库处理。
- 否则 → 默认无知识库,用户在 Phase 0 直接告诉 AI 自己的情况。
不要假设用户有知识库,默认当没有处理。
Phase 5 时,若有用户上下文信息(文件库/记忆/对话中补充的背景),必附在手册末尾作为附录。
参考资料
| 文件 | 内容 | 何时读 |
|---|---|---|
references/error-handling.md |
提取脚本、错误消息模板、重试/降级策略、依赖清单、附加场景 | Phase 1 第 0 步必读;任何报错时查阅 |
references/faq.md |
常见问题解答 | 触发犹豫、边界不清时 |
references/example.md |
完整案例演示(Phase 0-5 全程) | 不确定输出长什么样时 |