# Ingest

> 将 笔记/ 目录下的原始资料编译到 笔记/Wiki/ 知识网络中。支持 Explore 子智能体并行扫描、Memory 记忆跨会话去重、冲突自动检测。使用 /ingest 扫描全部或 /ingest <path> 处理指定文件。

- Skill: `dqtx760/ingest` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dqtx760/ingest`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dqtx760/ingest/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dqtx760 (https://skillmd.com/u/dqtx760)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dqtx760/ingest

---


# ingest 技能 v2.0

## 核心定位

Ingest 是知识工厂的**编译流水线**：将原始资料（文章、论文、转录稿）自动编译成结构化的知识网络。Claude Code 不再是"帮你整理笔记"，而是"直接把活干了"。

**架构升级 v2.0：**
- ✅ 支持 Explore 子智能体并行扫描
- ✅ 集成 Memory 系统跨会话去重
- ✅ 冲突检测粒度细化到段落级
- ✅ MCP 协议支持飞书/微信来源

---

## 目录结构约定

```
nolebase-template/
├── 笔记/                    ← 原始资料（只读不改）
│   ├── Claude code/          Claude Code 相关笔记
│   ├── Codex/                Codex 相关笔记
│   ├── Obsidian/             Obsidian 相关笔记
│   ├── github/               GitHub 相关笔记
│   └── other/                其他笔记
└── 笔记/Wiki/             ← 编译输出层
    ├── sources/               来源摘要（1 源文件 → 1 source）
    ├── entities/              实体：人/公司/产品/工具
    ├── concepts/              概念：框架/理论/方法论
    └── syntheses/             综合：跨源分析总结
```

---

## 触发逻辑

| 触发方式 | 行为 |
|---------|------|
| `/ingest` | 用 Explore 子智能体扫描 笔记/ 所有子目录（排除 Wiki/） |
| `/ingest <path>` | 仅处理指定文件或目录 |
| 隐式触发 | 用户说"把这个资料加进去"、"摄入这篇文章"时自动执行 |

---

## 编译流水线（v2.0 增强版）

### 前置检查：Memory 去重

**第一步永远检查 Memory：**
1. 调用 Memory 系统查询该文件是否已处理过
2. 已处理 → 询问用户是否需要重新编译
3. 未处理 → 继续流程，处理后记录到 Memory

---

### 步骤 1：Explore 子智能体并行扫描

当文件 > 3 个时，自动启用 Explore 子智能体：

```
子智能体任务分配：
├── Agent 1：扫描 Claude code/，提取每篇的核心实体/概念
├── Agent 2：扫描 Codex/，提取代码工具相关实体/概念
└── Agent 3：扫描 Obsidian/，提取插件与工作流相关实体/概念
```

主智能体只做最终决策，不做体力活。

---

### 步骤 2：源文件读取与预处理

| 文件类型 | 处理方式 |
|---------|---------|
| `.md` | 完整读取，自动识别 Markdown 结构 |
| `.pdf` | 尝试提取文本，失败则记录元信息（文件名、页数、URL） |
| 音频/视频 | 提取转录稿，处理成结构化文本 |

**硬约束：** 绝对不修改 笔记/ 下的任何源文件内容。

---

### 步骤 3：知识提取与翻译

从源文件中提取三类知识节点：

| 类型 | 判定标准 | 输出目录 |
|------|---------|---------|
| **Entity 实体** | 具体名词：人、公司、产品、工具、项目 | `笔记/Wiki/entities/` |
| **Concept 概念** | 抽象名词：框架、理论、方法论、模式 | `笔记/Wiki/concepts/` |
| **Claim 主张** | 可验证的观点、结论、数据 | 写入对应页面的知识冲突区 |

非中文内容自动翻译成中文，保留关键术语的英文原文。

---

### 步骤 4：创建来源摘要（Source）

在 `笔记/Wiki/sources/` 创建页面，文件名：`摘要-{slug}.md`

```markdown
---
title: "摘要-{源文件名称}"
type: source
tags: [来源, 文章/论文/转录]
sources: [笔记/Claude code/xxx.md]
last_updated: YYYY-MM-DD
confidence: high/medium/low
---

