开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

用户授权

危险模式列表是一种安全防护机制,用于检测工具调用参数中是否包含恶意指令或提示注入攻击。当检测到匹配的危险模式时,系统会触发中断等待用户授权确认,从而防止潜在的安全风险。

操作步骤

  1. 使用SSH远程登录工具,登录DevKit AI的安装节点。
  2. 进入DevKit AI基础包解压后目录。
    cd DevKit-AI-x.x.x-Linux-Kunpeng
  3. 打开“config/config.yaml”文件。
    vi config/config.yaml
  4. 按“i”进入编辑模式,编辑内容示例如下。
    # 主 Agent 全局配置
    agent:
      # interrupt_on: 工具调用中断配置(基于 deepagents 官方文档)
      # enable: 全局开关,true 启用基于危险模式的条件中断;false 禁用,如果危险模式匹配为true,则需要进一步匹配危险模式列表
      interrupt_on:
        enable: true
        reconfirm:   # 二次确认工具列表
        - execute
        # 工具配置
        tools:
          # 工具名称(如 execute, write_file 等)
          "execute":
            # 支持的操作决策列表:approve(批准)/ edit(编辑参数后执行)/ reject(拒绝)
            allowed_decisions:
            - approve
            - reject
            - edit
            # 中断描述信息
            description: "请确认是否执行该命令"
            # 危险模式列表 - 仅当参数匹配以下模式时才中断
            dangerous_pattern_list:
              # 是否启用危险模式匹配:true 启用;false 禁用
              enable: true
              # 危险模式列表(大小写不敏感,参数中包含任一模式即触发中断)
              list:
              - "rm -rf"                         # 危险删除命令
              - "> /dev/sd"                      # 写入设备文件
              - "mkfs"                           # 格式化文件系统
              - "dd if="                         # 低级数据拷贝
              - "fork("                          # 进程fork
              - "exec("                          # 命令执行
              - "subprocess with shell=True"     # 使用shell执行
              - "chmod -R 777 /"                 # 权限滥用
              - "chown -R"                       # 所有者篡改
              - ":(){:|:&};&:"                   # Fork bomb
    表1 agent全局参数配置

    参数

    参数选项

    参数说明

    interrupt_on

    enable

    true/false

    控制是否启用中断功能:

    • true:启用。
    • false:禁用。

    reconfirm

    -

    需要二次确认的工具列表。

    tools

    -

    为不同tools设置参数,tools参数详情请参见表2。

    表2 tools参数说明

    参数

    参数选项

    参数说明

    allowed_decisions

    - approve/- reject/- edit

    支持用户的操作决策列表:approve(批准)/edit(编辑参数后执行)/reject(拒绝)。

    description

    -

    触发中断时的描述信息,例如“请确认是否执行该命令”。

    dangerous_pattern_list

    enable

    true/false

    是否启用危险模式匹配:

    • true:启用。
    • false:禁用。

    list

    -

    危险模式列表。不区分大小写,支持正则表达式风格的部分匹配,参数中包含任一模式即触发中断。

  5. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
  6. 运行./devkitai,调用工具使用,触发危险列表时需要用户授权确认。
    [新会话ID] 20260818_081109_571b
    
    >>> 把logs目录下文件权限修改为777

    返回信息如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    DevKit AI: 
    
    [主Agent 工具启动] -> 工具名: ls | 入参: {'path': '/home/DevKit-AI-x.x.x-Linux-Kunpeng/logs'}
    ============================================================
    
    ⚠️  Agent 执行已暂停,需要人工确认
    
    
    共 1 个操作需要确认:
    
    [1/1] 工具: execute
       描述: 请确认是否执行该命令
       参数: {'command': 'chmod -R 777 /home/DevKit-AI-x.x.x-Linux-Kunpeng/logs'}
    
       可选操作:
          [1] - 批准(approve)
          [2] - 拒绝(reject)
          [3] - 修改参数(edit)
    
    ============================================================
    
    💡 提示: 输入数字编号或关键字选择操作
    
    >>> 2
    DevKit AI: 
    您选择了 [拒绝(reject)] [execute],确认吗? (y/n): y
    
    [1/1] execute: 拒绝(reject)
    
    [主Agent] > 权限修改操作被用户拒绝了。
    
    logs目录位于:/home/DevKit-AI-x.x.x-Linux-Kunpeng/logs
    
    该目录下包含以下子目录:
    - 20260818_023852_628e/
    - 20260818_081109_571b/
    - common/
    - workflow/
    
    如果您需要修改权限,请确认是否允许执行 chmod -R 777 命令,或者您也可以手动在终端执行:
    
    chmod -R 777 /home/DevKit-AI-x.x.x-Linux-Kunpeng/logs
    
    请问还有其他需要帮助的吗?
    >>>