An LLM-powered personal knowledge OS.
Drop a link in Telegram — Sediment extracts, classifies, enriches, and saves it as an Obsidian note. Then query your vault with AI, generate reports, and let knowledge compound over time. Not a bookmark tool — a full ingest → compile → query → output knowledge pipeline, fully automated.
Quick Start
git clone https://github.com/JaplinChen/Sediment.git && cd Sediment
npm install && cp .env.example .env
# Edit .env → set BOT_TOKEN and VAULT_PATH
./start.shGet your BOT_TOKEN from @BotFather on Telegram. Set VAULT_PATH to your Obsidian vault directory. That's it — send any URL to your bot and it becomes a note.
Supported platforms: X / Threads / Reddit / YouTube / GitHub / TikTok / Bilibili / Weibo / Xiaohongshu / Douyin / Zhihu / iTHome + any webpage.
See 中文文件 below for full documentation.
LLM 驅動的個人知識作業系統。
丟一個連結給 Telegram Bot,它會自動抓取、AI 分類、摘要豐富化、存入 Obsidian — 然後你可以對知識庫提問、生成報告、追蹤趨勢。知識不只是被收藏,而是被編譯、連結、持續增值。
為什麼需要 Sediment?
你在 Twitter 看到一篇好文、Reddit 上有精彩討論、Threads 上有值得收藏的串文—— 但你知道這些內容遲早會消失在時間線裡。
傳統做法是「人寫、機器讀」。Sediment 反過來:機器寫、人審閱。
每次擷取都自動豐富化——AI 摘要、實體萃取、智慧分類。每次查詢的結果都回流知識庫——探索 → 沉澱 → 再探索,形成知識複利。你的 Vault 不是靜態筆記堆,而是一個持續成長的知識體。
架構哲學:知識流水線
Sediment 的設計圍繞一條完整的知識生命週期,從原始資料到可操作的知識:
攝取 ──→ 編譯 ──→ 查詢 ──→ 輸出 ──→ 自癒
Ingest Compile Query Output Lint
↑ │
└────────── 知識複利閉環 ←───────────┘
| 階段 | Sediment 做了什麼 | 指令 |
|---|---|---|
| 攝取 Ingest | 14 平台 Extractor + PDF + 通用網頁 + 雷達自動搜尋 + 多平台巡邏,全自動攝取 | 丟連結 / /radar / /track |
| 編譯 Compile | 108 規則智慧分類 → AI 摘要 + 翻譯 → 實體萃取 + 知識圖譜 → 主題編譯(Karpathy 三層)→ Harness 品質閘門(含 AI 偽裝偵測)→ 分類器自動進化 | 自動 / /knowledge / /compile |
| 查詢 Query | Vault 知識問答、主題探索、深度合成、對比分析、語意搜尋、互動式研究 | /ask / /explore / /research |
| 輸出 Output | 精華摘要 / 週報 / PPTX 簡報 / Anki 記憶卡 / PNG 資訊卡 / 趨勢警報,結果回流 Vault | /digest / /slides / /anki |
| 自癒 Lint | 品質審查 + HTML 殘留修復 + 重複掃描 + Extractor 健康探測 + 失敗反思日誌 + Markdown 正規化(regex + LLM 雙層) | /vault / /normalize / 自動排程 |
功能一覽
- 丟連結就存檔 — 穩定支援 14 個平台 + 通用網頁;中國平台支援三層降級(Camoufox → Jina Reader → MediaCrawler)
- 連結深度抓取 — 文章 / 回覆中的外部連結自動抓取完整內文(最多 3000 字),注入 AI 豐富化統合分析;已存 Vault 的連結在「相關連結」區塊自動附加
→ [[wikilink]]跳轉 - 內容雷達 —
/radar定期自動搜尋關注主題並存入 Vault(DDG / GitHub Trending / RSS / HN / Reddit / Dev.to / 自訂 JSON API) - RSSHub 巡邏 — 自架 RSSHub 服務,訂閱知乎 / B站 / 掘金 / 少數派等 5000+ 路由,自動攝取中文內容圈動態
- 追蹤系統 —
/track時間軸抓取、作者訂閱、多平台巡邏 - 內容過濾系統 — 全局分類黑名單 + 關鍵字封鎖(
/filter);訂閱白名單(每個帳號可設定只抓指定分類);巡邏/訂閱/雷達通知均帶 👎 不感興趣 按鈕(點擊封鎖該分類)及 🗑️ 刪除+封鎖 按鈕(同時刪除 Vault 筆記);巡邏 👎 展示關鍵字選擇器讓用戶精確封鎖
- 智慧分類 — 計分制分類器,108 條規則覆蓋 24 大類(含 13 個 AI 子領域),支援 exclude 防誤判 + 動態學習
- AI 豐富化 — 自動摘要、關鍵字萃取;插圖辨識(最多 5 張,
## 插圖說明區塊);內嵌影片逐字稿(Web 文章內 YouTube iframe 自動轉錄);連結全文分析(所有外部連結抓取正文,GitHub 額外解析 stars / language / topics,AI 統合主文與連結內容);留言品質篩選(廣告詞過濾、按讚數排序、## 精選討論技術評論獨立區塊) - 知識圖譜 — 實體萃取、關係三元組(compares / builds_on / integrates 等)、缺口分析、Skill 自動生成
- 主題編譯 — Karpathy 三層架構(raw → compiled → wiki),同主題 ≥3 篇筆記自動編譯為結構化綜述,含工具對比表格、交叉洞察、wikilink 引用
- 記憶整合 — 自動發現跨筆記關聯,LLM 語義合成,每週生成整合報告
- 批次翻譯 — 英文 / 簡中筆記自動翻譯為繁體中文
- 分類器自動進化 — AlphaEvolve 啟發:每次執行
/knowledge evolve自動生成 5 個候選規則變體,在 eval dataset(每分類 5 篇)上評估準確率,改善 >1% 時自動套用至learned-patterns.json
- 知識問答 —
/ask用 Vault 筆記上下文 + AI 回答問題 - 知識探索 —
/explore推薦筆記、知識簡報、深度合成、主題對比 - 統一搜尋 —
/search一個入口搜 Vault 筆記、網頁、跨平台提及、影片字幕 - 影片語意搜尋 —
/vsearchFTS5 三元組索引,支援中英文混合查詢 - 研究助理 —
/research互動式研究對話
- 知識報告 —
/digest精華摘要(含 💀 知識死角:近 90 天有筆記但 30 天未查詢)、週報合成、知識蒸餾(含 📈 季度技能成長 sparkline)、跨筆記洞察、baoyu-xhs-images 風格知識卡片 - 簡報生成 —
/slides自動產生 PPTX 簡報 - 記憶卡 —
/anki生成 Anki 記憶卡 - 資訊卡片 — 每則筆記自動生成視覺化 PNG 摘要卡
- 主動推理 — 每日自動推送知識摘要 + 趨勢警報 + 分類提醒 + 當日過濾統計;每週自動缺口分析 → 直接加入 Radar 追蹤,形成完整知識閉環
- 相關筆記推薦 — 兩層演算法(實體圖譜 → 關鍵字比對)自動附加
[[wikilink]]連結
-
Markdown 正規化管線 —
/normalize批次清理 LLM 生成的髒 markdown;雙層架構:- Regex 規則層(瞬時):11 條純函數規則,處理行內粗體小標轉
### 標題、CJK 序數轉- list、步驟標記拆段、過長標題拆分、反斜線轉義還原等 - LLM 語意層(oMLX,選配):理解內容結構後重排;連結完整性守衛(
mdLinks / wikilinks / images / bareUrls四類計數,任一減少即拒絕);字數比例守衛(0.7~1.5 倍) - 模式:
--sample(8 樣本 dry-run)/--dry-run(掃描不寫入)/--all(全量)/--since Nd(篩日期)/--llm(警訊觸發 LLM fallback)/--restructure(LLM-first 深度重整) - 源頭治理:
MARKDOWN_STRUCTURE_RULES結構規格注入所有 LLM 生成器(研究報告、比較表、Anki、教學大綱等),從生成端避免髒 markdown - 新筆記寫入 Vault 時自動跑一輪 regex normalizer(不動 frontmatter)
- Regex 規則層(瞬時):11 條純函數規則,處理行內粗體小標轉
-
品質管理 —
/vault統一入口:品質報告(含自動修復按鈕)、重複掃描、AI 重處理、排版修正 -
Vault 品質守護 —
/vault guardian六維度自動評分(摘要深度 / 關鍵字相關性 / 分類適合度 / 逐字稿使用 / 廣告污染 / metadata 完整性);低分文章自動推送 Telegram 通知;每日品質日誌寫入vault/_meta/quality-log.md;MOC 與 auto-generated 報告自動豁免 -
Harness 品質管線 — Evaluator-Generator 分離架構:規則檢查(含 AI 偽裝偵測:關鍵字與原文重疊率 < 2 時觸發重生成)→ 語義評分(0-10 分四維度)→ 針對性修復,品質標準與生成能力解耦
-
角色化 Reviewer — Evaluator 依 category 派發 4 種 persona(engineer / marketer / academic / generalist),每個 persona 有專屬 intro + extra focus prompt;
/vault review-stats顯示 persona 評分分佈、pass / auto-fix 率、Top 分類、related context A/B 比較 -
Reviewer Panel(多角色合議) —
/config開qualityReviewPanel:3 個非通用 persona 並行投票,union 反推 needs_fix 欄位,中位數抗離群;單 persona 失敗視為棄權;預設關,opt-in 換更高品質但延遲 ×N -
noveltyScore 共享記憶 — enricher 算 Jaccard(新筆記 keywords, Vault 同類筆記),1−maxSim 即新意度;frontmatter 寫
novelty: 0.42,< 0.3 自動掛duplicate-insighttag + 進 reviewer issues(low severity 不阻擋,供 digest / wiki 編譯篩選) -
Auto Illustration(opt-in) —
/config開autoIllustration:enricher 對有結構訊號(流程/分支/階段)且非裝飾性段落的筆記,呼 oMLX deep tier + 小黑 v1 profile 生 16:9 SVG,寫到Sediment/attachments/sediment/illustrations/<slug>/,frontmatterillustrations: [...];HTML 預覽自動 inline 嵌入(圖在摘要後、本文前)- 預算守門:
data/illustration-budget.json每日上限 20 張(可由/config limits調),達上限自動跳過 - 趨勢追蹤:
data/illustration-trend.jsonl90 天歷史,/vault illustration-stats顯示 14 天 ASCII sparkline - 健康監測:
data/illustration-health.json滑動視窗 50 筆,失敗率 > 80% 標 🔴 異常 + 自動關閉 autoIllustration + Telegram alert - 美學守門:sanitizer 確定性規則擋 AI 味(漸變 / 濾鏡陰影 / emoji / 全飽和螢光色 / >8 色),違規帶風格提示重試
- 三個 profile:
xiaohei-v1(怪誕手繪)、nordic-minimal(北歐極簡文藝,知識卡片用)、minimal(純線條) - 視覺評審(opt-in
visionOracle):渲染後給 vision 模型評佈局,低分自動重畫(bench:scripts/bench-svg-vision.mjs) - Digest 加成:weekly digest 自動把帶圖筆記排前 + 📷 標記 + 繼承封面 illustration(HTML 預覽 inline 顯示)
- 預算守門:
-
數值上限管理(
/config limits) — illustration 每日上限 / reviewer 評分閾值 / reviewer 超時 / digest novelty 過濾,皆可由 Telegram 命令動態調整,免重啟 -
真實實操驗證 —
npm run smoke:all9 個 smoke script 串跑:6 個 no-LLM(dry/vote/health/stats/list-cleanup/reviewer)+ 3 個含真實 oMLX(auto/redo/reviewer-panel),全部對真實系統跑通。所有 LLM-driven pipeline 都有 smoke 驗證:illustration 單張 / A/B / autoIllustration / redo / reviewer panel × 3 -
oMLX 並發實測(
npm run bench:omlx) — 量測 oMLX 真實支援併發推理:Tier Model 3× 序列 3× 平行 Speedup standard Qwen3.5-9B 2165ms 1213ms 1.78× deep gemma-4-26b 9103ms 1567ms 5.81× runAutoIllustration 已套用 Promise.allSettled 平行;新增
ensembleSize選項可並行生 N 個候選選最佳(smoke:ensemble 實測 18.9s 3 候選全綠) -
Dashboard 14 天 vote 走勢 —
/vault dashboard整合 14 天 ASCII sparkline(▁▂▃▄▅▆▇█),看使用者投票活躍度趨勢 -
CI 持續驗證 — GitHub Actions 每次 PR 自動跑
smoke:ci(6 個 no-LLM smoke,~5s):純 prompt 組裝 / vote / health 自動關閉 / stats / list-cleanup / reviewer panel,無需 oMLX,避免 illustration pipeline 回歸 -
Weekly digest 自帶健康摘要 — 週報尾段 🩺 自動附 Vault 帶圖統計 / 健康狀態 / 預算 / vote 偏好;unhealthy 時主動警示 autoIllustration 已自動關閉
-
手動觸發 —
/illustrate <主題>或/illustrate <主題> --ab(並列 xiaohei-v1 + minimal);不寫 vault,Telegram 直接回 SVG 檔 -
A/B 投票偏好 —
--ab模式跑完附投票按鈕,累積到data/illustration-votes.json;達 ≥ 5 票 + winRate ≥ 0.6 後 autoIllustration 自動切換到偏好 profile -
既有筆記編輯 —
/illustrate redo <path>對既有筆記重生 + frontmatter 替換;/illustrate clear <path>移除欄位 + 刪 SVG;/illustrate list列表 + orphan 偵測;/illustrate cleanup-orphans批次清理 -
Reviewer Panel 量測(opt-in) —
/config開qualityReviewPanel:3 persona 並行投票;/vault review-stats顯示 Panel vs Single 在 pass 率、avgScore、延遲的 A/B 差異 -
三層索引系統 — sources / category / wiki 三層 + entries map 即時索引整個 Vault;saver 寫筆記時 incremental update、monitor 每 6 小時 stale check + 30 分鐘 refresh;
/vault find帶 IDF + AND bonus + phrase match + 標題長度懲罰的搜尋(v5 評分),/vault pulse系統儀表板、/vault hot-categories熱門分類、/vault source-stats來源統計 -
語意去重 — saver 寫入時用 Jaccard keyword overlap 即時偵測相似筆記,三層門檻(hint 0.5 / inline action 0.7 / 批次掃描);
/vault dedup-scanUnion-Find 找全 Vault 重複群組,inline merge 按鈕一鍵處理 -
Inbox 智慧重分類 —
/vault inbox-audit N用 LLM 重新評估 inbox 累積筆記,信心 ≥ 0.85 時生成「直接移動」按鈕,逐篇審閱清理 -
可見性四件套 —
/vault errors(tail app.jsonl warn 並 group by scope)、/vault metrics(per-type/per-platform pass 率與失敗模式)、/vault feedback-stats(用戶分類修正歷史與轉移模式)、/vault pulse(索引 + 量測即時看板) -
自我修復 — 排程掃描自動修復 HTML 殘留 / 壞路徑,Extractor 健康探測 + 降級告警
-
失敗反思系統 — Extractor 失敗自動分類原因(
auth_blocked/timeout/structure_changed),重試時輸出診斷日誌 -
事故偵測 — 每 5 分鐘掃描 log 的已知錯誤簽名,異常達閾值時 Telegram 推播警報;
/doctor顯示 24h 自癒事件統計 -
自癒 CI — GitHub Actions workflow(
self-heal.yml)偵測 PR CI 失敗時,自動呼叫 Claude Code 分析並修復,最多 3 次迭代;超過次數或判斷無法自動修復時,自動建立 GitHub Issue 升級給人工
- 10 個核心指令 + 34 個完整指令 — InlineKeyboard 按鈕引導
- HTML 筆記附件 — Bot 存入 Vault 後自動回傳 HTML 渲染版本(Apple-inspired 卡片式設計,含 CJK 字型、frontmatter metadata 卡片、深色 code block、mermaid 圖表自動渲染),Telegram 通知一律 HTML parse_mode
- 遠端管理 —
/admin狀態、診斷、日誌、重啟、遠端指令 - Admin Web UI —
http://localhost:3001啟動時自動開啟研究介面;點「管理」按鈕進入設定(初始設定、功能配置、監控面板) - 多模型智慧路由 — 依複雜度自動選 flash / standard / deep 免費模型;可選 oMLX 本地推理
- 功能開關 —
/config即時切換 13 項功能 +/config limits動態調 4 個數值上限 - 跨裝置同步 — 搭配 Remotely Save + InfiniCLOUD 免費 WebDAV
支援平台(14 個)
| 平台 | 內容 | 評論 | 時間軸 | 備註 |
|---|---|---|---|---|
| X / Twitter | ✅ | ✅ | — | fxTweet API |
| Threads | ✅ | ✅ | ✅ | topic tag 自動偵測,智慧標題 |
| ✅ | ✅ | — | 公開 API | |
| YouTube | ✅ | — | — | yt-dlp 字幕擷取 + InnerTube HTML fallback + 播放清單 |
| GitHub | ✅ | — | — | Repo / Issue / PR |
| TikTok | ✅ | — | — | yt-dlp + whisper.cpp STT 逐字稿 |
| iTHome | ✅ | — | — | 台灣科技新聞 |
| 通用網頁 | ✅ | — | — | 5 層降級(Readability → Jina Reader → Camoufox → Browser Use → Regex) |
| PDF 文件 | ✅ | — | — | 直接傳檔到 Telegram;偵測本機 opendataloader CLI 優先(含表格)→ pdf-parse fallback |
| 直連影片 | ✅ | — | — | MP4 / WebM / MKV 直連下載 + 轉錄 |
| 平台 | 內容 | 備註 |
|---|---|---|
| Bilibili | 需 yt-dlp,部分內容需登入 Cookie | |
| 微博 | Camoufox + API,訪客驗證可能阻擋 | |
| 小紅書 | Camoufox → MediaCrawler(需 Cookie),登入牆頻繁 | |
| 抖音 / 今日頭條 | Camoufox → MediaCrawler(需 Cookie),反爬偵測嚴格 | |
| 知乎 | Camoufox + RSSHub 熱榜備援;專欄文章支援評論抓取 |
⚠️ 需登入的平台採三層降級:Camoufox(反偵測瀏覽器)→ MediaCrawler FastAPI 服務(需帳號 Cookie)→ 失敗拋錯。Cookie 填入data/mediacrawler-cookies.json,MediaCrawler 服務啟動方式:python3.11 scripts/mediacrawler-server.py。 通用網頁擷取另支援 Jina Reader 及 Browser Use CLI 作為中間層降級方案。
快速開始
在 Telegram 找 @BotFather → 傳送 /newbot → 取得 Token(格式:1234567890:AAFdFMgb...)
一般使用者 — 執行 npm install && cp .env.example .env,編輯 .env 填入設定
開發者 — 手動設定:
npm install
cp .env.example .env編輯 .env:
# 必填
BOT_TOKEN=your_telegram_bot_token
VAULT_PATH=/Users/yourname/ObsidianVault
# 選填
ALLOWED_USER_IDS=123456,789012 # 限制使用者(逗號分隔 Telegram user ID)
ENABLE_TRANSLATION=true # 啟用簡轉繁翻譯
MAX_LINKED_URLS=5 # 單則貼文最多抓取的外部連結數
SAVE_VIDEOS=false # 影片存入 Vault(預設 false,僅保留原始連結)
OMLX_API_KEY= # oMLX 本地推理(選配,需 macOS Apple Silicon)# Camoufox 初始化(首次,Threads/小紅書/抖音需要)
npx camoufox-js fetch執行 ./start.sh(或 npm run dev),保持終端機開啟即可。
指令速查(34 個指令)
Telegram / 選單只顯示 10 個核心指令,子功能透過按鈕展開。所有指令都可直接輸入使用。
| 指令 | 用途 |
|---|---|
| 傳送 URL | 自動擷取內容與評論,分類後存到 Vault |
| 傳送 PDF | 自動擷取文字、AI 摘要、分類存入 Vault |
/search |
統一搜尋入口(按鈕選:Vault / 網頁 / 提及 / 影片) |
/ask <問題> |
用 Vault 知識回答問題(AI 結合筆記上下文) |
/explore <主題> |
知識探索(推薦筆記 / 簡報 / 深度合成 / 對比) |
/digest |
知識報告(精華 / 週報 / 蒸餾 / 跨筆記洞察 / 知識卡片) |
/discover <關鍵字> |
GitHub 專案探索(無參數=每日熱門掃描) |
/radar |
內容雷達(自動搜尋+存入;add custom 可接 JSON API 自訂來源) |
/track |
追蹤入口(按鈕選:時間軸 / 訂閱 / 巡邏) |
/vault |
Vault 維護入口(品質 / 重複 / 重處理 / 排版 / 基準 / 重試 / 推薦連結) |
/admin |
系統管理入口(狀態 / 健康 / 診斷 / 日誌 / 重啟 / 指令 / 清除 / 學習) |
/help |
分類式說明選單 |
| 類別 | 指令 | 用途 |
|---|---|---|
| 搜尋 | /search |
統一搜尋(Vault / 網頁 / 提及 / 影片) |
/find <關鍵字> |
快速搜尋 Vault 筆記 | |
/monitor <關鍵字> |
跨平台提及搜尋 | |
/vsearch <關鍵字> |
影片語意搜尋(FTS5) | |
| 知識 | /ask <問題> |
Vault 知識問答 |
/explore <主題> |
知識探索(推薦 / 簡報 / 合成 / 對比) | |
/digest |
知識報告(精華 / 週報 / 蒸餾 / 整合) | |
/knowledge |
知識圖譜(缺口 / 技能 / 分析 / 健康 / DNA / 分類器進化) | |
/compile |
主題知識編譯(Karpathy 三層架構)/ 系統編譯 | |
/research |
互動式研究對話 | |
/slides |
AI 自動生成簡報(PPTX) | |
/anki |
生成 Anki 記憶卡 | |
/validate <想法> |
雙層創業驗證(AI 競品分析 + 核心判斷問題) | |
/ccwf <分類> [筆數] |
匯出 CC Workflow Studio 可吃的 workflow.json(同分類最近 N 篇) | |
/illustrate <主題> [profile] [--ab] [--ensemble=N] |
小黑怪誕手繪 v1 風格 SVG 插圖(profile:xiaohei-v1 / minimal;--ab 並列產出投票;--ensemble=3 並行 3 候選選最佳,~18s) | |
/illustrate redo <vault 相對路徑> |
對既有筆記重生 illustration(替換 frontmatter + 寫新 SVG) | |
/illustrate clear <vault 相對路徑> |
移除 frontmatter illustrations + 刪 SVG 檔 | |
/illustrate list [--recent] |
列出帶圖筆記 + 偵測 orphan SVG 引用 | |
/illustrate cleanup-orphans [--dry-run] |
批次清除所有 orphan SVG 引用 | |
/illustrate stats |
per-profile 健康 + A/B 投票偏好 | |
| 追蹤 | /track |
統一追蹤入口(時間軸 / 訂閱 / 巡邏) |
/timeline @用戶 |
抓取用戶最近貼文 | |
/subscribe |
訂閱管理(查看 / 新增 / 移除 / 白名單) | |
/patrol |
多平台巡邏(HN / Reddit / Dev.to / GitHub) | |
| 發現 | /discover <關鍵字> |
GitHub 專案探索 |
/radar |
內容雷達(多來源自動搜尋) | |
/suggest |
推薦相關筆記連結 | |
| Vault | /vault |
統一維護入口(7 子功能) |
/quality |
品質報告 + 自動修復 | |
/dedup |
重複筆記掃描 | |
/reprocess <路徑> |
重新 AI 豐富筆記 | |
/reformat |
修復排版問題(舊指令;建議改用 /normalize) |
|
/normalize |
Markdown 正規化(regex + LLM 雙層,含 --restructure LLM-first 模式) |
|
/benchmark |
品質基準報告 | |
/retry |
重試失敗連結 | |
| 系統 | /admin |
統一管理入口(8 子功能) |
/config |
功能開關即時切換(含 /config limits 數值上限管理) |
|
/filter |
內容過濾管理(查看 / 新增 / 移除黑名單) | |
/toolkit |
開發工具箱 | |
/memory |
匯出學習記憶 | |
/skillmgr |
AI 技能管理 |
所有指令缺參數時會自動引導輸入。統一入口使用 InlineKeyboard 按鈕選擇子功能。
| 統一入口 | 子指令 | 用途 |
|---|---|---|
/search |
vault <關鍵字> |
搜尋 Vault 筆記(frontmatter + 全文) |
web <查詢> |
網頁搜尋(DuckDuckGo) | |
monitor <關鍵字> |
跨平台搜尋提及 | |
video <關鍵字> |
搜尋影片筆記(章節/轉錄) | |
/knowledge |
dna |
🧬 知識 DNA — keyword 指紋、分類分佈、學習重心轉移、空白帶,結果存 Vault |
evolve |
🔬 分類器進化 — 自動生成規則變體、評估準確率、套用最佳變體 | |
/digest |
digest |
精華摘要(末尾自動附加 💀 知識死角) |
weekly |
週報深度合成 | |
distill |
知識蒸餾(末尾附加 📈 季度技能成長 sparkline) | |
distill conflicts |
矛盾偵測:找出 Vault 中互相衝突的觀點 | |
distill gaps |
知識缺口地圖:找出覆蓋不足的領域,自動加入 Radar 追蹤(無需點按鈕) | |
consolidate |
跨筆記洞察 | |
cards |
baoyu-xhs-images 知識卡片(自動選 style/layout) | |
pptx |
PPTX 規格 JSON(GordenPPTSkill / python-pptx 友善) | |
/track |
timeline @用戶 [數量] |
抓取用戶最近貼文 + 時間軸視覺提示詞 |
subscribe |
訂閱管理(查看/新增/移除) | |
patrol |
多平台巡邏(HN/Reddit/Dev.to/GitHub) | |
patrol stats |
Bot 主動值班效率報告(proactive ratio) | |
/vault |
quality |
品質報告 + 自動修復按鈕 |
dedup |
掃描重複筆記 | |
reprocess <路徑> |
重新 AI 豐富筆記 | |
reformat |
修復排版問題 | |
benchmark |
品質基準報告 | |
retry |
重試失敗連結 | |
suggest |
推薦相關筆記連結 | |
normalize [--sample|--dry-run|--all|--llm|--restructure|--since Nd|path] |
Markdown 正規化(regex + LLM 雙層清理 LLM 髒輸出) | |
guardian [--since Nh] [--dry-run] |
六維度品質守護掃描,低分文章推送 Telegram | |
draft [category] [--days N] |
從指定分類近 N 天筆記生成草稿 | |
find <關鍵字> |
三層索引快速搜尋(IDF + AND bonus + phrase + 標題長度懲罰) | |
pulse |
系統儀表板(索引狀態、近期量測、A/B 進度) | |
hot-categories |
熱門分類 Top N(含 24h delta) | |
source-stats |
來源統計(per-platform 筆記數 / 成功率) | |
dedup-scan |
全 Vault 重複群組掃描(Union-Find + inline merge) | |
inbox-audit [N] |
LLM 重新分類 inbox,信心 ≥ 0.85 生成直接移動按鈕 | |
review-stats |
Reviewer 評分分佈、related context A/B、Panel vs Single A/B | |
illustration-stats |
Illustration 覆蓋率、profile 分布、預算、14 天 sparkline、健康狀態 | |
dashboard(或 dash) |
一頁整合儀表板:近 7 天 / Reviewer / Illustration / 配置摘要 | |
errors [N] |
顯示近期 silent warns(按 scope group) | |
metrics |
per-type / per-platform pass 率與失敗模式 | |
feedback-stats |
用戶分類修正歷史與轉移模式 | |
/admin |
status |
Bot 狀態與統計 |
health |
系統健康報告 | |
doctor |
全面即時診斷(含 ⚡ 管線韌性稽核:掃描所有 LLM 呼叫點的 try/catch 覆蓋狀況) | |
logs [n] |
查看最近 log | |
restart |
遠端重啟 Bot | |
code <action> |
遠端執行指令 | |
clear |
清除統計 | |
learn |
Vault 學習(分類/翻譯) |
研究工具(Research Toolkit)
Sediment 不只是收錄工具——內建完整的研究工作流,讓 Vault 中累積的知識可以被查詢、分析、重組為新的輸出。
| 指令 | 用途 | 輸出 |
|---|---|---|
/research <主題> |
從 Vault 搜尋相關筆記,AI 生成研究摘要 | Telegram 訊息(摘要 + 核心概念 + 關鍵問題 + 參考筆記) |
/slides <主題> |
根據 Vault 筆記自動生成簡報 | PPTX 檔案(直接下載) |
/anki <主題> |
生成記憶卡片 | 10 張問答式 flashcard |
Bot 啟動後瀏覽器自動開啟 http://localhost:3001/research,進入三欄式互動研究介面。點左側欄「管理」按鈕可開啟設定面板(初始設定、功能配置、監控面板):
- 左欄:筆記瀏覽器,支援資料夾樹狀展開、標籤篩選、多選勾選、筆記管理(移動/改名/刪除)
- 中欄:輸入研究主題 → AI 分析 → 互動式對話(支援對話歷史、
[[wikilink]]引用) - 右欄:工具面板 — 投影片預覽/下載、AI 工具快捷入口(結果統一輸出至中欄)
Vault 筆記管理(左欄):
| 功能 | 操作 |
|---|---|
| 階層資料夾樹 | 完整還原 Vault 子資料夾結構(如 Sediment/AI/多模態生成/影片),空資料夾也顯示 |
| 拖放移動 | 拖筆記到任一資料夾標題即移動;多選時整批一起拖;落點以紫色虛線提示 |
| 樹狀移動對話框 | 點 ⋯ → 移動,支援 🔍 搜尋過濾、新建子資料夾、選擇後確認,避免誤點 |
| Shift-click 區間多選 | 點第一筆 → shift+點第十筆,一次選十筆 |
| 批次進度條 | 多筆移動以對話框內進度條顯示 N/總數,失敗彙整一次提示 |
| 復原上一次移動 | 移動後左下出現「↶ 復原」toast,12 秒內可一鍵回到原資料夾 |
| 改名同步 wikilinks | 改名對話框勾選後,自動更新 Vault 全量 [[wikilink]]/[[name|alias]]/[[name#section]] |
| 資料夾管理 | hover 出現 ⋯ 或右鍵 → 重新命名(遞迴更新底下筆記 frontmatter + 索引)/刪除空資料夾 |
| 原生右鍵 | 筆記與資料夾皆支援右鍵直接彈出操作選單 |
| 三層索引同步 | 移動/改名/刪除立即更新 data/vault-index.json,左側樹即時反映新位置 |
筆記查看器(HTML 渲染):
點擊左欄筆記縮圖,以 iframe 彈窗顯示渲染後的 HTML(與 Bot 同一套 renderer),而非原始 Markdown。
| 功能 | 說明 |
|---|---|
| 💾 另存新檔 | 下載完整 .html 檔案到本機(另一台電腦也可離線閱讀) |
| 📋 複製 Markdown | 複製原始 .md 到剪貼簿 |
| 🌓 深色模式同步 | 切換頁面主題時,筆記 iframe 自動跟隨重載 |
[[wikilink]] 導航 |
點擊筆記內 wikilink,直接在左欄開啟對應筆記 |
三欄寬度自由調整:
左右欄邊緣可用滑鼠拖動調整寬度,設定自動存入 localStorage,下次開啟維持。雙擊邊緣重置為預設比例。
每條 AI 回應下方的 Action Bar:
| 按鈕 | 說明 |
|---|---|
| 📋 複製 | 將該則回應複製到剪貼簿 |
| 💾 存入 Vault | 將該則回應存為 Vault/Sediment/知識整合/research-{主題}-{時間}.md |
| 🛠 工具 ▾ | 下拉選單觸發研究報告、比較表、Anki、教學大綱(結果顯示於中欄對話區) |
輸入框底部「💾 全部存入 Vault」可將整段對話(所有 AI 回應)合併成一份筆記。存入後以 toast 顯示檔名確認,已存入按鈕自動鎖定防重複。
存入的 Markdown 帶有 frontmatter:category: 知識整合、tool: {工具類型}、tags。
支援三語切換(繁中 / English / Tiếng Việt)。
Vault 筆記 → 內容壓縮 → 版面推斷 → PPTX 渲染
11 種版面自動推斷:標題頁、摘要、條列、對比(左右欄 + VS 標記)、表格、引言、指標卡片(2×2 KPI)、時間軸、來源引用、架構分層圖、圖片集
3 種配色風格:Notion 暖色調、技術藍圖深色、企業淺色
版面根據內容關鍵字自動推斷(例如含「比較」→ 對比版面,含「架構」→ 分層圖),使用 pptxgenjs 渲染為標準 PPTX 檔案,支援微軟正黑體繁中排版。
| 工具 | 說明 |
|---|---|
| 研究報告 | 結構化報告(摘要、背景、核心發現、分析洞察、結論建議),deep 模型生成 |
| 對比表格 | 自動比較 Vault 中的工具/方案/概念,Markdown 表格 + 分析總結 |
| Anki 卡片 | 10 張理解導向的問答卡片,適合主動回憶練習 |
| 教學大綱 | 學習目標 + 5-8 章課程架構 + 延伸閱讀推薦 |
研究工具內建智慧文本壓縮,自動清除圖片標記、廣告話術(30+ 模式)、重複段落(Jaccard 相似度 >0.75 自動去重),並根據主題相關性篩選內容。壓縮結果以 SHA256 雜湊快取,避免重複處理。
| 功能 | flag | 說明 |
|---|---|---|
| 知識節點抽取 | knowledgeNodes |
入庫時抽 2-3 個帶類型節點(工具/技術、商業/現象、行為/洞察)存 data/knowledge-nodes.jsonl,供 /ideas、/connect 交叉組合;backfill 既有筆記:npx tsx scripts/backfill-knowledge-nodes.mjs(預設 dry-run 樣本) |
| 原子主張統計 | claimStats |
reviewer 順手抽 ≤8 條原子主張,bigram Jaccard 算與既有主張重疊數,寫 data/claim-stats.jsonl(觀察用) |
| 插圖視覺評審 | visionOracle |
SVG 經 qlmanage 渲染後給 Qwen2.5-VL 評佈局,< 6 分帶回饋重畫一次(單張 +~4.5s,macOS only) |
以上預設 OFF,/config 即時切換。LLM 呼叫成本可在 /vault dashboard 的「LLM 成本」區段查看(per-task 呼叫數 / tier 分布 / 平均延遲)。
常見問題
Bot 沒有回應?
在終端機按 Ctrl+C 停止,再執行 npm run dev 重新啟動。
顯示「409 Conflict」? 上次 Bot 未正確關閉。程式內建 ProcessGuardian 三段式自癒會自動處理:指數退避重試 → 自動 logOut + 冷卻 → 退出提示。通常無需人工介入。
抓取超時或失敗? 所有外部請求皆有超時保護(HTTP 30s / 影片 120s / 存檔 10s)。如果 DuckDuckGo 被限流,搜尋會自動降級到 Camoufox。
想修改設定?
編輯 .env 檔案,或在 Telegram 使用 /config 即時切換功能開關。
跨裝置同步(選配)
Vault 預設不儲存影片(SAVE_VIDEOS=false),實際大小約數十 MB,非常適合雲端同步。
推薦方案:InfiniCLOUD(免費 20GB WebDAV)+ Remotely Save 外掛
- 註冊 InfiniCLOUD → My Page → 開啟 Apps Connection → 取得 WebDAV 位址與專用密碼
- Obsidian 安裝 Remotely Save 外掛 → Remote Service 選 WebDAV → 填入位址、帳號、WebDAV 密碼
- 建議啟用 Password-Based Encryption(E2E 加密)
- 三台裝置(Windows / Mac / iPhone)使用相同設定,首次同步後即可自動排程
其他相容後端:OneDrive、Dropbox、S3、Synology NAS WebDAV。
開發資訊
npm run dev # 開發模式(tsx 即時執行)
npm run dev:loop # 開發模式 + 自動重啟(搭配 /restart 指令)
npm run build # 編譯 TypeScript
npm start # 生產模式(需先 build)
npm run start:loop # 生產模式 + 自動重啟
npx tsc --noEmit # 型別檢查
npm test # 執行測試(Vitest)
npm run lint # Biome 檢查
npm run format # Prettier 排版
npm run housekeep # log 滾動 / cache TTL / observations 壓縮(一鍵維護)
npm run housekeep:dry # housekeep dry-run + verbose
npm run ccwf:export # CLI 版本的 /ccwf:npm run ccwf:export -- <分類> [--limit=10]
npm run render:pptx # 把 /digest 產出的 spec JSON 渲成 .pptx(需 python-pptx)
# Smoke test(真實 oMLX 端到端驗證,預計 ~45s)
npm run smoke:all # 9 個 smoke 串跑
npm run smoke:illustration # 單張 SVG 真實生成
npm run smoke:illustration:dry # 純 prompt 組裝
npm run smoke:vote # vote → 偏好聚合
npm run smoke:health # 健康監測 + 自動關閉 + 防抖
npm run smoke:list-cleanup # list / cleanup-orphans(無 LLM)
npm run smoke:auto # runAutoIllustration 端到端
npm run smoke:redo # /illustrate redo 完整鏈路
npm run smoke:reviewer # panel A/B 純函式(無 LLM)
npm run smoke:reviewer-panel # panel 3 persona × 真實 oMLX 評分
npm run smoke:no-llm # 6 個 no-LLM smoke 平行(~1.5s)
npm run smoke:ci # CI 專用(同 smoke:no-llm)
npm run bench:omlx # 量測 oMLX 並發 speedup(~10s,3× standard tier)攝取 編譯 查詢 輸出
Ingest Compile Query Output
───────────── ────────────── ───────────── ──────────────
14 平台 Extractor 108 規則分類器 /ask 知識問答 /digest 週報
+ PDF / 通用網頁 + AI 摘要 + 翻譯 /explore 探索 /slides 簡報
+ /radar 雷達 + 實體萃取 /research 研究 /anki 記憶卡
+ /track 巡邏 + 知識圖譜建構 /vsearch 語意搜 PNG 資訊卡
+ 連結深度抓取 + 動態學習 /search 統一搜 主動推理推送
+ RSSHub 5000+ 路由 + 記憶整合 wikilink 推薦
+ 主題編譯(Karpathy)
自癒 Lint
──────────────
Harness 品質閘門
(Evaluator→Generator)
Reviewer Panel(多 persona 合議,opt-in)
noveltyScore(Jaccard vs Vault 同類)
HTML 自動修復
Extractor 健康探測
失敗反思 + 重試
- TypeScript + ESM(
tsx執行),470 個檔案,1212 個自動化測試 + 9 個 smoke script + 1 個 bench(npm run smoke:all/bench:omlx) - Telegraf — Telegram Bot API(10 指令 hub 架構 + InlineKeyboard + ForceReply)
- Camoufox — 反偵測瀏覽器(Firefox 基底),瀏覽器池最多 4 實例,閒置立即釋放
- Jina Reader — 通用網頁 Markdown 轉換(
r.jina.ai),Readability 失敗時自動觸發,零配置 - RSSHub — 自架 Docker 服務(port 1200),5000+ 路由覆蓋中文內容平台,整合進 Patrol 巡邏來源
- MediaCrawler — Python FastAPI 服務(port 8765),小紅書 / 抖音帶 Cookie 抓取,Camoufox 失敗時自動降級
- ProcessGuardian — 三段式 409 自癒(指數退避 → 自動 logOut + 冷卻 → 退出)+ 殭屍進程自動清理
- OpenCode CLI + 多模型路由 — 依複雜度自動選 flash / standard / deep 免費模型;可選 oMLX 本地推理優先
- 知識系統 — 實體萃取、知識圖譜、缺口分析、Skill 自動生成、用戶偏好萃取、知識蒸餾(含視覺化提示詞)、記憶整合、MOC 生成、Karpathy 主題編譯
- 視覺卡片系統 —
visual-cards-builder自動依分類選 style(notion/minimal/bold/fresh),依摘要長度選 layout(dense/balanced/list),輸出 baoyu-xhs-images 格式指令 - YouTube InnerTube fallback — yt-dlp 未安裝時自動降級到 HTML 頁面提取 metadata;說話人識別(feature flag,flash tier LLM)
- 研究助理 — 互動式研究對話、PPTX 簡報生成、Anki 記憶卡、壓縮快取、資源管理
- 資訊卡片 — 每則筆記自動生成 PNG 視覺摘要卡(標題 / 分類 / 關鍵字 / 分類色系)
- 分類系統 — 24 個分類模組、108 條規則(含 13 個 AI 子領域)+ 動態學習
- 所有長任務採 fire-and-forget:先回覆「處理中」→ 背景執行 → 完成通知
- 評論品質篩選:去除讚美/感謝語後不足 10 字的評論自動濾除
- URL 去重快取:避免重複儲存相同內容
- 批次翻譯:opencc-js(簡轉繁,採 twp 變體繁化台灣 IT 詞彙:軟體 / 網路 / 記憶體)+ Google Translate(英翻中),無需 API key
20 個自訂技能,涵蓋開發全流程:
| 類別 | 技能 | 用途 |
|---|---|---|
| 開發流程 | /design /dev /ship /improve |
架構確認 → 開發 → 驗證提交推送 → 審計改善 |
| 驗證 | /verify |
完成前 4 步驟閘門:tsc → 單元測試 → smoke check → git status |
| Session | /resume /handoff |
自動啟動 / 交接記錄 |
| 測試 | /test |
classify / extractor / smoke / status |
| 重構 | /refactor |
影響分析 → 遷移 → 模組化拆分 |
| Vault | /vault /vault-audit /vault-guardian |
維護修復 / Vault 全量品質稽核 / 品質守護排程 |
| Vault 蜂群 | /vault-swarm |
平行 Task agents 按分類稽核 Vault 品質,合併為單一 PR |
| Spec 驅動 | /spec |
從 specs/<name>.md 生成失敗測試 → TDD 迴圈直到通過 → 開 PR |
| Bot 管理 | /launch |
啟動 / 停止 / 診斷 409 |
| 維護 | /health /weekly |
即時快照 / 週維護(含依賴檢查) |
| 新平台 | /new-platform |
腳手架 → 實作 → 測試 → 提交 |
| 除錯 | /bug-swarm |
3 worktree 平行 TDD 修復,reviewer 選最優解 |
- 所有 TypeScript 檔案 ≤ 300 行(PostToolUse hook 自動偵測;違規即時提示拆分)
- 不使用任何 API SDK(無 Anthropic SDK、無 OpenAI SDK)
- LLM enrichment 來源:oMLX 本地推理(選配)→ OpenCode CLI 多模型路由(flash / standard / deep,全免費)→ DDG AI Chat(免費備援)
- LLM 連線設定優先順序:環境變數 →
user-config.json(admin UI 儲存值),避免設定漏讀 - Enrichment 輸出過濾廢話與廣告語,保持中性專業語氣;GitHub badge/shield 圖片自動清除
- Frontmatter 防護:
---關閉標記確保獨立成行,防止與後續內容黏合 - 外部呼叫必須有 timeout(HTTP 30s / yt-dlp 120s / Obsidian 10s)
- 輕量 Vault — 影片預設不存入 Vault(
SAVE_VIDEOS=false),僅保留原始 URL 連結 - 調查工作流標準化:debug pipeline 先驗服務狀態(oMLX / Sediment / log),再列假說、再讀 code,避免空 grep 燒 context;假說 ≥ 3 個時用
/investigate-parallel分派子 agent 並行驗證 - 型別安全:biome 0 warnings,
noExplicitAny0,slide-types.ts集中定義投影片共用型別 - 設定參考:詳見
docs/configuration.md(11 個環境變數完整說明)
src/
├── index.ts # 入口(ProcessGuardian 自動重試)
├── bot.ts # Telegram Bot(ForceReply 攔截 + URL 處理)
├── classifier.ts # 內容智慧分類(108 規則 × 24 大類)
├── classifier-categories.ts # 分類規則資料(108 規則 × 24 大類)
├── saver.ts # Obsidian 存檔協調(主流程)
├── saver/ # 存檔子模組
│ ├── slug.ts # 檔名 slug 生成
│ ├── url-index.ts # URL 去重索引(in-memory + 持久化)
│ └── image-downloader.ts # 圖片下載 + 同來源洪水警告
├── process-guardian.ts # 三段式 409 自癒 + 殭屍清理 + PID lockfile
├── cards/ # 資訊卡片
│ ├── card-renderer.ts # PNG 卡片渲染引擎
│ └── card-templates.ts # 卡片版型(標題/分類/關鍵字/色系)
├── commands/ # 指令處理(32 指令 + InlineKeyboard)
│ ├── register-commands.ts # 統一指令註冊 + callback 路由
│ ├── *-hub.ts # 4 個統一入口(search/track/vault/admin)
│ └── *-command.ts # 各功能 handler
├── extractors/ # 各平台內容擷取器(14 平台)
│ ├── x-extractor.ts # Twitter/X(fxTweet API)
│ ├── threads-extractor.ts # Threads(Camoufox,topic tag 偵測)
│ ├── threads-extractor-helpers.ts # Threads helpers(text parsing / image / video)
│ ├── reddit-extractor.ts # Reddit(公開 API)
│ ├── youtube-extractor.ts # YouTube(yt-dlp + 播放清單)
│ ├── tiktok-extractor.ts # TikTok(yt-dlp + whisper.cpp STT)
│ ├── github-extractor.ts # GitHub(REST API)
│ ├── bilibili-extractor.ts # B站(公開 API)
│ ├── weibo-extractor.ts # 微博(API + Camoufox)
│ ├── xiaohongshu-extractor.ts # 小紅書(Camoufox)
│ ├── douyin-extractor.ts # 抖音(Camoufox)
│ ├── zhihu-extractor.ts # 知乎(Camoufox)
│ ├── ithome-extractor.ts # iTHome(台灣科技新聞)
│ ├── direct-video-extractor.ts # 直連影片(MP4/WebM/MKV)
│ └── web-extractor.ts # 通用網頁(5 層降級:Readability→Jina→Camoufox→BrowserUse→Regex)
├── formatters/ # 按平台分離的 Markdown 格式化
│ ├── base.ts # 組裝器(frontmatter + body + stats)
│ ├── shared.ts # 共用工具(評論品質篩選, badge 過濾)
│ └── *.ts # 各平台 formatter
├── knowledge/ # 知識系統
│ ├── knowledge-store.ts # 知識庫讀寫
│ ├── knowledge-graph.ts # 知識圖譜(缺口分析、實體關聯)
│ ├── skill-generator.ts # 高密度主題 → Skill 自動生成
│ ├── distiller.ts # 知識蒸餾
│ ├── topic-compiler.ts # 主題知識編譯(Karpathy raw→compiled 架構)
│ ├── consolidator.ts # 記憶整合(跨筆記叢集 + LLM 洞察)
│ ├── consolidator-clusters.ts # 叢集建構(Union-Find + 實體計數)
│ ├── moc-generator.ts # Maps of Content 自動生成
│ ├── vault-analyzer.ts # 增量 Vault 分析(實體萃取 + 關係抽取)
│ ├── health-report.ts # 知識健康報告
│ ├── health-report-formatter.ts # 健康報告 Telegram formatter + Vault saver
│ └── knowledge-dna.ts # 知識 DNA(keyword 指紋 + 分類分佈 + 學習重心轉移)
├── research/ # 研究助理 + Vault 筆記管理
│ ├── research-commands.ts # /research /slides /anki 指令
│ ├── chat-service.ts # 互動式研究對話引擎
│ ├── slide-pptx.ts # PPTX 簡報生成
│ ├── vault-manage-routes.ts # /api/vault/* 路由(資料夾管理 + 筆記 CRUD 分派)
│ ├── vault-note-handlers.ts # 筆記 CRUD handlers(GET/HTML/rename/delete/move)
│ ├── vault-manage-sync.ts # 同步 frontmatter / 三層索引 / wikilinks
│ └── research-ui.html # 研究介面 Web UI(含拖放、shift-click、復原、右鍵選單)
├── enrichment/ # 內容後處理(連結展開、翻譯)
├── learning/ # 分類學習與 AI 增強(含 classifier-evolver.ts AlphaEvolve 進化循環)
├── radar/ # 內容雷達(多來源自動搜尋 → Vault)
├── patrol/ # 多平臺巡邏(HN / Dev.to / GitHub Trending / RSSHub)
├── admin/ # Admin Web UI(port 3001)
├── memory/ # 使用者偏好記憶
├── video/ # 影片語意搜尋(FTS5)
├── plugins/ # 插件系統(動態載入)
├── proactive/ # 主動推理(排程摘要 + 趨勢警報)
├── monitoring/ # 自我修復 + 品質基準
├── vault/ # Vault 維護工具
└── utils/ # 共用工具(LLM 路由 / 搜尋 / 快取 / 瀏覽器池 / Jina / RSSHub / MediaCrawler)
├── markdown-normalizer/ # Markdown 正規化模組(LLM 髒輸出清理)
│ ├── rules.ts # 11 條 regex 純函數規則
│ ├── validator.ts # remark AST round-trip 驗證 + 警訊偵測
│ ├── llm-restructure.ts # oMLX LLM 語意重排(含連結完整性守衛)
│ └── index.ts # 公開 API(normalizeLLMMarkdown / normalizeFullNote / normalizeWithLlmRestructure)
├── note-html-renderer.ts # HTML 渲染器(Bot + Research UI 共用,支援 [[wikilink]] postMessage)
├── note-html-markdown.ts # Markdown → HTML 轉換(含 preprocessLLMMarkdown 前處理)
├── note-html-styles.ts # 筆記 HTML CSS(深色/淺色主題,h3/h4 層級樣式)
├── usage-tracker.ts # LLM 呼叫 usage 追蹤(tier/task/耗時,寫入 data/usage-stats.jsonl)
├── innertube-service.ts # YouTube HTML metadata 提取(InnerTube API,yt-dlp fallback)
├── speaker-identifier.ts # YouTube 字幕說話人識別(flash tier)
└── visual-cards-builder.ts # baoyu-xhs-images 知識卡片 + 時間軸視覺提示詞生成
詳見 CONTRIBUTING.md。歡迎使用 Claude Code / Codex 等 AI 輔助工具。
ISC License — 可自由使用、複製、修改與散布,僅需保留版權聲明。