コンテンツにスキップ

SOUL Evil Hookでエージェントの振る舞いを動的に切り替える

開発を進めていると、エージェントの振る舞いが固定化されてしまい、特定の条件下で挙動を変化させるのが難しく感じることがあります。例えば、特定の時間帯だけ指示内容を変えたい場合、手動でファイルを書き換えるのは手間ですし、ミスの原因にもなります。

実行時だけ一時的に指示セットを切り替えたい、そんな時に役立つのが SOUL Evil Hook です。この Hook を使うと、ディスク上のファイルを汚さずに、メモリ上だけで SOUL.md の内容を SOUL_EVIL.md に差し替えることができます。

  • OpenClaw の動作環境
  • ワークスペースのルートに配置された SOUL.md
  • 差し替え用の内容を記述した SOUL_EVIL.md
  • 設定ファイルを編集するためのテキストエディタ

5分で設定を完了して、エージェントの挙動を動的に変更してみましょう。

  1. Hook を有効にする CLI で以下のコマンドを実行します。

    Terminal window
    openclaw hooks enable soul-evil
  2. Config を設定する 設定ファイルに以下の内容を記述します。ここでは 21:00 から 15分間だけ、あるいは 10% の確率で SOUL_EVIL.md が使用されるように設定しています。

    {
    "hooks": {
    "internal": {
    "enabled": true,
    "entries": {
    "soul-evil": {
    "enabled": true,
    "file": "SOUL_EVIL.md",
    "chance": 0.1,
    "purge": { "at": "21:00", "duration": "15m" }
    }
    }
    }
    }
    }
  3. ファイルの準備 SOUL.md と同じ階層(エージェントのワークスペースルート)に SOUL_EVIL.md を作成してください。

設定できるパラメータは以下の通りです。

  • file (string): 差し替える SOUL のファイル名(デフォルト: SOUL_EVIL.md)
  • chance (number 0–1): 実行時にランダムで SOUL_EVIL.md が選ばれる確率
  • purge.at (HH:mm): 毎日 purge を開始する時刻(24時間表記)
  • purge.duration (duration): purge を継続する時間(例: 30s, 10m, 1h)

purge の時間枠内である場合は、chance による抽選よりも優先して SOUL_EVIL.md が選ばれます。Timezone は agents.defaults.userTimezone が設定されていればそれが使用され、未設定の場合はホストの Timezone が適用されます。

設定がうまくいかない場合は、以下の点を確認してください。

  • SOUL_EVIL.md が読み込まれない ファイルが空であるか、存在しない場合、OpenClaw は警告ログを出力して通常の SOUL.md を使い続けます。ファイルが正しく配置されているか確認してください。
  • サブエージェントで効果がない サブエージェントの実行時には SOUL.md は bootstrap ファイルに含まれません。そのため、この Hook はサブエージェントには影響を与えません。

ディスク上のファイルは一切書き換えられないため、安心して試すことができます。もし agent:bootstrap のリストに SOUL.md が含まれていない場合、この Hook は何もしません。

セットアップの詳細や不明な点がある場合は、AI Setup Assistant で質問してみてください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。