exec 命令会被限制在沙箱环境中。提升权限模式允许智能体突破这一限制,改为在沙箱外运行命令,并可配置审批关卡。
提升权限模式仅在智能体处于沙箱隔离状态时改变行为。对于未进行沙箱隔离的智能体,exec 已经在宿主机上运行。
指令
使用斜杠命令按会话控制提升权限模式:
也可使用
/elev on|off|ask|full。
发送不带参数的 /elevated 可查看当前级别。
工作原理
1
检查可用性
必须在配置中启用提升权限,并且发送者必须在允许列表中:
2
设置级别
发送一条仅包含指令的消息,以设置会话默认值:也可以内联使用(仅应用于该消息):
3
命令在沙箱外运行
启用提升权限后,
exec 调用会离开沙箱。有效宿主机默认是
gateway;当配置的/会话的 exec 目标为
node 时,则为 node。在 full 模式下,如果解析后的 exec
模式/宿主机审批策略已经完全宽松(security full、
ask off),则会跳过 exec 审批;否则仍应用正常审批策略。在
on/ask 模式下,始终应用配置的审批规则。解析顺序
- 内联指令,位于消息中(仅应用于该消息)
- 会话覆盖值(通过发送仅包含指令的消息设置)
- 全局默认值(配置中的
agents.defaults.elevatedDefault)
可用性和允许列表
- 全局关卡:
tools.elevated.enabled(必须为true) - 发送者允许列表:
tools.elevated.allowFrom,包含各渠道的列表 - 每智能体关卡:
agents.entries.*.tools.elevated.enabled(只能进一步限制;全局关卡和每智能体关卡都必须为true) - 每智能体允许列表:
agents.entries.*.tools.elevated.allowFrom(发送者必须同时匹配全局和每智能体允许列表) - 渠道提供的后备允许列表:渠道插件可以选择通过 SDK 适配器钩子提供后备允许列表,在未配置
tools.elevated.allowFrom.<provider>时使用。目前没有内置渠道实现此钩子,因此实际使用中,每个提供商目前都需要显式的tools.elevated.allowFrom.<provider>条目。 - 所有关卡都必须通过;否则提升权限将被视为不可用
提升权限不控制的内容
- 工具策略:如果工具策略拒绝了
exec,提升权限无法将其覆盖。 - 宿主机选择策略:提升权限不会将
auto变成可随意跨宿主机覆盖的设置。它使用配置的/会话的 exec 目标规则,仅当目标已经是node时才选择node。 - 与
/exec分离:/exec指令可供已获授权的发送者调整每会话 exec 默认值(host、security、ask、node),且不需要提升权限模式。
bash 聊天命令(
! 前缀;/bash 别名)使用独立关卡,除其自身的 tools.bash.enabled 标志外,还要求启用 tools.elevated。禁用提升权限也会禁止 ! shell 命令。相关内容
Exec 工具
从智能体执行 shell 命令。
Exec 审批
exec 的审批和允许列表系统。沙箱隔离
Gateway 网关级沙箱配置。
沙箱、工具策略和提升权限
三个关卡在工具调用期间如何组合。