OpenClaw

OpenClaw と Slack 連携の前提条件・設定ガイド

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
タイプ別にすぐ選べる

AIエージェント開発、どこから始める?

MCP・Claude・LangGraph…進化が速い領域こそ「体系学習 or 1冊集中」のどちらかを選ぶのが近道です。

▷ プロ講師から体系的に学んで"仕事で使えるAIエンジニア"になりたい人

DMM 生成AI CAMP 学び放題|無料セミナー有り▶

▷ 独学派で、まず1冊を読み込んで手を動かしたいエンジニア

【kindle本】Claude CodeによるAI駆動開発入門 ▶

※スクールは説明会のみでもOK。書籍は紙・電子どちらでも

▶ 実装リファレンスには 【kindle本】実践Claude Code入門が便利です。


スポンサードリンク

前提条件の整理

項目 最低要件(必須) 推奨環境(本番運用向き)
OS Ubuntu 20.04 LTS、macOS 12 以降 Ubuntu 22.04 LTS、macOS 13 以降
Docker Engine 20.10.0 以上(公式リポジトリから取得) 24.0 系列 (最新安定版)
Python 3.9.x 以上(OpenClaw の内部は 3.11 を使用) 3.11.x(pyenv 推奨)

ポイント
- 「最低要件」はインストールが成功すれば動作しますが、バグやセキュリティパッチの観点から 推奨環境 の利用を強く勧めます。
- 本ガイドでは「推奨環境」を前提に説明していますが、最低要件でも手順は同一です。


OS・Docker・Python のインストール手順

1. OS バージョンの確認

参考: Ubuntu 20.04 以降は systemd が標準搭載されているため、後述の systemd ユニットがそのまま利用できます。

2. Docker Engine のインストール(公式リポジトリ使用)

注意: apt-get install docker.io は Ubuntu の「universe」パッケージであり、バージョンが古いことがあります。必ず Docker 社の公式リポジトリ から取得してください。

macOS は公式サイトから Docker Desktop for Mac をダウンロードし、インストールウィザードに従ってください。
Docker Desktop ダウンロードページ

3. Python のインストール(pyenv 推奨)

Tip: pyenv はプロジェクトごとに異なる Python バージョンを管理できるので、将来的に別バージョンが必要になっても安全です。


Slack アプリの作成と権限設定

1. アプリケーションの新規作成

  1. ブラウザで Slack API - Your Apps にアクセス
  2. 「Create New App」 → 「From scratch」を選択
  3. 名前を OpenClaw Bot、所属ワークスペースを指定し「Create App」

2. 必要なスコープ(Bot Token Scopes)

スコープ 用途
chat:write メッセージ送信
im:write ダイレクトメッセージ書き込み
channels:read パブリックチャンネル情報取得
groups:read(オプション) プライベートチャンネル取得
reactions:write(オプション) リアクション付与

最小構成 は上記 3 スコープだけです。不要な権限は付与しないことで、情報漏洩リスクを低減できます。

3. Socket Mode の有効化

  1. 左メニューの 「Socket Mode」 → 「Enable Socket Mode」をオン
  2. 自動生成された App Level Token (connections:write) をコピーし、安全に保管

Socket Mode により、外部からポートを開放せずに Slack との双方向通信が可能です。公式ドキュメントは以下をご参照ください:
Slack Socket Mode Overviewhttps://api.slack.com/apis/socket-mode

4. OAuth トークン取得

  • OAuth & Permissions ページで「Install App to Workspace」をクリックし、許可を承認すると Bot User OAuth Token (xoxb‑…) が発行されます。

重要: 発行されたトークンは機密情報です。後述のシークレットストアへ格納してください。


OpenClaw 設定ファイルとシークレット管理

1. 基本設定ファイル例

claw.yaml(アプリ側で読み込む YAML)

.env(Docker 用環境変数ファイル)

注意: .env必ず Git の管理対象外 にしてください。
bash
echo ".env" >> .gitignore

2. シークレットストアへの移行手順(Vault を例に)

  1. Vault サーバーのセットアップ(省略) → VAULT_ADDRVAULT_TOKEN が環境変数で取得できる状態にする。
  2. シークレットを書き込む

bash
vault kv put secret/openclaw \
slack_bot_token="xoxb-xxxxxxxxxxxx-xxxxxxxxxxxxx" \
slack_app_token="xapp-1-XXXXXXXXXXXXXXXXXXXX" \
openai_api_key="sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

  1. Docker Compose 起動時に Vault から注入

docker-compose.yml に以下のような「外部シークレット」ブロックを追加します(Docker Engine 20.10+ が必要)。

yaml
services:
openclaw:
image: ghcr.io/openclaw/ai-assistant:latest
environment:
- VAULT_ADDR=${VAULT_ADDR}
- VAULT_TOKEN=${VAULT_TOKEN}
secrets:
- slack_bot_token
- slack_app_token
- openai_api_key

secrets:
slack_bot_token:
external: true
slack_app_token:
external: true
openai_api_key:
external: true

  1. コンテナ起動スクリプトentrypoint.sh の例)

bash
#!/usr/bin/env bash
set -euo pipefail

# Vault からシークレット取得 → .env に書き出し
vault kv get -format=json secret/openclaw | jq -r '
to_entries[] |
"(.key)=(.value)"' > /app/.env

exec "$@"

  1. CI/CD パイプラインで自動ローテーション
  2. GitHub Actions の schedule イベントで 90 日ごとに新しいトークンを生成(Slack API の「Rotate Tokens」機能)し、Vault に上書き。
  3. デプロイ時にコンテナが最新シークレットを取得するだけなので、ダウンタイムは最小限です。

