Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

操作: 概要

本番環境で ZeroClaw を実行する方法。運用面は意図的に小さく保たれています: 1 つのバイナリ、1 つの設定ファイル、および少数のランタイムストアを持つ 1 つのインストールルート。ほとんどの「運用」は「systemd と journald」です。

このセクションでは、以下を扱います:

デプロイメントの形状

一般的な常時稼働の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}
    }
  }
}

各コンポーネントは statusstarting / ok / error)、last_oklast_errorrestart_count を保持します。status: "error" と増加する restart_count に注意してください。

チャネルは、リスナーが起動しただけではなく、サービスに実際に到達できることを確認するまで、last_ok が null の starting になります。サービスとの通信中に観測した内容を報告するチャネルもあるため、実行中でもまだ一度も交換を完了していないリスナーは ok ではなく starting のままとなり、呼び出しに失敗しているリスナーは error になります。以前 ok を報告したエイリアスで再起動するチャネルは、自身の正常な交換が行われるまで starting に戻ります。そのようなシグナルを提供しないチャネルは、リスナーが実行されている間は ok としてマークされます。

3. プロバイダーの信頼性

プロバイダーは、同じ /health スナップショット内のコンポーネントとして表示されます。リクエストレベルのシグナル(レイテンシ、成功率、トークン数)については、/metrics(下記参照)をスクレイプし、zeroclaw_llm_requests_totalzeroclaw_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 カウンターには toolsuccess ("true"/"false") のラベルが付与されます。あるツールで success="false" のカウントが増加している場合は調査する価値があります。ポリシーによるブロック、不正な動作をしているエージェント、または不安定なツールのいずれかが原因です。その他に有用な系列としては、zeroclaw_llm_requests_totalzeroclaw_errors_totalzeroclaw_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 を参照)を購読してください。一般的な更新頻度:

  1. リリースノートを読む
  2. ~/.zeroclaw/ をバックアップする
  3. バイナリを更新する(brew upgrade、ブートストラップの再実行、または cargo install --force
  4. zeroclaw service restart
  5. /health エンドポイントが、どのコンポーネントも error 状態でなく status: "ok" を報告することを確認します

新しいバージョンで設定の移行が必要な場合、起動ログに警告が表示され、バイナリは通常自動的に移行を行います。アップグレード後に値を確認するには zeroclaw config list を、保留中のスキーマ移行を手動で適用するには zeroclaw config migrate を使用してください。

関連項目も参照してください