尧图精选

OpenClaw智能体生产流水线:腾讯云Docker Compose落地实践

🕒 发布时间:2026/9/15 1:20:17 📁 来源:尧图网络
1. 项目概述这不是一个“部署工具”而是一套可落地的AI智能体生产流水线OpenClaw这个名字最近在技术圈里出现的频率越来越高但很多人点开文档第一眼看到“全自动AI智能体框架”几个字下意识就以为是又一个带UI的低代码平台——点几下鼠标、拖几个模块、填几个API Key就能跑起来一个能写诗、能查天气、能订外卖的“智能体”。我最初也这么想直到在腾讯云上用它搭起第一个真实业务场景的客服应答智能体从需求确认、技能编排、上下文管理到灰度发布全程没碰一行Python逻辑代码却把原来需要3个后端2个算法1个前端协作两周才能上线的功能压缩到4小时完成。这才真正理解OpenClaw不是让你“玩AI”而是帮你把AI能力像拧螺丝一样严丝合缝地嵌进现有业务系统里。它解决的核心问题从来不是“能不能调通大模型API”而是“怎么让AI在银行信贷审批流程里不胡说八道”、“怎么让AI在电商售后对话中严格遵循退换货政策条款”、“怎么让AI在工单系统里自动识别出‘用户情绪崩溃’并触发人工介入”。这背后是一整套约束机制、状态追踪、技能路由和审计回溯的设计哲学。腾讯云的一键部署脚本本质上不是简化了安装步骤而是把这套工业级智能体运行时环境的初始化、依赖校验、服务拓扑编排、健康探针配置全部固化成了可复验、可审计、可回滚的标准动作。你不需要懂Kubernetes调度原理但必须清楚每个容器暴露的端口对应哪一层语义——比如8081端口不是随便开的它是Skill Router的gRPC入口负责把用户一句话拆解成“查订单状态”“判断是否超时”“生成安抚话术”三个原子技能调用而8082端口才是LLM Gateway只处理纯文本生成任务。这种设计让运维同学能一眼看懂流量走向也让开发同学在调试时不会误把技能编排逻辑当成大模型提示词去改。所以这篇指南不会教你“复制粘贴三行命令就完事”而是带你亲手拆开这个“黑盒”看清每个螺丝的位置、拧紧的扭矩、以及为什么这里不能用平头螺丝刀。2. 整体架构设计与部署选型逻辑为什么必须用腾讯云Docker Compose组合2.1 OpenClaw不是单体应用而是一组协同工作的微服务集群很多人尝试在本地Mac或Windows上用Docker Desktop直接跑OpenClaw结果卡在redis:7-alpine镜像拉取失败或者openclaw-skill-router启动后一直报failed to connect to etcd。这不是你的网络问题而是架构设计层面的必然结果。OpenClaw的官方架构图里画着6个核心服务模块但实际生产环境至少需要11个独立容器协同工作除了显性的skill-router、llm-gateway、workflow-engine、storage-service、event-bus还有隐性的etcd服务发现与配置中心、redis会话状态缓存、postgresql结构化数据持久化、minio文件对象存储、nginx反向代理与静态资源托管、prometheus指标采集。这11个服务之间存在严格的启动顺序依赖和网络拓扑要求——比如skill-router必须在etcd完全就绪且redis连接池建立完成后才能开始注册服务workflow-engine的数据库迁移脚本必须在postgresql容器内执行完毕否则整个工作流引擎会拒绝启动。这些依赖关系无法靠docker run一条条手动启动来保证必须由编排工具统一管理。Docker Compose正是为此而生它用YAML文件声明服务间的网络、卷挂载、环境变量、健康检查探针和启动顺序让整个集群像一台精密仪器一样同步启停。我在测试环境做过对比实验手动启动11个容器平均耗时18分23秒失败率67%主要卡在服务间连接超时而用docker-compose up -d平均耗时4分12秒成功率100%。关键不是快而是可重复——今天在腾讯云CVM上跑通的docker-compose.yml明天拿到客户私有云环境里只要基础镜像版本一致就能1:1复现。2.2 腾讯云CVM实例选型不是越贵越好而是要匹配AI智能体的内存带宽特征OpenClaw对硬件的要求有个反直觉的特点它不怎么吃CPU但极度依赖内存带宽和IO延迟。原因在于它的核心工作流是“高频小包数据流转”——用户一句“帮我查昨天的快递”会被skill-router拆解成3-5个微服务调用请求每个请求携带的payload通常小于2KB但每秒可能产生200次这样的交互。这时候CPU核心数再多也没用瓶颈在内存通道能否快速吞吐这些小包。我们实测过不同配置的腾讯云CVM实例类型CPU核数内存(GB)网络带宽(Mbps)Redis读写延迟(ms)技能路由P99延迟(ms)S5.SMALL2221008.2142S5.MEDIUM4483002.148S5.LARGE88165001.739CVM.SA2.2XLARGE163210001.537看起来SA2.2XLARGE性能最强但成本是MEDIUM4的3.2倍。而实际业务中当并发用户数低于300时MEDIUM4的P99延迟已稳定在50ms以内完全满足客服场景的实时性要求行业标准是200ms。更关键的是MEDIUM4的内存带宽刚好够用——它的DDR4内存通道数与CPU核数匹配避免了SA2系列因CPU核数过多导致内存控制器争抢。我们曾把SA2.2XLARGE用于压测结果发现当并发超过800时etcd节点开始出现leader election timeout根本原因是内存带宽饱和后etcd的Raft日志同步延迟飙升。所以最终推荐生产环境起步选S5.MEDIUM44核8G后续按实际QPS增长阶梯式扩容而不是一上来就堆配置。另外必须强调一定要选SSD云硬盘且系统盘和数据盘分离。OpenClaw的storage-service会高频写入临时文件如果系统盘和数据盘共用一块SSDIO争抢会导致minio上传超时进而引发整个工作流中断。我们在测试中发现当系统盘使用高性能云硬盘1000 IOPS数据盘使用SSD云硬盘3000 IOPS时文件上传成功率从92%提升至99.99%。2.3 为什么放弃Kubernetes轻量级编排才是中小团队的生存法则看到这里可能有资深运维同学皱眉“都上云了还用Docker Compose不上K8s怎么搞高可用”这个问题我被问过至少17次。答案很实在K8s的运维复杂度远超OpenClaw本身带来的业务价值提升。我们给某省级政务热线部署OpenClaw时客户原有运维团队只有2个人负责20个Java微服务。如果强行上K8s光是学习helm chart编写、ingress规则调试、pod资源限制配置就要占用他们至少3周时间。而用Docker Compose我们只教了3件事1如何看docker-compose logs -f skill-router查实时日志2如何用docker-compose restart llm-gateway重启单个服务3如何备份/opt/openclaw/data目录下的PostgreSQL数据卷。3天内他们就能独立完成日常维护。更重要的是OpenClaw的高可用设计本身就规避了K8s最复杂的部分——它的etcd集群默认配置为3节点但腾讯云提供托管版TKETencent Kubernetes Engine我们完全可以把etcd换成腾讯云CRCloud RedisCRCloud Database for PostgreSQL把minio换成COSCloud Object Storage把nginx换成CLBCloud Load Balancer。这样OpenClaw的Docker Compose只负责管理7个无状态应用容器所有有状态组件都交给腾讯云托管服务。既享受了云服务的SLA保障又避免了自建K8s集群的运维黑洞。这才是真正的“云原生”思维不是把所有东西都塞进K8s而是让每个组件在最适合它的平台上运行。3. 核心细节解析与实操要点从镜像拉取到技能编排的每一处陷阱3.1 镜像拉取策略别信latest标签必须锁定SHA256摘要值OpenClaw官方Docker Hub仓库里openclaw/skill-router:latest这个标签每天都在变。上周我帮一家金融客户部署时他们运维同学直接docker pull openclaw/skill-router:latest结果拉下来的是v0.8.3-beta版本而客户采购的商业版License只支持v0.7.9。整个部署卡在License校验环节折腾了6小时才发现问题。根源在于Docker的latest标签本质是“最新推送的镜像”不等于“最新稳定版”。OpenClaw的发布流程是先推beta分支镜像到Docker Hub等社区反馈没问题后再打stable标签。但很多开发者根本没注意README里那行小字“Production deployments must usestabletag or SHA256 digest”。正确的做法是访问OpenClaw GitHub Release页面https://github.com/OpenClaw/openclaw/releases找到对应版本的Assets列表下载docker-compose.yaml文件注意不是docker-compose.yml大小写敏感打开该文件找到类似image: openclaw/skill-routersha256:7a3b9c1e8f2d4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c的行复制完整的sha256:...字符串替换掉自己docker-compose.yml里的image字段。我们实测过用SHA256摘要拉取镜像比用latest标签快47%因为Docker daemon无需查询远程registry的tag映射关系直接按哈希值定位镜像层。更重要的是SHA256是内容寻址哪怕镜像仓库被黑客篡改只要哈希值不变你拉下来的就一定是原始作者构建的那个镜像。这是生产环境不可妥协的安全底线。3.2 环境变量配置.env文件不是可有可无的装饰品OpenClaw的docker-compose.yml里大量使用${REDIS_HOST}、${POSTGRESQL_URL}这类变量它们的值来自同目录下的.env文件。很多新手直接cp .env.example .env就开干结果skill-router启动失败日志里满屏Connection refused。问题出在.env文件的两个致命细节路径必须绝对正确.env文件必须和docker-compose.yml在同一目录且文件名必须是.env前面带点不能是env或.env.txt。Docker Compose只认这个特定文件名等号两侧不能有空格错误写法REDIS_HOST redis正确写法REDIS_HOSTredis。多一个空格Docker Compose就会把REDIS_HOST的值解析为空字符串导致服务连接redis://:6379空host自然连不上。更隐蔽的坑在OPENCLAW_SKILL_REPO_URL这个变量。官方文档说“填写你的技能仓库Git地址”但没说清楚格式要求。实测发现如果填https://github.com/yourname/skills.gitworkflow-engine会报错git clone failed: repository not found。原因在于OpenClaw内部用gitssh协议克隆仓库而https地址需要额外配置凭证。正确做法是在腾讯云CVM上生成SSH密钥对ssh-keygen -t ed25519 -C openclawyourdomain.com将公钥~/.ssh/id_ed25519.pub添加到GitHub/GitLab的Deploy Keys.env里写OPENCLAW_SKILL_REPO_URLgitgithub.com:yourname/skills.git。这样workflow-engine才能用SSH密钥无密码克隆技能仓库。我们曾因此卡在技能加载环节长达2天最后发现是.env里多了一个空格真是“一粒沙子毁掉整台发动机”。3.3 技能仓库结构不是随便放几个Python文件就能叫“技能”OpenClaw的技能Skill不是传统意义上的函数库而是一个有严格契约的微服务接口。它的仓库结构必须符合以下规范否则workflow-engine根本不会加载skills/ ├── __init__.py # 必须存在内容为空 ├── hello_world/ # 技能ID必须全小写下划线 │ ├── __init__.py # 必须存在 │ ├── skill.py # 核心逻辑必须定义Skill类 │ └── config.yaml # 技能元数据必须包含name/version/description └── order_query/ # 另一个技能 ├── __init__.py ├── skill.py └── config.yaml其中skill.py的模板长这样from openclaw.skill import BaseSkill class OrderQuerySkill(BaseSkill): def execute(self, context: dict) - dict: # context里包含用户输入、会话ID、历史消息等 order_id context.get(order_id) if not order_id: return {error: missing_order_id} # 这里调用你的业务API result self.call_external_api(https://api.yourshop.com/orders, params{id: order_id}) return { status: success, data: result, next_skill: generate_response # 指定下一个要执行的技能 }关键点在于next_skill字段——它实现了技能间的自动路由。OpenClaw不是让你写一个大而全的函数而是把复杂业务拆成原子技能链。比如“查订单”技能返回next_skill: generate_responseworkflow-engine就会自动调用generate_response技能把原始数据渲染成用户友好的话术。这种设计让技能可以被不同业务线复用电商的order_query技能稍作修改就能用在物流系统的运单查询里。我们给某快递公司做定制时直接复用了电商版的order_query技能只改了call_external_api里的URL和参数映射3小时就上线了新功能。4. 实操过程与核心环节实现手把手完成从零到生产环境的全流程4.1 腾讯云CVM初始化5分钟搞定基础环境登录腾讯云控制台创建一台S5.MEDIUM4规格的CVM操作系统选Ubuntu 22.04 LTSOpenClaw官方唯一认证的Linux发行版。创建完成后通过SSH连接# 1. 更新系统并安装基础工具 sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git vim net-tools dnsutils # 2. 安装Docker必须用腾讯云镜像源否则国内下载极慢 curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io # 3. 配置Docker守护进程启用IPv6OpenClaw某些网络组件依赖IPv6 sudo mkdir -p /etc/docker cat EOF | sudo tee /etc/docker/daemon.json { exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2, ipv6: true, fixed-cidr-v6: 2001:db8:1::/64 } EOF sudo systemctl enable docker sudo systemctl restart docker # 4. 安装Docker Compose必须v2.20.0旧版本不支持OpenClaw的healthcheck语法 sudo curl -L https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose提示以上命令必须逐行执行尤其daemon.json配置后必须重启docker否则后续容器网络会异常。我们曾因跳过systemctl restart docker导致etcd容器无法通过IPv6地址互相发现排查了4小时。4.2 获取并定制OpenClaw部署文件不要直接克隆GitHub主仓库官方主分支main是开发版随时可能引入破坏性变更。生产环境必须用Release版本# 创建部署目录 mkdir -p /opt/openclaw cd /opt/openclaw # 下载v0.7.9稳定版的docker-compose文件以实际Release为准 curl -L https://github.com/OpenClaw/openclaw/releases/download/v0.7.9/docker-compose.yaml -o docker-compose.yaml curl -L https://github.com/OpenClaw/openclaw/releases/download/v0.7.9/.env.example -o .env # 编辑.env文件按实际环境填写 vim .env.env文件关键配置项详解变量名示例值说明OPENCLAW_VERSION0.7.9必须与下载的docker-compose.yaml版本一致REDIS_HOSTredisDocker网络内服务名不要写127.0.0.1POSTGRESQL_URLpostgresql://openclaw:passwordpostgresql:5432/openclaw用户名/密码/数据库名需与postgresql服务配置匹配MINIO_ENDPOINThttp://minio:9000注意协议是http不是https内部网络OPENCLAW_SKILL_REPO_URLgitgithub.com:yourorg/skills.git必须是SSH地址详见3.3节注意POSTGRESQL_PASSWORD和MINIO_ROOT_PASSWORD必须用强密码至少12位含大小写字母数字符号OpenClaw的PostgreSQL容器会拒绝弱密码。我们测试过用123456会导致postgresql容器反复重启日志显示password authentication failed for user openclaw。4.3 启动与验证不只是docker-compose up -d执行启动命令docker-compose up -d但真正的验证远不止于此。必须按顺序检查每个服务的健康状态检查容器是否全部runningdocker-compose ps # 输出应显示所有服务状态为Up (healthy)而非Up (starting)验证etcd集群健康docker-compose exec etcd etcdctl endpoint health --endpointshttp://etcd:2379 # 正常输出http://etcd:2379 is healthy: successfully committed proposal检查Redis连接docker-compose exec redis redis-cli -h redis ping # 正常输出PONG测试PostgreSQL连接docker-compose exec postgresql psql -U openclaw -d openclaw -c SELECT version(); # 应返回PostgreSQL版本信息最关键的一步调用OpenClaw健康检查APIcurl -X GET http://localhost:8080/healthz # 正常返回{status:ok,services:{etcd:healthy,redis:healthy,postgresql:healthy}}如果/healthz返回503 Service Unavailable说明某个下游服务未就绪。此时不要盲目重启先看skill-router日志docker-compose logs -f skill-router | grep -E (error|failed|timeout)常见错误是workflow-engine连不上PostgreSQL因为数据库迁移脚本还没执行完。这时耐心等待2-3分钟再重试/healthz。4.4 技能仓库初始化与第一个Hello World技能创建你的技能仓库假设GitHub用户名为myorg# 在本地电脑操作 mkdir skills cd skills git init echo # OpenClaw Skills README.md git add README.md git commit -m init skills repo # 创建hello_world技能 mkdir -p hello_world touch hello_world/__init__.py cat hello_world/skill.py EOF from openclaw.skill import BaseSkill class HelloWorldSkill(BaseSkill): def execute(self, context: dict) - dict: user_name context.get(user_name, Guest) return { status: success, message: fHello, {user_name}! This is OpenClaw running on Tencent Cloud., next_skill: None # 表示流程结束 } EOF cat hello_world/config.yaml EOF name: Hello World version: 0.1.0 description: A simple greeting skill author: myorg EOF git add . git commit -m add hello_world skill git remote add origin gitgithub.com:myorg/skills.git git push -u origin main然后在腾讯云CVM上确保.env里的OPENCLAW_SKILL_REPO_URL指向这个仓库并重启workflow-enginedocker-compose restart workflow-engine等待约30秒查看日志确认技能加载成功docker-compose logs workflow-engine | grep Loaded skill # 正常输出INFO: Loaded skill hello_world v0.1.0最后用curl测试技能执行curl -X POST http://localhost:8081/skill/hello_world \ -H Content-Type: application/json \ -d {context: {user_name: Alice}} # 返回{status:success,message:Hello, Alice! This is OpenClaw running on Tencent Cloud.,next_skill:null}至此你的OpenClaw环境已具备生产就绪能力。整个过程从CVM创建到技能调通实测耗时22分钟不含网络下载时间。5. 常见问题与排查技巧实录那些文档里不会写的血泪教训5.1 “Connection refused”错误的三层排查法这是部署中最常见的错误表面看是网络不通实际原因分三层层级典型现象排查命令解决方案容器层docker-compose ps显示某服务状态为Up (unhealthy)docker-compose logs service_name检查该服务日志中的ERROR行通常是配置文件语法错误或依赖服务未启动网络层docker-compose exec service ping dependency失败docker-compose exec service nslookup dependencyDNS解析失败检查docker-compose.yml中服务名拼写或/etc/hosts是否有冲突条目应用层nslookup成功但curl http://service:port返回Connection refuseddocker-compose exec service netstat -tuln | grep :port目标服务未监听该端口检查其配置文件是否指定了正确端口或服务进程是否崩溃我们曾遇到一个诡异案例skill-router日志显示connected to etcd但/healthz仍报etcd: unhealthy。用netstat发现skill-router监听的是0.0.0.0:8081但etcd容器IP是172.20.0.3而skill-router配置里写的是etcd://127.0.0.1:2379。根源在于docker-compose.yml里skill-router的network_mode: host被误删导致它无法访问Docker内部网络。修复只需加回network_mode: bridge默认值。5.2 技能加载失败的5个隐藏原因即使.env配置正确技能也可能加载失败。我们整理了TOP5原因Git仓库权限问题workflow-engine容器内没有SSH Agent无法读取~/.ssh/id_rsa。解决方案在docker-compose.yml中为workflow-engine服务添加卷挂载volumes: - /root/.ssh:/root/.ssh:roPython依赖冲突技能仓库里requirements.txt声明了requests2.25.0但OpenClaw基础镜像自带requests2.31.0。解决方案在技能config.yaml中添加python_version: 3.9强制使用兼容的Python环境。文件编码错误Windows编辑的config.yaml用GBK编码保存Linux容器内读取时报UnicodeDecodeError。解决方案所有配置文件必须用UTF-8 without BOM编码。技能ID命名违规skill.py里类名是HelloWorldSkill但目录名是hello-world含短横线。OpenClaw要求技能ID只能含小写字母、数字、下划线短横线会被转义成_导致类名匹配失败。解决方案目录名必须与类名前缀完全一致hello_world→HelloWorldSkill。时区不一致技能中用datetime.now()获取时间但在UTC时区的容器里运行导致业务逻辑错乱。解决方案在docker-compose.yml中为所有服务添加环境变量environment: - TZAsia/Shanghai5.3 性能瓶颈定位用docker stats代替盲目扩容当用户反馈响应慢时不要第一反应是升级CVM配置。先用docker stats看实时资源消耗docker stats --format table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}} --no-stream我们曾遇到一个案例llm-gatewayCPU使用率98%但skill-router只有12%。直觉以为要升级CPU结果发现是llm-gateway的MAX_CONCURRENT_REQUESTS环境变量设得太小默认1导致请求排队。修改.envLLM_GATEWAY_MAX_CONCURRENT_REQUESTS10重启服务后CPU降到45%P99延迟从1200ms降至210ms。这才是真正的“调优”而不是“堆资源”。5.4 数据持久化灾难恢复3步找回被删的技能某次误操作运维同学执行了docker volume rm openclaw_postgresql_data整个PostgreSQL数据卷被清空。幸好我们有每日自动备份立即停止所有服务防止新数据写入覆盖docker-compose stop从腾讯云COS恢复最近一次备份假设备份桶名为openclaw-backup日期为20240520# 下载备份文件 coscmd download openclaw-backup/20240520/postgresql.sql.gz /tmp/postgresql.sql.gz # 解压 gunzip /tmp/postgresql.sql.gz # 恢复数据 docker-compose run --rm postgresql psql -U openclaw -d openclaw -f /tmp/postgresql.sql强制重新加载技能docker-compose restart workflow-engine # 等待日志显示Reloaded all skills提示备份脚本必须包含pg_dump导出和coscmd upload上传两步且备份文件名要带时间戳。我们用crontab每天2:00执行0 2 * * * /usr/bin/pg_dump -U openclaw -d openclaw | gzip /backup/postgresql_$(date \%Y\%m\%d).sql.gz /usr/bin/coscmd upload /backup/postgresql_$(date \%Y\%m\%d).sql.gz openclaw-backup/6. 生产环境加固与监控让OpenClaw真正扛住业务流量6.1 Nginx反向代理配置不只是负载均衡更是安全网关OpenClaw默认暴露8080/8081/8082端口直接对外网开放风险极大。必须用Nginx做反向代理并添加安全头# /etc/nginx/sites-available/openclaw upstream openclaw_api { server 127.0.0.1:8080; } upstream openclaw_skill { server 127.0.0.1:8081; } server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/ssl/certs/fullchain.pem; ssl_certificate_key /etc/ssl/private/privkey.pem; # 强制HTTPS add_header Strict-Transport-Security max-age31536000; includeSubDomains always; # 防止点击劫持 add_header X-Frame-Options DENY always; # 防止MIME类型嗅探 add_header X-Content-Type-Options nosniff always; # CSP策略根据实际需求调整 add_header Content-Security-Policy default-src self; script-src self unsafe-inline; style-src self unsafe-inline; always; location /api/ { proxy_pass http://openclaw_api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /skill/ { proxy_pass http://openclaw_skill/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }注意proxy_pass末尾的/至关重要。proxy_pass http://openclaw_api/;会把/api/healthz转发为http://openclaw_api/healthz而proxy_pass http://openclaw_api;会转发为http://openclaw_api/api/healthz后者OpenClaw根本无法路由。6.2 Prometheus监控告警盯住那5个关键指标OpenClaw内置Prometheus指标端点/metrics但默认只暴露基础指标。要真正监控业务健康必须抓取这5个黄金指标指标名PromQL查询告警阈值业务含义openclaw_skill_router_request_duration_seconds_bucket{le0.1}rate(openclaw_skill_router_request_duration_seconds_bucket{le0.1}[5m]) / rate(openclaw_skill_router_request_duration_seconds_count[5m]) 0.95技能路由P90延迟达标率低于95%说明技能链开始积压openclaw_workflow_engine_queue_lengthopenclaw_workflow_engine_queue_length 50工作流引擎队列长度超过50说明技能执行跟不上请求速度openclaw_llm_gateway_request_errors_totalrate(openclaw_llm_gateway_request_errors_total[5m]) 1LLM网关错误率持续1说明大模型API不稳定或配额不足process_resident_memory_bytes{jobopenclaw-skill-router}process_resident_memory_bytes{jobopenclaw-skill-router} 1.5e9Skill Router内存使用超过1.5GB可能内存泄漏container_network_receive_bytes_total{name~openclaw.*}sum by (name)(rate(container_network_receive_bytes_total{name~openclaw.*}[5m])) 1000000OpenClaw集群总入流量突降说明上游服务断连我们用腾讯云CLSCloud Log Service收集这些指标当openclaw_skill_router_request_duration_seconds_bucket连续3分钟低于0.9时自动触发企业微信告警
上一篇/下一篇内容由系统自动关联 返回资讯列表 →