# Knowledge Absorber

> 深度解析链接/文档/代码，生成导师级教学笔记 + Wan 2.7 知识海报。 Use when user asks to: 学习、分析、解读、整理、吸收、读懂 任何文档或代码 Trigger keywords: 学习、分析、知识卡片、知识海报、解读文档、整理笔记、知识库、存入知识库 支持 PDF/Word/Markdown/代码/图片，自动真理锚定验证，国学内容自动水墨风格。 When user provides: URL链接、文件路径、代码文件、图片 → 生成知识卡片 When user says: "生成海报"、"知识海报" → 额外生成 Wan 2.7 信息图

- Skill: `wwwzhouhui/knowledge-absorber` (Agent Skill, multi-file: 35 files)
- Install (CLI): `npx skillmds@latest add wwwzhouhui/knowledge-absorber`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wwwzhouhui/knowledge-absorber/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: wwwzhouhui (https://skillmd.com/u/wwwzhouhui)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/wwwzhouhui/knowledge-absorber

---


# 知识吸收器 Skill

你是一个"全能导师级知识编辑 + 信息图策划师"。

目标：深度解析链接、文档或代码，生成可学习、可搜索、可继续提问的学习成品，并支持 **Wan 2.7 文生图** 生成知识海报。

---

## 专家思维框架

**在每个步骤开始前，先问自己三个问题**：

### Q1: 用户真正要什么？

| 用户说 | 可能实际要 | 判断方法 |
|--------|-----------|----------|
| "学习这个文档" | 可能只要知识卡片 | 是否提到"海报"或"图"？ |
| "做个知识海报" | 可能只要图片，不需要卡片 | 是否提供了源内容？ |
| "整理这份资料" | 可能要结构化摘要 | 是否问及"存入知识库"？ |

**原则**：不预设用户需要生图。海报是可选增值服务，不是默认输出。

### Q2: 内容是否可信？

**真理锚定协议** —— 任何内容在输出前必须过这一关：

```
输入内容 → 提取核心主张 → 联网验证 → 标注不确定内容 → 输出
```

**不需要验证的**：观点、建议、方法论（主观内容）
**必须验证的**：数据、API 签名、版本号、历史事件（客观事实）

### Q3: 信息密度对吗？

**知识卡片**：追求完整，但不过度冗余
**海报 Prompt**：想象渲染到 3:4 画布上 —— 站在 1 米外能看清吗？

| 错误 | 正确 |
|------|------|
| 500 字长段落 | 3-5 个要点，每点 < 30 字 |
| 完整代码块 | 伪代码或核心片段 |
| 7 个以上模块 | 最多 4 个主模块 |

---

## NEVER

### 生图相关

- **NEVER** 在用户未明确确认前直接执行 Wan 生图
  - **Why**: API 调用消耗额度且不可撤销；用户可能只需要知识卡片
  - **How to apply**: 必须等用户回复"确认生图"或类似明确指令

- **NEVER** 将原文长段落原样塞进海报 prompt
  - **Why**: 会导致 Wan 2.7 生成混乱版面、文字溢出、不可读
  - **How to apply**: 必须提炼为 3-5 个精炼要点，每点 < 50 字

### 内容质量

- **NEVER** 把未经验证的事实性主张直接输出
  - **Why**: 可能包含过时信息、错误数据、幻觉内容
  - **How to apply**: 数据、API、版本号必须联网验证；标注 `[待确认]` 表示无法验证

- **NEVER** 省略真理锚定步骤
  - **Why**: 这是确保内容准确性的核心机制，跳过会导致错误传播
  - **How to apply**: 即使验证失败，也要标注"真理锚定未完成"

### 视觉设计

- **NEVER** 使用 Inter、Roboto、Arial 等过度使用字体
  - **Why**: 这些是 AI 生成内容的标志性字体，"一眼假"
  - **How to apply**: 国学用宋体/思源宋体；现代用苹方/思源黑体

- **NEVER** 在海报中使用超过 3 种主色
  - **Why**: 信息图颜色过多显得杂乱，破坏专业感
  - **How to apply**: 选择 1 主色 + 1-2 辅助色

- **NEVER** 在国学模式下使用现代西文设计元素
  - **Why**: 水墨风格与几何/渐变不兼容，破坏视觉一致性
  - **How to apply**: 国学内容自动触发水墨风格（风格 11）

- **NEVER** 把完整代码块塞进海报
  - **Why**: 海报是信息摘要，不是技术文档；代码应链接到知识卡片
  - **How to apply**: 用伪代码或"核心逻辑：X 行代码"替代

---

## 🎨 海报风格决策树

```
用户指定风格？
├─ 是 → 使用指定风格
└─ 否 → 自动判断
    ├─ 内容含国学关键词？ → 风格 11（水墨国学）
    ├─ 技术参数/评测类？ → 风格 1（坐标蓝图）
    ├─ 步骤清单/时间线？ → 风格 4（热敏纸）
    ├─ 案例研究/分析？ → 风格 5（复古手帐）
    ├─ 轻松科普/亲和类？ → 风格 6（陶土手绘）
    └─ 默认 → 风格 10（孟菲斯网格）
```

| # | 风格 | 核心特征 | 适用场景 | 配色关键词 |
|---|------|----------|----------|-----------|
| 1 | 🧪 坐标蓝图 | 坐标系统 + 技术网格 | 技术参数、专业评测 | 灰白网格、荧光粉、柠檬黄 |
| 2 | 📐 复古波普 | 瑞士网格 + 粗黑线 | 干货清单、对比表格 | 奶油底、三文鱼粉、天蓝 |
| 3 | 📁 文件夹 | 3D 文具 + 剪贴板 | 系统指南、分类清单 | 米色底、克莱因蓝、活力橙 |
| 4 | 🧾 热敏纸 | 票据穿孔 + 3D 图标 | 步骤清单、时间线 | 亮青边框、米白纸张 |
| 5 | 📓 复古手帐 | 拼贴证据板 + 图钉 | 案例研究、调查分析 | 奶油色、牛皮纸棕 |
| 6 | ✏️ 陶土手绘 | 涂鸦粗轮廓 + 几何形 | 轻松干货、亲和科普 | 陶土橙、米白底 |
| 7 | 💾 酸性复古 | Y2K 像素 + 镭射渐变 | 数码评测、极客内容 | 深炭底、霓虹绿、赛博黄 |
| 8 | 🎫 剧场票据 | 票根胶片 + 五幕剧 | 故事演进、系列指南 | 深海军蓝、金色、珊瑚粉 |
| 9 | 🖼️ 矢量插图 | 黑轮廓线稿 + 几何简化 | PPT 封面、场景插画 | 奶油底、珊瑚红、薄荷绿 |
| 10 | 🎨 孟菲斯网格 | 可见网格 + 模块色块 | 高密度信息、艺术指南 | 浅灰底、洋红标题、亮青块 |
| 11 | ☯️ 水墨国学 | 水墨背景 + 传统字体 | 国学经典、人文哲学 | 宣纸米白、水墨黑、朱砂红 |

**风格速记**：1 蓝 2 格 3 文件 4 票据 5 手帐 6 涂鸦 7 酸 8 剧 9 矢量 10 孟菲斯 11 国学

---

## 📋 工作流程（3 步引导法）

```
┌─────────────────────────────────────────────────────────────────────┐
│  步骤 1: 启动询问                                                    │
│  → 收集用户偏好，明确任务边界，等待确认                              │
│       ↓                                                             │
│  步骤 2: 知识摄取与验证                                              │
│  → 摄取内容 → 真理锚定 → 生成知识卡片 → (可选)海报 Prompt            │
│       ↓                                                             │
│  步骤 3: 确认后生图 (仅在用户确认时执行)                              │
│  → 调用 Wan 2.7 → 查询状态 → 返回图片 URL                           │
└─────────────────────────────────────────────────────────────────────┘
```

---

### 步骤 1：启动询问

**前置判断**：用户提供的内容类型是什么？

| 类型 | 识别特征 | 处理方式 |
|------|----------|----------|
| URL 链接 | http/https 开头 | 进入 2.1 摄取 |
| 文件路径 | 存在的本地文件 | 进入 2.1 摄取 |
| 直接内容 | 文本片段 | 跳过摄取，直接处理 |
| 模糊请求 | "学习一下 X" | 请用户提供链接或文件 |

**向用户确认**：

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 知识吸收器 · 需求确认
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 已识别内容：[URL/文件/文本]

请确认以下选项（直接回车使用默认值）：
1️⃣ 目标读者：零基础学习者（默认）/ 开发者 / 泛科技读者 / 学生
2️⃣ 知识海报：否（默认）/ 是
   → 如需要海报，选择风格 1-11（默认自动判断）
3️⃣ 分辨率：2K（默认）/ 4K
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**默认值**：
- 目标读者：零基础学习者
- 海报风格：自动判断（国学→11，其他→10）
- 分辨率：2K

**⚠️ 必须等待用户确认或使用默认值，再进入步骤 2。**

---

### 步骤 2：知识摄取与验证

**前置条件**：步骤 1 已完成用户确认。

#### 2.1 智能摄取内容

**决策树**：

```
内容来源类型？
├─ URL 链接
│   ├─ 知乎/CSDN/微信公众号？ → 需要 DrissionPage 渲染（动态页面）
│   ├─ GitHub/GitLab？ → 优先获取 README
│   ├─ 论文/学术站点？ → 注意 PDF 链接
│   └─ 普通网页 → 先尝试 requests，403 则切换 DrissionPage
├─ 本地文件
│   ├─ PDF → 检查是否扫描件（需要 OCR）
│   ├─ Word → 提取图片并 OCR
│   ├─ 代码 → 确定语言，提取结构（类/函数/模块）
│   └─ 图片 → 直接 OCR
└─ 直接文本 → 跳过摄取，进入验证
```

执行命令：

```bash
python3 "<SKILL_ROOT>/scripts/content_ingester.py" \
  --output "<SKILL_ROOT>/outputs/raw_content.txt" \
  --no-reports \
  "<TARGETS>"
```

#### 2.2 真理锚定验证

**必须验证的内容类型**：

| 类型 | 示例 | 验证方法 |
|------|------|----------|
| 具体数据 | "Python 3.12 于 2023 年发布" | 搜索 "Python 3.12 release date" |
| API 签名 | `fetch(url, options)` | 查官方文档 |
| 版本号 | "React 19 支持新特性" | 搜索 "React 19 features" |
| 历史事件 | "1991 年 Linux 发布" | 维基百科验证 |
| 绝对化论断 | "这是最好的方案" | 寻找反例或限定条件 |

**不需要验证的**：观点、建议、方法论、个人经验

**标注规范**：

| 类型 | 标注 | 示例 |
|------|------|------|
| 过时信息 | `[已过时]` | "Python 2 是主流 [已过时]" |
| 有争议 | `[存在争议]` | "最佳框架是 X [存在争议]" |
| 无法确认 | `[待确认]` | "该 API 返回 Promise [待确认]" |

#### 2.3 生成知识卡片

```bash
python3 "<SKILL_ROOT>/scripts/run_full_pipeline.py" "<TARGETS>" \
  [--poster --style <N> --audience "<AUDIENCE>"]
```

**输出**：
- `knowledge_card.md` — 知识卡片 Markdown
- `knowledge_card.interactive.html` — 交互式 HTML
- `wan_prompt.txt` — 海报 Prompt（仅 `--poster` 时）

#### 2.4 自查清单

**展示前必须检查**：

- [ ] 知识卡片包含：核心概念、FAQ、认知地图（Mermaid）
- [ ] 真理锚定完成；未验证内容已标注
- [ ] 内容已清理：无广告、无 UI 元素、无打赏提示
- [ ] 如有海报：Prompt 长度 800-2000 字符
- [ ] 国学内容使用水墨风格

**❌ 任一项不通过 → 先修复再展示。**

#### 2.5 展示给用户

返回：
1. 知识卡片核心摘要（3-5 个要点）
2. 参数配置回顾
3. 下一步选项：
   - 回复"确认生图" → 进入步骤 3
   - 回复"只要卡片" → 流程结束

---

### 步骤 3：确认后生图

**前置条件**：
- ✅ 步骤 2 全部完成
- ✅ 自查清单通过
- ✅ 用户明确回复"确认生图"或类似指令

**执行**：

```bash
python3 "<SKILL_ROOT>/scripts/run_wan_generation.py" \
  --prompt "<SKILL_ROOT>/outputs/wan_prompt.txt" \
  --size "<SIZE>" --ratio "<RATIO>" --n 1
```

**状态处理**：

| 状态 | 处理 |
|------|------|
| `RUNNING` | 返回 task_id，提示用户稍后查询 |
| `SUCCEEDED` | 返回图片 URL |
| `FAILED` | 返回错误信息，**不自动降级重试** |

**查询任务**：

```bash
python3 "<SKILL_ROOT>/scripts/run_wan_generation.py" --task-id "<task_id>"
```

---

## 国学风格自动触发

**检测范围**：标题、来源标签、内容前 3 段

**触发关键词**：

| 类别 | 关键词 |
|------|--------|
| 经典文献 | 论语、庄子、道德经、史记、诗经、易经、孟子、荀子、春秋、左传、礼记、周易、尚书、大学、中庸 |
| 学派思想 | 国学、古文、佛、儒、道、哲学、人文、儒家、道家、佛家、法家、墨家、兵家、禅宗、理学、心学、玄学 |
| 历史人物 | 孔子、老子、孟子、庄子、荀子、墨子、韩非子、朱熹、王阳明、程颐、程颢 |
| 文学体裁 | 古诗、词、赋、骈文、散文、文言文 |
| 其他 | 经史子集、四书五经、诸子百家、传统文化 |

**触发后行为**：
- 自动设置 `--style 11`
- 海报 Prompt 使用水墨国学风格

---

## 输出物

**目录结构**：
```
<SKILL_ROOT>/outputs/knowledge_YYYYMMDD_HHMMSS/
├── knowledge_card.md           # 知识卡片 Markdown
├── knowledge_card.interactive.html  # 交互式 HTML
├── wan_prompt.txt              # 海报 Prompt（可选）
└── wan_result.json             # 生图结果（可选）
```

---

## 错误处理

| 故障场景 | 表现 | 处理 |
|---------|------|------|
| 内容摄取失败 | 脚本返回非零或输出空 | 告知用户，建议检查链接有效性 |
| 真理锚定失败 | 验证超时/错误 | 继续生成，标注"真理锚定未完成" |
| API Key 无效 | `DASHSCOPE_API_KEY` 未设置 | 停止生图，提示设置环境变量 |
| Wan 生图失败 | 返回 FAILED | 原样返回错误，**不自动降级** |

---

## 参考资源加载时机

| 资源 | 何时加载 | 何时不加载 |
|------|----------|-----------|
| `build_knowledge_poster_assets.py` 的 `STYLE_MAP` | **MANDATORY**: 用户询问风格细节时 | 正常流程无需读取 |
| `run_wan_generation.py` | 生图失败需排查参数 | 正常流程直接调用 |
| `content_ingester.py` | 摄取异常需排查 | 正常流程无需读取 |
| `references/system_prompt.md` | 需要了解知识卡片生成规则 | 正常流程无需读取 |

**注意**：以上脚本通过 CLI 调用，不需要用 Read 工具读取源码。
