OpenClawSkills
GitHub
クイックスタート • 10分で読める

パーソナルアシスタント設定

OpenClaw を個人アシスタントとして運用するためのエンドツーエンドガイド(セキュリティ考慮を含む)。

OpenClaw は **Pi** エージェント向けの WhatsApp + Telegram + Discord + iMessage ゲートウェイです。プラグイン経由で Mattermost にも対応します。このガイドは「パーソナルアシスタント」構成向けで、専用の WhatsApp 番号を常時稼働のエージェントとして運用します。

Tutorial.step

⚠️ セキュリティ最優先

この構成ではエージェントに次の権限が与えられます: - (Pi ツール設定次第で)あなたのマシン上でコマンド実行 - ワークスペース内ファイルの読み書き - WhatsApp/Telegram/Discord/Mattermost(プラグイン)経由でのメッセージ送信 まずは保守的な設定から始めることを推奨します:

- 必ず `channels.whatsapp.allowFrom` を設定する(個人マシンで「誰でも話せる」アシスタントを運用しない)。

- アシスタント用に別の WhatsApp 番号を用意する。

- Heartbeat の既定は 30 分ごと。構成を信頼できるまでは無効化推奨:`agents.defaults.heartbeat.every: "0m"`。

Tutorial.step

Prerequisites

- Node **22+** - OpenClaw available in your system PATH (recommended: global install) - A second phone number (SIM/eSIM/prepaid all work) for the assistant number

Bash
npm install -g openclaw@latest

ソースから実行(開発モード):

Bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # installs UI dependencies on first run
pnpm build
pnpm link --global
Tutorial.step

Dual Phone Strategy (Recommended)

次の構成が理想です:

Terminal
Your Phone (Personal)             Assistant Phone (Secondary)
┌─────────────────┐           ┌─────────────────┐
│  Your WhatsApp  │  ──────▶  │ Assistant WhatsApp│
│  +1-555-YOU      │  message  │  +1-555-ASSIST  │
└─────────────────┘           └────────┬────────┘
                                       │ Link via QR code
                                       ▼
                              ┌─────────────────┐
                              │  Your Mac        │
                              │  (openclaw)      │
                              │    Pi agent      │
                              └─────────────────┘

個人の WhatsApp アカウントを OpenClaw にリンクすると、あなた宛ての全メッセージが「エージェント入力」になります。通常は望ましくありません。

Tutorial.step

5 分クイックスタート

1. WhatsApp Web をペアリング(QR が表示されるのでアシスタント端末でスキャン):

Bash
openclaw channels login

2. Gateway を起動(常駐させる):

Bash
openclaw gateway --port 18789

3. 最小構成の設定を `~/.openclaw/openclaw.json` に書く:

Bash
'{'
  channels: '{' whatsapp: '{' allowFrom: ["+15555550123"] '}' '}',
'}'

これで allowlist に入れた端末から、アシスタント番号へメッセージを送れます。 オンボーディングが完了すると、トークン付きのダッシュボード URL が自動で開かれ、トークン付き URL も出力されます。後から開く場合:`openclaw dashboard`。

Tutorial.step

エージェントにワークスペースを与える(AGENTS)

OpenClaw はワークスペースディレクトリから、運用手順と「記憶」を読み込みます。 既定では `~/.openclaw/workspace` をエージェントのワークスペースとして使い、セットアップ/初回起動時に自動作成します(初期ファイル `AGENTS.md`、`SOUL.md`、`TOOLS.md`、`IDENTITY.md`、`USER.md` を含む)。`BOOTSTRAP.md` はワークスペースが新規の場合にのみ作られ(削除後に再生成されるべきではありません)。

推奨:このフォルダを OpenClaw の「記憶」として扱い、`AGENTS.md` とメモリファイルを Git(できればプライベート)でバックアップしてください。git がインストールされていれば、新規ワークスペースは自動でリポジトリ初期化されます。

Bash
openclaw setup

ワークスペース構造とバックアップ:Agent workspace

メモリ運用:Memory

任意:`agents.defaults.workspace` で別パスに変更できます(`~` 対応):

