上个周末我基于 obsidian-agent-client 做了个 Obsidian 插件 Obsius,主要在 UI/UX 上按照我的标准进行了改进,顺带学习了 React。
之前我也用过 Obsidian 中其他的 LLM/Agent 插件,最满意的是 Claudian,但它基于 Claude Agent SDK,不方便切换其他模型,也不支持对修改的审计。整体体验更像是跟用来 AI 聊天,但不敢用它来做正事,因为你会时刻担心仓库里出现意料之外的变化。所以我认为我们需要的是写作时的 Cursor。
写作和写代码看起来都是在文本编辑器里工作,但两者仍然有很大的不同:编程语言的基本编辑单位是行,而写作的基本单位是字词。因此我们需要更精确的 context 控制与 diff 显示。同时,软件项目会不断通过发版来迭代,但写作往往只发布一次成品。
基于这些想法,我主要做了三件事:
1. 字句级的上下文控制:你可以精确圈定要改的文字范围,锁定已经满意的段落。AI 只在你划定的边界内操作。即使 prompt 的信息密度有限,也能通过缩小动作空间来达到同样的约束效果。
2. 每次修改都以 diff 形式可见:像 Cursor 改代码那样,AI 改了哪个词、调了哪个句子,逐行显示增删改,可以逐条接受或拒绝。人可以选择不看,但工具必须提供这个选项——这是在 AI 与你利益不完全对齐的结构下,维护你自己决策权的底线。
3. 把常用操作封装成可复用的命令:支持显式触发 skills、commands 和 MCP。比如“用某位作家的风格改写这段话”“按某个论证模板重组段落”——不用每次在聊天框里重新描述,确定性调用,结果可复现。
项目地址:
github.com 白皮书:
mp.weixin.qq.com