【开源自荐】Agent Guard: 为 ai coding 的毁灭性操作加一味“后悔药”
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
我的帖子已经打上 开源推广 标签: 是
我的开源项目完整开源,无未开源部分: 是
我的开源项目已链接认可 LINUX DO 社区: 是
我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
千呼万唤始出来,终于,在经历了被自家小鲸鱼的子代理删$HOME的惨痛教训后,我痛定思痛,在由我主导、社区合作者共同实现的基础上完成了本项目的开发。
下面介绍本项目 Agent-guard:
设计理念:
一言以概之,即 agent 的操作能够安全执行的则继续执行,能补偿的则先留后路(后悔药),面对不确定的操作会询问用户,而无法安全处理的指令则会被拒绝。
flowchart TD
A[Coding Agent] --> B[Agent Guard]
B --> C{这个操作能安全自动化吗?}
C -->|可以直接执行| D[ALLOW<br/>直接继续]
C -->|内容可以安全改写| F[SANITIZE<br/>脱敏后继续]
C -->|可以先做补偿| E[RELOCATE / SNAPSHOT<br/>先变得可恢复]
C -->|无法确定| G[ASK<br/>询问用户]
C -->|无法安全处理| H[BLOCK<br/>拒绝执行]
G -->|用户批准| D
G -->|用户拒绝| H
D --> I[继续执行]
F --> I
E --> I
H --> J[拒绝执行并说明原因]
测试示例:
这里采用 DeepSeek Harness 0.1.5-rc.1 作为示例,在其 极简模式 下,使用 DeepSeek 官方 API,模型为 DeepSeek-V4.1-Flash(官方 API:deepseek-flash)。 除 Agent Guard 外,测试环境未加载其他可能影响结果的插件或扩展。
一般来说,普通删除不会直接执行,先把目标挪进隔离区后再放行,给你一个 txid 方便回头找,如:
[agent-guard] compensated [{"strategy":"relocate","txid":"20260923-110003-7de04c85","moved":1}] <- rm -rf ...
带变量、find -delete、bash -c 这类静态看不出要删什么的,会被直接拒绝,如:
[agent-guard] BLOCKED [BLOCK_UNDETERMINABLE_EFFECT] ... target '$HOME/...' contains
variable/substitution | Restate with explicit workspace-relative paths, or use agent_guard_safe_delete.
跳出红色的拒绝框后,回过去一看,文件还在。
除了拦截命令,它还会往系统提示里插一段规矩,让模型优先使用 agent_guard_safe_delete 而不是 raw rm。原文在 adapters/dsh/lib/index.js:426。
判决一共六种(ALLOW / SANITIZE / RELOCATE / SNAPSHOT / ASK / BLOCK),命令行下都能复现;上面两条是 DSH 里真实执行阶段的。每次判决都会写进 ~/.agent-trash/audit.jsonl,追加式的,不参与清理。
最快使用:
打开你的 Coding Agent,直接发送:
请获取并阅读:https://github.com/mokuyoaxis/agent-guard ,
识别当前 harness,并按照 README 和对应 adapter 文档完成配置。
禁止覆盖已有配置;修改用户级配置或安装依赖前先告知我。
请用无害方式验证,最后汇报已启用的保护、自动拦截能力和未覆盖能力。
只有宿主确实支持时才配置原生 shell hook;不要贸然执行破坏性测试命令。
PS:本项目 README 有专门对 agent 的指导。
项目地址:
GitHub - mokuyoaxis/agent-guard: Make destructive AI-agent actions reversible by...
Make destructive AI-agent actions reversible by default — quarantine + audit + human escalation for rm/git destructive operations. Reliability infrastructure, not a sandbox.
开源协议:MIT License
当前限制:
重要 :本项目不是安全沙箱。目前主要防的是 agent 正常工作时的误操作,不试图对抗拥有同等系统权限、主动绕过规则的恶意 agent。
能不能自动拦截,取决于宿主有没有合适的 hook。Core 本身通用,但不同 agent 的原生接入能力并不相同。
目前,本项目覆盖的高风险行为还是有限集合。重点集中在删除、破坏性 Git 操作和部分敏感内容外发,本项目并不是通用安全系统。
本项目的跨平台和并发场景还没有完全验证。尤其是 Windows 端到端和多个 subagent 并发操作,还需要更多真实环境测试。
不同 harness 的验证程度不一样。Core 能工作,Skill 能调用和宿主能拦截所有相关调用是三件不同的事。
未来计划:
目前项目是 0.2.0-rc1(在发布本贴后即将更新 0.2.0-rc2,主要新增本站元信息数据),本项目未来计划主要有:
重要 :补齐 Windows / PowerShell / cmd 的真实端到端验证。
重要 :继续测试 多 Agent / subagent 并发场景。
更新 :计划新增: guard-lab,用合成 honeytoken 和 disposable project 测试潜在的危险agent(如被提示词注入的恐怖 LLM,神不知鬼不觉地上传你快照乃至整个库的危险 harness)。敬请期待!
致谢
感谢 CNB 平台与 PR 贡献者
也期待诸位佬提出自己的想法,发 issue,PR。最后点一个 star ^-^ 就更棒了!