操作: 概要
本番環境で ZeroClaw を実行する方法。運用面は意図的に小さく保たれています: 1 つのバイナリ、1 つの設定ファイル、および少数のランタイムストアを持つ 1 つのインストールルート。ほとんどの「運用」は「systemd と journald」です。
このセクションでは、以下を扱います:
- Service & daemon: プロセスを存続させる
- ログと可観測性: エージェントが行った処理の確認
- コスト追跡: トークン消費量とモデルごとのコスト
- トラブルシューティング: 問題が発生したとき
- ネットワークデプロイ: ゲートウェイの公開、トンネル、リバースプロキシ
デプロイメントの形状
一般的な常時稼働のZeroClawインストールは以下の通りです:
zeroclaw service — systemd / launchctl / Windows Service
└── zeroclaw daemon — the single long-running process
├── gateway listener :42617 — REST / WebSocket / webhook intake
├── channel pollers — Telegram, IMAP, Nostr relays (outbound poll)
├── channel listeners — Discord / Slack / Matrix / WebSocket (inbound stream)
├── cron scheduler — scheduled SOPs and jobs
└── agent loop (one per session) — provider call + tool execution
▲ driven by any listener, poller,
gateway request, or cron fire
on disk (everything but the binary can move)
├── ~/.zeroclaw/config.toml — configuration
├── ~/.zeroclaw/.secret_key — master key for the encrypted secrets store
└── ~/.zeroclaw/data/ — runtime state
├── memory/ — agent memory backend
├── sessions/ — per-session conversation stores
└── state/ — scheduler, cost, health, misc runtime state
logs — journald / launchctl / Windows Event Log (platform-native)
バイナリ以外はすべて移動できます。データディレクトリのデフォルトは ~/.zeroclaw/data/ です(レガシーの ~/.zeroclaw/workspace/ 名も引き続き受け入れられます)。設定パスは環境ごとに解決され(Homebrew 対 bootstrap 対 XDG)、ログの出力先はデフォルトでプラットフォームネイティブです。ストアマップの全体については、ランタイム状態と永続化 を参照してください。
監視対象
重要な4つのシグナル:
1. サービスの死活監視
プロセスは実行されていますか?
Linux
systemctl --user is-active zeroclaw
macOS
launchctl list | grep -c com.zeroclaw.daemon
Windows
schtasks /Query /TN "ZeroClaw Daemon" /FO LIST | findstr Status
繰り返し終了する場合は、トラブルシューティング → デーモンが再起動し続ける を確認してください。
2. チャネルとコンポーネントの正常性
ゲートウェイは、コンポーネントのヘルス状態のスナップショットを /health(パブリック、シークレットなし)および /api/health(認証あり)で公開します。チャンネル、プロバイダー、その他の長時間稼働するコンポーネントは、起動時に自身を components マップに登録し、OK またはエラーを報告します。
sh
curl -s http://localhost:42617/health | jq
{
「status」: "ok",
paired: true,
require_pairing: true,
ランタイム: {
pid: 4821,
"updated_at": 2026-06-08T09:00:00+00:00,
uptime_seconds: 3600,
components: {
"channel:telegram": {「status」: "ok", "updated_at": …, "last_ok": …, "last_error": null, "restart_count": 0},
channel:matrix: {「status」: 「エラー」, "updated_at": …, "last_ok": …, "last_error": "401 認証エラー", "restart_count": 3}
}
}
}
各コンポーネントは status(starting / ok / error)、last_ok、last_error、restart_count を保持します。status: "error" と増加する restart_count に注意してください。
チャネルは、リスナーが起動しただけではなく、サービスに実際に到達できることを確認するまで、last_ok が null の starting になります。サービスとの通信中に観測した内容を報告するチャネルもあるため、実行中でもまだ一度も交換を完了していないリスナーは ok ではなく starting のままとなり、呼び出しに失敗しているリスナーは error になります。以前 ok を報告したエイリアスで再起動するチャネルは、自身の正常な交換が行われるまで starting に戻ります。そのようなシグナルを提供しないチャネルは、リスナーが実行されている間は ok としてマークされます。
3. プロバイダーの信頼性
プロバイダーは、同じ /health スナップショット内のコンポーネントとして表示されます。リクエストレベルのシグナル(レイテンシ、成功率、トークン数)については、/metrics(下記参照)をスクレイプし、zeroclaw_llm_requests_total と zeroclaw_request_latency_seconds を読み取ってください。
4. ツールコールのボリュームとメトリクス
/metrics は Prometheus テキスト形式の出力を返します。設定で [observability] backend = "prometheus" が必要です。これがない場合、エンドポイントは「backend not enabled」のヒントを1行返します。
sh
curl -s http://localhost:42617/metrics
zeroclaw_tool_calls_total{success="true",tool="shell"} 342
zeroclaw_tool_calls_total{success="false",tool="shell"} 6
zeroclaw_tool_calls_total{success="true",tool="file_write"} 89
zeroclaw_tool_calls_total カウンターには tool と success ("true"/"false") のラベルが付与されます。あるツールで success="false" のカウントが増加している場合は調査する価値があります。ポリシーによるブロック、不正な動作をしているエージェント、または不安定なツールのいずれかが原因です。その他に有用な系列としては、zeroclaw_llm_requests_total、zeroclaw_errors_total、zeroclaw_active_sessions、そして zeroclaw_tokens_input_total / zeroclaw_tokens_output_total があります。
容量
1つのZeroClawインスタンスは以下を処理できます:
- すべてのチャンネルで複数の同時会話
- プロバイダーとサンドボックスが許容する速度でツール呼び出し
- 長時間実行されるエージェントのループ(20回以上の呼び出しを含むツールチェーン)
ワークスペースごとに1つのインスタンスを実行して水平方向にスケールします。同じワークスペースで2つのデーモンを実行しようとしないでください。SQLiteのシングルライターモデルではロックの競合が発生し、最終的には破損につながります。
マルチテナントホスティングについては、#2765(クローズ済み、過去の経緯あり、プロセス内マルチワークスペースルーティングのアーキテクチャ)の提案を参照してください。
バックアップ
バックアップ対象:
~/.zeroclaw/data/memory/*.db: SQLite 会話メモリ (brain.dbおよびaudit.db)~/.zeroclaw/data/sessions/: 永続化されたセッション状態~/.zeroclaw/.secret_key: 暗号化されたシークレットストア用のマスターキー(使用している場合)。これがないと、設定の暗号化されたシークレットは復元できません。
tar czf zeroclaw-$(date +%F).tar.gz ~/.zeroclaw を実行するだけで、すべてのファイルがカバーされます。増分バックアップには、Restic、borg、または Duplicacy が適しています。
~/.zeroclaw/data/memory/response_cache.db は再生成可能なLLM応答キャッシュです。ディレクトリ全体のバックアップに含めても、容量節約のために除外しても問題ありません。ツールレシートは会話履歴内のインバンドHMACトークンであり(ツールレシートを参照)、ディスク上のログではないため、これらのために個別にバックアップするものはありません。
更新
このサービスは自動更新されません。リリースフィード(GitHub リリースまたは Discord の #releases チャンネル:Contributing → Communication を参照)を購読してください。一般的な更新頻度:
- リリースノートを読む
~/.zeroclaw/をバックアップする- バイナリを更新する(
brew upgrade、ブートストラップの再実行、またはcargo install --force) zeroclaw service restart/healthエンドポイントが、どのコンポーネントもerror状態でなくstatus: "ok"を報告することを確認します
新しいバージョンで設定の移行が必要な場合、起動ログに警告が表示され、バイナリは通常自動的に移行を行います。アップグレード後に値を確認するには zeroclaw config list を、保留中のスキーマ移行を手動で適用するには zeroclaw config migrate を使用してください。
関連項目も参照してください
- セットアップ → サービス管理:プラットフォームごとのインストール/削除/ログ
- ログと観測性
- トラブルシューティング
- ネットワークデプロイメント