## 核心摘要
[3-5 句话的中立总结，不加入 AI 自己的观点]

## 关键数据
- [数据点 1]
- [数据点 2]

## 关联连接
- [[EntityName]] — 提到的实体
- [[ConceptName]] — 涉及的概念
```

---

### 步骤 5：增量更新实体/概念页面

对每个提取出的实体/概念：

#### Case A：页面不存在
按照 Frontmatter 规范创建新页面

#### Case B：页面已存在
1. 读取现有内容
2. **段落级比对**，只追加真正的新信息
3. 发现冲突 → 触发冲突处理流程

**增量更新原则：** 宁可不加，不要覆盖。宁可重复，不要丢失。

#### Case C：发现知识冲突
**立即暂停**，向用户报告：
```
⚠️ 发现知识冲突
页面：[[页面名称]]
已有主张：[旧内容]
新主张：[新内容]
来源差异：[源文件 A vs 源文件 B]

请选择处理方式：
A) 两者都保留，标注为"知识冲突"
B) 用新知识覆盖（确认来源更权威）
C) 跳过本条，保留旧知识
D) 终止本次 ingest，人工处理
```

---

### 步骤 6：更新全局注册表

**更新 `笔记/Wiki/index.md`：**
- Sources：`[[摘要-source-slug]] — 该资料的核心主旨`
- Entities：`[[EntityName]] — 该实体的身份定义`
- Concepts：`[[ConceptName]] — 该概念的核心定义`

**更新 `笔记/Wiki/log.md`：**
追加操作日志（Append-only，不改历史）：
```markdown
## [YYYY-MM-DD] ingest | 处理了 N 个文件
- 新增 Sources：[[A]], [[B]], [[C]]
- 新增 Entities：[[X]], [[Y]]
- 更新 Concepts：[[Z]]
- 冲突：无 / 发现 N 个冲突（已暂停等待决策）
```

---

### 步骤 7：Memory 记录

确认以下全部完成后：
- sources 页面已创建
- 实体/概念页面已创建或更新
- index.md 已更新
- log.md 已更新
- 所有冲突已解决

**执行：**
1. 在 Memory 系统记录：`{filename} 已 ingest，日期 YYYY-MM-DD`
2. 源文件保留在原位（笔记可继续编辑，下次 ingest 增量更新）

---

## v2.0 增强特性

### 1. Explore 子智能体
- 文件 > 3 个时自动启用并行处理
- 每个子智能体专注一类资料类型
- 主智能体负责质量检查与冲突处理

### 2. Memory 跨会话去重
- 自动记录已处理的文件 hash
- 重复 ingest 时主动提醒："这个文件 4 月 12 日已经处理过，是否需要重新编译？"

### 3. 段落级冲突检测
- v1.0：页面级冲突 → 太粗
- v2.0：段落级冲突 → 只对有差异的部分提问
- 标注置信度：`confidence: high/medium/low`

### 4. MCP 来源支持
- 支持从飞书文档直接 ingest：`/ingest https://feishu.cn/doc/xxx`
- 支持从微信聊天记录 ingest
- 自动保留原始来源链接

---

## 硬约束（绝对不能违反）

1. ✅ **笔记 只读不改**：源文件永远只读，不移动、不修改
2. ✅ **冲突必须暂停**：新旧知识矛盾时，绝不自行决定，必须问人
3. ✅ **绝对不编造**：没有的内容，宁可空着，不能瞎写
4. ✅ **所有页面必须有双链**：不能产生孤岛页面
5. ✅ **所有操作必须记 log**：审计可追溯，Append-only 不改历史

---

## 关联连接
- [[Skill_Lint]] — ingest 完成后必须运行 lint 检查
- [[Skill_Query]] — 基于编译完成的知识问答
- [[Memory_System]] — 跨会话去重的记忆系统
- [[Five_Layer_Architecture]] — 知识库五层架构设计

