Token导航 LogoToken导航TokenDH.com
研究检索权限需确认clawhub未标认证来源可访问clear审计提醒

obsidian-llm-wikiObsidian LLM wiki 搜索

Agent Skill

obsidian-llm-wiki 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,992

周安装

168

GitHub Stars

公开资料未说明

下载量

1,398
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:obsidian-llm-wiki(Obsidian LLM wiki 搜索)
来源仓库:https://github.com/eddiewang-zhhx/obsidian-llm-wiki
安装命令:
openclaw skills install obsidian-llm-wiki
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install obsidian-llm-wiki

简介

基于 Karpathy 方法论构建自动化知识库系统。

  • 支持多源素材(网页、PDF、视频)的智能整理。
  • 使用 openclaw skills install obsidian-llm-wiki 安装。
  • 需确认是否调用第三方 AI 服务进行语义分析。
  • 建议定期清理冗余条目保持库整洁。obsidian-llm-wiki 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
obsidian-llm-wiki
description
|

⚠️ 产品限制

Obsidian CLI 依赖条件:

  1. Obsidian CLI 必须开启:设置 → 关于 → 命令行界面 → 启用
  2. Obsidian 建议最新版(CLI 功能需要较新版本支持)
  3. vault 必须用 Obsidian 打开过一次(CLI 需要 Obsidian 注册过该 vault)
  4. 网络:素材提取可能需要网络访问

obsidian-llm-wiki — 个人知识库构建系统

把碎片化信息变成持续积累、互相链接的知识资产。你只需提供素材,AI 完成所有整理工作。

这个 skill 做什么

obsidian-llm-wiki 帮你构建一个持续增长的 Obsidian 知识库

  • 你给素材(链接、文件、文本),AI 提取核心知识并整理成互相链接的 wiki 页面
  • 知识库随每次使用变得更加丰富,而不是每次重新开始
  • 所有内容都是本地 markdown 文件,用 Obsidian 实时查看
  • obsidian-cli 驱动所有 vault 操作,绕过文件锁

核心理念

"这不是 RAG。RAG 每次查询都从原始文档重新推导知识。而 wiki 是编译一次,然后持续维护。"

原则含义
Sources are truthraw/ 是不可变的原始素材,AI 只写 wiki/
Compound, don't duplicate每次 ingest 与已有页面整合,不是孤立总结
Link liberally交叉引用是 wiki 长期价值的来源
Surface contradictions> ⚠️ Contradiction with [[source]] 标记矛盾
Index is the entry point每次查询从 index.md 开始
Good answers belong in the wiki有价值的分析应该进入 wiki
Maintenance cost is near zeroAI 不会无聊、不会遗忘、不会失去一致性

素材获取插件推荐

Obsidian 官方和社区有多款插件可将网页内容转为 Markdown:

插件类型特点
Obsidian Web Clipper浏览器扩展官方出品,剪藏网页为 Markdown
简悦 (Obsidian8)Obsidian 插件高亮、标注、剪藏,生态成熟
Obsidian URL ClipperObsidian 插件可视化选择器精准抓取正文
DefuddleCLI/网页命令行/网页内容提取
推荐组合:Obsidian Web Clipper(浏览器扩展)+ Defuddle(CLI 提取工具)配合使用。

目录结构

<vault_root>/
├── raw/                    # 原始素材 — 不可变,只读
│   ├── articles/          # 网页文章
│   ├── tweets/           # X/Twitter
│   ├── wechat/           # 微信公众号
│   ├── xiaohongshu/     # 小红书
│   ├── zhihu/            # 知乎
│   ├── pdfs/             # PDF 文件
│   └── notes/            # 本地笔记
│       ├── learning/      # 学习相关
│       ├── projects/     # 当前项目
│       └── testing/      # 测试管理
├── wiki/                  # 知识库 — AI 全权维护
│   ├── sources/           # 素材摘要(每篇素材的摘要页)
│   ├── entities/         # 实体页(人物、产品、概念、工具)
│   ├── topics/           # 主题页(研究领域、知识体系)
│   ├── comparisons/       # 对比分析
│   ├── synthesis/         # 综合报告
│   ├── index.md          # 知识库总索引
│   └── log.md           # 操作日志
├── templates/             # 页面模板(entity/topic/source)
└── README.md             # 知识库说明

obsidian-cli 工具整合

核心发现obsidian create ... overwrite 在 Obsidian 关闭时也能工作(直接写 vault 文件),完全绕过文件锁问题。

vault 名称

首次使用需确认 vault 名称(Obsidian 打开时执行 obsidian vaults 查看):

