1. 项目概述在Kubernetes上部署你的AI智能体网关如果你正在寻找一种方式将类似Claude Code或Cursor这类强大的AI编程助手变成一个能够通过Telegram、Slack等聊天工具与你对话、并能在浏览器中自动执行任务的“智能体”那么OpenClaw正是你需要的工具。简单来说OpenClaw是一个AI智能体网关它充当了一个桥梁将聊天界面与一个运行在浏览器环境中的AI助手连接起来。你可以把它想象成一个“数字员工”你通过发消息给它下达指令它则在后台的Chrome浏览器里帮你写代码、查资料、操作网页。而这个feiskyer/openclaw-kubernetes项目则是将这个“数字员工”的生产环境打包好让你能通过几行命令就把它稳稳当当地部署在你自己的Kubernetes集群里。它使用Helm Chart进行封装解决了部署中最繁琐的部分持久化存储、密钥管理、模型路由代理甚至还包括一个实时查看AI操作过程的浏览器GUI。这意味着你无需从零开始配置Docker镜像、编写复杂的K8s YAML文件也无需担心重启后数据丢失。对于已经熟悉Kubernetes和Helm的开发者或运维工程师而言这几乎是部署此类AI应用最优雅、最“云原生”的方式。1.1 核心需求与适用场景解析那么谁需要部署OpenClaw呢我认为主要有三类用户第一类是个人开发者或技术爱好者。你可能希望有一个7x24小时在线的AI助手通过Telegram Bot随时与你互动帮你记录灵感、管理待办事项或者在你离开电脑时远程执行一些简单的自动化任务。OpenClaw提供了完整的、开箱即用的解决方案。第二类是小团队或创业公司。团队需要一个共享的、可管理的AI助手集成在Slack或飞书这样的协作工具中。OpenClaw支持多消息平台并且可以通过Kubernetes的命名空间和资源限制为不同团队部署独立的实例实现资源隔离和成本控制。第三类是需要构建复杂AI工作流的进阶用户。OpenClaw支持“技能”Skills系统你可以编写结构化的指令集教AI如何操作特定的开发工具比如Git、Docker、特定的CLI工具。结合其“语义记忆”Memory Search功能AI可以记住之前的对话和工作上下文实现更复杂、连贯的自动化流程。这在Kubernetes上部署意味着你可以轻松地挂载共享存储如NFS让多个Pod或实例访问同一套技能库和记忆库。这个Helm Chart的价值在于它将一个功能丰富的AI应用抽象成了几个简单的Helm--set参数。你不需要关心Xvfb、Fluxbox、noVNC这些GUI组件如何编排也不需要手动处理LiteLLM代理的配置和密钥注入。Chart帮你完成了所有脏活累活让你能专注于使用AI能力本身。2. 架构设计与核心组件拆解在真正动手部署之前理解OpenClaw在Kubernetes中的运行架构至关重要。这能帮助你在出现问题时快速定位也能让你明白每个配置项背后的意义。整个部署的核心是一个StatefulSet这是为了确保Pod拥有稳定的网络标识和持久化存储。让我们拆开看看里面都有什么。2.1 核心工作负载OpenClaw Gateway这是整个应用的大脑一个Node.js应用。它主要做三件事消息路由监听并处理来自Telegram、Slack等平台的消息将其转换为AI可理解的指令。AI任务调度将用户指令发送给后端的AI模型通过LiteLLM代理并接收AI的回复和操作指令。浏览器控制通过Puppeteer或类似技术在一个无头但可通过VNC查看的Chrome实例中执行AI返回的操作比如打开网页、点击按钮、填写表单、执行代码。在Chart中它被封装在一个容器里这个容器内部实际上运行着一个微型的桌面环境。这是通过supervisord进程管理器来实现的它同时启动了Xvfb虚拟显示服务器、Fluxbox窗口管理器、x11vncVNC服务器和noVNCWeb版VNC客户端等一系列服务。这种设计确保了浏览器需要一个图形界面来运行即便在服务器这种没有真实显示设备的环境下。注意正因为包含了完整的GUI栈这个容器镜像的体积相对较大且运行时需要一定的CPU和内存资源默认请求1Gi内存限制8Gi。在资源有限的集群上部署时需要留意。2.2 模型路由层LiteLLM代理这是Chart设计中的一个亮点。OpenClaw Gateway本身并不直接调用OpenAI、Anthropic或GitHub Copilot的API而是将所有请求发送给一个内置的LiteLLM代理服务。LiteLLM是一个开源项目它统一了不同AI提供商API的调用方式。这样做有几个显著好处解耦与灵活性你的OpenClaw配置openclaw.json里只需要写一个本地端点比如http://openclaw-litellm:4000。当你想从使用GitHub Copilot切换到Claude时无需修改Gateway的配置只需更新Helm values中litellm.secrets.provider的值并重启LiteLLM Pod即可。密钥安全隔离所有AI服务的API密钥都只存储在LiteLLM对应的Kubernetes Secret中并仅挂载到LiteLLM的Pod里。OpenClaw Gateway的容器和ConfigMap中永远不会出现这些敏感信息。Gateway通过一个固定的、内部的“假令牌”与LiteLLM通信安全性更高。功能增强LiteLLM本身支持请求重试、缓存、限流、监控等企业级功能这些能力间接地增强了OpenClaw的健壮性。在部署中LiteLLM作为一个独立的Deployment运行并通过Servicerelease-name-litellm暴露端口。这种边车Sidecar模式是云原生应用的常见做法。2.3 网络与访问方案如何安全地访问部署在内部的OpenClaw服务Chart提供了多种选择适应不同场景端口转发Port-Forward最简单的方式使用kubectl port-forward将服务端口映射到本地。适合快速测试和开发但不适合生产环境或长期使用。Ingress通过配置ingress.enabledtrue你可以使用集群的Ingress控制器如Nginx Ingress、Traefik为OpenClaw Gateway和noVNC Web UI创建外部可访问的域名和HTTPS终端。这是面向公网访问的标准做法。Tailscale集成这是一个非常巧妙的“零信任网络”方案。当设置tailscale.enabledtrue后每个OpenClaw Pod都会作为一个独立设备加入你的Tailscale虚拟局域网。这意味着你可以在世界任何地方像访问内网机器一样直接通过Tailscale分配的IP或主机名访问OpenClaw无需暴露任何公网端口安全性极高。对于小团队或需要安全远程访问的场景这是首选。2.4 数据持久化与技能管理OpenClaw的工作状态、聊天记录、AI生成的代码文件以及你安装的“技能”Skills都需要持久化保存。Chart默认启用持久化卷声明PVC将/home/vibe/.openclaw目录挂载到集群的存储上。“技能”是OpenClaw的一个核心概念。它本质上是一个包含SKILL.md文件的目录这个文件用自然语言描述了如何操作某个特定工具例如“如何使用Git进行代码仓库的克隆、提交、推送”。Chart的容器镜像内置了如claude-skill和codex-skill等基础技能。更强大的是你可以通过多种方式扩展技能库临时添加用kubectl cp命令将本地技能目录复制到运行中的Pod里。通过ConfigMap挂载适用于简单的、单文件的技能可以将技能内容定义为ConfigMap并挂载到指定路径。通过外部存储挂载对于团队共享的技能库你可以使用一个独立的PVC甚至NFS共享存储并通过openclaw.skills.volumes配置项将其挂载进来。Chart会自动将这些外部路径添加到技能的加载目录中。这种设计使得技能的管理和共享变得非常灵活既支持个人实验也支持团队协作。3. 从零开始的完整部署实操理论讲得再多不如动手做一遍。下面我将带你完成一次从准备环境到最终访问的完整部署。假设你已经在本地或云上拥有一个可用的Kubernetes集群例如Minikube, Kind, K3s或各大云商的托管K8s服务并且已安装好kubectl和helmv3版本。3.1 前置准备获取必要的令牌部署OpenClaw需要两个核心令牌Telegram Bot Token和OpenClaw Gateway Token。1. 创建Telegram Bot打开Telegram搜索并联系BotFather。 发送/newbot指令按照提示操作为你的Bot起一个名字例如MyOpenClawBot。为你的Bot设置一个唯一的用户名必须以bot结尾例如my_openclaw_bot。 创建成功后BotFather会给你一串类似1234567890:ABCdefGhIJKlmNoPQRsTUVwxyZ的令牌。这就是你的telegramBotToken。请妥善保存。2. 生成Gateway Token这是一个用于验证访问OpenClaw Web门户的令牌在本地终端执行以下命令生成一个强随机字符串export GATEWAY_TOKEN$(openssl rand -hex 32) echo $GATEWAY_TOKEN记下输出的这串64位十六进制字符这就是你的openclawGatewayToken。3.2 基础部署使用默认配置最快速的部署方式是使用默认的GitHub Copilot作为AI模型提供商这通常要求你已在VS Code中登录了GitHub Copilot并且其认证信息可用。执行以下命令# 设置环境变量将以下值替换为你自己的 export TELEGRAM_BOT_TOKEN你的TelegramBotToken export GATEWAY_TOKEN你生成的GatewayToken # 使用Helm进行安装 helm install openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw \ --create-namespace \ --namespace openclaw \ --set secrets.openclawGatewayToken$GATEWAY_TOKEN \ --set secrets.telegramBotToken$TELEGRAM_BOT_TOKEN这条命令完成了以下工作helm install openclaw ...: 安装名为openclaw的Release。oci://...: 从GitHub Container Registry (GHCR) 拉取OCI格式的Chart包。--create-namespace --namespace openclaw: 创建并指定部署到openclaw命名空间。--set secrets...: 通过参数设置两个必需的密钥。执行后Helm会创建一系列K8s资源Namespace、ServiceAccount、Secret、ConfigMap、PersistentVolumeClaim、StatefulSet (OpenClaw)、Deployment (LiteLLM)、Service等。使用以下命令查看Pod状态kubectl get pods -n openclaw -w等待所有Pod的状态变为Running通常需要1-2分钟拉取镜像和初始化。3.3 访问与验证部署成功后你有两种方式与你的AI助手交互。方式一通过Web门户进行初始配置OpenClaw提供了一个Web管理界面用于完成初始的模型绑定、技能加载等设置。# 将服务端口转发到本地 kubectl --namespace openclaw port-forward openclaw-0 18789:18789然后在浏览器中打开http://localhost:18789/?token你的GATEWAY_TOKEN。你将看到OpenClaw的配置界面按照指引完成设置例如选择或配置AI模型。方式二通过Telegram Bot对话一旦Web门户中完成了与AI模型如Claude的绑定你就可以直接在Telegram中搜索你刚才创建的Bot用户名例如my_openclaw_bot并开始给它发送消息。它会通过你配置的AI模型来响应你。方式三实时观看AI操作可选但非常有趣OpenClaw的Chrome浏览器运行在一个虚拟桌面中你可以通过noVNC实时观看AI执行任务的过程这对于调试和理解AI行为非常有帮助。kubectl --namespace openclaw port-forward openclaw-0 6080:6080然后在浏览器中打开http://localhost:6080/vnc.html。你会看到一个虚拟的桌面环境当AI执行网页操作时你可以在这里看到实时画面。3.4 进阶部署使用特定AI模型默认的GitHub Copilot可能无法满足所有需求或者你想使用Claude、GPT-4等模型。以下示例展示如何配置使用Anthropic的Claude模型# 首先你需要拥有Anthropic的API Key export ANTHROPIC_API_KEY你的sk-ant-xxx密钥 helm install openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw \ --create-namespace \ --namespace openclaw \ --set secrets.openclawGatewayToken$GATEWAY_TOKEN \ --set secrets.telegramBotToken$TELEGRAM_BOT_TOKEN \ --set litellm.secrets.provideranthropic \ --set litellm.secrets.apiKey$ANTHROPIC_API_KEY \ --set litellm.modelclaude-3-5-sonnet-20241022关键参数解析litellm.secrets.provideranthropic: 告诉LiteLLM使用Anthropic的API。litellm.secrets.apiKey: 提供Anthropic的API密钥。litellm.model: 指定具体的模型名称这里使用了较新的Claude 3.5 Sonnet。同理如果你想使用OpenAI的模型可以将provider设置为openai并提供相应的apiKey和model如gpt-4o。实操心得在设置litellm.secrets.apiKey时更安全的做法是预先创建一个Kubernetes Secret然后在Helm命令中引用它而不是直接在命令行中传递。例如--set litellm.secrets.apiKeySecretNamemy-ai-secret --set litellm.secrets.apiKeySecretKeyapi-key。这可以避免密钥出现在你的shell历史记录或CI/CD日志中。4. 核心功能深度配置指南基础部署只是开始OpenClaw Chart提供了丰富的配置项来满足不同场景的需求。下面我们深入几个最常用也最重要的功能模块。4.1 启用语义记忆搜索Memory Search记忆搜索是OpenClaw的杀手级功能之一。它允许AI智能体对你工作空间MEMORY.md、memory/目录下的文件、会话记录中的内容进行语义检索。这意味着AI可以“记住”你们之前的对话、你记录的重要笔记或决策并在后续任务中引用它们实现真正的上下文连续性。启用此功能需要一个嵌入模型服务如OpenAI的text-embedding-3-small来为文本生成向量。配置如下helm upgrade openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw \ --namespace openclaw \ --set secrets.openclawGatewayToken$GATEWAY_TOKEN \ --set secrets.telegramBotToken$TELEGRAM_BOT_TOKEN \ --set litellm.secrets.provideranthropic \ --set litellm.secrets.apiKey$ANTHROPIC_API_KEY \ --set litellm.modelclaude-3-5-sonnet-20241022 \ # 以下是记忆搜索相关配置 --set litellm.secrets.embeddingProvideropenai \ --set litellm.secrets.embeddingApiKey$OPENAI_API_KEY \ --set openclaw.memorySearch.modeltext-embedding-3-small这里我们实现了一个混合配置聊天主模型使用Claudeprovider: anthropic而为记忆生成嵌入向量则使用OpenAI的服务embeddingProvider: openai。这种组合是允许且常见的因为嵌入模型通常更便宜且效果足够好。启用后你需要手动触发一次初始索引构建kubectl -n openclaw exec -it openclaw-0 -- openclaw memory index --verbose这个命令会扫描工作空间中的所有Markdown文件调用嵌入模型API生成向量并存储在本地的SQLite数据库中。之后当AI需要搜索记忆时就会查询这个向量数据库。4.2 集成Tailscale实现安全内网访问对于生产环境将服务直接通过Ingress暴露在公网可能带来安全风险。使用Tailscale可以让你在零配置的情况下通过一个安全的虚拟网络直接访问集群内的OpenClaw服务。准备工作在Tailscale官网创建一个可重用且临时的Reusable Ephemeral认证密钥。这个密钥允许Pod在重启后重新加入网络但不会永久占用一个设备名额。# 从Tailscale管理后台获取认证密钥格式如tskey-auth-kxxxx export TAILSCALE_AUTH_KEY你的Tailscale认证密钥 helm upgrade openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw \ --namespace openclaw \ --set secrets.openclawGatewayToken$GATEWAY_TOKEN \ --set secrets.telegramBotToken$TELEGRAM_BOT_TOKEN \ --set tailscale.enabledtrue \ --set secrets.tailscaleAuthKey$TAILSCALE_AUTH_KEY \ --set tailscale.hostnamemy-openclaw部署后Pod例如my-openclaw-0会作为一个设备出现在你的Tailscale网络设备列表中。你可以直接通过http://my-openclaw-0:18789或对应的Tailscale IP来访问OpenClaw网关无需任何端口转发或公网IP。注意事项默认使用内核网络模式需要NET_ADMIN能力。如果你的集群安全策略严格不允许特权提升可以设置tailscale.userspacetrue切换到用户空间网络模式但此时必须同时启用tailscale.serve.enabledtrue才能访问服务。4.3 配置消息平台与访问控制OpenClaw支持多个消息平台。除了Telegram你还可以同时启用Slack、Discord等。以下是一个同时启用Telegram和Slack的示例# 假设你已经有了Slack Bot Token (xoxb-...) 和 App Token (xapp-...) export SLACK_BOT_TOKENxoxb-... export SLACK_APP_TOKENxapp-... helm upgrade openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw \ --namespace openclaw \ --set secrets.openclawGatewayToken$GATEWAY_TOKEN \ --set secrets.telegramBotToken$TELEGRAM_BOT_TOKEN \ --set secrets.slackBotToken$SLACK_BOT_TOKEN \ --set secrets.slackAppToken$SLACK_APP_TOKEN部署后你的AI助手将同时监听Telegram和Slack上的消息。精细化访问控制你可能不希望所有人都能随意私信你的Bot。Chart提供了DM私信访问策略policy: pairing默认新用户首次私信时需要经过一个“配对”流程确认。policy: allowlist只允许白名单中的用户直接私信。例如只允许特定的Telegram用户和Slack成员访问helm upgrade openclaw ... \ --set openclaw.dmAccess.policyallowlist \ --set-json openclaw.dmAccess.allowFrom.telegram[tg:123456789, my_username] \ --set-json openclaw.dmAccess.allowFrom.slack[U0123ABCDEF, U0456GHIJKL]tg:后面跟的是用户的数字ID可通过userinfobot获取后面是用户名。Slack ID是类似U0123ABCDEF的字符串可在用户个人资料中复制。4.4 存储配置与Azure File特殊处理持久化存储默认使用集群的默认StorageClass。对于生产环境你可能需要指定特定的存储类或调整大小# 创建一个自定义的values-prod.yaml文件 persistence: enabled: true storageClass: fast-ssd # 使用高性能SSD存储类 size: 50Gi # 扩大存储空间 accessMode: ReadWriteOnce litellm: persistence: enabled: true storageClass: fast-ssd size: 10Gi accessMode: ReadWriteOnce然后使用-f values-prod.yaml进行安装或升级。针对Azure Kubernetes Service (AKS) 的特殊情况如果使用Azure File (SMB)作为存储后端由于权限问题默认配置会导致容器内非root用户UID 1024的vibe用户无法写入。Chart的仓库中提供了一个修复此问题的自定义StorageClass示例。你需要先应用这个YAML文件创建StorageClass然后在安装时指定使用它# 下载并应用自定义StorageClass kubectl apply -f https://raw.githubusercontent.com/feiskyer/openclaw-kubernetes/main/examples/azurefile-storageclass.yaml # 安装时指定使用这个StorageClass并注意Access Mode需要是ReadWriteMany helm install openclaw ... \ --set persistence.storageClassazurefile-openclaw \ --set persistence.accessModeReadWriteMany \ --set litellm.persistence.storageClassazurefile-openclaw \ --set litellm.persistence.accessModeReadWriteMany这个自定义StorageClass通过mount options设置了正确的UID/GID和文件模式解决了Azure File的POSIX权限兼容性问题。5. 运维、问题排查与进阶技巧部署只是第一步长期的稳定运行和问题解决同样重要。这部分分享一些我在实际运维中积累的经验和常见问题的解决方法。5.1 日常运维命令查看状态# 查看所有相关资源 kubectl -n openclaw get all # 查看Pod日志OpenClaw主容器 kubectl -n openclaw logs -f openclaw-0 -c openclaw # 查看LiteLLM代理日志 kubectl -n openclaw logs -f deployment/openclaw-litellm进入容器调试kubectl -n openclaw exec -it openclaw-0 -- bash进入后你可以检查~/.openclaw/目录下的配置文件、日志文件或者运行openclaw命令行工具。升级与回滚# 升级到最新版本 helm upgrade openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw -n openclaw -f my-values.yaml # 查看发布历史 helm history openclaw -n openclaw # 回滚到上一个版本 helm rollback openclaw -n openclaw卸载谨慎操作会删除所有数据helm uninstall openclaw -n openclaw # 如果想彻底清理包括PVC持久化数据 kubectl delete pvc -n openclaw -l app.kubernetes.io/instanceopenclaw5.2 常见问题与解决方案实录问题一Pod启动失败提示CrashLoopBackOff日志显示权限错误例如在Azure File上。排查检查Pod描述信息kubectl describe pod openclaw-0 -n openclaw关注Events部分和容器状态。如果看到Permission denied错误很可能是存储卷权限问题。解决确认是否使用了Azure File且未使用自定义StorageClass。如果是请按照上文“Azure File特殊处理”部分操作。检查PVC是否成功绑定PVkubectl get pvc -n openclaw。手动进入Pod检查挂载点权限kubectl exec -n openclaw openclaw-0 -- ls -la /home/vibe/。问题二Telegram Bot无响应Pod日志显示网络连接错误如ENETUNREACH。排查这是一个已知问题主要出现在同时支持IPv4和IPv6的双栈集群上。Node.js 22的autoSelectFamily特性会优先尝试IPv6如果IPv6不可达会导致连接api.telegram.org失败。解决Chart已经内置了修复方案设置NODE_OPTIONS和autoSelectFamily: false。确保你没有在自定义的openclaw.json中覆盖掉这些网络配置。如果问题依旧可以尝试在Pod的extraEnv中显式设置extraEnv: - name: NODE_OPTIONS value: --dns-result-orderipv4first问题三AI模型调用失败LiteLLM日志显示401 Unauthorized或Invalid API Key。排查首先检查LiteLLM Pod的日志确认API密钥是否正确传递以及提供商配置是否正确。解决确认litellm.secrets.provider的值拼写正确如anthropic,openai,github_copilot。确认API密钥有效且未过期。对于Anthropic/OpenAI可以在命令行用curl简单测试。如果使用GitHub Copilot确保其认证机制在当前环境下可用例如是否缺少必要的浏览器cookie或令牌文件。检查LiteLLM的Secret是否已正确创建kubectl get secret openclaw-litellm -n openclaw -o yaml注意API Key在Secret中是base64编码的。问题四Web门户或noVNC页面无法打开。排查确认端口转发命令是否正确执行且没有其他进程占用本地相同端口如18789, 6080。检查OpenClaw Pod的readinessProbe和livenessProbe是否通过kubectl describe pod openclaw-0 -n openclaw。查看OpenClaw容器日志看网关服务是否成功启动。解决尝试杀死占用端口的进程或更换本地端口如18889:18789。如果探针失败可能是服务启动较慢可以尝试临时增加initialDelaySeconds通过extraEnv设置相关环境变量影响启动行为但这需要修改Chart values不推荐直接改Pod。最简单的办法是重启Podkubectl delete pod openclaw-0 -n openclawStatefulSet会自动重建一个新的。问题五记忆搜索功能不工作openclaw memory index命令报错。排查首先确认记忆搜索是否已正确启用。检查LiteLLM的Secret中是否设置了embeddingApiKey。然后运行openclaw memory status查看索引状态。解决确保litellm.secrets.embeddingApiKey已设置且有效。运行openclaw memory index --verbose查看详细错误信息。常见错误是嵌入模型API调用失败配额不足、网络问题、模型名称错误。确认openclaw.memorySearch.model指定的嵌入模型名称与你API密钥所属的提供商匹配例如OpenAI的text-embedding-3-smallCohere的embed-english-v3.0等。5.3 性能调优与资源监控OpenClaw在运行浏览器和AI模型推理时可能消耗较多资源。以下是一些调优建议资源限制默认配置请求1Gi内存限制8Gi是一个起点。根据你的使用强度并发对话数、浏览器标签页数量、模型复杂度进行调整。如果频繁发生OOM内存溢出Kill可以适当增加resources.limits.memory。同时也要合理设置CPU限制避免单个Pod占用过多集群资源。resources: requests: memory: 2Gi cpu: 500m limits: memory: 12Gi cpu: 3000m持久化存储性能如果技能库很大或记忆索引文件频繁读写存储IO可能成为瓶颈。考虑使用高性能的StorageClass如本地SSD、云上的高性能块存储。使用节点选择器与亲和性如果你的集群有带GPU的节点可以通过nodeSelector将OpenClaw调度到这些节点上虽然OpenClaw本身不直接使用GPU进行模型推理推理在API提供商端但浏览器的图形渲染可能会受益。更常见的做法是使用反亲和性避免多个OpenClaw实例挤在同一节点上affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - openclaw topologyKey: kubernetes.io/hostname监控为OpenClaw和LiteLLM Pod添加Prometheus监控指标如果Chart支持或自行配置。关注内存使用量、CPU使用率、网络流量以及LiteLLM的请求延迟和错误率。设置告警当内存使用持续超过85%或错误率升高时及时通知。5.4 备份与灾难恢复OpenClaw的核心数据技能、工作空间、记忆索引、配置都存储在持久化卷中。因此备份PVC的数据就是备份了你的AI助手状态。方案一存储卷快照如果你的Kubernetes集群和存储后端支持卷快照VolumeSnapshot这是最推荐的方式。定期为OpenClaw的PVC创建快照。方案二文件级备份进入Pod将/home/vibe/.openclaw目录打包并复制到安全的存储中。kubectl -n openclaw exec openclaw-0 -- tar czf - /home/vibe/.openclaw openclaw-backup-$(date %Y%m%d).tar.gz恢复恢复时如果是全新安装可以先部署一个临时的Pod将备份文件解压到新的PVC中然后再安装OpenClaw并指向这个PVC通过persistence.existingClaim。最后的小技巧如果你在测试或开发环境中想快速重置AI助手状态但又不想丢失所有配置可以尝试只删除~/.openclaw目录下的workspace或memory子目录然后重启Pod。这样会清空工作空间和记忆索引但保留技能和基础配置。当然操作前务必做好备份。