Files
llm_wiki/wiki/ReadingClub.md

206 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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]]