ラズパイで育てる!自分だけのAI【運用編】① Discordステータスリアクションを有効化する
はじめに
🎯 この記事の対象読者
- OpenClaw を Discord で運用している方
- メッセージを送った後、Bot が何をしているか見えなくて不安な方
- リアクション絵文字でステータスを可視化したい方
前提: OpenClaw インストール・onboard 編 が完了していること
ステータスリアクションとは
Discord で Bot にメッセージを送ったとき、処理の進行状況を絵文字リアクションで表示する機能です。
デフォルトの絵文字はこちら:
| ステータス | 絵文字 | 意味 |
|---|---|---|
| queued | 👀 | メッセージを受け取った |
| thinking | 🤔 | LLM が考えている |
| tool | 🔥 | ツール呼び出し中 |
| coding | 👨💻 | コード実行中 |
| web | ⚡ | ウェブ検索中 |
| done | 👍 | 処理完了 |
| error | 😱 | エラー発生 |
Bot が黙ってメッセージを処理している間、絵文字がじわじわ変わっていきます。「ちゃんと動いているな」と安心できるのが地味にありがたい機能です。
補足: 絵文字の種類について
上記は主要なステータスの絵文字です。バージョンによって追加のステータスが存在する場合があります。
設定を変更する
~/.openclaw/openclaw.json の messages セクションを編集します。
変更前:
"messages": {
"ackReactionScope": "group-mentions",
"ackReaction": "👀"
}
変更後:
"messages": {
"ackReactionScope": "all",
"ackReaction": "👀"
}
ackReactionScope に指定できる値はこちら:
| 値 | 動作 |
|---|---|
"all" |
すべてのメッセージに反応(DM・グループ両方) |
"group-mentions" |
グループで @メンションされた時のみ |
"group-all" |
グループメッセージすべて |
"direct" |
DM のみ |
"none" |
反応なし |
普段の運用では "all" が最も使いやすいです。@メンションなしで話しかける設定にしている場合は特に。
ゲートウェイを再起動する
設定を変更したらゲートウェイを再起動します。
# Docker Compose で運用している場合
docker compose restart
# ネイティブインストール(非Docker)の場合
openclaw gateway restart
再起動後、ログで設定が読み込まれたか確認しておくと安心です:
docker compose logs openclaw --tail 20 | grep -i "reload\|config"
絵文字をカスタマイズする(任意)
デフォルトの絵文字を変更したい場合は statusReactions セクションを追加します。
{
"messages": {
"ackReaction": "👀",
"ackReactionScope": "all",
"statusReactions": {
"emojis": {
"thinking": "🧠",
"tool": "🛠️",
"coding": "💻",
"web": "🌐",
"done": "✅",
"error": "❌"
}
}
}
}
ステータスリアクション自体を無効化したい場合は enabled: false を設定します:
{
"messages": {
"statusReactions": {
"enabled": false
}
}
}
各チャネルの対応状況
Discord 以外のチャネルを使っている方向けに、対応状況をまとめました。
| チャネル | ackReaction | statusReactions | 備考 |
|---|---|---|---|
| Discord | ✅ | ✅ | Unicode 絵文字 |
| Slack | ✅ | ✅ | shortcode 形式("eyes" など) |
| Telegram | ✅ | ✅ | Unicode 絵文字 |
| LINE | ❌ | ❌ | リアクション機能未実装 |
| Teams | ❌ | ❌ | リアクション機能未実装 |
LINE や Teams はリアクション機能自体が実装されていないため、この設定は効果がありません。Slack を使う場合は Unicode 絵文字ではなく shortcode 形式("eyes" など)で指定する点に注意してください。
動作確認
設定が反映されているか確認します。
- Discord のチャットで Bot にメッセージを送信
- Bot がメッセージに 👀 リアクションをつけるか確認
- 処理中に 🤔 → 🔥 → 👍 のように絵文字が遷移するか確認
うまく動かない場合の確認ポイント:
-
ackReactionとackReactionScopeの両方が設定されているか - ゲートウェイを再起動したか
-
docker compose logs openclaw --tail 50でエラーが出ていないか
まとめ
| 項目 | 設定値 |
|---|---|
| リアクション絵文字 | messages.ackReaction |
| 発火スコープ | messages.ackReactionScope |
| 中間ステータス絵文字 | messages.statusReactions.emojis |
| 再起動 | 設定変更後は docker compose restart を推奨 |
✅ 今回やったこと:
-
ackReactionとackReactionScopeを両方設定してリアクションを有効化した - ゲートウェイを再起動して設定を反映した
- カスタム絵文字の設定方法と既知の制限を確認した
ackReaction と ackReactionScope はセットで設定する、というのが最大のポイントです。片方だけ書いても動かないのでハマりやすい。
LINE や Teams でもリアクションが使えるようになったら試してみたいです。今後のアップデートに期待。
運用編:
- ① Discordステータスリアクションを有効化する(本記事)
Discussion