MateClaw 中文文档 下载 App

File Guard——Agent 眼里的文件系统长什么样

Agent 不应该看到整个文件系统

如果给 Agent 一个 shell 工具 + 文件系统读写,它理论上可以 rm -rf /——不是它真的想搞破坏,而是 ReAct 循环里某一步 Thought 判断失误就可能导致灾难性后果。

File Guard 在 Agent 和真实文件系统之间加了一层沙箱——Agent 调用文件相关工具时,所有路径都会经过 File Guard 的规则过滤:

三种规则

规则类型说明
白名单目录Agent 只能读写列出的目录
黑名单目录Agent 不能读写列出的目录(比如 /etc/、系统目录)
路径穿越拦截任何包含 .. 的路径自动拒绝

工作空间隔离

File Guard 和工作空间隔离配合使用:

和 Tool Guard 的关系

Tool Guard 管「能不能调用文件工具」,File Guard 管「调用文件工具时能操作哪些路径」。两层叠加:

  1. Tool Guard 先看:这个 Agent 有没有文件写入权限?(require_approval 的话先挂起等审批)
  2. File Guard 再看:批准了之后,实际要写入的路径在允许目录里吗?不在就拒绝

实际例子

假设你有一个代码助手 Agent,想让它只操作你的项目目录:

Agent 调 write_file("/home/user/projects/myapp/src/Main.java", ...) → 通过Agent 调 write_file("/etc/passwd", ...) → 拒绝(黑名单)Agent 调 write_file("../../../etc/passwd", ...) → 拒绝(路径穿越)