Files
yixiong-claude-marketplace/plugins/obsidian/skills/obsidian-bases/SKILL.md
T
SkyJourneyandClaude Sonnet 4.6 1e35ee4d9f feat: 新增 obsidian 插件族(9 个技能)
- 新增 plugins/obsidian 插件目录,含 9 个 obsidian-* 技能
- 核心技能重构:去除 README.md 分散路由,合并 vault 自动检测
  SOP(.obsidian/ 目录置信度表 + 标准进入动作)到 SKILL.md
- 所有技能 description 精简重写:触发信号 + 边界 + .obsidian/
  联动激活信号,字数从 300+ 压缩至 220-250
- 更新 marketplace.json 追加 obsidian 插件条目

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 13:20:31 +08:00

8.3 KiB
Raw Blame History

name, description
name description
obsidian-bases Obsidian 1.9+ 原生数据库视图(Bases):查询 .base 文件中的结构化视图(JSON/CSV/MD 输出)、在 base 中创建新条目。触发词:Bases、base 视图、数据库视图、结构化查询笔记、base query。不用于 Dataview(社区插件,用其原生 DQL 语法)。依赖 YAML frontmatter 属性,与 obsidian-meta 配合使用;需 Obsidian ≥ 1.9。检测到 .obsidian/ 时与核心技能同步激活。

Obsidian Bases · 原生数据库视图

Obsidian 1.9+ 的杀手级特性:把 vault 当成数据库,把每篇笔记当成一条记录,把 frontmatter 当成字段。用 .base 文件定义视图和筛选,不用写一行 JS(对比 Dataview)。

为什么 Bases 对 AI agent 意义重大:它把"非结构化笔记 + frontmatter 属性"变成了"可查询的结构化数据",agent 可以直接 base:query 拿到 JSON,不需要先全文搜索再解析。


何时使用

  • 列出 vault 中所有 .base 数据库视图文件
  • 查询某个 base 的结果(支持多种输出格式)
  • 在 base 中创建新条目(自动写入符合 base 视图规则的 frontmatter
  • 列出某 base 的所有视图views
  • 把"项目管理面板"、"阅读清单"、"文章管理"等做成可视化看板

不用于

  • Dataview 查询(社区插件,用 DQL 语法,不是 Bases)
  • 简单的属性读写 → obsidian-meta
  • 全文搜索 → obsidian-search

前置条件

  • Obsidian ≥ 1.9(检查:obsidian version
  • 知识库中存在至少一个 .base 文件(通过 Obsidian UI 创建,或从社区模板复制)
  • 参与 base 的笔记必须使用 YAML frontmatter(不是 Dataview inline 字段,Bases 不认)

命令速查

Base 文件与视图管理

obsidian bases                         # 列出 vault 所有 .base 文件
obsidian base:views                    # 列出当前 base 的所有视图
obsidian base:views file="项目管理"     # 列出某 base 的视图

查询 Base

# 基础查询(默认 JSON
obsidian base:query file="项目管理"
obsidian base:query path="20-Areas/项目管理.base"

# 指定视图
obsidian base:query file="项目管理" view="进行中"
obsidian base:query file="项目管理" view="按截止日" format=csv
obsidian base:query file="项目管理" view="逾期" format=md     # Markdown 表格
obsidian base:query file="项目管理" view="全部" format=paths  # 只返回路径列表
obsidian base:query file="项目管理" view="全部" format=tsv

输出格式

  • json(默认):最完整,含所有字段
  • csv:表格,适合导出到 Excel
  • tsv:表格,Bash 处理友好
  • md:Markdown 表格,直接粘贴到笔记
  • paths:只返回文件路径列表

在 Base 中创建新条目

# 在某视图下创建新笔记(自动套用该视图的默认字段)
obsidian base:create file="项目管理" view="进行中" name="新项目Alpha" \
  content="# 新项目 Alpha" open

# 完整参数
obsidian base:create \
  file="项目管理" \
  view="进行中" \
  name="新项目" \
  content="初始内容" \
  open \
  newtab

💡 base:create 的威力:它会按视图规则自动填充 frontmatter(例如 "进行中" 视图可能强制 status: active),省去手动 property:set


Bases vs Dataview 选型表

维度 Bases(官方 1.9+ Dataview(社区插件)
语法 YAML 配置(声明式) JS/DQL(命令式)
数据源 仅 YAML frontmatter frontmatter + inline Key::
写入 支持 base:create 只读
性能 原生 C++,极快 ⚠ JS 运行时,大 vault 卡
多视图 一个 base 多视图 每个查询一段代码
AI agent 友好 CLI 直接 query JSON ⚠ 需要模拟 Dataview JS 运行
社区模板 🟡 起步阶段 海量模板
版本要求 Obsidian ≥ 1.9 任意版本

选型建议

  • 新项目 / AI agent 驱动 → 首选 Bases
  • 已有 Dataview 资产 → 继续用,或逐步迁移
  • 需要复杂计算 → DataviewBases 未来会支持公式字段)

AI Agent 最佳实践

场景 1 · 项目面板作为 AI 决策依据

# Agent 问:"今天我该优先处理哪个项目?"
# Step 1: 查询"进行中"项目,按 due 排序
obsidian base:query file="项目管理" view="按截止日" format=json

# Step 2: Agent 分析返回的 JSON,找出:
#   - due 最近的 3 个
#   - priority 最高的 3 个
#   - blocked 状态已解除的

# Step 3: 生成建议写入每日笔记
obsidian daily:append content="\n## 📌 AI 建议优先级\n..."

场景 2 · 阅读清单 Base 设计

创建 30-Resources/reading-list.base(通过 Obsidian UI),字段规划:

# frontmatter 规范(每本书/文章一个笔记)
---
type: book | article | paper | video
title: 
author: 
url: 
status: to-read | reading | done | abandoned
priority: 1-5
started: 2026-03-15
finished: 
rating: 1-5
tags: [topic1, topic2]
---

视图设计:

  • 待读: status == "to-read", 按 priority desc
  • 在读: status == "reading"
  • 已读高分: status == "done" AND rating >= 4
  • 按主题: group by tags
# Agent 查询:我的待读列表前 5
obsidian base:query file="reading-list" view="待读" format=md | head -20

场景 3 · 用 Base 做 AI 工作日志

创建 99-Log/ai-actions.base,每次 agent 写入操作创建一条记录:

# 不手动建笔记,直接通过 base:create
obsidian base:create \
  file="ai-actions" \
  view="今日" \
  name="$(date +%Y%m%d%H%M%S)-property-set" \
  content="---
action: property:set
target: 项目Alpha
field: status
value: done
agent: claude-sonnet-4-6
reason: 用户确认项目完成
---"

之后查询:

obsidian base:query file="ai-actions" view="今日" format=md
obsidian base:query file="ai-actions" view="本周 action 统计" format=csv

场景 4 · Base 作为 RAG 检索的结构化索引

传统 RAG:全文搜索 → 召回 → 喂模型。 Bases 增强:先用 base 做结构化筛选,缩小召回范围,再做全文搜索

# 问题:"最近 3 个月我写的关于虚拟线程的读书笔记"
# Step 1: 用 base 筛出结构化候选
obsidian base:query file="reading-list" view="近 3 个月" format=paths > /tmp/candidates.txt

# Step 2: 在候选范围内全文搜索
obsidian search query="虚拟线程" path="$(xargs -a /tmp/candidates.txt)" format=json

Base 文件结构(了解即可,通常由 UI 生成)

.base 文件是 YAML 格式:

# 20-Areas/项目管理.base
filters:
  and:
    - file.inFolder: "10-Projects"
    - status: ["active", "paused"]

views:
  - name: 进行中
    type: table
    filters:
      - status: active
    order:
      - due ASC
    columns:
      - file.name
      - status
      - due
      - priority
      - owner

  - name: 按截止日
    type: table
    order:
      - due ASC

  - name: 逾期
    type: list
    filters:
      - due < today()
      - status: active

💡 推荐通过 Obsidian UI 创建 .base 文件,再用 CLI 查询。直接手写 .base 容易语法错。


与其他技能的协作

场景 链路
属性设计 → 视图落地 obsidian-metafrontmatter 规范)→ obsidian-bases(查询)
结构化召回 + 全文精读 obsidian-bases → obsidian-search
决策支持 obsidian-bases → obsidian-daily(写建议)
项目看板自动化 obsidian-bases + obsidian-tasks(进度)
AI 日志归档 所有技能写操作 → obsidian-basesbase:create 到 ai-actions.base

常见陷阱

现象 原因 对策
bases 命令返回空 Obsidian 版本 < 1.9 升级到 1.9+
base:query 字段缺失 笔记用了 Dataview inline 字段 改写到 YAML frontmatter
base:create 报错 view 名称拼写错 base:views 列出
视图不更新 缓存 obsidian reload
日期排序错 frontmatter 日期是 text 类型 property:set type=date
查询慢 base filter 过于宽松 增加 file.inFolder 限定
agent 写的 base 条目违反 schema 没先读 base 规则 base:views + 手动验证字段