v4.5.3
让 Agent 住进来的编辑器。
v4.0 是 agent-native author 大版本。Agent 从 "外部 CLI 偶尔调用一下" 变成了编辑器内的一等公民 —— 持续在场、跨多个 vault 工作、完整的可见性、可重放、可回滚。 下面所有项都在内核里,不用装插件。安装包还是 ~15 MB。
五大支柱
每个都在内核里,可在设置里开关。完全兼容你已有的笔记 —— 没有数据库迁移、没有新文件格式、不强制云账号。
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-save、
on-commit、on-tag-add、手动。
安全护栏不可妥协:每次运行都开自己的
AutoGit 分支 agent/<recipe>/<run-id>,
所有写入只落到分支上,通过 accept / reject UI
评审后再合入 main;单次 write-cap
(默认 5,硬上限 50) 防止失控循环;Reject 之后分支被
hard-delete,git 历史里完全看不到这次运行。自带
11 个 Recipe 模板(周报、日志整理、
TODO 抽取、翻译、引用清理、CJK 校对、…) ——
安装、改 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 读取。
4 · 多 Vault MCP Federation
solomd-mcp --workspace path1 --workspace path2 --workspace path3
—— 一个 MCP 会话,多个 vault。工具签名加了可选
workspace 参数,默认 = 第一个传入的
(完全向后兼容单 vault 客户端)。AutoGit 分支按
workspace 隔离。设置 → 集成
里有 MCP profile UI:把多个 vault 命名打包,一键
复制 Claude Desktop 配置片段。
5 · Ollama 一等公民
我们 不 自己捆绑本地 LLM 运行时
—— Ollama 已经做得很好。v4.0 只是把集成磨得更顺:
自动检测 localhost:11434 (设置 → AI
里有绿色状态灯)、未安装时一键引导安装、内置三个
模型预设 (rewrite → qwen2.5:7b ·
quick → qwen2.5:1.5b ·
cjk → qwen2.5:14b)、空模型列表时
内联推荐 pull。Recipe 可以 provider: local
(ollama 别名),用零云成本跑自动化循环。
你的笔记永不离开机器 —— 通过 BYOK
Ollama 这一直是真的,v4.0 把它做成 discoverable
的入口。
🛡️ 安全护栏 (别人都没做的部分)
- AutoGit 分支沙箱。每次 Recipe
运行都开自己的分支。在你点 Accept 之前,
main一动不动。Reject 的运行 什么也不留 —— 分支删除,文件树回退。 - 单次写盘上限。模型在 cap 是 5 的情况下要写 50 个文件,从第 6 次工具调用开始就被拒。 不会出现"半成品"状态、不会出现意外的批量改动。
- 工作区脏时拒绝启动。你有未提交的修改时 Recipe 触发会直接报错退出,不会把你的 WIP 扫进 agent 的 commit 里。
- 路径穿越加固。进程内工具接口和所有
接受用户传入
run_id/path的 Tauri 命令,现在都会前置拒绝..段和绝对路径。Agent 从代码层就写不出 workspace。 - 可重放的 trace。每一步都按行 JSON 落盘。Panel 行为可疑?走 trace,定位坏步,改输入, 从第 N–1 步重放。
质量条
- 首次启动向导。新装用户 60 秒内见到 Agent 面板 —— 引导你填 BYOK key 或装 Ollama。 后续可从 帮助 重新打开。
- Recipe 菜谱(11 个起步模板)。 设置 → Recipes → 浏览菜谱。周报、日报、TODO 抽取、 翻译过一遍、引用清理、CJK 校对 agent、链接腐烂检测、 front-matter 规范化、大纲转博客、重构过一遍、 周度 tag 整理。安装、改 prompt、运行。
- 本地 REST API(只监听 localhost, token 鉴权)。和 MCP 同一套接口,给那些还没接 MCP 的客户端用 —— Alfred / Raycast / n8n / 你自己的脚本。
- BYOK 成本计。按 provider 累计已花 token 数,opt-in。设置 → 集成。
- 本地化。ja / ko 翻译骨架在 README + iPad 商店元信息里。en/zh 仍是 UI 全覆盖语言。
第一天就能感受到的 UX 打磨
- 到处的 IME 守卫。拼音用户打中文、 日文 kana 模式、韩文谚文 —— 按回车确认候选词不会再 误触发对话发送 / 文件树重命名 / 命令面板执行 / 搜索打开。 一次性修了 7 个输入面板。
- Assistant 回复的 插入 / 复制 按钮。 每条完成的回复下方两个按钮。插入会感知当前编辑器选区 (有选区就替换),没选区就插到光标处。复制就是普通 剪贴板。
- macOS 启动 UX。启动激活时机修对了 —— SoloMD 冷启动会真正到前台,不会再藏在 Finder 后面。窗口位置恢复时永远落在当前显示器工作区里; 副屏断开后从坏存档恢复时会自动重新居中,而不是开到 屏幕外。
- "生成中..." 卡死无错误。修了。 provider 配错 (例如 Ollama 选了未拉取的模型) 之前会 让面板挂死。现在你会看到红色错误条带后端的实际响应, 发送按钮也会回来。
v4.0 明确不做的(以及为什么)
说"不"也是产品的一部分。下面这些被认真考虑过、明确不做:
- 自带本地 LLM 运行时。Ollama 已经做得很好; 重新发明轮子违反"少写需要永久维护的代码"原则。 BYOK provider 仍是路径。
- 线上 Recipe 市场。服务器运维 + 内容审核 = 偏离主线。 菜谱直接打进发行版,跟着工具一起更新。
- 多人 / 团队 agent。违反"一个窗口,一个写者"。 这个产品给单作者用;协作属于另一个产品。
- Copilot 风格的鬼字补全。不同的品牌定位。 鬼字补全会稀释作者自己的声音;我们的 agent 工作单位是 vault, 写入是批量 + 可审 + 走分支的。
升级须知
- 没有文件格式变更。已有的
.md、 AutoGit 历史、同步配置、BYOK key 全部原样保留。 - Agent 面板首次启动自动开。v3.6.x
用户因为 v4-beta 期间脚手架的默认值,会有一个隐藏的
showAgentPanel: false;一次性迁移会把它 翻成 true,你才会真正看到这个主打功能。不想要可以⌘⇧P → View: Toggle Agent Panel关掉。 - 设置面板新增 Recipes 和 成本计 两个分页,在 集成 下。已有的设置位置不变。
- MCP server (
solomd-mcp) 加了--workspace参数(可重复)。 原来单 workspace 的 MCP 客户端继续工作不受影响; federation 行为是可选加入的。
🔮 接下来
5 大支柱 + 质量条是这次的主要内容。v4.x 及之后 的开放方向都在 roadmap 上:沙盒化的脚本 API、CLI v2 (终端里 rewrite / commit / 语义搜索 / 触发 recipe)、以及一直拖着的 "SoloMD 要不要做成商业产品?" 问题 (付费同步 —— v3.0 时代的老问题,还没答, 没决定之前不会动这块的工程)。
感谢所有在静默期内提交 issue / 发 PR / 用真实 vault 跑 v4-beta build 的人。v4.0 能 ship 是因为 dogfood 把集成测试漏掉的 bug 一个个揪出来了。 早期版本:看博客 →