Tool Guard 基于规则的权限——每个 Agent 能做什么由规则定
手能伸得远,但边界清清楚楚
MateClaw 给 Agent 真实的能力——shell 访问、文件写入、浏览器自动化、委托给其他 Agent、通过 MCP 调用远程工具。这是「手能伸得远」那一半。Tool Guard 是另一半:不让强有力的手干蠢事的边界。
三种权限级别
每个 Agent 的每个工具,Tool Guard 规则可以设三种之一:
| 级别 | 行为 |
|---|---|
| allow | Agent 可以自由调用,不拦截 |
| require_approval | 调用时在回合中途暂停,发审批请求到默认通知渠道,人批准了才继续 |
| deny | 直接拒绝,调用失败,不发审批通知 |
怎么配
进入 Agent 编辑器,找到「工具」标签。每个工具旁边都有一个下拉选择器——选 allow / require_approval / deny。默认值取决于这个工具的风险等级:
- 搜索、读取类工具:默认 allow
- 文件读取但不写入:默认 allow
- 文件写入、shell 命令、发邮件、数据库写入:默认 require_approval
- 某些极高风险操作(比如 rm -rf):默认 deny
工作空间级别的覆盖
除了 Agent 级别可以单独调,工作空间级别也可以设全局默认规则。比如整个工作空间禁止所有 Agent 执行 shell 命令——直接在工作空间的 Tool Guard 规则里设 shell.* → deny,覆盖所有 Agent 的配置。
不是只有三条规则那么简单
Tool Guard 支持条件匹配——你可以写更细的规则:
- shell 命令以
rm开头 → deny - 数据库写入操作针对
production数据库 → require_approval - 文件写入到
/etc/目录 → deny
条件语法随版本变化,以官方最新版为准。