permissions=,代理的内置文件系统工具会遵守这些规则。
权限仅适用于内置文件系统工具(ls、read_file、glob、grep、write_file、edit_file)。不涵盖访问文件系统的自定义工具和 MCP 工具。权限也不适用于沙盒后端,沙盒通过 execute 工具支持任意命令执行。
基本用法
将FilesystemPermission 规则列表传递给 create_deep_agent。规则按声明顺序评估。第一个匹配的规则胜出。如果没有匹配的规则,操作被允许。
规则结构
每个FilesystemPermission 有三个字段:
| 字段 | 类型 | 描述 |
|---|---|---|
operations | list["read" | "write"] | 此规则适用的操作。"read" 涵盖 ls、read_file、glob、grep。"write" 涵盖 write_file、edit_file。 |
paths | list[str] | 用于匹配文件路径的 glob 模式(例如 ["/workspace/**"])。支持 ** 进行递归匹配,{a,b} 进行交替。 |
mode | "allow" | "deny" | 是允许还是拒绝匹配的操作。默认为 "allow"。 |
operations 和 paths 与当前调用匹配的规则,确定结果。如果没有匹配的规则,调用是允许的(宽松默认)。
示例
隔离到工作目录
只允许在/workspace/ 下读写,拒绝其他所有:
保护特定文件
只读记忆
允许代理读取记忆文件但阻止修改。这对于应该只由应用程序代码更新的组织范围策略或共享知识库很有用。请参阅只读与可写记忆了解更多上下文。拒绝所有访问
阻止所有读写。这是一个限制性的基线,您可以在其上分层更具体的允许规则:规则顺序
由于第一个匹配胜出,规则顺序很重要。将更具体的规则放在更广泛的规则之前:子代理权限
子代理默认继承父代理的权限。要给子代理不同的权限,请在规范中设置permissions 字段。这完全替换父级的规则。
复合后端
当使用带有沙盒默认值的CompositeBackend 时,每个权限路径必须限定在已知路由前缀下。沙盒支持任意命令执行,因此仅基于路径的限制无法通过 shell 命令防止文件系统访问。将权限限定为特定路由的后端可避免此冲突。
NotImplementedError:
通过 MCP 将这些文档 连接到 Claude、VSCode 等,获取实时答案。

