SoloMD Agent安全机制全解:AutoGit分支沙箱+write-cap+可重放Trace如何防止AI写坏你的笔记
【免费下载链接】solomdA markdown editor — and the bridge to your LLM. Local-first, MIT, ~15 MB. Bundled MCP server lets Claude Code / Codex / Cursor drive your vault directly. 14 AI providers BYOK.项目地址https://gitcode.com/gh_mirrors/so/solomd点击查看免费下载SoloMD 是一款本地优先local-first的 Markdown 编辑器也是连接你笔记库与 LLM 的桥梁。当你让 Claude Code、Codex 或内置 Agent 直接读写笔记时最担心的问题只有一个AI 会不会写坏我的笔记本文完整拆解 SoloMD Agent 的三道安全防线——AutoGit 分支沙箱、write-cap 写配额、可重放 Trace 审计日志外加 MCP 服务端的--allow-write门控帮你理解这套先隔离、再限流、全程留痕的设计并给出新手可落地的安全配置建议。为什么AI 写笔记必须被限制 把笔记库交给 AI 自动总结、自动改写风险很具体误覆盖一次顺手的全量重写抹掉你手写的段落路径逃逸模型生成的../../etc/...类路径越出笔记目录不可追溯改完发现不对劲却说不清它到底改了哪几行。SoloMD 的做法不是信任 AI而是用工程手段让破坏行为发生不了、发生了也能一键撤销。这套安全模型的核心说明在官方文档 docs/agents.md 中。沙箱层每次 Agent 运行都跑在独立的 AutoGit 分支上这是第一道防线也是最关键的一步。SoloMD 用内置的 AutoGit每个笔记库自带一个.git仓库实现分支级隔离每个 RecipeYAML 配方运行开始时自动从当前 HEAD 切出一个全新分支agent/recipe-slug/run-id运行期间write_note/append_to_note的所有写入都落在这个分支上main分支完全不受影响运行结束后进入Pending review待审核状态你在 设置 → Recipes → Pending 中查看 diff选择Accept合并进main像普通 commit 一样出现在git log或Reject整个分支直接删除不留下任何垃圾提交。也就是说哪怕 AI 这次跑偏了你的工作区从头到尾都没被动过——拒绝就等于这次运行从未发生。相关实现位于 app/src-tauri/src/recipe_runner.rs预切分支 安装配额和 app/src-tauri/src/agent_run.rs运行生命周期管理。限流层write-cap 给每次运行一笔写预算 即使有沙箱一次运行内写飞 200 个文件仍然会浪费你审核时间。于是 SoloMD 引入了write-cap写配额每次运行最多允许 N 次写工具调用默认 5 次硬上限 50 次常量定义见 recipes.rs 的WRITE_CAP_MAX配额在调度前扣减第 6 次写请求直接收到拒绝错误不存在写了一半的中间状态模型会正常收尾读工具read_note、search、get_backlinks等完全免费不受配额影响。扣费逻辑在 agent_tools.rs每次分发写工具前调用charge_write_cap超限时返回write-cap exceeded错误。配方层面只需在 YAML 里声明allow-write: true默认关闭和write-cap: 5两个字段详见 docs/agents.md 的 schema 说明。新手建议单文件小任务如把这篇会议纪要归档设write-cap: 1批量周报类任务设 510超过 50 的需求应该拆成多次计划任务而不是放大配额。审计层trace.jsonl 全程录像还支持按步重放 每次 Agent 运行都会在笔记库内生成一个运行档案目录workspace/.solomd/agent-runs/run-id/ ├── meta.json # 提供商 / 模型 / 状态 / token 用量 / 成本估算 ├── trace.jsonl # 每个步骤一行 JSONprompt / model_call / tool_call / tool_result / done └── run.md # 人类可读的完整转录内嵌工具调用块这套 Trace 有三个实用价值审核前置Accept 之前Trace 视图会把每一次读、每一次写都展示出来——模型说自己调用了工具不算数trace 里没有tool_call步骤就等于没发生AI 也能读它read_agent_trace工具允许后续配方读取前一次运行的 trace实现自我纠错式配方链为防路径注入run_id 经过严格白名单校验见 trace_reader.rs 的is_safe_run_id只允许字母数字、-、_按步重放replay from step某次运行差一点就对了但第 7 步走歪在 设置 → Recipes → History 里点重放按钮SoloMD 会复用前 N 步的 trace、从第 N 步之后重新执行不必整轮重来。Trace 的读取实现在应用内为 app/src-tauri/src/agent_trace.rsMCP 侧独立复现在 mcp-server/src/trace_reader.rs且对损坏行容错跳过——中途崩溃的运行依然可检查。外部入口solomd-mcp 默认只读写能力需显式开启除了应用内 AgentSoloMD 还捆绑了独立的 Rust 二进制solomd-mcp让 Claude Code / Codex CLI / Cursor 等外部 MCP 客户端直接驱动你的笔记库16 个工具含list_notes、read_note、search、autogit_rollback等。它的安全策略见 mcp-server/README.md机制行为默认只读所有写工具write_note/append_to_note/autogit_rollback/export_note必须启动时加--allow-write才放行否则调用会返回明确的 restart with --allow-write 错误路径沙箱每个输入路径先规范化再验证必须位于 workspace 内..段直接拒绝符号链接指向外部目录时按外部处理文件类型白名单write_note只接受.md/.markdown/.txt写evil.sh会被拒绝覆盖需显式声明已存在的文件仅在传overwrite: true时才会被替换核心校验函数resolve_in在 safety.rs配套的resolve_new对父目录尚不存在的新文件做了逐级回溯解析确保符号链接逃逸在判内外之前就被解析掉safety.rs。更难得的是这些规则不是纸面承诺mcp-server/tests/write_safety.rs 里有一组回归测试真实拉起二进制走 stdio逐条验证无--allow-write时任何写操作包括向工作区外覆盖已有文件必须被拒绝且目标文件一字未动。新手安全配置清单 ✅先只读试水给外部 MCP 客户端配置时先不加--allow-write让 AI 只做检索、总结、找反链Recipe 最小权限不写文件的配方保持allow-write: false需要写的配方write-cap从 1 或 5 起步用tools:白名单再加一道保险配方里显式列出允许的工具白名单外的调用在分发时直接拒绝坚持人工 Accept养成每次运行都先看 diff / trace 再合并的习惯不满意就 Reject分支会彻底消失本地敏感内容用本地模型provider: ollama或 OpenAI 兼容的本地服务llama.cpp / LM Studio / vLLM笔记不出设备。示例配方模板可直接从设置 → Recipes → Browse cookbook 安装全部内置配方源码在 app/src-tauri/cookbook/ 目录下。总结SoloMD 的 Agent 安全机制可以浓缩为一句话写入被分支沙箱隔离、被 write-cap 限流、被 Trace 全程录像外部 MCP 入口则默认只读、显式解锁。四层机制叠加后AI 写坏笔记从一次不可逆事故变成一次可以预览、拒绝、回滚的普通操作。配合内置的autogit_log/autogit_diff/autogit_rollback工具即使某次 Accept 之后发现问题也能按 AutoGit 提交历史精确回退到任意版本。对于想让 AI 长期托管笔记库的新手这套机制是放心交给 AI的前提。相关资源速查官方文档docs/agents.mdAgent 安全模型与配方 schemaMCP 服务端mcp-server/README.md工具清单与 CLI 参考路径安全实现mcp-server/src/safety.rs写配额实现app/src-tauri/src/agent_tools.rs、app/src-tauri/src/recipe_runner.rs安全回归测试mcp-server/tests/write_safety.rs赞分享【免费下载链接】solomdA markdown editor — and the bridge to your LLM. Local-first, MIT, ~15 MB. Bundled MCP server lets Claude Code / Codex / Cursor drive your vault directly. 14 AI providers BYOK.项目地址https://gitcode.com/gh_mirrors/so/solomd点击查看免费下载相关推荐vm2代理机制详解Proxy如何防止沙箱逃逸vm2代理机制详解Proxy如何防止沙箱逃逸 vm2是一个先进的Node.js沙箱环境专门设计用于安全地运行不可信代码。通过巧妙的Proxy代理机制vm2安全后端终极rrweb沙箱机制安全指南保护Web回放的完整方案终极rrweb沙箱机制安全指南保护Web回放的完整方案 rrweb作为一款强大的Web录制与回放工具其核心价值在于能够精准记录并重现用户在网页上的所有操作。前端屏幕录制终极指南Etcher安全机制如何彻底防止误操作和数据损坏终极指南Etcher安全机制如何彻底防止误操作和数据损坏 Etcher 作为一款安全可靠的 OS 镜像烧录工具专为防止误操作和数据损坏而设计。无论是新手还是桌面应用开发工具智能硬件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于SpringBoot的上门宠物服务系统-附源码

