mirror of
https://github.com/wahyd4/kb.git
synced 2026-08-09 05:16:11 +10:00
272 lines
7.1 KiB
Markdown
272 lines
7.1 KiB
Markdown
# KB — Personal Knowledge Base
|
||
|
||
> LLM 驱动的第二大脑。原则:**默认全存,人类筛选,Agent 编译。**
|
||
>
|
||
> 不再依赖 Obsidian,不再需要 Notion。就是一堆 markdown 文件 + git。
|
||
|
||
## 这是什么
|
||
|
||
KB 是一个三层知识管理系统:
|
||
|
||
```
|
||
你分享的任何东西 → raw/ (自动保存) → wiki/ (编译后的知识)
|
||
↑ ↑
|
||
Agent 即时写入 Agent + 你一起消化
|
||
```
|
||
|
||
- **raw/** — 源材料。你看过的每篇文章、分享的每个链接、聊过的每个话题,都存在这里。按月分桶,永久保留。
|
||
- **wiki/** — 编译后的知识。从 raw 中提炼出的结构化笔记:投资 thesis、技术 runbook、决策日志。
|
||
- **SCHEMA.md** — 约定和规范。告诉 Agent(和你)怎么写页面、用什么 tag。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
kb/
|
||
├── README.md # 你正在看的
|
||
├── SCHEMA.md # 约定:tag、frontmatter、模板
|
||
├── log.md # 操作日志(谁在什么时候做了什么)
|
||
│
|
||
├── raw/ # 层1 — 不可变源材料
|
||
│ ├── links/ # 从 Links App 每日自动同步的新闻
|
||
│ └── YYYY-MM/ # 手动分享的文章、网页、对话提取
|
||
│
|
||
├── wiki/ # 层2 — 编译后的知识
|
||
│ ├── investing/ # 投资:thesis、分析、税务
|
||
│ ├── tech/ # 技术:K3s、Cloudflare、部署笔记
|
||
│ ├── life/ # 生活:钢琴、健身、墨尔本
|
||
│ └── decisions/ # 决策日志:为什么选了 A 不选 B
|
||
│
|
||
├── scripts/ # 实用脚本
|
||
└── _archive/ # 已被取代的旧页面
|
||
```
|
||
|
||
## 不需要 Hermes Agent 也能用
|
||
|
||
KB 就是 markdown 文件 + git。你可以:
|
||
|
||
- **用 VS Code 打开** → 直接浏览、搜索、编辑
|
||
- **用 rg/grep 搜索** → `rg "NVIDIA" wiki/ raw/`
|
||
- **用 GitHub 看** → github.com/wahyd4/kb
|
||
- **用 Obsidian 打开**(可选)→ 直接作为 vault,`[[wikilinks]]` 即点即用
|
||
|
||
## 核心操作
|
||
|
||
### Ingest(采集)— Agent 自动做
|
||
|
||
你分享 URL 或粘贴内容给 Hermes → Agent 抓取 → 存 `raw/YYYY-MM/YYYY-MM-DD-slug.md`
|
||
|
||
raw 文件的 frontmatter:
|
||
```yaml
|
||
---
|
||
source_url: https://example.com
|
||
ingested: 2026-07-13
|
||
status: inbox # inbox → absorbed → skipped
|
||
---
|
||
```
|
||
|
||
### Absorb(消化)— Agent + 你
|
||
|
||
把 raw 里的源材料编译成 wiki 页面:
|
||
|
||
1. Agent 读 raw 源
|
||
2. Agent 搜 wiki/ 找相关已有页面
|
||
3. **优先更新已有页面**(不铺新页)
|
||
4. 必要时建新页面
|
||
5. 改 status → `absorbed`
|
||
|
||
```bash
|
||
# 手动 absorb 辅助:列出所有 inbox 条目
|
||
./scripts/inbox.sh
|
||
|
||
# 手动 absorb 辅助:搜索 raw 中相关内容
|
||
./scripts/search.sh "NVIDIA" raw/
|
||
|
||
# 用 Hermes: "absorb raw/2026-07/2026-07-13-nvidia-article.md"
|
||
```
|
||
|
||
### Query(查询)
|
||
|
||
```bash
|
||
# 搜索所有 KB 内容
|
||
./scripts/search.sh "关键词"
|
||
|
||
# 或直接用 ripgrep
|
||
rg "NVIDIA" ~/Code/kb/wiki/ ~/Code/kb/raw/
|
||
```
|
||
|
||
结果会标注来源类型:wiki 页面是 **已编译**,raw 条目是 **源材料待编译**。
|
||
|
||
### Lint(健康检查)
|
||
|
||
```bash
|
||
# 检查断链
|
||
./scripts/lint.sh
|
||
```
|
||
|
||
Agent 会检查:断链 wikilinks、过期投资页面、孤儿页面。
|
||
|
||
## Frontmatter 规范
|
||
|
||
### Wiki 页面
|
||
|
||
```yaml
|
||
---
|
||
title: "页面标题"
|
||
created: 2026-07-13
|
||
updated: 2026-07-13
|
||
tags: [domain/subtag]
|
||
sources: [raw/YYYY-MM/file.md] # 来源 raw 文件
|
||
---
|
||
```
|
||
|
||
### Raw 文件
|
||
|
||
```yaml
|
||
---
|
||
source_url: https://...
|
||
ingested: 2026-07-13
|
||
status: inbox | absorbed | skipped | failed_fetch
|
||
---
|
||
```
|
||
|
||
## Tag 系统
|
||
|
||
开放前缀制 — 新 tag 直接用,不审批:
|
||
|
||
| 前缀 | 示例 |
|
||
|------|------|
|
||
| `tech/` | `infra`, `k3s`, `cf-workers`, `llm`, `agent`, `homelab` |
|
||
| `inv/` | `semi`, `cloud`, `ai`, `thesis`, `earnings`, `tax`, `valuation` |
|
||
| `life/` | `music`, `piano`, `health`, `family`, `melbourne` |
|
||
|
||
## 页面模板
|
||
|
||
### 投资 Thesis
|
||
```markdown
|
||
# [Company] Thesis
|
||
- Conviction: high/medium/low
|
||
- Thesis: 3-5 个核心理由
|
||
- Risks: 什么会打破 thesis
|
||
- Catalysts: 近期催化剂
|
||
```
|
||
|
||
### 技术 Runbook
|
||
```markdown
|
||
# [Component] Runbook
|
||
- Purpose: 干什么的
|
||
- Location: repo/namespace
|
||
- Common issues: 常见问题 + 修复
|
||
```
|
||
|
||
### 决策日志
|
||
```markdown
|
||
# [Decision]
|
||
- Date: YYYY-MM-DD
|
||
- Context: 背景
|
||
- Options: 考虑过哪些方案
|
||
- Decision: 选了哪个 + 为什么
|
||
```
|
||
|
||
## 搜索技巧
|
||
|
||
```bash
|
||
# 找所有 inbox 待处理
|
||
rg "status: inbox" raw/
|
||
|
||
# 找所有 NVIDIA 相关内容
|
||
rg -l "NVIDIA" wiki/ raw/
|
||
|
||
# 找所有投资 thesis
|
||
rg "tags:.*inv/thesis" wiki/
|
||
|
||
# 统计
|
||
./scripts/stats.sh
|
||
```
|
||
|
||
## 自动化
|
||
|
||
| 时间 | 做什么 |
|
||
|------|--------|
|
||
| 每天 06:30 | Links App → `raw/links/YYYY-MM/` 同步 |
|
||
| 每天 22:00 | Hermes 对话扫描 → `raw/YYYY-MM/` 提取知识 |
|
||
| 每周日 | Review inbox → 决定 absorb 哪些 |
|
||
|
||
## 脚本参考
|
||
|
||
```bash
|
||
# 查看 inbox
|
||
./scripts/inbox.sh # 列出所有待处理
|
||
./scripts/inbox.sh --count # 只看数量
|
||
./scripts/inbox.sh --recent 10 # 最近 10 条
|
||
./scripts/inbox.sh --month 2026-07 # 只看某月
|
||
|
||
# 搜索
|
||
./scripts/search.sh "NVIDIA" # 全文搜索(固定字符串)
|
||
./scripts/search.sh "k3s" --wiki-only # 只搜 wiki
|
||
./scripts/search.sh "earnings" --raw-only # 只搜 raw
|
||
./scripts/search.sh "C\+\+" --regex # 使用正则
|
||
./scripts/search.sh "NVIDIA" --files-only # 只列文件名
|
||
|
||
# 标记状态
|
||
./scripts/status.sh absorb raw/2026-07/article.md # 标记为已吸收
|
||
./scripts/status.sh skip raw/2026-07/old-news.md # 跳过
|
||
./scripts/status.sh inbox raw/2026-07/file.md # 重置为待处理
|
||
|
||
# 统计
|
||
./scripts/stats.sh
|
||
|
||
# 健康检查(退出码非零 = 有问题)
|
||
./scripts/lint.sh
|
||
```
|
||
|
||
## 前置依赖
|
||
|
||
- `bash` 4+
|
||
- `ripgrep` (`rg`) — `apt install ripgrep` 或 `brew install ripgrep`
|
||
- `git`
|
||
|
||
## 不依赖 Hermes 的手动操作
|
||
|
||
### 手动 Ingest(你自己加一篇文章)
|
||
|
||
1. 创建文件 `raw/YYYY-MM/YYYY-MM-DD-slug.md`
|
||
2. 写 frontmatter:
|
||
```yaml
|
||
---
|
||
source_url: https://example.com/article
|
||
ingested: 2026-07-13
|
||
status: inbox
|
||
---
|
||
```
|
||
3. 正文放下面
|
||
4. `git add` + `git commit`
|
||
|
||
### 手动 Absorb(从 raw 编译到 wiki)
|
||
|
||
1. `./scripts/inbox.sh` 看看有哪些待处理
|
||
2. 读 raw 文件,理解内容
|
||
3. 搜 wiki 找相关页面:`./scripts/search.sh "关键词" --wiki-only`
|
||
4. 编辑或创建 wiki 页面
|
||
5. `./scripts/status.sh absorb raw/路径` 标记已完成
|
||
6. 更新页面 `[[wikilinks]]` 交叉引用
|
||
|
||
### Status 生命周期
|
||
|
||
```
|
||
inbox → absorbed (内容已编译到 wiki/)
|
||
inbox → skipped (看过但不值得编译)
|
||
inbox → failed_fetch (链接打不开/抓取失败)
|
||
```
|
||
|
||
raw 文件标记 absorbed/skipped 后不会再出现在 inbox,但文件保留在 raw/ 中可搜索。
|
||
|
||
## 隐私
|
||
|
||
- GitHub repo = **private**
|
||
- 不含具体持仓金额、家庭隐私
|
||
- 投资页面只记录 thesis/分析框架
|
||
|
||
## 与旧 one-knowledge 的关系
|
||
|
||
`~/junv/one-knowledge` 是旧版知识库。2,815 篇 links-posts 和 19 篇 tech notes 已迁移到 KB。旧 repo 保留但不再主动更新。
|