Json5
{
  agent: {
    workspace: "~/.openclaw/workspace",
  },
}

すでにワークスペースファイルをリポジトリ等で配布している場合、ブートストラップファイル生成を完全に無効化できます:

Json5
{
  agent: {
    skipBootstrap: true,
  },
}
Tutorial.step

「アシスタントらしさ」を出す設定

OpenClaw には妥当な既定値がありますが、通常は次を調整したくなります:

- `SOUL.md` の人格/指示

- thinking の既定値(必要なら)

- Heartbeat(信頼できてから有効化)

Example:

Json5
{
  logging: { level: "info" },
  agent: {
    model: "anthropic/claude-opus-4-5",
    workspace: "~/.openclaw/workspace",
    thinkingDefault: "high",
    timeoutSeconds: 1800,
    // Start with 0; enable later.
    heartbeat: { every: "0m" },
  },
  channels: {
    whatsapp: {
      allowFrom: ["+15555550123"],
      groups: {
        "*": { requireMention: true },
      },
    },
  },
  routing: {
    groupChat: {
      mentionPatterns: ["@openclaw", "openclaw"],
    },
  },
  session: {
    scope: "per-sender",
    resetTriggers: ["/new", "/reset"],
    reset: {
      mode: "daily",
      atHour: 4,
      idleMinutes: 10080,
    },
  },
}
Tutorial.step

セッションとメモリ

- Session files: `<code1>~/.openclaw/agents/<agentId>/sessions/{'{SessionId}'}.jsonl</code1>`

- Session metadata (token usage, last route, etc.): `<code1>~/.openclaw/agents/<agentId>/sessions/sessions.json</code1>` (old path: `<code2>~/.openclaw/sessions/sessions.json</code2>` )

- `/new` or `/reset` starts a new session for that chat (configured via `resetTriggers`). If sent as a standalone command, the Agent replies with a short confirmation message.

- `/compact [instructions]` compacts session context and reports remaining context budget.

Tutorial.step

Heartbeat(プロアクティブモード)

既定では、OpenClaw は 30 分ごとに次のプロンプトで heartbeat を実行します:

`Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`

`agents.defaults.heartbeat.every: "0m"` を設定すると heartbeat を無効化できます。

- `HEARTBEAT.md` が存在しても実質空(空行だけ、または `# Heading` のような見出しだけ)の場合、API コール節約のため heartbeat をスキップします。

- ファイルが無い場合でも heartbeat は実行され、モデルが「何をするべきか」を判断します。

- エージェントが `HEARTBEAT_OK` を返した場合(軽微な文字列の追加は許容。`agents.defaults.heartbeat.ackMaxChars` 参照)、その heartbeat は外部送信されません。

- Heartbeat はエージェントの 1 ターンそのものなので、間隔を短くするとトークン消費が増えます。

Json5
{
  agent: {
    heartbeat: { every: "30m" },
  },
}
Tutorial.step

入出力メディア

受信した添付(画像/音声/ドキュメント)は、テンプレートパラメータとしてコマンドに渡されます:

- `<code1>'{'{MediaPath}'}'</code1>` (local temp file path)

- `<code2>'{'{MediaUrl}'}'</code2>` (pseudo-URL)

- `<code3>'{'{Transcript}'}'</code3>` (if audio transcription is enabled)

エージェントから添付を送る場合:別行に `<code1>MEDIA:<path-or-url>'</code1>`(スペースなし)を書きます。例:

Terminal
Here is the screenshot.
MEDIA:https://example.com/screenshot.png

OpenClaw はこれらの行を解析し、テキストと一緒にメディアとして送信します。

Tutorial.step

運用チェックリスト

Bash
openclaw status          # Local status (creds, sessions, queued events)
openclaw status --all    # Full diagnostics (read-only, easy to paste/share)
openclaw status --deep   # Adds gateway health probes (Telegram + Discord)
openclaw health --json   # Gateway health snapshot (WS)

ログの既定出力先は `/tmp/openclaw/`(例:`openclaw-YYYY-MM-DD.log`)。

Tutorial.step

次のステップ