vault="<vault_name>"

核心命令速查

场景推荐命令备注
新建/覆盖页面obsidian vault="..." create path="wiki/path/page.md" content="..." silent overwritepath 支持子目录,name 不支持 /
追加到日志obsidian vault="..." append path="log.md" content="..."直接追加
lint:断链检查obsidian vault="..." unresolved total / verbose获取断链列表
lint:孤立页面obsidian vault="..." orphans total / verbose没有其他页面链接到它
lint:死链页面obsidian vault="..." deadends total / verbose没有出站链接
全文搜索obsidian vault="..." search query="关键词" path="wiki"精准搜索
查看入站链接obsidian vault="..." backlinks file="页面名"分析页面关系
查看出站链接obsidian vault="..." links file="页面名"分析页面关系
读取页面内容obsidian vault="..." read path="wiki/xxx.md"读取文件
读取模板obsidian vault="..." template:read name="模板名"需 Obsidian 打开

文件写入策略(重要更新)

⚠️ 经验教训:obsidian-cli 的 content 参数不适合长内容(>500字),会截断!请务必遵循以下策略。

判断标准

内容长度推荐方式原因
短内容(<500字)obsidian create content=xxxCLI 写入,绕过文件锁
长内容(>500字)write_to_file直接写文件,避免截断
追加日志obsidian append适合短日志条目
编辑文件中间部分replace_in_file精确替换,避免重复

长内容写入流程

# Step 1: 使用 write_to_file 直接写入完整内容
# Step 2: (可选)验证文件是否完整
obsidian vault="<vault>" read path="wiki/path/page.md"

短内容写入流程(Obsidian 打开时)

# 短内容可以用 CLI 写入
obsidian vault="<vault>" create path="wiki/path/page.md" content="简短内容" silent overwrite

# 追加日志
obsidian vault="<vault>" append path="log.md" content="## [2026-04-08] log entry"
⚠️ CLI 写入长内容的风险:如果内容包含代码块(反引号)、特殊字符或超过命令行长度限制,会被截断!宁可多用 write_to_file。

何时用 Python/File工具 vs obsidian-cli

任务推荐方案说明
新建/覆盖 wiki 页面(长内容)write_to_file避免截断风险
新建/覆盖 wiki 页面(短内容)obsidian createObsidian 打开时用
追加日志obsidian append适合短条目
编辑文件中间部分replace_in_file精确替换
lint 健康检查obsidian CLI内置精准命令
全文搜索obsidian search内置搜索
页面关系查询obsidian backlinks/links内置命令
文件统计obsidian files folder内置命令

临时文件管理

如果处理过程中创建了临时文件(如 temp.md),必须及时删除

# 处理完成后检查并删除临时文件
rm temp_source.md

模板系统

知识库使用固定格式的模板,保证页面结构一致性。

模板文件位置

Skill 自带模板(初始化时复制到 vault):

<skill_dir>/templates/
├── entity-template.md    # 实体页模板
├── topic-template.md     # 主题页模板
└── source-template.md    # 素材摘要模板

初始化后,模板位于 vault 的 templates/ 目录: ├── entity-template.md # 实体页模板 ├── topic-template.md # 主题页模板 └── source-template.md # 素材摘要模板


### 页面格式(5段式)

所有 wiki 页面遵循统一格式:

**实体页 / 主题页**:

标题

类型描述

概述

  • 类型
  • 定位

关键要点

  • 要点1(→ [[来源页面]])
  • 要点2

关联

  • [[相关实体]] — 关联原因

反面论证与空白

  • 暂无已记录的局限或待验证点

来源

  • [[素材摘要页]]

**素材摘要页**:

标题

来源:raw/... 日期:YYYY-MM-DD

概述

  • 类型
  • 来源

关键要点

关键概念

关联

  • [[相关实体/主题]] — 关联原因

来源

  • raw/...

### 模板使用方式

import os

SKILL_DIR = r"C:\Users\<用户名>\.workbuddy\skills\obsidian-llm-wiki"

def load_template(vault_root, name): # 优先用 vault 本地模板,否则用 skill 内置模板 local = os.path.join(vault_root, "templates", f"{name}-template.md") skill_tpl = os.path.join(SKILL_DIR, "templates", f"{name}-template.md") path = local if os.path.exists(local) else skill_tpl with open(path, "r", encoding="utf-8") as f: return f.read()

