提权模式(Elevated Mode)允许代理在Gateway主机上运行命令,并可选择自动批准exec操作,适用于受信任的场景。
概述
提权模式通过 /elevated 指令控制,允许更高权限的命令执行。只有在代理被沙箱化时才会改变行为,否则exec已经在主机上运行。
指令形式
# 启用提权模式(保留exec批准)
/elevated on
/elevated ask
# 完全提权(自动批准exec)
/elevated full
# 禁用提权模式
/elevated off
# 简写形式
/elev on|off|ask|full
工作机制
提权级别
on/ask: 在Gateway主机上运行,但保留exec批准流程full: 在Gateway主机上运行,并设置security=full自动批准execoff: 禁用提权模式
影响范围
- 主机执行: 强制exec在Gateway主机上运行
- 批准控制:
full跳过exec批准,on/ask保留批准 - 未沙箱化代理: 仅影响门控、日志和状态
- 工具策略优先: 如果工具策略拒绝exec,提权模式无法使用
解析顺序
- 内联指令(仅应用于当前消息)
- 会话覆盖(通过单独的指令消息设置)
- 全局默认(
agents.defaults.elevatedDefault)
设置会话默认值
发送仅包含指令的消息(允许空格):
/elevated full
系统会回复确认:
Elevated mode set to full...
# 或
Elevated mode disabled.
查看当前状态
# 查看当前提权级别
/elevated
/elevated:
可用性和访问控制
全局配置
{
"tools": {
"elevated": {
"enabled": true,
"allowFrom": {
"discord": ["user-id-1", "user-id-2"],
"whatsapp": ["+15555551234"]
}
}
}
}
代理级配置
{
"agents": {
"list": [
{
"id": "restricted",
"tools": {
"elevated": {
"enabled": false
}
}
}
]
}
}
访问控制规则
- 全局和代理级门控都必须通过
- 发送者必须在白名单中
- Discord回退:如果未设置
tools.elevated.allowFrom.discord,使用channels.discord.dm.allowFrom - 代理级白名单不使用回退机制
群组聊天中的行为
- 仅在代理被@提及时响应提权指令
- 仅命令的消息(绕过提及要求)被视为已提及
日志和状态
- 提权exec调用在info级别记录
- 会话状态包含提权模式(例如:
elevated=ask,elevated=full)
安全考虑
安全警告
- 对不受信任的代理拒绝exec(
agents.list[].tools.deny: ["exec"]) - 避免为路由到受限代理的发送者设置白名单
- 如果只需要沙箱执行,全局禁用提权(
tools.elevated.enabled: false) - 针对敏感配置文件禁用代理级提权(
agents.list[].tools.elevated.enabled: false)
使用场景
- 受信任的自动化: 在受控环境中快速执行
- 管理任务: 系统管理和维护操作
- CI/CD集成: 自动化部署流程
- 开发调试: 快速测试而无需批准
配置示例
仅限特定用户
{
"tools": {
"elevated": {
"enabled": true,
"allowFrom": {
"discord": ["admin-user-id"]
}
}
}
}
不同代理不同策略
{
"agents": {
"list": [
{
"id": "admin",
"tools": {
"elevated": {
"enabled": true
}
}
},
{
"id": "public",
"tools": {
"elevated": {
"enabled": false
},
"deny": ["exec"]
}
}
]
}
}
提示
提权模式是一个强大但需要谨慎使用的功能。始终遵循最小权限原则,仅为受信任的用户和场景启用。