Contents
1. OpenClaw とは
OpenClaw は Claude(Anthropic) と ChatGPT(OpenAI) をはじめとした大規模言語モデル(LLM)をバックエンドに持ち、
「チャットで指示 → タスク自動実行」のフローを提供するオープンソースのパーソナル AI アシスタントです。
- テキスト生成・要約・コード補完 はもちろん、
- 外部 API 呼び出し、ファイル操作、メッセージングプラットフォームへの投稿 までを単一コマンドで実行できます。
公式リポジトリは GitHub(github.com/openclaw/cli)にあり、MIT ライセンスで公開されています。
2. 対応プラットフォームと利用条件
| プラットフォーム | 主な活用例 | 必要な前提条件・制限 |
|---|---|---|
| 顧客問い合わせの自動要約 & Slack への転送 | Business API アカウントが必要。メッセージ受信は Webhook 経由で実装 | |
| Telegram | コマンド駆動型レポート生成・配布 | BotFather にて Bot 作成 → Token 発行。Bot API の利用上限(30 req/s)に注意 |
| Discord | ビルドステータス通知、開発情報共有 | Developer Portal でアプリ作成 → Bot Token 必要。サーバー側のロール設定が必要 |
| Slack (Incoming Webhook) | アラート・要約メッセージの一方向配信 | ワークスペースに「Incoming Webhooks」インストール。Webhook URL は機密情報として管理 |
| LINE(実験的) | 簡易自動応答ボット | 非公式プラグイン使用時はサポート外。商用利用は LINE Business ID が必要 |
備考
- すべてのプラットフォームで「環境変数またはシークレットマネージャにトークンを格納」することが必須です。
- 無料枠の API 制限(例:Telegram の 30 req/s)を超えるとレートリミットエラーが発生します。
3. インストール方法
推奨インストール手順
| 方法 | コマンド | 主なメリット | 注意点 |
|---|---|---|---|
| Docker (最もシンプル) | docker pull ghcr.io/openclaw/openclaw:latestdocker run -d --name=openclaw -p 8000:8000 -v $(pwd)/.env:/app/.env ghcr.io/openclaw/openclaw:latest |
依存関係がすべてコンテナに同梱。OS に依存しない | コンテナの永続化(ログ・設定)はボリュームマウントで確保 |
| Homebrew (macOS) | brew tap openclaw/homebrew-tapbrew install openclaw |
macOS のパッケージ管理に統合でき、アップデートが容易 | Linux/Windows では利用不可 |
| バイナリ(Linux / macOS) | bash<br>wget https://github.com/openclaw/cli/releases/download/v1.5.0/openclaw-linux-amd64.tar.gz<br>tar -xzf openclaw-linux-amd64.tar.gz<br>chmod +x openclaw |
軽量、Docker 不要。CI 環境でも簡単に配置可能 | Python ランタイムが必要なプラグインは別途 pip install が必要 |
| ソースビルド | bash<br>git clone https://github.com/openclaw/cli.git<br>cd cli<br>python3.11 -m venv .venv<br>source .venv/bin/activate<br>pip install -r requirements.txt<br>pip install -e . |
最新コミットを利用でき、開発者向けにカスタマイズが可能 | ビルド手順が長く、依存パッケージのバージョン管理が必要 |
必要なシステム要件
| 項目 | 最低条件 | 推奨 |
|---|---|---|
| OS | Linux, macOS, Windows (WSL2) | Ubuntu 22.04 LTS / macOS Ventura |
| CPU | x86_64 (AMD64) | 4 コア以上、AVX2 サポート |
| メモリ | 2 GB | 8 GB 以上(同時マルチチャット推奨) |
| Python | 3.10+ (バイナリ・ソースビルド時) | 3.11 (最新の pip と setuptools) |
| Docker | Engine 20.10+(Docker 利用時) | Compose Plugin 2.0+ |
パッケージ依存例(
requirements.txtの抜粋)
text
anthropic==0.4.3
openai==1.12.0
python-dotenv==1.0.1
requests==2.32.2
pyyaml==6.0.2
4. 初回起動と基本設定
環境変数の準備
|
1 2 3 4 5 6 7 |
# .env (プロジェクトルートに配置、必ず .gitignore に追加) ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx OPENAI_API_KEY=sk-openai-xxxxxxxxxxxx SLACK_WEBHOOK_URL=https://hooks.slack.com/services/AAA/BBB/CCC TELEGRAM_BOT_TOKEN=123456:ABCDEF... DISCORD_BOT_TOKEN=MzI1... # 省略可 |
公式ドキュメントは GitHub の
docs/ディレクトリに Markdown 形式で提供されています。
(例:docs/configuration.md)
config.yaml の最小構成
|
1 2 3 4 5 6 7 8 9 10 11 12 |
model: provider: anthropic # "anthropic" または "openai" name: claude-3-sonnet # デフォルトモデル名 log_level: INFO platforms: telegram: enabled: true token: ${TELEGRAM_BOT_TOKEN} discord: enabled: false |
起動コマンド
|
1 2 3 4 5 6 7 8 9 |
# Docker コンテナの場合(.env をマウント) docker run -d --name=openclaw \ -p 8000:8000 \ -v $(pwd)/.env:/app/.env \ ghcr.io/openclaw/openclaw:latest # バイナリ・ソースビルドの場合 openclaw run "Hello OpenClaw" |
起動直後に
Hello OpenClawと入力すると、LLM が「Hello! I'm OpenClaw...」と応答し、設定が正しく反映されていることを確認できます。
5. 代表的な自動化シナリオ
5‑1. メール要約 → Slack 通知
フロー概要
- IMAP で未読メールを取得
- 本文を Claude に送信し 200 文字以内に要約
- 要約結果を Slack Incoming Webhook に POST
必要パッケージとバージョン
|
1 2 |
pip install "anthropic==0.4.3" "requests==2.32.2" |
完全サンプルスクリプト email_to_slack.py
|
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 46 |
import os, imaplib, email, requests from anthropic import Anthropic # ----- 環境変数 ---------- IMAP_HOST = os.getenv("IMAP_HOST") IMAP_USER = os.getenv("IMAP_USER") IMAP_PASS = os.getenv("IMAP_PASS") SLACK_URL = os.getenv("SLACK_WEBHOOK_URL") ANTHROPIC_KEY = os.getenv("ANTHROPIC_API_KEY") client = Anthropic(api_key=ANTHROPIC_KEY) def fetch_unread(): with imaplib.IMAP4_SSL(IMAP_HOST) as m: m.login(IMAP_USER, IMAP_PASS) m.select("INBOX") typ, data = m.search(None, 'UNSEEN') ids = data[0].split() bodies = [] for num in ids: _, msg_data = m.fetch(num, '(RFC822)') msg = email.message_from_bytes(msg_data[0][1]) if msg.is_multipart(): part = next(p for p in msg.get_payload() if p.get_content_type() == "text/plain") bodies.append(part.get_payload(decode=True).decode()) else: bodies.append(msg.get_payload(decode=True).decode()) return bodies def summarize(text): resp = client.completions.create( model="claude-3-sonnet", prompt=f"以下のメールを200文字以内で要点だけまとめてください。\n\n{text}", max_tokens=300, ) return resp.completion.strip() def post_to_slack(summary): payload = {"text": f"*新着メール要約*\n{summary}"} requests.post(SLACK_URL, json=payload) if __name__ == "__main__": for body in fetch_unread(): summary = summarize(body) post_to_slack(summary) |
実行例
|
1 2 3 |
$ python email_to_slack.py # → Slack に要約メッセージが自動投稿されます |
5‑2. Google カレンダー予約自動化
前提条件
- Google Cloud Consoleで「Calendar API」を有効化
- サービスアカウント JSON(
service-account.json)を取得し、プロジェクトに配置
必要パッケージ
|
1 2 |
pip install "google-auth==2.30.0" "google-api-python-client==2.135.0" "anthropic==0.4.3" |
完全サンプルスクリプト schedule_meeting.py
|
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 |
import os, datetime from google.oauth2 import service_account from googleapiclient.discovery import build from anthropic import Anthropic SCOPES = ["https://www.googleapis.com/auth/calendar"] SERVICE_ACCOUNT_FILE = "service-account.json" def create_event(summary: str, start_iso: str, end_iso: str) -> str: creds = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=SCOPES ) service = build("calendar", "v3", credentials=creds) event = { "summary": summary, "start": {"dateTime": start_iso, "timeZone": "Asia/Tokyo"}, "end": {"dateTime": end_iso, "timeZone": "Asia/Tokyo"}, } created = service.events().insert(calendarId="primary", body=event).execute() return created.get("htmlLink") def ask_claude(prompt: str) -> str: client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) resp = client.completions.create( model="claude-3-sonnet", prompt=prompt, max_tokens=200, ) return resp.completion.strip() if __name__ == "__main__": # ユーザーからの自然言語リクエスト例 user_req = "来週月曜13時にプロジェクト会議を30分で作って" prompt = ( f"以下の日本語依頼を ISO8601 形式の開始・終了日時とタイトルだけに変換してください。\n\n{user_req}" ) result = ask_claude(prompt) # Claude の出力例: "2026-05-06T13:00:00+09:00,2026-05-06T13:30:00+09:00,プロジェクト会議" start_iso, end_iso, title = [s.strip() for s in result.split(",")] link = create_event(title, start_iso, end_iso) print(f"✅ 予約完了: {link}") |
実行例
|
1 2 3 |
$ python schedule_meeting.py ✅ 予約完了: https://calendar.google.com/event?... |
6. セキュリティ・運用ベストプラクティス
| 項目 | 推奨手段 | 実装例 |
|---|---|---|
| シークレット管理 | .env + .gitignore、もしくはクラウドシークレットマネージャ(AWS Secrets Manager・GCP Secret Manager) |
export ANTHROPIC_API_KEY=$(aws secretsmanager get-secret-value --secret-id AnthropicKey --query SecretString --output text) |
| ログ保持期間 | 30 日以上のログは自動削除。機密情報が残らないようにする | cron<br>0 2 * * * find /opt/openclaw/logs -type f -mtime +30 -delete |
| ネットワーク制限 | 必要最小限のアウトバウンド先(Anthropic、OpenAI、各プラットフォーム)に限定。ファイアウォールで IP ホワイトリスト化推奨 | iptables -A OUTPUT -p tcp -d api.anthropic.com -j ACCEPT |
| コンテナの最小権限 | --user 1000:1000 オプションで非 root ユーザー実行 |
docker run -d --name=openclaw --user 1000:1000 ... |
| 定期的な依存更新 | Dependabot(GitHub)や Renovate Bot を導入し、脆弱性パッケージを自動でプルリクエスト化 | .github/dependabot.yml 設定例あり |
7. トラブルシューティング & コミュニティ支援
よくあるエラーと対処法
| エラー | 原因 | 解決策 |
|---|---|---|
Docker container exits with code 1 |
必須環境変数未設定、ポート競合 | docker logs <container> を確認し、.env をマウントまたは -p 8000:8000 が空いているかチェック |
AuthenticationError: Invalid API key |
キータイプミス・期限切れ | 新しいキーを生成し、環境変数に再設定。echo $ANTHROPIC_API_KEY で内容確認 |
Webhook verification failed (Telegram) |
Token 誤りまたは IP 制限 | BotFather から新トークン取得、サーバーが外部から到達可能か(ファイアウォール・VPN 設定)を検証 |
googleapiclient.errors.HttpError: 403 |
カレンダー API の権限不足 | サービスアカウントに「Calendar > 編集」ロール付与、JSON キーが正しいか確認 |
コミュニティと公式サポート
| チャネル | URL | 主な利用目的 |
|---|---|---|
| Discord(公式) | https://discord.gg/openclaw | リアルタイム質問、月例勉強会、プラグイン開発情報 |
| GitHub Discussions | https://github.com/openclaw/cli/discussions | Issue ではない相談、ベストプラクティス共有 |
| Slack Community (招待制) | Discord 内の #invite チャンネルで取得可能 |
エンタープライズ向けユースケースや SSO 設定 |
| GitHub Issues | https://github.com/openclaw/cli/issues | バグ報告、機能要望(公式エンジニアが直接対応) |
8. 参考情報と今後の展望
公式リソース
| 資料 | URL |
|---|---|
| README & Quick Start | https://github.com/openclaw/cli#readme |
| 設定ガイド(YAML) | https://github.com/openclaw/cli/blob/main/docs/configuration.md |
| プラグイン開発ドキュメント | https://github.com/openclaw/cli/tree/main/plugins |
| リリースノート | https://github.com/openclaw/cli/releases |
今後の方向性(公式情報に基づく)
- v1.6(予定 2026‑09)
- プラグインマーケットプレイスの正式リリース
-
Web UI にドラッグ&ドロップでフローを組めるビジュアルエディタ搭載
-
長期ロードマップは GitHub の
ROADMAP.md(2026‑04 更新)に掲載。
※「v2.0(2026‑12)」といった具体的なリリース日は、公式から正式発表があるまで確定情報ではありません。
おわりに
OpenClaw は LLM と外部サービスを橋渡しすることで、プログラミング不要の自動化を実現します。本稿で紹介したインストール手順・サンプルシナリオ・運用ベストプラクティスを参考に、まずは「Hello OpenClaw」から試してみてください。
次のステップ
1..envとconfig.yamlを自組織向けにカスタマイズ
2. 好きなチャットプラットフォームで Bot を作成し、サンプルスクリプトをデプロイ
3. プラグインマーケットプレイスが公開されたら、社内の業務フローに合わせた拡張機能を追加
質問や不具合は 公式 Discord または GitHub Discussions で気軽に共有してください。Happy automating!