【开源自荐】Agent Guard: 为 ai coding 的毁灭性操作加一味“后悔药”

Messia 2026-09-23 20:53 1

【开源自荐】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 的指导。



项目地址:




开源协议:MIT License


当前限制:



  1. 重要:本项目不是安全沙箱。目前主要防的是 agent 正常工作时的误操作,不试图对抗拥有同等系统权限、主动绕过规则的恶意 agent。

  2. 能不能自动拦截,取决于宿主有没有合适的 hook。Core 本身通用,但不同 agent 的原生接入能力并不相同。

  3. 目前,本项目覆盖的高风险行为还是有限集合。重点集中在删除、破坏性 Git 操作和部分敏感内容外发,本项目并不是通用安全系统。

  4. 本项目的跨平台和并发场景还没有完全验证。尤其是 Windows 端到端和多个 subagent 并发操作,还需要更多真实环境测试。

  5. 不同 harness 的验证程度不一样。Core 能工作,Skill 能调用和宿主能拦截所有相关调用是三件不同的事。


未来计划:


目前项目是 0.2.0-rc1(在发布本贴后即将更新 0.2.0-rc2,主要新增本站元信息数据),本项目未来计划主要有:



  1. 重要:补齐 Windows / PowerShell / cmd 的真实端到端验证。

  2. 重要:继续测试 多 Agent / subagent 并发场景。

  3. 更新:计划新增: guard-lab,用合成 honeytoken 和 disposable project 测试潜在的危险agent(如被提示词注入的恐怖 LLM,神不知鬼不觉地上传你快照乃至整个库的危险 harness)。敬请期待!


致谢


感谢 CNB 平台与 PR 贡献者



也期待诸位佬提出自己的想法,发 issue,PR。最后点一个 star ^-^ 就更棒了!


最新回复 (5)
  • PixelCat 09-23 21:00
    1楼

    感谢佬友分享,star一下,这就下载给dsh和codex

    试一试

  • Messia 楼主 09-23 22:28
    2楼

    OK,感谢佬的使用和测试,如果有什么问题,及时反馈!

  • Messia 楼主 09-27 10:55
    3楼

    0.2.1 版本更新:补强 Claude Code/Kimi Code Hook 接入,新增 doctor.py 自检,并修复 Shell 包装器绕过、审计失败放行及部分补偿状态丢失。测试与 CI 全通过。

    下一步计划:继续完善通用 Hook 接入与宿主漂移检查,补充 Windows 实机验证,并推进 guard-lab 蜜罐实验(验牌 LLM 和 harness 真的很好玩 ^-^);npm 包正在计划~

  • Messia 楼主 09-27 22:44
    4楼

    0.2.2 版本更新:新增宿主漂移检查与低 Token 实宿主哨兵,可以区分“配置好了”,“本地桥能跑”和“Hook 真的拦住了”;完成 Kimi Code、DSH 的有界实测,并发布首个通用 npm 包 @mokuyoaxis/agent-guard。

    下一步计划:0.2.3 将开始推进 guard-lab 离线蜜罐 MVP,包括 Canary、真假 Lab、合成诱饵与用户侧观察器(让我测测谁家agent放毒了 ^-^);同时继续补充更多 harness 与 Windows 实机证据。

    npm:

  • Messia 楼主 10-01 02:36
    5楼

    国庆快乐,诸位佬:

    0.2.3-rc1 更新:修复了 Windows 方言问题导致破坏性命令拦截失效(感谢佬友们发来的 issue!)

    0.2.3-rc2 更新:新增 guard-lab 离线蜜罐 MVP,加入 Canary、假 Lab 调用、合成诱饵、快照模拟与用户侧观察器。内置四组零 Token 用例,可以先校准观测链路,再拿真实 agent 做有界测试(我要验牌,牌有没有问题? ^-^)。报告将区分“观察到暴露”,“未观察到暴露”和“证据不足”。注意!这并不意味着,没命中就是安全认证。

    此外,我们完成了 DSH 0.2.0-rc.2 相关接口适配,通过 Linux/macOS 全量 CI 和 Windows Core 检查;




    下一步计划:收集 rc2 反馈,完成验收,准备 0.2.3 正式版;继续补充更多 harness、真实模型与 Windows 实机证据。




    npm 稳定通道目前仍为 0.2.2,Windows 用户和期望体验 guard-lab 新功能的用户建议指定版本 @mokuyoaxis/[email protected]。或者等待 0.2.3 正式版。

* 帖子来源Linux.do
返回