Docker Compose / systemd でのデプロイ方法

1. Docker Compose 設定(推奨)

デプロイ手順

2. systemd ユニット(サーバー再起動時の自動復旧)

デプロイ手順


接続テストとトラブルシューティング

1. Slack API 直接呼び出しテスト

期待されるレスポンス(抜粋)

2. よくあるエラーと対処法

エラーメッセージ カテゴリ 主な原因 修正手順
invalid_auth トークン Token が間違う、またはスコープ不足 Bot/App Token を再確認。Scope に chat:write 等が無い場合は追加し再インストール
missing_scope スコープ 必要な Scope が未付与 OAuth & Permissions → 必要スコープを追加 → 再インストール
url_verification_failed URL Verification(Event API) Socket Mode 未使用時にエンドポイントが不正 Socket Mode に切り替えるか、 /slack/eventschallenge を返すか確認
socket_mode_connection_timeout ネットワーク App Level Token 無効、または outbound WebSocket が遮断 Vault で新しい App Level Token を生成 → .env / Vault に更新
channel_not_found チャンネル ID 誤り、Bot が未参加 正しい Channel ID を取得し、/invite @OpenClaw で招待

ログの確認方法

  • Docker コンテナdocker logs -f openclaw
  • systemd サービスjournalctl -u openclaw -f

エラーログは JSON 形式が基本です。例:

error_codeerror_message を検索キーにすると、公式ドキュメントの該当ページへすぐたどり着けます。


運用ベストプラクティス

1. シークレット管理(Vault / AWS Secrets Manager 等)

手法 メリット 実装ポイント
HashiCorp Vault 高度な ACL、動的クレデンシャル、監査ログ docker composesecrets: 機能か、エントリポイントで vault kv get して .env を生成
AWS Secrets Manager IAM による細粒度アクセス制御、リージョン冗長性 コンテナ起動時に AWS SDK (boto3) で取得し環境変数注入
GCP Secret Manager Cloud Run / GKE と統合が簡単 gcloud secrets versions access latest/app/.env に書き込み

自動ローテーション例(GitHub Actions)

2. ロギング

  • JSON 出力(標準出力) → Docker のロギングドライバでそのまま集約
  • logrotate によるローカルログのローテーション(systemd ジャーナルは自動管理)

3. 監視とメトリクス

メトリクス 意味 推奨ツール
openclaw_socket_connected (gauge) Socket Mode の接続状態(1=connected,0=disconnected) Prometheus + Grafana
openclaw_api_error_total (counter) Slack API エラー総数 Prometheus
openclaw_messages_sent_total (counter) 送信メッセージ件数 Prometheus
openclaw_cpu_seconds_total / memory_bytes コンテナリソース使用量 cAdvisor + Prometheus

アラート例(Prometheus Alertmanager)


Prometheus Exporter 実装例

以下は OpenClaw 本体に組み込む ことを想定した、エラーハンドリングと詳細メトリクスを備えたサンプルです。

重要ポイント

項目 内容
エラーハンドリング HTTP エラー・Slack の ok=false を両方捕捉し、openclaw_api_error_total にタグ付与。
メトリクス粒度 channel ラベルで送信件数をチャネル別に集計、error_code/endpoint で失敗原因を可視化。
処理時間測定 REQUEST_DURATION により API 呼び出し latency を取得し、スローレスポンスの検知が可能。
Socket 接続状態 実装例は簡易的だが、実際には slack_sdk.socket_mode.SocketModeClient のコールバックで SOCKET_CONNECTED を更新すべき。
エクスポートポート デフォルト 9090(Prometheus が標準でスクレイプ)。ファイアウォールが外部からのアクセスを許可しないよう、内部ネットワークだけに限定。

この exporter を OpenClaw のコンテナに同梱すれば、メトリクス取得 → アラート設定 → 障害対応 が一連のフローで実現できます。


まとめ

  1. 前提条件は最低要件と推奨環境を明確に分け、表で比較しました。
  2. Docker のインストールは公式リポジトリから取得する手順に変更し、バージョンの最新性を保証。
  3. Slack アプリ作成では不透明な外部参照(note/komee.org)を削除し、公式ドキュメントへのリンクのみ残しました。
  4. シークレット管理.env だけでなく Vault/AWS Secrets Manager 等の実装例と CI/CD での自動ローテーション手順を追加。
  5. Prometheus Exporterはエラーハンドリング・詳細メトリクスを備えた実装例に刷新し、運用時の可観測性を向上させました。
  6. 文字数・誤字・表記揺れはすべて修正し、全体で 約 3,200 文字(日本語)となっています。

これらの手順に沿って環境構築・テスト・運用を行えば、OpenClaw と Slack の安全かつ高可用性な連携が実現できます。


スポンサードリンク

お得なお知らせ

スポンサードリンク
タイプ別にすぐ選べる

AIエージェント開発、どこから始める?

MCP・Claude・LangGraph…進化が速い領域こそ「体系学習 or 1冊集中」のどちらかを選ぶのが近道です。

▷ プロ講師から体系的に学んで"仕事で使えるAIエンジニア"になりたい人

DMM 生成AI CAMP 学び放題|無料セミナー有り▶

▷ 独学派で、まず1冊を読み込んで手を動かしたいエンジニア

【kindle本】Claude CodeによるAI駆動開発入門 ▶

※スクールは説明会のみでもOK。書籍は紙・電子どちらでも

▶ 実装リファレンスには 【kindle本】実践Claude Code入門が便利です。


-OpenClaw