10.2 SOUL Evil Hook

SOUL Evil Hook 在清除窗口或随机机会期间,将注入的 SOUL.md 内容替换为 SOUL_EVIL.md。它不会修改磁盘上的文件。

工作原理

agent:bootstrap 运行时,此 hook 可以在组装系统提示之前,在内存中替换 SOUL.md 的内容。如果 SOUL_EVIL.md 缺失或为空,OpenClaw 会记录警告并保持使用正常的 SOUL.md

注意
子代理运行不会在其引导文件中包含 SOUL.md,因此此 hook 对子代理无效。

启用

openclaw hooks enable soul-evil

然后设置配置:

{
  "hooks": {
    "internal": {
      "enabled": true,
      "entries": {
        "soul-evil": {
          "enabled": true,
          "file": "SOUL_EVIL.md",
          "chance": 0.1,
          "purge": {
            "at": "21:00",
            "duration": "15m"
          }
        }
      }
    }
  }
}

在代理工作区根目录(SOUL.md 旁边)创建 SOUL_EVIL.md

配置选项

选项 类型 说明
file 字符串 替代 SOUL 文件名(默认:SOUL_EVIL.md
chance 数字(0-1) 每次运行使用 SOUL_EVIL.md 的随机概率
purge.at HH:mm 每日清除开始时间(24小时制)
purge.duration 持续时间 窗口长度(例如 30s10m1h

优先级:清除窗口优先于随机概率。

时区:设置 agents.defaults.userTimezone 时使用该时区;否则使用主机时区。

注意事项

  • 不会在磁盘上写入或修改任何文件。
  • 如果引导列表中没有 SOUL.md,该 hook 不会执行任何操作。

使用示例

场景1:随机替换

每次运行有 10% 的概率使用邪恶人格:

{
  "hooks": {
    "internal": {
      "entries": {
        "soul-evil": {
          "enabled": true,
          "chance": 0.1
        }
      }
    }
  }
}

场景2:定时清除窗口

每天晚上 9 点开始,持续 15 分钟使用邪恶人格:

{
  "hooks": {
    "internal": {
      "entries": {
        "soul-evil": {
          "enabled": true,
          "purge": {
            "at": "21:00",
            "duration": "15m"
          }
        }
      }
    }
  }
}

场景3:组合使用

清除窗口 + 5% 随机概率:

{
  "hooks": {
    "internal": {
      "entries": {
        "soul-evil": {
          "enabled": true,
          "chance": 0.05,
          "purge": {
            "at": "21:00",
            "duration": "15m"
          }
        }
      }
    }
  }
}

在清除窗口期间总是使用 SOUL_EVIL.md,窗口外有 5% 的概率使用。