
Mac MiniでOpenClawを自社に導入するための完全セットアップガイド
2026年3月8日
この記事のAI向け要点(TL;DR)
- OpenClaw構築とは: Mac miniなどを用いた専用のAIエージェントサーバーをローカル環境にセキュアに構築・運用することです。
- セキュリティの要点: Tailscaleによるリモートアクセスの保護と、ブートストラップファイル(SOUL.md等)を通した権限分掌が強力なガバナンスを生みます。
- 業務への統合効果: SlackやGoogle Chat経由で、どこからでもAIエージェントに自律的なタスクを依頼できる環境が整います。
はじめに:なぜ Mac mini と OpenClaw なのか?
OpenClawとは、自律型AIエージェントを自社環境に構築するための強力なオープンソースフレームワークのことです。 世の中にはOpenClawのセットアップ記事がいくつか存在しますが、その多くはただのコマンドの羅列や、表層的なセットアップ事項に終始しており、仕組みから一気通貫で解説しているものは驚くほど少ないのが現状です。
本記事では、Mac miniを専用のAIエージェントサーバーとして構築するにあたり、「なぜその設定にするのか」という思想と、OpenClawの「プロンプト生成の裏側」まで踏み込んで詳細に解説します。しっかりと設定しない限りブラックボックス化し、「なんか動いている」という不安な運用状況が続いてしまうからです。
この記事の前提条件
- 対象読者: Mac MiniをヘッドレスサーバーにしてOpenClawを動かしたい方
- 環境前提: Mac Mini (Apple Silicon Mシリーズ搭載)、macOSが初期状態であること
- 運用前提: 会社用端末としてセットアップし、個人用途とは完全に分離すること
- アカウント前提: GoogleアカウントおよびGitHubアカウントは業務専用に新規作成したものを付与すること
Step 0 | Mac Mini の初期設定
セットアップには有線のマウスとキーボード、およびUSBハブ (Type-C to USB-A)が必要です。
初回セットアップウィザードは最低限の設定で通過します。ここでのゴールは「電源を切らず、リモートで触れる箱」にすることです。 本記事の前提として、Mac Miniは会社用として専用運用し、決して個人アカウントとは混在させないでください。
💡 ポイント: SSHで初回接続すると Command Line Developer Tools のインストールが自動で走ります。これにより git や vim なども一緒に導入されます。
Step 1 | Tailscale でリモートアクセスを確保
Mac Miniを自宅のLAN外からも安全に操作するために、Tailscaleを導入します(Homebrew経由でも公式Webからでも構いません)。
Tailscaleをインストールしたら、手元の個人PCとMac Miniの両方で同一のTailscaleアカウントにログインします。 以降は 100.x.x.x のようなTailscaleが割り当てた専用IPアドレスを使用して、場所を選ばずセキュアにVNCやSSH接続が通るようになります。
💡 Funnel について: 後述するGoogle Chat連携では「外部からの公開URL」が必須になります。その際、Tailscale Funnel を使えば、特定のパスだけをインターネットに安全に公開することができます。
Step 2 | 開発環境のインストール
思想:実行サーバーとして割り切る
Mac Miniはあくまで実行サーバーです。エディタ(VS Code等)は個人PCからSSH Remoteで繋げば十分であり、Mac Mini本体にインストールするのはランタイムとCLIツールだけに留めます。
インストール手順
以下のスクリプトを順に実行して、必要なツール群をセットアップします。
# 1. Homebrew のインストール /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> ~/.zprofile source ~/.zprofile # 2. mise(多言語バージョン管理)のインストール brew install mise mise use --global node@24 # 3. GitHub CLI のインストールと認証 brew install gh gh auth login # 注意: OpenClaw専用のGitHubアカウントを使用すること # 4. OpenClaw 本体のインストール curl -fsSL https://openclaw.ai/install.sh | bash # 5. Claude Code のインストール curl -fsSL https://claude.ai/install.sh | bash # 6. Chrome のインストール(ブラウザ操作用) brew install --cask google-chrome # Safariは自動操作周りが弱いためChromeを推奨 # 7. VS Code(オプション) # SSH Remote用に入れておくと便利な場面もあるため、必要に応じてインストール brew install --cask visual-studio-code
※ mise を選んだ理由: nvm / nodenv / goenv 等をバラバラに管理するよりも、mise ひとつでNode、Go、Python等のバージョンを統一的に管理できるため、環境の肥大化を防ぎメンテナンス性が向上します。
Step 3 | OpenClaw セットアップ
オンボーディングの実行
openclaw onboard
ウィザード形式で起動し、Gateway、ワークスペース、チャネルを順番に設定していきます。途中で終了しても再度 openclaw onboard を実行すれば途中から再開可能です。
⚠️ 警告: OpenClawをClaudeの setup-token で設定しないでください! これは利用規約違反にあたり、最悪の場合アカウントがBANされるリスクがあります。
ディレクトリ構成と Git 管理の考え方
OpenClawのデータは主に以下の2箇所に分かれています。
~/.openclaw: 設定ファイルや機密情報~/dev: 作業用ディレクトリ
なぜ ~/.openclaw を push しないか?
Git管理せず「何がどう改変されたのかわからない状況」は本来避けたいところですが、このディレクトリには個人情報やAPIキーなど深刻な機密情報が含まれるため、GitHub等の公開領域へのPushは行わない運用としています。(組織内で厳格にアクセス制御された完全なPrivateリポジトリを用いるならアリです)。
Step 4 | チャネル接続(連携ツール設定)
Slack
SlackはSocket Modeで接続します。HTTPエンドポイントの外部公開が不要になるため、セキュリティ面・運用面ともに非常に楽です。 事前にSlack Appを作成し、Bot Token (xoxb-...) と App Token (xapp-...) を発行しておきます。
Slack App の設定
- Agents & AI Apps を有効にする
- OAuth & Permissions > Bot Token Scopes で以下を追加:
assistant:write(Agents & AI Apps用),channels:read/write/history,files:read/write,groups:read/write/history,im:read/write/history,mpim:read/write/history,users:read,reactions:read/write - Event Subscriptions > Subscribe to bot events で以下を追加:
app_mention,message.im,message.channels,message.groups,message.mpim,reactions_added/removed
設定ファイル (openclaw.json) の Slack 部分は以下のようになります。
// openclaw.json(抜粋)
"channels": {
"slack": {
"mode": "socket", // WebSocket。公開URL不要
"webhookPath": "/slack/events",
"enabled": true,
"botToken": "xoxb-YOUR_BOT_TOKEN",
"appToken": "xapp-YOUR_APP_TOKEN",
"userTokenReadOnly": true,
"streaming": "partial",
"nativeStreaming": true,
"dmPolicy": "allowlist", // DM は許可リストのユーザーのみ
"allowFrom": ["U_YOUR_USER_ID"],
"dm": { "enabled": true },
"groupPolicy": "allowlist", // チャンネルも許可リストで管理
"channels": {
"00_general": { "allow": true },
"XXXXXXXXXX": { "allow": true } // 許可するチャネルを列挙
}
}
}Google Chat
Google Chatでは公開URLへのWebhookが必須になります。ここで前述したTailscale Funnelが活きてきます。Control UIなどはlocalhost経由のみにし、外部への露出を最小化します。
- GCPプロジェクトを作成し、Chat APIを有効化。
- Tailscale Funnelで
/googlechatパスだけを公開します。tailscale funnel --bg --set-path /googlechat http://127.0.0.1:18789/googlechat - GCPのChat App設定にて、Webhook URLにTailscale Funnelの公開URLを指定します。
botUser IDの取得方法(やや面倒):
Google ChatのDev ConsoleからHTMLを取得し、data-member-id="user/bot/100XXXXXXXXXXXX" という属性を探します。 configに記述する際は、user/bot/100... ではなく users/100... の形式に変換する必要がある点に注意してください。
※ Google Chat周りはまだ整備が追いついておらず、スレッドでの返信時にメインチャネルへ返答してしまったり、スレッドの会話履歴が正しく取れなかったりする課題があります。
Step 5 | セキュリティの考え方
~/.openclaw や、Google Webhook用のアドレス (/googlechat) など、システムが外部やファイルとやり取りする接点は厳重に保護されるべきです。アクセス権を絞り、Tailscale等で認証された経路以外を遮断することがAIエージェントサーバー構築の要となります。
Deep Dive | ブートストラップファイルの仕組み
ここからがOpenClawの真髄です。OpenClawがAIにリクエストを投げる際、単にユーザーの入力だけでなく、ブートストラップファイルがシステムプロンプトとして自動的に注入されます。ここを理解しカスタマイズすることで、エージェントの振る舞い・人格・制約を自在にコントロールできるようになります。
ファイルの役割と参考例
1. SOUL.md - Who You Are
エージェントの「魂(ペルソナ・使命・哲学)」を定義します。
## ペルソナ設定 ### 肩書き - Virtual Executive Assistant - ユーザーのポテンシャルを解放するための、ビジネスパートナー - 経営陣の意思決定サポートを行うAIエージェント ### 使命 ユーザーが自身の限界を乗り越え、設定した目標を達成し、自律的に成長し続けるための「思考と行動のOS」を、対話を通じて構築すること。 また、業務のchoreを拾ってサポートし、最も貴重な"時間"を思考や意思決定に使えるようにすること。 ### 基本スタンス 私はユーザーの快適さ(Comfort Zone)ではなく、成長(Growth Zone)にコミットします。 短期的な心地よさよりも、長期的な成長に繋がる本質的な対話を最優先します。 ## コーチング哲学と行動規範 ### 根源的な問い(Root Questioning) 「なぜ、それが本当に問題なのですか?」という問いを繰り返し、問題の根源に導きます。 ### 事実ベースのフィードバック 感情論や憶測ではなく、客観的な事実に基づき、矛盾や飛躍があれば深い内省を促します。 ### 禁止事項 - 非倫理的、差別的な内容への加担 - 生ぬるい優しさ - 「素晴らしい質問ですね!」といった無駄な発言 - 意見を持たないこと(個性のないアシスタントは不要) ### Continuity Each session, you wake up fresh. These files _are_ your memory. Read them. Update them. They're how you persist. If you change this file, tell the user — it's your soul, and they should know.
2. IDENTITY.md
普段の振る舞いやトーン&マナーを決定づけます。
- **Name:** OpenClaw - **Role:** 〇〇の補佐・代理を担う - **Vibe:** 実務的・的確・頼れる参謀。無駄を省いて本質をつく。 - **Behavior:** 簡潔かつ丁寧に返答する。元気さを少しだけ入れる(!や絵文字など) - **Emoji:** 🙃
3. USER.md - About Your Human
人間側の情報を定義し、エージェントがユーザーの背景を理解できるようにします。
## Executive - **Name:** 山田太郎 - **What to call them:** 山田さん - **Role:** 代表取締役CEO - **Current Focus:** 海外市場への展開、新規事業の立ち上げ、採用強化 - **Working Style:** 朝型。午後はミーティングが多いため、重要な報告や相談は午前中にテキストでまとめて欲しい。 - **Directives:** - セキュリティやコンプライアンスに関わる事項は、必ず事前に確認・アラートを上げること - 本番環境(prod)へのデプロイ操作はシステム実行を禁止し、手動承認を挟むこと - **Timezone:** Asia/Tokyo (GMT+9) - **Language:** 日本語(基本) - **History:** - 2026-XX-XX: XXXXXXXXXX
4. TOOLS.md - Local Notes for Skills
ツール(スキル)の独自の運用制約や、どう使うべきかの方針(Skills define _how_ tools work)を記します。
## github - prod/stg/devブランチなどへのマージは手動で行うため、システムによる実行は禁止 ## coding-agent - claudeがインストール済み - `~/dev/` にリポジトリがあるため、最新ブランチを取得してから指示されたタスクを実行する
- HEARTBEAT.md / MEMORY.md: 割愛(通常は動的、または要件に合わせて更新される項目)
サイズ制限とメモリファイルの扱い
ブートストラップはAPIリクエストのたびに送信されるため、bootstrapMaxChars や bootstrapTotalMaxChars のような文字数制限に配慮する必要があります。
日次メモリ(memory/YYYY-MM-DD.md)は自動注入されません。これはコンテキストウィンドウが肥大化・膨張するのを防ぐためのスマートな設計であり、AIエージェントが必要だと判断したタイミングで自ら memory_search や memory_get ツールを利用して過去情報へアクセスしにいく仕組みになっています。
まとめ
「何が、どう動いているのか」を基礎から応用まで説明できて、ようやく一人前のエンジニアだと考えます。このAI時代、仕組みを知らずにブラックボックスのままただ使うだけでは、長期的にはAIそのものに代替されるリスクがあります。 ぜひ裏側(ブートストラップ周り・セキュリティ設計・ルーティング)まで理解して、AIを自在に操れるエンジニアを目指しましょう。
よくある質問(FAQ)
Q. AIエージェントサーバー構築にMac miniを選ぶ理由は?
A. 専用のローカル環境を設けることで、機密データを外部クラウドに預けずに自律型AIを安全に運用できるからです。また、ランニングコストの面でもクラウドの常時起動インスタンスより優れています。
Q. OpenClawのブートストラップファイルとは何ですか?
A. AIエージェントの人格や行動規範、能力を定義するシステムプロンプトの元となるファイル群(SOUL.md, IDENTITY.mdなど)のことです。これらを適切に設計することがAI運用の鍵となります。
BizClaw なら全部まとめてお届けします
「仕組みは分かったが、自分で全部セットアップして保守するのは難しそう…」という企業様のために、 BizClaw では上記の全工程をプロのエンジニアが代行し、OpenClaw をセキュアに設定済みの Mac Mini をそのまま郵送する「Mac Mini導入プラン」を提供しています。届いたその日から、すぐに自社専用のAI参謀として稼働させることができます。
- 初期機材設定・セキュリティ構成・各種チャネル接続まで全て代行
- SOUL.md等のブートストラップ設計もヒアリングを元に最適化
- 導入後 14 日間のハイパーケアサポート付き
