把 AI 智能体部署到生产环境跟在笔记本上跑是两回事。可靠性、监控、伸缩和安全的重要性在开发时体会不到。ZeroClaw 的架构——单二进制、零依赖、极低资源使用——让生产部署比大多数智能体框架简单,但"更简单"不等于"不用动脑"。
这篇指南覆盖全范围:小部署用单 Docker 容器,多服务用 Docker Compose,需要规模用 Kubernetes。
Docker:单容器
最简单的生产部署。一个容器,一个智能体。
Dockerfile:
``` 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
搭配本地模型推理的自托管方案:
```yaml 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: ```
两个容器搞定完整的离线 AI 方案。Ollama 负责模型服务;ZeroClaw 负责智能体逻辑、记忆和频道。
Kubernetes:规模化生产
团队运行多个智能体或服务很多用户时,Kubernetes 提供自动伸缩、健康监控和资源管理。
Deployment 清单:
```yaml 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 内存,50m CPU。这不是打错了。ZeroClaw 真的能在 16MB 内存里跑。一个 8GB 内存的 Kubernetes 节点可以运行几百个 ZeroClaw 实例。
Horizontal Pod Autoscaler:
```yaml 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 抓取配置:
```yaml 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。
```yaml 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 密钥和机器人 token 应该来自 Kubernetes Secrets,不是环境变量或烘进镜像的配置文件。
只读文件系统: 把容器文件系统挂载为只读,只有数据目录可写。
非 root 运行: ZeroClaw 不需要 root 权限。用 `securityContext.runAsNonRoot: true` 以非 root 用户运行。
部署决策树
- •单用户,始终在线: VPS 或家庭服务器上的 Docker 容器。最简配置,最低成本。
- •小团队(2-10 人): Docker Compose 搭配 Ollama 做本地推理或云端 API 图省事。
- •组织(10+ 人): Kubernetes 配自动伸缩、监控和安全策略。
- •企业(受监管行业): Kubernetes + NVIDIA OpenShell 做容器级隔离,或专用基础设施配合规控制。
ZeroClaw 的资源效率意味着你可以从最简单的部署开始,向上扩展而不需要重新架构。Docker 容器和 Kubernetes pod 运行同一个二进制和同一份配置。升级路径是添加基础设施,不是重写智能体。