改前备份改后校验,失败自动回滚不留坏文件
29.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Sun-beining/ai-safe-edit.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 19 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
为智能体提供安全的文件编辑:先备份、再校验,失败就回滚。零依赖 MCP 服务器。
README
由 DeepSeek 最新模型翻译生成ai-safe-edit
让 AI 改文件变得安全的唯一入口。 改前备份 · 改后校验 · 失败自动回滚 —— 绝不留下半坏的文件。
English · MIT · Python 3.8+ · 零依赖
它解决什么问题
AI 改文件,本质是"写文本"。而当这些文本来自 shell heredoc、正则替换、或模型生成的代码时,下面三件事发生的频率高到真的会伤到你:
| 失败类型 | 会发生什么 |
| shell 转义吃字符 | heredoc 里的字面量 \n 变成真换行,把它所在的字符串悄悄截断 |
| 正则超范围匹配 | 本想只动一行的模式跨过了字符串边界,把旁边的代码也改坏 |
| 嵌套引号 | 生成代码时在 " 里写 " —— 语法错,而模型相当常犯 |
通常的反应是"把教训记下来"。但那不是约束。 下一个会话、下一个模型,照样会犯。
真实数字(来自这个工具诞生的项目):一天之内犯了 10 次嵌套引号错误,而且全都落进了产物文件 ——因为改动绕过了那个本来就是为了防这事而做的工具。
再补一条小自白,因为它是最清楚的例证:在写【这个仓库自己】的提交信息时,同一类失败又发生了。
信息里有一处 --selftest ,套在 shell 的双引号字符串里。
shell 执行了反引号,把那个词删掉了。
展开完整文档(README 剩余 1 节)
ai-safe-edit
让 AI 改文件变得安全的唯一入口。 改前备份 · 改后校验 · 失败自动回滚 —— 绝不留下半坏的文件。
English · MIT · Python 3.8+ · 零依赖
它解决什么问题
AI 改文件,本质是"写文本"。而当这些文本来自 shell heredoc、正则替换、或模型生成的代码时,下面三件事发生的频率高到真的会伤到你:
| 失败类型 | 会发生什么 |
| shell 转义吃字符 | heredoc 里的字面量 \n 变成真换行,把它所在的字符串悄悄截断 |
| 正则超范围匹配 | 本想只动一行的模式跨过了字符串边界,把旁边的代码也改坏 |
| 嵌套引号 | 生成代码时在 " 里写 " —— 语法错,而模型相当常犯 |
通常的反应是"把教训记下来"。但那不是约束。 下一个会话、下一个模型,照样会犯。
真实数字(来自这个工具诞生的项目):一天之内犯了 10 次嵌套引号错误,而且全都落进了产物文件 ——因为改动绕过了那个本来就是为了防这事而做的工具。
再补一条小自白,因为它是最清楚的例证:在写【这个仓库自己】的提交信息时,同一类失败又发生了。
信息里有一处 --selftest ,套在 shell 的双引号字符串里。
shell 执行了反引号,把那个词删掉了。
提交就这么进去了,句子缺了主语 —— 而且会一直错着,因为没人检查提交信息。
"知道这个坑"不等于"不会踩";只有闸门才算。
它做什么
把"教训"变成一个闸门:
1. 改前备份 → .safe_edit_backup/<时间戳>/
2. 改后立即校验: .py → compile() · .json → json.loads · .yaml → yaml.safe_load · .bat → ASCII-only 检查
3. ★ 校验失败 ⇒ 自动回滚,并明确报告
4. 退出码非 0 —— 模型或脚本不可能漏掉
半坏的文件永远不会留在磁盘上。
快速开始
带安全网地改
python safe_edit.py --file app.py --replace "旧文本" "新文本"
多文件同一替换
python safe_edit.py --files a.py b.py --replace "旧" "新"
★ 大段文本(含引号 / 中文):两边从文件读—— 这是"shell 参数转义不可靠"时该用的模式
python safe_edit.py --file app.py --replace-with-file old.txt new.txt
只验不写
python safe_edit.py --check-only a.py b.py
回滚到最近一次备份
python safe_edit.py --rollback app.py
自检:阳例 + 阴例对照
python safe_edit.py --selftest
失败时你会拿到一份毫不含糊的报告,而且文件是干净的:
x app.py 改 1 处后校验失败 ⇒ 已自动回滚:语法错 line 207: invalid syntax (备份 .safe_edit_backup/20261015-213510/app.py)
==> 1 个失败(已回滚)—— 调用方必须知道这次没改成 (退出码 1)
从 AI Agent 里用(MCP)
mcp_server.py 把它通过 MCP 暴露出来 —— stdio + JSON-RPC 2.0, 不需要装任何依赖。工具:safe_edit / edit_check / edit_rollback。
{
"mcpServers": {
"ai-safe-edit": {
"command": "python",
"args": ["/绝对路径/ai-safe-edit/mcp_server.py"]
}
}
}
任何 MCP 客户端都能用 —— 包括 DeepSeek Harness、Claude Code、Cursor 等。
为什么要"强制"走它
一个能自由写文件的 agent,迟早会写出一个坏文件。
问题不在于"会不会",在于:这个失败是当场暴露 + 回滚,还是很久以后以"某个没人记得改过的文件报了个怪错"的形式暴露。
这个项目用血换来的两条结论:
- "写下来的教训"不是约束,"变成闸门的教训"才是。
- 失败必须让调用方知道。 静默的成功比响亮的失败更糟 ——一个以为自己改成功的 agent,会在坏文件上继续盖楼。
诚实的局限
- 它不能判断改动对不对 —— 只能保证"改完还能解析"。
语义正确性仍然要靠测试、闸门、和人。
- 它拦不住绕过。想让绕过至少留下痕迹,见下面的配套工具。
- 目前校验 .py / .json / .yaml / .bat。其他后缀会备份 + 写入,但不校验。
配套:check_edit_discipline.py
"绕过零成本"是这套东西最大的漏洞。 配套的检查器补上它:
每次成功改动后记下文件的哈希;检查器比对"当前哈希 vs 最后记录",报出 「这个文件改过,但没走 safe_edit」 —— 把静默的绕过变成可见的。
python check_edit_discipline.py # 检查
python check_edit_discipline.py --init # 建基线
python check_edit_discipline.py --selftest # 自检(含"绕过必被抓"的阴性对照)
相关工作
这个工具是在一个硬件设计 agent 项目里独立长出来的。做成之后,我们读了 DeepSeek Harness 的源码,发现它从另一端解决同一类问题: 让实验固化必须经过用户明确批准(install_bundle + pendingBuilds),所以模型写的东西不经人批准就进不了持久配置。
两者是互补的:
| | DeepSeek Harness | ai-safe-edit |
| 思路 | 阻止 —— 改动要先批准才能留存 | 兜住 —— 改动要校验,坏了就回滚 |
| 强项 | 未授权的东西写不进去 | 坏掉的东西活不下来(哪怕是绕过改的) |
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Sun-beining/ai-safe-edit
改前备份改后校验,失败自动回滚不留坏文件
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目