Clawdbotからの移行
ClawdbotはOpenClawにリブランドされました。このガイドでは、既存のClawdbot環境からOpenClawへの移行手順、設定の変更点、よくあるトラブルとその対処法を解説します。
移行の概要
2026年2月のリリースで、パッケージ名・コマンド名・設定ファイルのパスがすべて変更されました。
| 項目 | 旧(Clawdbot) | 新(OpenClaw) |
|---|---|---|
| パッケージ名 | clawdbot | openclaw |
| CLI コマンド | clawdbot | openclaw |
| 設定ファイル | ~/.clawdbot/clawdbot.json | ~/.openclaw/openclaw.json |
| セッションデータ | ~/.clawdbot/agents/ | ~/.openclaw/agents/ |
| ドキュメント | https://docs.clawd.bot/ | https://docs.openclaw.ai/ |
clawdbot はアップデート後も残る場合がありますが、新コマンド openclaw を使用してください。事前準備
バックアップ
移行前に設定ファイルとカスタムスクリプトをバックアップします:
cp -r ~/.clawdbot/ ~/.clawdbot.bak/
ls ~/.clawdbot/scripts/
ls ~/.clawdbot/telegram-error-handler.jsセキュリティ上の注意: バックアップには以下の機密情報が含まれます:
- API キー(Anthropic、OpenAI等)
- OAuth トークン(Telegram、Discord等)
- デバイス認証情報
バックアップファイルは適切に保護し、クラウドストレージへのアップロードやバージョン管理システムへのコミットは避けてください。
state ディレクトリの構造
OpenClawは ~/.openclaw/ ディレクトリ(state directory)にすべての設定・認証情報・セッションデータを保存します:
~/.openclaw/
├── openclaw.json # メイン設定ファイル
├── credentials/ # API キー、OAuth トークンなど
│ ├── anthropic.json
│ ├── telegram.json
│ └── ...
├── agents/ # エージェントのセッションデータ
│ └── main/
│ ├── sessions/ # JSONL形式のセッション履歴
│ ├── memory/ # エージェントの長期記憶
│ └── ...
├── devices/ # デバイス認証情報
│ ├── pending.json
│ └── approved.json
└── plugins/ # プラグイン設定・データ主要ファイル・ディレクトリの役割:
openclaw.json: Gateway設定、モデル選択、プロファイル設定credentials/: 各サービスのAPI キー・トークンを保存agents/main/sessions/: 会話履歴をJSONL形式で保存devices/: デバイス認証(ペアリング)の情報
プロファイル管理
OpenClawは複数のプロファイルをサポートしており、設定を切り替えることができます:
プロファイルの使い分け:
openclaw gateway
openclaw --profile work gateway
openclaw --profile dev gatewaystate ディレクトリの変更:
export OPENCLAW_STATE_DIR=/custom/path/to/state
openclaw gatewayプロファイルごとに独立した設定・セッション・認証情報を持つため、用途別(開発用・本番用など)に環境を分離できます。
アップデート手順
Step 1: パッケージの更新
npm install -g openclaw@latestStep 2: 設定の移行と修復
OpenClawは初回起動時に旧設定の一部を自動移行しますが、一部のフィールドは手動修正が必要な場合があります。
openclaw doctor --fixopenclaw doctor の機能:
- 設定ファイルのスキーマ検証
- 非互換フィールドの自動修正
- 認証情報の整合性チェック
- セッションデータの破損検出
- ファイルパーミッションの確認
- 必要なディレクトリの作成
--fix オプションを付けると、検出された問題を自動的に修正します。
Step 3: デバイスの再ペアリング
OpenClaw 2026.2.x ではデバイス認証が厳格化されました。初回アクセス時にペアリング承認が必要です。
openclaw devices list
openclaw devices approve <request-id>Step 4: 動作確認
openclaw doctor
openclaw gateway --port 18789ブラウザで http://localhost:18789/ にアクセスし、Control UIが表示されれば成功です。
トラブルシューティング
Config Invalid: gateway.auth.mode
症状: Gateway起動直後に以下のエラーが出て再起動ループに陥る:
Invalid config at /root/.openclaw/openclaw.json:
- gateway.auth.mode: Invalid input原因: 旧Clawdbotの設定ファイルの gateway.auth.mode フィールドがOpenClawと互換性がありません。
解決方法:
systemdやsupervisor等の自動再起動サービスを使用している場合は、まずサービスを停止してから修復作業を行ってください:
sudo systemctl stop openclaw-gateway
sudo supervisorctl stop openclaw-gateway
openclaw doctor --fix
cat ~/.openclaw/openclaw.json | jq '.gateway.auth'手動で起動している場合は Ctrl+C で停止してから修復作業を行ってください。
disconnected (1008): device identity required
症状: Gatewayは起動するが、ブラウザでControl UIを開くとWebSocket接続が切断される。
原因: デバイス認証(ペアリング)が未完了、または認証情報の不一致。
解決方法:
1. ペアリング承認(最も多いパターン):
openclaw devices list
openclaw devices approve <request-id>2. アクセスURLの確認:
http://localhost:18789またはhttp://127.0.0.1:18789でアクセス- リモートアクセスの場合は必ずHTTPSを使用
3. トークンの確認:
jq -r '.gateway.auth.token' ~/.openclaw/openclaw.json4. キャッシュクリア:
旧Clawdbot時代のブラウザキャッシュが干渉している可能性があります:
google-chrome --user-data-dir=/tmp/openclaw-chrome専用プロファイルを使うことで、旧Clawdbotの認証情報やキャッシュの影響を完全に排除できます。
5. 強制リセット(最終手段):
cp -r ~/.openclaw/devices/ ~/.openclaw/devices.bak/
rm ~/.openclaw/devices/pending.jsonTelegram クラッシュ再起動ループ
症状: Gateway起動直後にクラッシュし、exit code 1で終了。Telegram関連のエラーがログに出力される。
原因: Telegramプロバイダの初期化時のネットワークエラーが未ハンドルの Promise rejection を引き起こします。
解決方法: エラーハンドラを導入します。
~/.openclaw/scripts/telegram-error-handler.js を作成:
// telegram-error-handler.js
// Catches unhandled promise rejections from Telegram provider
// to prevent process crash on network failures
const STARTUP_GRACE_MS = 30000;
const startTime = Date.now();
process.on('unhandledRejection', (reason, promise) => {
const elapsed = Date.now() - startTime;
const isTelegram = reason && (
String(reason).includes('telegram') ||
String(reason).includes('setMyCommands') ||
String(reason).includes('GrammyError') ||
String(reason).includes('bot.api')
);
if (isTelegram || elapsed < STARTUP_GRACE_MS) {
console.error(
`[telegram-error-handler] Caught rejection (${elapsed}ms after start):`,
reason
);
return;
}
console.error('[telegram-error-handler] Non-Telegram unhandled rejection:', reason);
process.exit(1);
});
console.log(
`[telegram-error-handler] Error handler loaded successfully (${STARTUP_GRACE_MS / 1000}s startup grace period)`
);起動時に読み込む:
export NODE_OPTIONS="--require $HOME/.openclaw/scripts/telegram-error-handler.js"
openclaw gatewayChat タブのフリーズ
症状: Control UIのChatタブを開くとブラウザがフリーズする、または極端に遅くなる。
原因: セッションのJSONLファイルに200KBを超える巨大なメッセージが含まれていると、UIのレンダリングが追いつきません。
解決方法: セッションガードスクリプトで巨大なセッションを事前にアーカイブします。
~/.openclaw/scripts/session-guard.sh を作成:
#!/bin/bash
SESSIONS_DIR="${HOME}/.openclaw/agents/main/sessions"
MAX_LINE_BYTES=204800 # 200KB
if [ ! -d "$SESSIONS_DIR" ]; then
echo "[session-guard] Sessions directory not found: $SESSIONS_DIR"
exit 1
fi
archived=0
for jsonl in "$SESSIONS_DIR"/*.jsonl; do
[ -f "$jsonl" ] || continue
filename=$(basename "$jsonl")
max_line=$(awk '{ if (length > max) max = length } END { print max+0 }' "$jsonl")
if [ "$max_line" -gt "$MAX_LINE_BYTES" ]; then
size_kb=$((max_line / 1024))
mv "$jsonl" "${jsonl}.bak"
echo "[session-guard] Archived: $filename (largest message: ${size_kb}KB)"
archived=$((archived + 1))
fi
done
if [ "$archived" -eq 0 ]; then
echo "[session-guard] All sessions OK"
fi実行権限を付与:
chmod +x ~/.openclaw/scripts/session-guard.shGateway起動前に実行:
~/.openclaw/scripts/session-guard.sh
openclaw gatewayOpus 4.6 モデルが選択できない
症状: モデル一覧に claude-opus-4-6 が表示されない。
原因: OpenClawのモデル定義ファイルに該当モデルが含まれていません。
解決方法: models.generated.js にモデル定義を追加するパッチスクリプトを作成します。
#!/bin/bash
MODELS_FILE=$(find ~/.nvm/versions/node/ -path '*/openclaw/dist/*models.generated.js' 2>/dev/null | head -1)
if [ -z "$MODELS_FILE" ]; then
echo "[patch-opus46] models.generated.js not found"
exit 1
fi
if grep -q 'claude-opus-4-6' "$MODELS_FILE"; then
echo "[patch-opus46] Already patched"
exit 0
fi
echo "[patch-opus46] Patching $MODELS_FILE..."
echo "[patch-opus46] Done"npm update -g openclaw を実行するたびに models.generated.js は上書きされます。起動スクリプトでパッチを毎回自動適用するようにしてください。起動スクリプトの更新
Windows + WSL2 環境
Windows側ランチャー(OpenClaw起動.bat):
@echo off
title OpenClaw Gateway Launcher
echo OpenClaw Gateway Launcher
echo.
REM --- 既存プロセスの停止 ---
wsl -u root bash -c "pkill -f 'node.*[o]penclaw' 2>/dev/null"
wsl -u root bash -c "rm -f /tmp/openclaw/.gateway.lock 2>/dev/null"
timeout /t 2 /nobreak >nul
REM --- Gateway をバックグラウンドで起動 ---
start /b wsl -u root bash -c "nohup openclaw gateway --port 18789 > /tmp/openclaw-gateway.log 2>&1 &"
REM --- ポート待機 ---
echo Waiting for gateway to start on port 18789...
:wait_loop
timeout /t 3 /nobreak >nul
wsl -u root bash -c "curl -s -o /dev/null -w '%%{http_code}' http://127.0.0.1:18789/" | findstr "200 302" >nul
if %errorlevel%==0 goto :ready
goto :wait_loop
:ready
echo Gateway is ready!
start "" "http://localhost:18789/"Linux/macOS 環境
起動スクリプト(start-openclaw.sh):
#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm use 22
export NODE_OPTIONS="--require $HOME/.openclaw/scripts/telegram-error-handler.js"
~/.openclaw/scripts/session-guard.sh
openclaw gateway --port 18789移行後のチェックリスト
-
openclaw doctorがエラーなしで通る -
openclaw gatewayでGatewayが起動する - ブラウザでControl UIにアクセスできる
- デバイスペアリングが承認済み(1008エラーが出ない)
- Chatタブでメッセージの送受信ができる
- 使用したいモデルが選択できる
- Telegramボットが応答する(使用している場合)
よくある質問
旧 ~/.clawdbot/ ディレクトリは削除してよい?
カスタムスクリプトをまだ参照している場合は残してください。すべてのスクリプトを ~/.openclaw/scripts/ に移動し、起動スクリプトのパスを変更すれば削除可能です。
npm update するたびにパッチが消える?
はい。models.generated.js はnpmパッケージの一部なので、アップデートで上書きされます。起動スクリプトで毎回パッチを自動適用する仕組みにしてください。
Telegramボットの名前が旧名のままだが問題ない?
Telegram側のボット名はBotFatherで変更しない限りそのままです。機能的には問題ありません。変更したい場合はTelegramのBotFatherで /setname コマンドを使用してください。