✨ 言出法随一句话,AI 就给你做出来 → doAIPM.com
#MD SoloMD

v4.0 — 让 Agent 住进来的编辑器

SoloMD 一直是同一份产品的两半:把纯 .md 写到磁盘上的编辑器,加上指向同一个 vault 的 MCP server。 v4.0 加了第三半 —— 编辑器内一等公民的 Agent 面板,有完整的安全护栏 (AutoGit 分支沙箱、 单次 write-cap、accept/reject UI),让自动写入是 "可审" 而不是 "可怕"

品牌也跟着进化:从 "编辑器 + MCP 端点" 变成 "让 Agent 住进来的编辑器"

这一版为什么憋了 12 周

v3.6 已经功能稳定了。下面 5 个支柱本来可以分成 5 个 minor 版本在春天里陆续发出去。我们故意没这么干 —— 在 main 上进入静默期 (3.6.2 之后只接补丁), 把 v4.0 当作下一次架构跃迁来对待。代价:12 周没有零碎的 marketing 节点。收益:每一个支柱都跑同一份安全契约 —— 同一个 run handle、同一个 trace 格式、同一个 write-cap registry。Agent 面板、Recipe、REST API、MCP Federation —— 入口不同,信任模型只有一份。

这 12 周里大约 6 周写代码,2 周做菜谱、向导、ja/ko 本地化骨架,最后 4 周是 dogfood —— 在真实 vault 上跑 v4-beta build,找集成测试漏掉的 bug。v4.0 大约三分之一的 commit 落在了最后这个窗口里。

五大支柱

1. 内置 Agent 面板

右侧一等公民面板,跟大纲 / 反向链接 / 标签 / 历史平级。 通过进程内 MCP 接口和已有 14 家 AI provider 组成 streamed chat-with-vault。[[wikilink]] 引用解析为真正的笔记跳转,点开就跳。每次 agent 调工具的 卡片在对话流里展开,看得到读取了什么、写入了什么、 参数和结果都看得见。回复太长?插入 把整段塞进当前编辑器的光标处 (有选区就替换); 复制 直接进剪贴板。运行历史以纯 markdown 形式存在 .solomd/agent-runs/ 下 —— 可 grep、 可被 git 追踪、几个月后还能审。

2. Agent Recipe / 定时运行

声明式 agent 任务,YAML 文件放在 <workspace>/.solomd/agents/*.yml。触发器: schedule (cron)、on-saveon-commiton-tag-add、手动。 安全护栏不可妥协:

自带 11 个 Recipe 模板:周报、日报、 TODO 抽取、翻译过一遍、引用清理、CJK 校对 agent、 链接腐烂检测、front-matter 规范化、大纲转博客、 重构过一遍、周度 tag 整理。设置 → Recipes → 浏览菜谱 里挑一个,改 prompt,运行。

3. Agent Trace View

每次运行 (无论是 Panel 对话还是 Recipe) 都按步生成 trace.jsonl: prompt / model_call / tool_call / tool_result / git_commit / done。步骤卡片 可展开看 args、结果、token 数、成本估算、AutoGit 分支引用。从第 N 步重放 把运行回退到 第 N 步,改输入后从那里重新跑 —— 这是 self-correcting recipe 的入口。新增 MCP 工具 read_agent_trace(run_id),把 trace 暴露给其他 agent 读取,所以 recipe 可以读自己之前的 失败、改个思路再来一遍。

4. 多 Vault MCP Federation

solomd-mcp --workspace path1 --workspace path2 --workspace path3 —— 一个 MCP 会话,多个 vault。工具签名加了可选 workspace 参数,默认 = 第一个传入的 (单 vault 客户端继续工作不受影响)。AutoGit 分支按 workspace 隔离。设置 → 集成 里有 MCP profile UI:把多个 vault 命名打包,一键复制 Claude Desktop 的配置片段。从此不用开 3 个 Claude Code 会话来桥接两个 vault —— 一个会话,同时看两个。

5. Ollama 一等公民

我们 自己捆绑本地 LLM 运行时 —— Ollama 已经做得很好,重新发明轮子违反"少写需要 永久维护的代码"原则。v4.0 只是把集成磨得更顺:

你的笔记永不离开机器 —— 通过 BYOK Ollama 从 v2.2 起这一直是真的;v4.0 只是把这条路在第一天 就让你看得到。

质量条 —— 看不见但用得到的部分

Dogfood 抓出来的(所以你不用再踩)

Dogfood 阶段 —— 在真机上、真 vault 里、用真 BYOK key 把 build 跑起来 —— 暴露出了 262 个单测 + 集成测 没抓到的 bug:

最后这一类是这次发布最在意的事。Agent 往你的笔记里写东西是个 赌数据 的功能。如果某次 recipe 安静地改坏了一段、你下周才发现,整个产品就废了。 所以 AutoGit 分支沙箱、write-cap、accept/reject UI、 路径穿越加固、脏检查 —— 五重不变量守同一条防线。

v4.0 明确不做的

说"不"也是产品的一部分。下面这些被认真考虑过、明确不做:

升级须知

没有文件格式变更。已有的 .md、AutoGit 历史、同步配置、BYOK key 全部原样保留。Agent 面板首次 启动自动开 (一次性迁移 —— v3.6.x 用户因为 v4-beta 期间脚手架的默认值,会有一个隐藏的 showAgentPanel: false)。不想要可以 ⌘⇧P → View: Toggle Agent Panel 关掉, 以后会一直关着。

接下来

v4.x 及之后 的开放方向都在 roadmap 上:沙盒化的脚本 API (capability-scoped,Trilium 那种 "我想写脚本定制工作流")、CLI v2 (终端里 rewrite / commit / 语义搜索 / 触发 recipe)、以及一直拖着的 "SoloMD 要不要做成商业产品?" 问题 —— v3.0 时代的老问题,还没答,这块的工程不会动。

现在:下载 v4.0, 指向一个 vault,周日试试 cookbook 里的"周报"recipe。 如果它碰了不该碰的,accept/reject UI 会拦下来。如果它 做对了,你刚刚用 30 秒装好了一个每周自动跑、不用你管的东西。

感谢所有在静默期内跑 v4-beta build 的人。上面这些 bug 能进 release notes 是因为 dogfood 把它们抓出来了; 没进 release notes 的那些 bug,才是这一切能跑起来的 真正原因。Issue 反馈:GitHub

评论 & 反馈

评论数据托管在 GitHub Discussions —— 用 GitHub 账号一次登录即可。

评论从 GitHub Discussions 加载。如果一直看到这条提示,说明维护者还没完成 giscus.app 一次性配置 —— 详见 web/COMMUNITY-SETUP.md。

前往 GitHub Discussions →