内置工具

提升权限模式

当智能体在沙箱内运行时,其 exec 命令会被限制在沙箱环境中。提升权限模式允许智能体突破这一限制,改为在沙箱外运行命令,并可配置审批关卡。

指令

使用斜杠命令按会话控制提升权限模式:

指令 作用
/elevated on 在配置的宿主机路径上于沙箱外运行,同时保留审批
/elevated ask on 相同(别名)
/elevated full 在配置的宿主机路径上于沙箱外运行,并在模式/宿主机审批策略已经宽松时跳过审批
/elevated off 恢复仅限沙箱内执行

也可使用 /elev on|off|ask|full

发送不带参数的 /elevated 可查看当前级别。

工作原理

  • 检查可用性

    必须在配置中启用提升权限,并且发送者必须在允许列表中:

    json5
    {  tools: {    elevated: {      enabled: true,      allowFrom: {        discord: ["user-id-123"],        whatsapp: ["+15555550123"],      },    },  },}
  • 设置级别

    发送一条仅包含指令的消息,以设置会话默认值:

    Code
    /elevated full

    也可以内联使用(仅应用于该消息):

    Code
    /elevated on 运行部署脚本
  • 命令在沙箱外运行

    启用提升权限后,exec 调用会离开沙箱。有效宿主机默认是 gateway;当配置的/会话的 exec 目标为 node 时,则为 node。在 full 模式下,如果解析后的 exec 模式/宿主机审批策略已经完全宽松(security full、 ask off),则会跳过 exec 审批;否则仍应用正常审批策略。在 on/ask 模式下,始终应用配置的审批规则。

  • 解析顺序

    1. 内联指令,位于消息中(仅应用于该消息)
    2. 会话覆盖值(通过发送仅包含指令的消息设置)
    3. 全局默认值(配置中的 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> 条目。
    • 所有关卡都必须通过;否则提升权限将被视为不可用

    允许列表条目格式:

    前缀 匹配项
    (无) 发送者 ID、E.164 或 From 字段
    name: 发送者显示名称
    username: 发送者用户名
    tag: 发送者标签
    id:from:e164: 显式指定身份

    提升权限不控制的内容

    • 工具策略:如果工具策略拒绝了 exec,提升权限无法将其覆盖。
    • 宿主机选择策略:提升权限不会将 auto 变成可随意跨宿主机覆盖的设置。它使用配置的/会话的 exec 目标规则,仅当目标已经是 node 时才选择 node
    • /exec 分离/exec 指令可供已获授权的发送者调整每会话 exec 默认值(host、security、ask、node),且不需要提升权限模式。

    相关内容

    Was this useful?
    On this page

    On this page