- AI 技能
- AI 插件
【免费下载链接】obsidian-skills
Agent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.
本指南以 obsidian-skills 仓库中的 defuddle Skill 为唯一主体,讲解如何用 Defuddle CLI 把标准网页转换为去除导航、广告与杂乱的干净 Markdown,帮助 AI Agent 以更少的 token 阅读和分析网页内容。读完本文,你将掌握 defuddle 的安装方式、核心parse命令的完整用法、四种输出格式的取舍,以及如何将提取结果顺畅接入 Obsidian 的笔记工作流。
Defuddle Skill 是什么:它在 obsidian-skills 中的定位
obsidian-skills 是一个面向 Obsidian 的 Agent Skills 集合(见 README.md),全部技能遵循 Agent Skills 规范,可被 Claude Code、Codex、Open Code 等任何兼容该规范的 Agent 直接使用。每个 Skill 都以独立的SKILL.md文件承载,defuddle就是其中之一,位于 skills/defuddle/SKILL.md。
该 Skill 的作用非常聚焦:当 Agent 需要阅读或分析一个网页 URL 时,优先使用 Defuddle CLI 提取干净可读的内容,而不是直接抓取原始页面。其核心价值在于 "removing clutter and navigation to save tokens"(去除杂乱与导航以节省 token)——Defuddle 会移除页面中的导航、广告和装饰性内容,只保留正文,从而显著降低进入模型上下文的无效字符。
SKILL.md 采用标准的 Agent Skill 格式,YAML frontmatter 中的name与description字段是 Agent 判断"何时调用该技能"的路由依据,完整内容如下:
--- name: defuddle description: Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page. Do NOT use for URLs ending in .md — those are already markdown, use WebFetch directly. ---可以看到,description 不仅说明了工具能力,还明确划定了使用边界("何时用、何时不用"),这是 Agent 正确触发该 Skill 的关键。仓库 README 的技能表中对它的概括与此一致:Extract clean markdown from web pages using Defuddle, removing clutter to save tokens。
何时使用:场景判断与决策边界
根据 SKILL.md 中 frontmatter 与正文的指引,Agent 应在以下场景优先选择 Defuddle,而不是 WebFetch:
- 用户给出一个 URL 并要求阅读或分析时;
- 目标是在线文档、技术文章、博客文章或其他标准网页时;
- 目标是减少 token 消耗、只保留正文核心内容时。
而明确排除的场景只有一个:URL 以.md结尾。这类地址本身已是 Markdown 文件,直接使用 WebFetch 获取即可,无需也不应经过 Defuddle 的清洗转换。
之所以"优先于 WebFetch",原文给出了直接理由:it removes navigation, ads, and clutter, reducing token usage。也就是说,Defuddle 的价值不在于"能否抓到网页"(WebFetch 也能做到),而在于输出的是经过清洗、可直接投喂给模型的正文,这对长文档、多页面批量分析场景尤为实用。
安装:一条命令完成
Defuddle 以 npm 全局包的形式分发,SKILL.md 给出的安装命令只有一条:
npm install -g defuddle几点说明:
- 该命令通过 npm 全局安装,安装完成后
defuddle命令即可直接使用(从-g全局标志可以推断,本机需具备 npm / Node.js 环境,安装后的可执行文件会进入系统 PATH)。 - 如果你的 Agent 尚未部署该 Skill,可以连同整个 obsidian-skills 集合一起安装。README 提供了三种途径:通过插件市场执行
/plugin marketplace add kepano/obsidian-skills与/plugin install obsidian@obsidian-skills;使用npx skills add拉取集合;或将skills/目录手动复制到对应 Agent 的 skills 路径(如 Codex 的~/.codex/skills、OpenCode 的~/.opencode/skills/)。安装细节请直接参考 README.md。
核心用法:defuddle parse命令
SKILL.md 明确要求:凡是解析网页,一律使用--md输出 Markdown。最基础的一条命令是:
defuddle parse <url> --mdparse是 Defuddle 的解析子命令,<url>为目标网页地址,--md声明输出格式为 Markdown。执行后,终端直接输出清洗后的正文内容。
保存到文件
当提取结果需要落盘(例如作为后续写入笔记的素材)时,使用-o指定输出文件:
defuddle parse <url> --md -o content.md命令将清洗后的 Markdown 写入当前目录下的content.md,供后续读取、加工或持久化。
提取指定元数据
使用-p <name>可以只提取页面中的某个元数据属性,适合快速获取标题、描述等摘要信息,无需拉取全文:
defuddle parse <url> -p title defuddle parse <url> -p description defuddle parse <url> -p domain以上三条分别提取网页标题、描述与来源域名。这类轻量提取常用于:为笔记生成 frontmatter(title / description)、记录网页来源(domain)、在批量归档时快速生成索引信息。实际可用的属性名以 Defuddle CLI 支持为准,文档中以title、description、domain为典型代表。
输出格式:四种选择与取舍
SKILL.md 以表格形式完整列出了四种输出格式,这是使用 Defuddle 的核心参考,原文如下:
| Flag | Format |
|---|---|
--md | Markdown(默认推荐) |
--json | 同时包含 HTML 与 Markdown 的 JSON |
| (无标志) | HTML |
-p <name> | 指定的元数据属性 |
结合用途可以这样选择:
--md(推荐):绝大多数场景的默认选择。输出为标准 Markdown,正文干净、token 开销最小,可直接作为笔记正文或喂给模型分析。--json:同时携带 HTML 与 Markdown 两份内容。当你既需要保留页面结构信息(HTML)又需要可读正文(Markdown),或需要由程序进一步解析字段时使用;代价是输出体积更大。- 无标志(默认 HTML):输出原始清洗后的 HTML。适用于需要保留链接、富文本结构、或下游有 HTML 解析需求的场景。
-p <name>:仅输出单一元数据属性,是四者中体积最小、速度最快的选项,适合标题、描述、域名等轻量信息提取。
一个实用策略是:需要全文时用--md,只需要摘要信息时用-p,两者结合可以覆盖"归档网页"与"建立索引"两类常见任务。
接入 Obsidian 工作流:从网页到笔记
Defuddle 的产出是标准 Markdown,天然适合落入 Obsidian 笔记。虽然该 Skill 只负责"提取"这一步,但与本仓库中的其他 Skill 组合,可以构成一条完整的"网页 → 笔记"流水线(以下为基于仓库 Skill 能力的组合用法推断):
- 提取:用 defuddle 将目标网页转为干净 Markdown——
defuddle parse <url> --md -o article.md - 写入 Vault:结合 obsidian-cli Skill,通过 Obsidian CLI 把内容创建或追加到笔记中,例如用
obsidian create新建笔记、用obsidian append追加内容(如obsidian append file="Reading Notes" content="...")。 - Obsidian 化加工:如需在笔记中使用 wikilink、callout、frontmatter properties 等 Obsidian 特有语法,可参照 obsidian-markdown Skill 的规范对提取结果进行二次整理,让网页正文与你的知识库无缝融合。
借助 frontmatter 中的-p title、-p description、-p domain提取结果,还可以为每条网页笔记自动补齐标题、摘要与来源域名的元数据,实现轻量级"网页剪藏 + 自动归档"。
实践要点与注意事项
- 守住 .md 例外:URL 以
.md结尾时不要调用 defuddle,直接使用 WebFetch——这是 SKILL.md 反复强调的边界,能避免对已是 Markdown 的内容做无意义的二次转换。 - 默认带
--md:除非确有 HTML 或元数据需求,否则一律显式使用--md,这是该 Skill 对输出格式的硬性约定,也是控制 token 的关键。 - 安装环境:
npm install -g defuddle需要本机具备 npm / Node.js 环境;若由 Agent 代为执行,注意全局安装的写入权限。 - 结果核验:Defuddle 输出的正文以"可读内容"为目标,Agent 在引用或转述时仍应结合用户任务对提取结果做必要的准确性判断,避免把清洗后的摘要当作完整事实。
- 仓库为只读参考:本仓库仅用于查看 Skill 定义与安装方式,文章所述所有操作均在本地 Agent 环境执行,无需也不应修改仓库内容。
通过以上命令与决策原则,Defuddle 可以成为 Agent 处理网页内容时最高效的"前置清洗器":一次parse,即可把杂乱网页变成干净、可读、低 token 的 Markdown 正文,直接服务于 Obsidian 知识库的采集与沉淀。
- AI 技能
- AI 插件
【免费下载链接】obsidian-skills
Agent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.
相关推荐
CrewAI FirecrawlScrapeWebsiteTool 完全指南:让 Agent 把任意网站抓成干净 Markdown
CrewAI FirecrawlScrapeWebsiteTool 完全指南:让 Agent 把任意网站抓成干净 Markdown 本文基于 CrewAI 仓库
人工智能AI AgentAgent 框架多智能体工作流自动化后端Skill Seekers 的 create-skill 命令实战:一条命令把任意知识源变成 Claude AI Skill
Skill Seekers 的 create skill 命令实战:一条命令把任意知识源变成 Claude AI Skill 本文以 Skill Seekers
人工智能AI 应用AI 技能RAGMCP 服务网页爬虫AI Website Cloner Template 实战指南:用一条命令将任意网站克隆为干净的 Next.js 应用
AI Website Cloner Template 实战指南:用一条命令将任意网站克隆为干净的 Next.js 应用 本文以 ai website clone
人工智能AI 技能前端网页爬虫
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考