--- categories: - '[[LLM Wiki]]' tags: - wiki - tool - reading-club - multi-agent - opencode created: 2026-04-28 source: '[[reading-club skill]]' type: tool aliases: - 阅读俱乐部 - 多智能体阅读 - Reading Club --- # ReadingClub — 多智能体阅读协作工具 > **一句话定义**:三个 AI Agent(摘要者、批评者、提问者)与人类读者进行多轮对话,深入讨论书籍章节内容,最终生成 LLM Wiki 讨论记录页面。 ## 基本信息 | 属性 | 值 | | ------| -----| | 类型 | opencode Skill | | 位置 | `.agents/skills/reading-club/SKILL.md` | | 版本 | v2(人类主位设计) | | 依赖 | opencode + task dispatch + build subagent | | 输出 | `wiki/` 目录下的 Markdown 页面 | ## 核心理念 **人类是主角,Agent 是对话伙伴。** 传统 AI 阅读工具让 AI 做主分析师,人类只能旁观。ReadingClub v2 颠覆了这个模式: - 每一轮都从**人类的第一反应**开始 - Agent 直接用"你"称呼人类读者 - Agent 必须回应人类的具体观点,不能泛泛而谈 - 每次发言以一个**真诚的问题**结尾,邀请人类继续思考 ## 三个 Agent 角色 | 角色 | 认知偏见 | 思维方式 | 输出特征 | |------|----------|----------|----------| | **摘要者 Summarizer** | 同化偏见 — 在混乱中找秩序 | 结构化思维,梳理核心逻辑 | 核心论点、论证结构、隐含假设 | | **批评者 Critic** | 对抗性偏见 — 找缺陷和逻辑漏洞 | 批判性思维,质疑一切 | 质疑点、反向思考、被忽略的矛盾 | | **提问者 Questioner** | 好奇偏见 — 追问未回答的问题 | 苏格拉底式追问 | 深度追问、跨领域联想、开放性问题 | > [!tip] 角色设计原则 > 每个角色都编码了刻意设计的认知偏见。这不是缺陷,而是特性 — 让 Agent 的视角鲜明而互补,避免三个 Agent 说出一样的话。 ## 讨论流程 ```mermaid graph TD A[INIT: 验证输入] --> B[HUMAN_FIRST_READ: 展示开头] B --> C{人类第一反应} C --> D[SEED_ROUND: 3 Agent 并行回应] D --> E[PRESENT_SEED: 对话式展示] E --> F{人类发言} F -->|观点/提问/反驳| G[Agent 回应] F -->|pass/跳过| H[Agent 自行讨论] F -->|停止| I[SYNTHESIS: 编译 Wiki] G --> F H --> F I --> J[写入 wiki 页面] J --> K[更新 index + log] ``` ### 阶段说明 | 阶段 | 说明 | 人类角色 | |------|------|----------| | **INIT** | 验证书籍和章节路径 | 选择书籍和章节 | | **HUMAN_FIRST_READ** | 展示章节开头 3-5 句 | **必须发言** — 说出第一反应 | | **SEED_ROUND** | 3 Agent 并行回应人类 | 静听 | | **PRESENT_SEED** | 对话式展示 3 个视角 | 选择回应方向 | | **CONVERSATION_LOOP** | 每轮 = 人类 → Agent | **主动参与** — 可以反驳、追问、换角度 | | **SYNTHESIS** | 编译为 Wiki 页面 | 审阅 | | **DONE** | 写入 wiki/ 目录 | 完成 | ## 四种讨论模式 | 模式 | 轮次 | Agent 回应长度 | 适合场景 | |------|------|---------------|----------| | `browse` | 4 轮 | 短(100-200字) | 快速浏览,获取概要 | | `balanced` | 8 轮 | 中(200-400字) | 标准讨论,平衡深度与效率 | | `deep` | 14 轮 | 长(300-600字) | 深度分析,批判性思考 | | `human-led` | 无上限 | 视情况 | 人类完全主导,说停才停 | ## 人类交互指令 在讨论中,你可以使用以下方式参与(自然语言即可): | 意图 | 示例 | 效果 | |------|------|------| | 分享想法 | "我觉得这段其实是在说…" | Agent 回应你的具体观点 | | 提问 | "为什么作者要这样写?" | 最合适的 Agent 回答 | | 反驳 | "我不同意 Critic 的看法" | 与指定 Agent 辩论 | | 追问 | "追问:一方水土养一方人" | 聚焦该话题深入 | | 换角度 | "能不能从反面想想?" | Agent 从对立视角分析 | | 跳过 | "pass" / "跳过" | 让 Agent 继续讨论 | | 继续 | "继续" | Agent 继续上一话题 | | 结束 | "停止" / "stop" | 结束讨论,生成 Wiki | ## 如何启动 ### 方式 1:使用触发词 在 opencode 对话中输入: ``` /reading-club book_path="raw/《大国大民》王志纲" chapter="《大国大民》第一章-我是怎么读中国的.md" ``` ### 方式 2:自然语言 ``` 我想用阅读俱乐部讨论《呼吸之间》的调息章节 ``` ### 方式 3:指定模式 ``` /reading-club book_path="raw/呼吸之间_李谨伯" chapter="调息.md" mode="deep" ``` ## 可用书籍 当前 `raw/` 目录中已转换的书籍: | 书籍 | 路径 | 章节数 | |------|------|--------| | 《呼吸之间》李谨伯 | `raw/呼吸之间_李谨伯/` | 20+ | | 《大国大民》王志纲 | `raw/《大国大民》王志纲/` | 15+ | ## 输出示例 讨论结束后自动生成 wiki 页面,包含: 1. **读者的第一反应** — 原始记录 2. **初始回应** — 3 个 Agent 的第一轮分析 3. **深入讨论** — 后续轮次的对话记录 4. **人类思考轨迹** — 追踪人类观点如何演化 5. **Agent 共识与分歧** — Agent 们在哪里一致、在哪里分歧 6. **讨论总结** — 关键洞见和未决问题 ## 设计决策记录 ### 为什么人类必须先发言? v1 中 Agent 先发言导致人类变成旁观者。人类的第一反应往往是最真实的 — 它不受 Agent 分析框架的影响,保留了直觉的锐利。Agent 的任务是回应和深化这个直觉,而不是替代它。 ### 为什么给 Agent 编码认知偏见? 没有偏见的 Agent 会输出 bland、中庸的分析。编码认知偏见(同化、对抗、好奇)让每个 Agent 有鲜明的视角,产生真正的思想碰撞。 ### 为什么不用 === 标记格式? v1 使用 `===摘要=== / ===核心主张=== / ===END===` 刚性格式。v2 改为自然段落,因为: - Agent 表达更自由、更自然 - 读者体验更像真实对话 - 减少格式解析的脆弱性 ## 技术架构 | 组件 | 实现 | |------|------| | 编排器 | Sisyphus(主编排 Agent) | | 角色区分 | Prompt engineering(同一 build subagent,不同 prompt) | | 并行调度 | SEED_ROUND 3 个 Agent 并行 `run_in_background=true` | | 顺序调度 | CONVERSATION_LOOP 每轮 1 个 Agent 同步 `run_in_background=false` | | 上下文管理 | 3 层分层:最近 3 轮完整 + 更早压缩 + 章节首轮后仅引用路径 | | 输出格式 | LLM Wiki 规范(AGENTS.md frontmatter) | ## 限制与未来扩展 **当前限制**: - 仅支持单章节讨论 - 仅支持一个人类读者 - 章节内容需已在 `raw/` 目录中 **未来扩展**: - 跨章节讨论 - 多本书对比 - 自定义 Agent 角色 - 多人阅读俱乐部 ## 相关页面 - [[LLM Wiki]] — Wiki 模式定义 - [[AGENTS.md]] — 仓库操作规范 - [[Obsidian-skills]] — Obsidian Skill 生态 - [[epub-to-markdown]] — EPUB 转换工具(准备书籍内容) ## 来源 > **溯源规则**:所有数字/百分比/具体结论必须标注 `[raw:{文件名}:{行号}]` 格式。 - [[reading-club skill]]