资讯动态

SoloMD Agent安全机制全解:AutoGit分支沙箱+write-cap+可重放Trace如何防止AI写坏你的笔记

发布时间:2026/10/15 12:22:52 来源:尧图企业网站定制
【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