def create_entity_page(vault_root, title, page_type, key_facts, sources): t = load_template(vault_root, "entity") return t.replace("{{title}}", title)\ .replace("{{type}}", page_type)\ .replace("{{key_facts}}", key_facts)\ .replace("{{sources}}", sources)


---

## 工作流路由

根据用户意图路由到对应工作流:

| 用户意图关键词 | 工作流 |
|---|---|
| "初始化知识库"、"新建 wiki" | → **init** |
| URL / 文件路径 / "添加素材"、"消化"、"整理" | → **ingest** |
| "批量消化"、"把这些都整理" / 文件夹路径 | → **batch-ingest** |
| "关于 XX"、"查询"、"XX 是什么" | → **query** |
| "深度分析 XX"、"综述 XX"、"digest XX" | → **digest** |
| "检查知识库"、"健康检查"、"lint" | → **lint** |
| "知识库状态"、"现在有什么" | → **status** |

---

## 工作流 1:init(初始化)

> **推荐直接运行初始化脚本**,一键完成所有设置。

### 一键初始化(推荐)

**跨平台初始化脚本(Windows / macOS / Linux):**

Windows (Git Bash / WSL)

chmod +x "<skill_dir>/scripts/init-wiki.sh" "<skill_dir>/scripts/init-wiki.sh" "C:/MyVault" "AI学习"

macOS / Linux

chmod +x "<skill_dir>/scripts/init-wiki.sh" "<skill_dir>/scripts/init-wiki.sh" ~/MyVault "AI学习"

或不带参数运行交互式模式

"<skill_dir>/scripts/init-wiki.sh"


> 💡 **Windows 用户提示**:使用 **Git Bash** 或 **WSL** 运行脚本

脚本自动完成:
- 创建 `raw/` 和 `wiki/` 完整目录结构
- 复制模板文件到 `templates/`
- 生成 `index.md`(表格格式)
- 生成 `log.md`(分类前缀格式)
- 生成 `README.md`

### 手动初始化步骤

1. **询问 vault 路径**:"你的知识库要放在哪里?"
2. **询问知识库主题**:"你的知识库要围绕什么主题?"
3. **运行初始化脚本**或手动创建目录
3. **创建目录结构**:创建 raw/ 和 wiki/ 子目录
4. **创建模板文件**:写入 entity/topic/source 模板
5. **创建 index.md 和 log.md**
6. **记录 vault 名称**:写入 `~/.llm-wiki-vault` 方便后续复用

---

## 工作流 2:ingest(消化素材)

### 素材提取路由

| 素材类型 | 提取方式 |
|---------|---------|
| 微信公众号文章 | `<env> run wechat-article-to-markdown "<URL>"` |
| YouTube 视频 | `<env> uv run scripts/get_transcript.py "<url>"` |
| X/Twitter | `bun --cwd "<scripts>" main.ts <url>` |
| 其他 URL | `bun --cwd "<scripts>" main.ts <url>` |
| 本地 .md/.txt/.pdf | 直接读取 |
| 用户粘贴文本 | 直接使用 |

### 完整处理流程

1. **保存原始素材**到 `raw/` 对应目录
2. **阅读素材,提取关键信息**:
   - 核心观点(3-5 个要点)
   - 关键概念(3-5 个)
   - 与已有素材的关联
3. **生成素材摘要页** → **write_to_file** `wiki/sources/`
   > ⚠️ 素材摘要通常较长,用 write_to_file 避免截断
4. **更新或创建实体页** → **write_to_file** `wiki/entities/`
   > 如果内容很短(<500字),可用 obsidian CLI
5. **更新或创建主题页** → **write_to_file** `wiki/topics/`
6. **更新 index.md** → **replace_in_file**(追加新条目到表格)
7. **更新 log.md** → **replace_in_file**(追加 ingest 记录)
8. **向用户展示结果**

> 💡 **验证文件完整性**:写入后读取前 30 行确认内容完整

### 简化处理(短素材 <= 1000 字)

只生成素材摘要 + 提取 1-3 个关键概念,不创建/更新主题页。

> 💡 简化处理的文件写入仍建议用 write_to_file,除非确认内容非常简短。

---

## 工作流 3:lint(健康检查)

> **优先使用 obsidian CLI**——内置精准的 lint 命令,无需 Python 扫描全文。

1. 断链(被 [[链接]] 但文件不存在)

obsidian vault="<vault>" unresolved total obsidian vault="<vault>" unresolved verbose # 详细列表

2. 孤立页面(没有其他页面链接到它)

obsidian vault="<vault>" orphans total obsidian vault="<vault>" orphans verbose # 详细列表

3. 死链页面(没有出站链接)