基于SpringBoot的上门宠物服务系统-附源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/10/15 12:22:56 阅读更多 →
OpenShell配置驱动任务编排:核心机制、环境搭建与踩坑实战

OpenShell配置驱动任务编排:核心机制、环境搭建与踩坑实战

1. 从"OpenShell"这个名字说起:它到底是个什么东西第一次看到"OpenShell"这个词,很多人会下意识地把它和"Shell"脚本、命令行终端联系起来。这个直觉不算错,但也不完全对。在开源社区里,OpenShell这…

2026/10/15 12:22:56 阅读更多 →
WPF五子棋开发:棋盘绘制与游戏逻辑实现

WPF五子棋开发:棋盘绘制与游戏逻辑实现

1. 项目背景与核心思路五子棋作为一款经典的双人对战棋类游戏,其规则简单却蕴含丰富的策略性。使用WPF(Windows Presentation Foundation)框架开发桌面版五子棋,既能锻炼WPF的核心技能,又能深入理解游戏逻辑的实现原理…

2026/10/15 12:22:56 阅读更多 →

最新新闻

人脸特征提取三路线:HoG、Dlib与CNN原理及选型指南

人脸特征提取三路线:HoG、Dlib与CNN原理及选型指南

人脸识别这几年从实验室走向了门禁、考勤、相册聚类、甚至手机解锁,几乎成了计算机视觉里最"接地气"的方向之一。但真到动手做项目的时候,很多人会卡在同一个地方:特征到底怎么提?我见过不少朋友一上来就堆深度学习模型…

