2026年8月31日にリリースされた OpenClaw 2.0 を、MacBook Air に入れました。
結論から言うと動きました。ただし公式の「5分で終わる」という案内どおりにはいかず、3か所で詰まりました。どれもドキュメントに書かれていない類のもので、同じところで止まる人がいるはずなので記録を残します。
環境は macOS(Darwin 24.6.0)、Node は nvm 管理です。
OpenClaw 2.0 とは何か
ざっくり言うと、自分のマシンで常駐して勝手に動くAIエージェントの基盤です。
ChatGPTやClaudeが「相手のサーバーにいる相談相手」だとすると、OpenClawは手元に住んでいて、自分のファイルやツールに触れる。DiscordやSlackから話しかけて作業させられます。
2.0は933人が16,000超のPRを投げた全面刷新で、インストール・メモリ・スキル・自動化がほぼ作り直されています。目玉は導入のハードルを下げたことで、マシンにある既存のログイン情報を検出して使う方式になりました。
実際、私はAPIキーを1つも発行していません。ChatGPTアカウントのデバイス認証だけで8モデルが使える状態になりました。
詰まり① Node のバージョン要件
まずこれです。
npm install -g openclaw@latest --allow-scripts=openclaw
公式の手順どおりですが、私の環境(Node v22.17.0)では要件を満たしていませんでした。
OpenClaw 2.0 の要件はこうです。
| 推奨 | Node 26 |
|---|---|
| 最低 | Node 22.22.3 以上 / 24.15+ / 25.9+ |
v22.17.0 は22系ですが、22.22.3 より古い。ここが罠で、「22系だから大丈夫だろう」と思うと引っかかります。
さらに厄介だったこと
nvm で新しい Node を入れようとしたら、こう言われました。
Your user's .npmrc file (${HOME}/.npmrc)
has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.
~/.npmrc に prefix=~/.npm-global が書いてあると、nvm はバージョンを切り替えてくれません。
ここで prefix を消すのが一般的な対処ですが、既に ~/.npm-global にグローバルインストールしてあるツールが全部巻き添えになります。私の場合、Claude Code や Codex がそこに入っていました。
壊さずに済ませた方法
新しい Node の配下にだけ隔離してインストールしました。
export NVM_DIR="$HOME/.nvm"
source "$NVM_DIR/nvm.sh"
nvm install 22 # → v22.23.2 が入る
NEW="$NVM_DIR/versions/node/v22.23.2"
npm_config_prefix="$NEW" "$NEW/bin/npm" install -g openclaw@latest --allow-scripts=openclaw
これで openclaw は新Node配下に入り、既存のグローバルツールには一切触れません。
呼び出し用のラッパーを作っておくと以降が楽です。
cat > ~/oc.sh <<'EOF'
#!/bin/bash
export PATH="$HOME/.nvm/versions/node/v22.23.2/bin:$PATH"
exec openclaw "$@"
EOF
chmod +x ~/oc.sh
以降は ~/oc.sh agent -m "..." のように使えます。
詰まり② プラグインの権限承認を断ると、何も動かなくなる
セットアップウィザードの途中で、こういう確認が出ます。
Plugin capabilities require approval: Codex (codex)
Tools: codex_session_send, codex_sessions_list, codex_threads ...
Prompt injection: allowed
Conversation access: denied
Accept these capabilities for "codex"?
ここで No を選ぶと、モデルを動かすランタイムごと入りません。
Install failed: Codex
Runtime unavailable: Codex runtime is required but unavailable
慎重に断るのは正しい姿勢ですが、Codexをモデルとして使うならこのプラグインは必須です。断った場合は後から入れ直せます。
~/oc.sh plugins install codex --accept-capabilities
Prompt injection: allowed の意味
ここは理解しておいた方がいいです。
このプラグインはWeb検索も担当します。つまり取ってきたWebページのテキストが、そのままモデルへの入力に混ざる。悪意のあるページに「これまでの指示を無視して〜」と書いてあれば、エージェントがそれを読みます。
一方 Conversation access: denied になっているのは良い設計で、会話履歴そのものにはアクセスできません。
Webを巡回させる用途を考えているなら、サンドボックス(openclaw sandbox)と承認機能(openclaw approvals)を併用すべきです。「常時許可」を安易に付けないこと。
詰まり③ Gateway の二重起動と、古い設定ファイルの呪い
Gateway(本体プロセス)を起動しようとしたら、静かに失敗していました。ログを見て初めて分かりました。
Another gateway (pid 13223) already owns this state directory;
refusing to run automatic startup migrations or report the gateway ready.
古いプロセスが状態ディレクトリを掴んだままだと、新しい方が起動を拒否します。pkill では死に残ることがあるので、確認してから kill -9 しました。
pkill -f "openclaw" ; sleep 3
pgrep -f openclaw | xargs kill -9 2>/dev/null
そして循環
さらにこれが出ました。
Legacy exec approvals exist at ~/.openclaw/exec-approvals.json.
Run `openclaw doctor --fix` before using exec approvals.
言われたとおり doctor --fix を実行すると——同じメッセージで止まります。修復コマンド自身が、修復対象を理由に動かない。
中身を見たら、旧名称 .clawdbot 時代の残骸でした。
{
"agents": {},
"socket": { "path": "/Users/funa/.clawdbot/exec-approvals.sock", ... }
}
agents は空。存在しないパスを指したソケット設定だけが残っている状態です。退避したら通りました。
mv ~/.openclaw/exec-approvals.json ~/.openclaw/exec-approvals.json.bak
rm -f ~/.openclaw/exec-approvals.sock
~/oc.sh doctor --fix
おまけ:ワークスペースが消えた
セットアップ後、こんなエラーが出ました。
OpenClaw workspace appears to have disappeared after a recent initialization
OpenClawは初期化時にワークスペースの状態をSQLiteに記録していて、AGENTS.md などが消えていると異常と判断して再生成を拒否します。安全側に倒れた設計なので、これ自体は正しい挙動です。
私の場合は別の作業で空フォルダを掃除してしまったのが原因でした。記録側をクリアして作り直しました。
# Gateway を止めてから
python3 - <<'PY'
import sqlite3
c = sqlite3.connect('/Users/funa/.openclaw/state/openclaw.sqlite')
for t in ('workspace_setup_state','workspace_path_aliases','workspace_generated_bootstrap_hashes'):
c.execute(f'delete from "{t}"')
c.commit()
PY
再起動したら AGENTS.md SOUL.md IDENTITY.md BOOTSTRAP.md が生成され、Gitリポジトリとして初期化されました。
動いたあと
ここまで来ると素直に動きます。
$ ~/oc.sh agent -m "使っているモデル名とワークスペースのパスを教えて"
モデル名:GPT-5
ワークスペース:/Users/funa/openclaw-workspace
Discordも繋がりました。ただしチャネルは別途プラグインを入れる必要があります。設定を書いただけでは「no configured chat channels」のままです。
~/oc.sh plugins install discord --accept-capabilities
使ってみて分かった、2.0の本質
導入の話ばかりしましたが、2.0で本当に効いているのは自律で動く仕組みが一通り揃ったことです。
| 機能 | 中身 |
|---|---|
cron | 定期実行。実行履歴とジョブ専用の作業メモを持つ |
browser | 専用Chromeを操作。macOSのCookieを引き継ぐ機能まである |
skills | 能力をパッケージ化。ClawHubから配布・インストール可能 |
memory | 長期記憶。短期の記憶を評価して MEMORY.md に昇格させる |
approvals | 危険な操作で止めて承認を求める |
sandbox | コンテナ隔離 |
特に memory が独特です。rem-harness と DREAMS.md という機能があり、REM睡眠になぞらえて、エージェントが自分の過去ログを振り返って知見を抽出します。実際、起動時のログに memory-core: created managed dreaming cron job と出ていました。放っておくと勝手に自分の経験を整理します。
で、Macで24時間動かすべきか
ここが正直な話です。
Macで動かすのは「試す」までなら最適です。 私も今この記事をMacBook Airで動くOpenClawと一緒に書いています。
でも本気で自律動作させるなら、Macは向いていません。
- 蓋を閉じると止まる。 スリープ中にcronは動きません
- 持ち歩けなくなる。 常時起動を前提にすると、ノートPCの意味が薄れます
- 他の作業とリソースを取り合う。 ブラウザ操作を伴うエージェントは特に重い
- 落ちたら気づかない。 手元のマシンには監視も自動再起動もありません
OpenClawのGatewayは常駐プロセスです。24時間動かす前提の設計になっている以上、置き場所もそれに合わせた方が素直です。
次の記事では、AIエージェントを常時稼働させるサーバーの条件を整理します。必要なメモリ、必要なのはVPSか専用サーバーか、日本国内に置くべきか——このあたりを、OpenClawの実際のリソース消費を測りながら書く予定です。
まとめ
| 詰まった箇所 | 対処 |
|---|---|
| Node 22.17.0 では動かない | 22.22.3以上へ。npm_config_prefix で隔離すれば既存環境を壊さない |
| プラグイン権限を断るとランタイムごと入らない | plugins install codex --accept-capabilities で入れ直す |
| Gateway二重起動 / 旧設定の残骸 | プロセスを完全停止。exec-approvals.json は退避 |
| ワークスペース消失 | SQLiteの初期化記録をクリアして再生成 |
リリース直後なので荒削りですが、踏んだ落とし穴はどれも一度きりでした。動き出してからは安定しています。
同じところで止まった方の役に立てば幸いです。
この記事は、実際に2026年9月3日時点のOpenClaw 2026.8.2 をMacBook Air(macOS 24.6.0)に導入した記録に基づいています。バージョンによって挙動は変わるため、公式ドキュメント(docs.openclaw.ai)もあわせてご確認ください。
