obsidian-skills数据模型:理解技能的数据结构和关系

张开发
2026/5/3 4:09:57 15 分钟阅读
obsidian-skills数据模型:理解技能的数据结构和关系
obsidian-skills数据模型理解技能的数据结构和关系【免费下载链接】obsidian-skillsAgent skills for Obsidian. Teach your agent to use Markdown, Bases, JSON Canvas, and use the CLI.项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-skillsobsidian-skills是一个为Obsidian打造的Agent技能系统它通过清晰的数据结构定义让用户能够教Agent使用Markdown、Bases、JSON Canvas等功能并通过CLI进行交互。本文将深入解析obsidian-skills的数据模型帮助你理解各技能的数据结构和它们之间的关系。技能数据结构概览obsidian-skills采用模块化设计每个技能都有独立的目录结构和定义文件。所有技能都位于skills/目录下每个技能包含一个核心定义文件SKILL.md部分技能还会包含references/目录用于存放参考资料。技能定义文件结构每个技能的SKILL.md文件都遵循标准化的格式以YAML Frontmatter开头包含技能的基本元数据--- name: 技能名称 description: 技能功能描述 ---这种结构确保了技能的可发现性和一致性让Agent能够快速识别和理解每个技能的用途和能力范围。核心技能数据模型解析Obsidian Bases技能数据模型Obsidian Bases技能用于创建和编辑.base文件其核心数据结构采用YAML格式包含以下关键部分全局结构# 全局过滤器适用于所有视图 filters: and: [] or: [] not: [] # 公式定义 formulas: formula_name: expression # 属性配置 properties: property_name: displayName: 显示名称 # 摘要公式 summaries: custom_summary_name: values.mean().round(3) # 视图定义 views: - type: table | cards | list | map name: 视图名称 limit: 10 order: - file.name - property_name过滤器结构过滤器支持多种逻辑组合用于筛选笔记# 单一条件 filters: status done # AND组合 filters: and: - status done - priority 3 # OR组合 filters: or: - file.hasTag(book) - file.hasTag(article) # 嵌套组合 filters: or: - file.hasTag(tag) - and: - file.hasTag(book) - file.hasLink(Textbook)公式定义公式用于计算属性值支持多种操作和函数formulas: # 简单算术运算 total: price * quantity # 条件逻辑 status_icon: if(done, ✅, ⏳) # 日期格式化 created: file.ctime.format(YYYY-MM-DD) # 日期计算 days_old: (now() - file.ctime).daysJSON Canvas技能数据模型JSON Canvas技能用于创建和编辑.canvas文件其数据结构基于JSON Canvas Spec 1.0包含nodes和edges两个核心数组全局结构{ nodes: [], edges: [] }节点类型与结构节点是画布上的基本元素有四种类型text、file、link和group。所有节点都包含以下基本属性{ id: 6f0ad84f44ce9c17, // 唯一16字符十六进制ID type: text, // 节点类型 x: 0, // X坐标 y: 0, // Y坐标 width: 400, // 宽度 height: 200 // 高度 }不同类型的节点有各自的特有属性文本节点包含text属性支持Markdown语法文件节点包含file属性指定文件路径链接节点包含url属性指定外部链接组节点包含label属性用于组织其他节点边的结构边用于连接节点定义如下{ id: 0123456789abcdef, // 唯一ID fromNode: 6f0ad84f44ce9c17, // 源节点ID fromSide: right, // 源节点连接侧 toNode: a1b2c3d4e5f67890, // 目标节点ID toSide: left, // 目标节点连接侧 toEnd: arrow, // 箭头样式 label: leads to // 标签文本 }技能间的关系与交互obsidian-skills中的各个技能不是孤立存在的它们可以相互配合形成强大的工作流数据流向关系Markdown技能生成和处理文本内容为其他技能提供基础数据Obsidian Bases技能对Markdown笔记进行结构化组织和分析JSON Canvas技能将Bases中的结构化数据可视化形成直观的图形展示技能组合示例一个典型的工作流可能是使用obsidian-markdown技能创建带有属性的笔记使用obsidian-bases技能创建.base文件通过过滤器和公式分析这些笔记使用json-canvas技能将分析结果可视化为关系图实际应用示例任务跟踪系统使用Obsidian Bases技能创建任务跟踪系统filters: and: - file.hasTag(task) - file.ext md formulas: days_until_due: if(due, (date(due) - today()).days, ) is_overdue: if(due, date(due) today() status ! done, false) priority_label: if(priority 1, High, if(priority 2, Medium, Low)) views: - type: table name: Active Tasks filters: and: - status ! done order: - file.name - status - formula.priority_label - due项目可视化画布使用JSON Canvas技能创建项目可视化{ nodes: [ { id: 6f0ad84f44ce9c17, type: text, x: 0, y: 0, width: 200, height: 80, text: # 项目启动 }, { id: a1b2c3d4e5f67890, type: text, x: 300, y: 0, width: 200, height: 80, text: # 需求分析 } ], edges: [ { id: 0123456789abcdef, fromNode: 6f0ad84f44ce9c17, fromSide: right, toNode: a1b2c3d4e5f67890, toSide: left, toEnd: arrow } ] }技能扩展与自定义obsidian-skills的模块化设计使得扩展新技能变得简单。要创建自定义技能只需遵循以下步骤在skills/目录下创建新的技能目录在该目录中创建SKILL.md文件在SKILL.md中定义技能的元数据、数据结构和使用方法可选创建references/目录存放相关参考资料总结obsidian-skills通过清晰的数据模型定义为Obsidian用户提供了强大的Agent技能系统。理解这些数据结构不仅有助于更好地使用现有技能还能为创建自定义技能打下基础。无论是使用Bases进行数据组织还是通过Canvas进行可视化obsidian-skills都能帮助你更高效地管理和分析知识。要开始使用obsidian-skills只需克隆仓库git clone https://gitcode.com/GitHub_Trending/ob/obsidian-skills然后按照各技能的SKILL.md文档进行配置和使用。【免费下载链接】obsidian-skillsAgent skills for Obsidian. Teach your agent to use Markdown, Bases, JSON Canvas, and use the CLI.项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章