2026/10/15 13:00:25 阅读更多 →
校园失物招领系统

校园失物招领系统

文章目录前言项目简介项目背景技术栈系统架构核心功能截图后台管理公告管理认证授权认领管理评论收藏失物招领信息消息用户管理首页失物列表发布信息我的发布个人中心核心技术实现项目亮点项目总结项目下载:前言 项目简介 面向高校校园场景的前后端分离 Web 应用&a…

2026/10/15 13:00:25 阅读更多 →
基于4D关联图的多相机实时多人动作捕捉技术解析

基于4D关联图的多相机实时多人动作捕捉技术解析

1. 从"多相机多人动捕"这个硬骨头说起第一次看到"4D Association Graph"这个名词的时候,我正蹲在一个临时搭建的动作捕捉棚里,面对八台同步相机拍出来的画面发愁。画面里三个人在互相传球,手臂交叠、身体遮挡、快速移动&…

2026/10/15 13:00:25 阅读更多 →
SSM在线作业管理系统:从选题到答辩的全链路解析

SSM在线作业管理系统:从选题到答辩的全链路解析

又到了一年毕业设计选题季,后台私信里反复被同一个关键词轰炸:SSM在线作业管理系统。实话说,这个题在计算机毕业设计里属于"经典中的经典",每年都有大量学生选它,但真正能讲清楚"为什么这么设计、每一步…

2026/10/15 13:00:25 阅读更多 →
Network Kit HTTP:三方库版本清单ETag重验证与离线快照保底【鸿蒙心迹】

Network Kit HTTP:三方库版本清单ETag重验证与离线快照保底【鸿蒙心迹】

场景说明: 本文 ManifestHarbor 的 MH-1421、v17、8 个依赖项、ETag "ohpm-v17"、304 响应与 HiLog 均为受控演示数据。示意图不是 DevEco Studio、真机或真实服务器的测试结果;代码依据公开 Network Kit API 设计,尚未在实际 Harm…

2026/10/15 13:00:25 阅读更多 →
Hyper-Frames:无标签视频+里程计自监督预训练,实现低成本运动预测

Hyper-Frames:无标签视频+里程计自监督预训练,实现低成本运动预测

做自动驾驶、移动机器人、无人机导航的同行,应该都有一段被数据集标注反复折磨的经历。最近 Waymo Research 放出的 Hyper-Frames 框架,让我终于看到一条不太一样的路:不用一开始就堆人天去标框、标轨迹、标地图,用无标签视频加里…

2026/10/15 12:59:25 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →