跳转到内容

提升模式

当代理在沙盒内运行时,其 exec 命令仅限于沙盒环境。提升模式 允许代理突破沙盒并在沙盒之外运行命令,并具有可配置的审批门槛。

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

指令作用
/elevated on在配置的主机路径上于沙箱外运行,保留审批
/elevated askon 相同(别名)
/elevated full在配置的主机路径上于沙箱外运行并跳过审批
/elevated off返回沙箱受限执行

也可以作为 /elev on|off|ask|full 使用。

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

  1. 检查可用性

    必须在配置中启用 Elevated,且发送者必须在允许列表中:

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

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

    /elevated full

    或内联使用(仅适用于该消息):

    /elevated on run the deployment script
  3. Commands run outside the sandbox

    在激活提升模式时,exec 调用会离开沙盒。默认的有效主机是 gateway,当配置/会话执行目标是 node 时,则是 node。在 full 模式下,将跳过 exec 审批。在 on/ask 模式下, 配置的审批规则仍然适用。

  1. 消息上的内联指令(仅适用于该消息)
  2. 会话覆盖(通过发送仅包含指令的消息设置)
  3. 全局默认值(配置中的 agents.defaults.elevatedDefault
  • 全局门槛tools.elevated.enabled(必须为 true
  • 发送者允许列表:带有每个渠道列表的 tools.elevated.allowFrom
  • 每个代理的门槛agents.list[].tools.elevated.enabled(只能进一步限制)
  • 每个代理的允许列表agents.list[].tools.elevated.allowFrom(发送者必须同时匹配全局 + 每个代理的列表)
  • Discord 回退:如果省略了 tools.elevated.allowFrom.discord,则使用 channels.discord.allowFrom 作为回退
  • 所有闸门必须通过;否则将提升模式视为不可用

允许列表条目格式:

前缀匹配项
(无)发送者 ID、E.164 或 From 字段
name:发送者显示名称
username:发送者用户名
tag:发送者标签
id:from:e164:显式身份定位
  • 工具策略:如果 exec 被工具策略拒绝,提升模式无法覆盖它。
  • 主机选择策略:elevated 不会将 auto 变为自由的跨主机覆盖。它使用配置的/会话 exec 目标规则,仅当目标已经是 node 时才选择 node
  • /exec 分离/exec 指令为授权发送者调整每次会话的 exec 默认值,并不需要 elevated 模式。

Exec 工具

来自 agent 的 Shell 命令执行。

Exec 批准

针对 exec 的批准和允许列表系统。

沙箱隔离

Gateway(网关) 级别的沙箱配置。

沙箱 vs 工具策略 vs Elevated

这三个关卡在工具调用期间如何组合。