AIエージェントを本番環境にデプロイすることは、ラップトップで動かすこととは別物だ。信頼性、監視、スケーリング、セキュリティ——開発中には問題にならないこれらすべてが本番では重要になる。ZeroClawのアーキテクチャ——シングルバイナリ、依存関係ゼロ、最小限のリソース使用——は本番デプロイメントをほとんどのエージェントフレームワークよりシンプルにするが、「シンプル」は「些細」ではない。
このガイドは全スペクトルをカバーする:小規模デプロイ向けの単一Dockerコンテナ、マルチサービス構成向けのDocker Compose、そしてスケール向けのKubernetes。
Docker:単一コンテナ
最もシンプルな本番デプロイメント。1コンテナ、1エージェント。
Dockerfileを作成する:
```bash FROM alpine:3.19 COPY zeroclaw /usr/local/bin/zeroclaw COPY config.toml /etc/zeroclaw/config.toml RUN chmod +x /usr/local/bin/zeroclaw EXPOSE 3000 VOLUME /data CMD ["zeroclaw", "start", "--config", "/etc/zeroclaw/config.toml", "--data", "/data"] ```
イメージは極小だ。Alpineベース(5MB)+ ZeroClawバイナリ(3.4MB)= 8.4MBのコンテナイメージ。一般的なPythonエージェントフレームワークイメージの800MB-1.2GBと比較してほしい。
ビルドと実行:
```bash docker build -t zeroclaw-agent . docker run -d --name my-agent -p 3000:3000 -v zeroclaw-data:/data --restart unless-stopped zeroclaw-agent ```
ボリュームマウントにより、コンテナ再起動時にも会話履歴とメモリが永続化される。
Docker Compose:エージェント + Ollama
ローカルモデル推論を含むセルフホストスタックの場合:
```bash version: '3.8' services: ollama: image: ollama/ollama volumes: - ollama-models:/root/.ollama deploy: resources: reservations: devices: - capabilities: [gpu]
zeroclaw: image: zeroclaw-agent depends_on: - ollama environment: - ZEROCLAW_PROVIDER_URL=http://ollama:11434/v1 volumes: - zeroclaw-data:/data ports: - "3000:3000" restart: unless-stopped
volumes: ollama-models: zeroclaw-data: ```
これで2つのコンテナでオフライン対応の完全なAIスタックが手に入る。Ollamaがモデルサービングを、ZeroClawがエージェントロジック、メモリ、チャネルを処理する。
Kubernetes:スケールでの本番運用
複数のエージェントを実行したり多数のユーザーに対応するチームには、Kubernetesがオートスケーリング、ヘルスモニタリング、リソース管理を提供する。
Deploymentマニフェスト:
```bash apiVersion: apps/v1 kind: Deployment metadata: name: zeroclaw-agent spec: replicas: 3 selector: matchLabels: app: zeroclaw template: metadata: labels: app: zeroclaw spec: containers: - name: zeroclaw image: zeroclaw-agent:latest resources: requests: memory: "16Mi" cpu: "50m" limits: memory: "64Mi" cpu: "500m" ports: - containerPort: 3000 livenessProbe: httpGet: path: /health port: 3000 initialDelaySeconds: 1 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 3000 initialDelaySeconds: 1 periodSeconds: 5 volumeMounts: - name: data mountPath: /data volumes: - name: data persistentVolumeClaim: claimName: zeroclaw-data ```
リソースリクエストに注目してほしい:メモリ16Mi、CPU 50m。これは誤植ではない。ZeroClawは本当に16MBのRAMで動作する。8GBのRAMを搭載したKubernetesノードで、数百のZeroClawインスタンスを実行できる。
Horizontal Pod Autoscaler:
```bash apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: zeroclaw-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: zeroclaw-agent minReplicas: 2 maxReplicas: 20 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 ```
ZeroClawのサブ10msスタートアップにより、新しいPodはほぼ即座にリクエストの処理を開始できる——ウォームアップ期間なし、遅いJVMスタートアップなし、依存関係のロードなし。オートスケーラーは数分ではなく数秒でトラフィックスパイクに対応できる。
モニタリング
ZeroClawは`/metrics`でPrometheusメトリクスを公開する:
- •`zeroclaw_requests_total` — 処理されたリクエスト総数
- •`zeroclaw_request_duration_seconds` — リクエストレイテンシのヒストグラム
- •`zeroclaw_memory_entries_total` — メモリデータベースのサイズ
- •`zeroclaw_active_channels` — 接続中のメッセージングチャネル
- •`zeroclaw_tool_invocations_total` — タイプ別ツール使用状況
Prometheusスクレイプ設定:
```bash scrape_configs: - job_name: 'zeroclaw' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app] regex: zeroclaw action: keep ```
Grafanaダッシュボードと組み合わせれば、エージェントのパフォーマンス、メモリ増加、チャネルの健全性を可視化できる。
本番環境のセキュリティ強化
本番デプロイメントには、開発デフォルトを超えた追加のセキュリティが必要だ:
ネットワークポリシー: Pod間通信を制限する。ZeroClawはモデル推論サービス(OllamaまたはクラウドAPI)とメッセージングプラットフォームAPIにのみ到達する必要がある。
```bash apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: zeroclaw-netpol spec: podSelector: matchLabels: app: zeroclaw policyTypes: - Egress egress: - to: - podSelector: matchLabels: app: ollama ports: - port: 11434 - to: - ipBlock: cidr: 0.0.0.0/0 ports: - port: 443 ```
シークレット管理: APIキーとボットトークンはKubernetes Secretsから取得すべきで、環境変数やイメージに焼き込まれた設定ファイルからではない。
読み取り専用ファイルシステム: コンテナファイルシステムを読み取り専用でマウントし、データディレクトリのみ書き込み可能なボリュームにする。
非rootでの実行: ZeroClawはroot権限を必要としない。`securityContext.runAsNonRoot: true`で非rootユーザーとして実行する。
デプロイメント判断ツリー
- •シングルユーザー、常時稼働: VPSまたはホームサーバー上のDockerコンテナ。最もシンプルなセットアップ、最低コスト。
- •小規模チーム(2-10名): ローカル推論用にOllama付きDocker Compose、または利便性のためにクラウドAPI。
- •組織(10名以上): オートスケーリング、モニタリング、セキュリティポリシー付きのKubernetes。
- •エンタープライズ(規制産業): コンテナレベル隔離のためのKubernetes + NVIDIA OpenShell、またはコンプライアンスコントロール付き専用インフラ。
ZeroClawのリソース効率のおかげで、最もシンプルなデプロイメントから始めて、アーキテクチャを変更せずにスケールアップできる。DockerコンテナもKubernetes Podも、同じバイナリを同じ設定で実行する。アップグレードパスはインフラの追加であり、エージェントの書き直しではない。