obsidian vault="<vault>" deadends total obsidian vault="<vault>" deadends verbose # 详细列表

4. index 一致性

obsidian vault="<vault>" files folder="wiki/entities" total obsidian vault="<vault>" files folder="wiki/topics" total obsidian vault="<vault>" files folder="wiki/sources" total


### 输出报告

知识库健康检查报告

断链(被 [[链接]] 但不存在):N 条

  • [[某概念]] → 建议创建新页面(来自 [[页面A]])

孤立页面(无其他页面链接):N 条

  • [[某页面]] → 建议从 [[相关页面]] 添加链接

死链页面(无出站链接):N 条

  • [[某页面]] → 建议添加相关链接

index 一致性:

  • wiki/entities/ 中有 N 个文件,index 中有 M 条

### 修复优先级

1. **断链 → 创建缺失实体/主题页**(阻塞其他问题)
   > 发现断链后,立即创建对应实体页,用 write_to_file 写入
   > 创建后记得更新 index.md 和 log.md
2. **孤立页面 → 添加到相关页面**
3. **死链页面 → 检查是否孤立或真的无需链接**
4. **index 不一致 → 更新 index.md**

### 断链修复流程
  1. obsidian unresolved verbose → 获取断链列表
  2. 对每个断链 [[名称]]:

a. 判断类型:实体页 / 主题页 b. write_to_file 创建页面 c. replace_in_file 更新 index.md

  1. replace_in_file 更新 log.md(记录修复)

---

## 工作流 4:query(查询知识库)

1. **读取 index.md** 了解知识库全貌
2. **搜索相关页面**:`obsidian search query="关键词" path="wiki"`
3. **读取最相关的 3-5 个页面**:`obsidian read path="wiki/..."`
4. **综合回答**:带内联引用 `[[页面名]]`
5. **建议回写**:询问是否保存为新的 wiki 页面

---

## 工作流 5:status(查看状态)

obsidian vault="<vault>" files folder="wiki/entities" total obsidian vault="<vault>" files folder="wiki/topics" total obsidian vault="<vault>" files folder="wiki/sources" total obsidian vault="<vault>" recents total # 最近打开


输出:页面数统计 + 最近活动 + 建议

---

## 环境依赖

> skill 支持多种运行时环境。占位符 `<env>` 表示用户应替换为自己的环境标识符。

### 依赖说明

| 依赖 | 安装方式 | 备注 |
|------|---------|------|
| youtube-transcript-api | `pip install youtube-transcript-api` 或 `<env> pip install youtube-transcript-api` | 视频字幕提取 |
| wechat-article-to-markdown | `uv tool install wechat-article-to-markdown` 或 `pip install wechat-article-to-markdown` | 微信公众号文章提取 |
| baoyu-url-to-markdown | `bun install <package>` | 通用网页提取 |

**环境说明:**
- `<env_name>` — 替换为你的 Python 环境名(如 `manti`、`base` 等)
- 示例:`pip install youtube-transcript-api` 或 `<env_name> pip install youtube-transcript-api`
- 推荐用 `uv` 或 `pipx` 安装全局工具避免污染项目环境

**即使部分依赖缺失,skill 仍可工作**(用户可以手动粘贴文本内容)。


---

## Security

- 纯指令型 skill,无外部代码执行
- 无凭据要求
- 只读写 vault 内文件
- 文件操作通过 obsidian-cli(沙箱内)

### 初始化脚本安全性

**✅ 已修复的安全问题:**

1. **Shell 注入漏洞** - `init-wiki.sh` 移除了危险的 `eval` 调用
   - 使用 `${VAULT_PATH/#\~/$HOME}` 安全展开 `~`
   - 使用 `realpath` 解析绝对路径
   - 添加路径验证(禁止以 `-` 开头的路径)

2. **硬编码开发者路径** - 移除了 `/home/eddie/...` 等特定路径
   - 使用通用路径查找策略
   - 兼容不同用户环境

3. **跨平台脚本安全** - 统一使用 bash 脚本
   - 移除 PowerShell 脚本(避免 ClawHub 安全限制)
   - bash 脚本提供完整的路径验证和规范化

**🔒 安全最佳实践:**
- 不使用 `eval` 处理用户输入
- 所有路径参数都经过验证和规范化
- 使用语言内置的安全 API 处理文件系统

---

## 致谢

本 skill 基于 [llm-wiki-skill](https://github.com/sdyckjq-lab/llm-wiki-skill) 项目构建,感谢原作者的启发和贡献。

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

94.37%
按下载量换算1,319

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills