SuperAPI AI 工具集

obsidian-vault-crud

通用与其它

查看项目

更新于 10-16 08:00

技能介绍

用途:该技能为智能体与 Obsidian 仓库交互提供磁盘 I/O 层,负责笔记的创建、读取、更新、追加与删除等安全操作。它不负责语法解析,语法解析由 obsidian-markdown-mastery 技能承担。

主要能力:写入采用原子协议,先写入 <target>.agent-tmp 暂存文件,确认完整写入后用 POSIX os.rename() 原子替换目标文件,任一步失败则清理暂存文件。写入批次前后通过仓库根目录的 .agent-lock 文件实现建议性锁,其他智能体写入前会检查该锁;该锁不阻塞 Obsidian 界面。并发编辑检测在读取前记录 os.stat(file).st_mtime,写入前再次检查,若 mtime 变化则中止操作。frontmatter 使用 ruamel.yaml(而非 PyYAML)处理,以保留注释、缩进和数组样式,确保 Dataview 与 Obsidian Properties 不被破坏。

使用方式:依赖 Python 3.8+ 且仅用标准库,无需外部包。安装依赖可执行 pip-compile ./requirements.in 与 pip install -r ./requirements.txt,当前 requirements.txt 为空。命令包括:读取 python ./vault_ops.py read --file <path>;创建 python ./vault_ops.py create --file <path> --content <text> [--frontmatter key=value ...];更新 python ./vault_ops.py update --file <path> --content <text>;追加 python ./vault_ops.py append --file <path> --content <text>。

适用场景:需要让智能体安全读写 Obsidian 仓库笔记、避免写入中断损坏文件、避免覆盖他人并发编辑、并保留 frontmatter 格式完整性的自动化流程。

限制:锁为建议性,不阻止 Obsidian UI 或其他不检查锁的进程写入;并发检测依赖 mtime 比较,可能受文件系统时间精度影响;资料未提供删除命令的具体用法、错误码、性能数据及与其他技能的集成细节。