首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于腾讯云的OpenClaw企业级部署实践:CVM+TDSQL+微信Bot全链路打通

基于腾讯云的OpenClaw企业级部署实践:CVM+TDSQL+微信Bot全链路打通

原创
作者头像
用户12284505
发布2026-03-18 17:46:29
发布2026-03-18 17:46:29
3050
举报

基于腾讯云的OpenClaw企业级部署实践:CVM+TDSQL+微信Bot全链路打通

背景

OpenClaw("龙虾")是2026年增长最快的开源AI Agent项目,100天GitHub星标28.5万。腾讯已经推出了基于OpenClaw的"龙虾特种部队"产品套件并接入微信生态。

但对于企业开发者来说,直接在本地跑OpenClaw存在明显短板:单点故障、安全薄弱、无法多人协作。本文基于腾讯云基础设施,给出一套生产可用的部署方案——用CVM跑Agent Runtime,TDSQL-C存储记忆数据,COS存放Skill资产,企业微信Bot作为交互入口,最终实现一套安全、高可用、可观测的企业级AI Agent系统。

本文适用对象: 有腾讯云使用经验的后端/运维工程师,需要为团队部署一套内部AI Agent平台。


整体架构

代码语言:javascript
复制
                        企业微信用户
                            │
                            ▼
┌──────────────────────────────────────────────────────┐
│                   企业微信Bot回调                      │
│               (HTTPS + 消息加解密)                     │
└─────────────────────────┬────────────────────────────┘
                          │
                          ▼
┌──────────────────────────────────────────────────────┐
│              CLB (负载均衡)                            │
│          四层TCP转发 / 健康检查                        │
└───────────┬─────────────┬────────────────────────────┘
            │             │
            ▼             ▼
     ┌────────────┐ ┌────────────┐
     │  CVM实例1   │ │  CVM实例2   │    Agent Runtime
     │  (主节点)   │ │  (备节点)   │    Node.js 20
     └──────┬─────┘ └──────┬─────┘
            │              │
            ▼              ▼
┌──────────────────────────────────────────────────────┐
│                   基础设施层                           │
│                                                       │
│  ┌──────────┐  ┌──────────┐  ┌───────┐  ┌────────┐  │
│  │ TDSQL-C  │  │  Redis   │  │  COS  │  │  CLS   │  │
│  │(PostgreSQL│  │ (会话缓存│  │(Skill │  │(日志采集│  │
│  │ +pgvector)│  │  +队列)  │  │ 资产) │  │ +告警) │  │
│  └──────────┘  └──────────┘  └───────┘  └────────┘  │
└──────────────────────────────────────────────────────┘

腾讯云产品选型说明

模块

腾讯云产品

选型理由

计算

CVM S6(2核4G起步)

稳定、弹性,可按需升配

数据库

TDSQL-C PostgreSQL版

Serverless弹性计费,原生支持pgvector扩展

缓存/队列

云数据库Redis 7.0

会话缓存 + BullMQ消息队列复用

对象存储

COS

存储Skill包、配图、导出文件

负载均衡

CLB

双节点高可用,自动健康检查

日志

CLS(日志服务)

结构化日志采集 + 告警

密钥管理

SSM(凭据管家)

存储API Key,不落盘

通道

企业微信Bot API

腾讯生态原生集成


一、基础设施搭建

1.1 创建CVM实例

通过腾讯云控制台或CLI创建两台CVM:

代码语言:javascript
复制
# 使用腾讯云CLI创建实例(也可在控制台操作)
# 机型:SA3.MEDIUM4(2核4G),系统盘50G SSD
tccli cvm RunInstances \
  --InstanceType SA3.MEDIUM4 \
  --ImageId img-ubuntu2204 \
  --SystemDisk '{"DiskType":"CLOUD_BSSD","DiskSize":50}' \
  --InstanceCount 2 \
  --InstanceName "openclaw-agent" \
  --SecurityGroupIds '["sg-xxxxxx"]' \
  --VpcId vpc-xxxxxx \
  --SubnetId subnet-xxxxxx

安全组规则(最小化开放):

方向

协议

端口

来源

说明

入站

TCP

18789

CLB内网IP

Agent服务端口

入站

TCP

22

运维堡垒机IP

SSH管理

出站

TCP

443

0.0.0.0/0

调用模型API

出站

TCP

5432

TDSQL-C安全组

数据库连接

出站

TCP

6379

Redis安全组

Redis连接

不要开放18789端口到公网。 所有外部流量通过CLB进来。

1.2 创建TDSQL-C PostgreSQL实例

代码语言:javascript
复制
# 控制台操作更方便,这里列出关键配置
# 产品:TDSQL-C PostgreSQL版 Serverless
# 版本:PostgreSQL 16
# 计费:Serverless按量(自动暂停,不用不收钱)
# 网络:与CVM同VPC同子网

创建完成后,登录实例开启pgvector扩展:

代码语言:javascript
复制
-- 连接TDSQL-C
psql -h <tdsql-c-host> -U root -d openclaw

-- 启用pgvector扩展
CREATE EXTENSION IF NOT EXISTS vector;

-- 创建记忆表
CREATE TABLE short_term_memory (
  id BIGSERIAL PRIMARY KEY,
  conversation_id VARCHAR(64) NOT NULL,
  role VARCHAR(16) NOT NULL,
  content TEXT NOT NULL,
  tool_calls JSONB,
  created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_stm_conv ON short_term_memory(conversation_id, created_at DESC);

CREATE TABLE mid_term_memory (
  id BIGSERIAL PRIMARY KEY,
  conversation_id VARCHAR(64) NOT NULL,
  user_id VARCHAR(64) NOT NULL,
  summary TEXT NOT NULL,
  key_facts JSONB,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  expires_at TIMESTAMPTZ
);
CREATE INDEX idx_mtm_user ON mid_term_memory(user_id, created_at DESC);

CREATE TABLE long_term_memory (
  id BIGSERIAL PRIMARY KEY,
  user_id VARCHAR(64) NOT NULL,
  content TEXT NOT NULL,
  category VARCHAR(32),
  embedding vector(1536) NOT NULL,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_ltm_vec ON long_term_memory
  USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);

-- 记忆自动过期清理(中期记忆)
CREATE OR REPLACE FUNCTION cleanup_expired_memory()
RETURNS void AS $$
BEGIN
  DELETE FROM mid_term_memory WHERE expires_at < NOW();
  DELETE FROM short_term_memory
    WHERE created_at < NOW() - INTERVAL '7 days';
END;
$$ LANGUAGE plpgsql;

TDSQL-C Serverless的优势:空闲时自动暂停计费,对于内部Agent这种非7×24高并发的场景,成本比固定规格实例低60-70%。

1.3 创建Redis实例

代码语言:javascript
复制
# 产品:云数据库Redis 7.0 标准版
# 规格:1G内存(初期够用,可在线扩容)
# 网络:与CVM同VPC

Redis承担两个角色:

  • • BullMQ消息队列的存储后端
  • • 会话状态缓存(比放内存可靠,支持多实例共享)

二、Agent服务部署

2.1 环境初始化

SSH登录两台CVM,执行以下初始化:

代码语言:javascript
复制
# 安装Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# 安装编译依赖(pgvector的hnswlib需要)
sudo apt-get install -y cmake build-essential

# 安装OpenClaw
npm install -g openclaw

# 创建工作目录
mkdir -p /opt/openclaw && cd /opt/openclaw
openclaw init

2.2 配置文件

核心改造在配置文件。与本地部署最大的区别是:存储指向云服务、密钥从SSM拉取、监听地址绑定内网。

代码语言:javascript
复制
# /opt/openclaw/config.yaml

gateway:
  port: 18789
  host: "0.0.0.0"          # 绑定所有网卡(安全组已限制来源)

models:
  default: "claude"
  timeout: 30000
  retry: 2
  providers:
    claude:
      # API Key从腾讯云凭据管家拉取,不写明文
      api_key: "${SSM:openclaw/claude-api-key}"
      model: "claude-sonnet-4-6"
    # 备用模型:混元(腾讯自研,内网调用延迟低)
    hunyuan:
      api_key: "${SSM:openclaw/hunyuan-api-key}"
      model: "hunyuan-pro"
      endpoint: "https://hunyuan.tencentcloudapi.com"

# 记忆系统指向TDSQL-C
memory:
  storage: "postgresql"
  postgresql:
    host: "${SSM:openclaw/tdsql-host}"
    port: 5432
    database: "openclaw"
    user: "root"
    password: "${SSM:openclaw/tdsql-password}"
    ssl: true

# 会话和队列指向Redis
session:
  storage: "redis"
  redis:
    host: "${SSM:openclaw/redis-host}"
    port: 6379
    password: "${SSM:openclaw/redis-password}"

queue:
  type: "bullmq"
  redis:
    host: "${SSM:openclaw/redis-host}"
    port: 6379
    password: "${SSM:openclaw/redis-password}"
  concurrency: 3
  limiter:
    max: 20
    duration: 60000

# 企业微信通道
channels:
  wecom:
    enabled: true
    corp_id: "${SSM:openclaw/wecom-corp-id}"
    agent_id: "${SSM:openclaw/wecom-agent-id}"
    secret: "${SSM:openclaw/wecom-secret}"
    token: "${SSM:openclaw/wecom-token}"
    encoding_aes_key: "${SSM:openclaw/wecom-aes-key}"

# Skill资产存储到COS
skills:
  storage: "cos"
  cos:
    bucket: "openclaw-skills-xxxxxxx"
    region: "ap-guangzhou"
    secret_id: "${SSM:openclaw/cos-secret-id}"
    secret_key: "${SSM:openclaw/cos-secret-key}"

# 安全配置
security:
  allowed_commands: ["ls", "cat", "grep", "python3", "node"]
  blocked_commands: ["rm -rf", "sudo", "chmod 777", "curl", "wget"]
  allowed_paths: ["/opt/openclaw/workspace", "/tmp/openclaw"]
  blocked_paths: ["/etc", "/root", "/home"]
  require_approval: ["file_write", "shell_exec", "http_request"]

2.3 将密钥写入SSM凭据管家

代码语言:javascript
复制
# 使用腾讯云CLI写入密钥(只需执行一次)
tccli ssm CreateSecret --SecretName "openclaw/claude-api-key" \
  --SecretString "sk-ant-api03-xxxxxx"

tccli ssm CreateSecret --SecretName "openclaw/tdsql-host" \
  --SecretString "tdsqlc-xxxxxx.sql.tencentcdb.com"

tccli ssm CreateSecret --SecretName "openclaw/tdsql-password" \
  --SecretString "your-db-password"

tccli ssm CreateSecret --SecretName "openclaw/redis-host" \
  --SecretString "redis-xxxxxx.redis.tencentcdb.com"

# ... 其他密钥同理

这样config.yaml里没有任何明文密钥,可以安全地纳入版本管理。

2.4 使用systemd管理进程

代码语言:javascript
复制
# /etc/systemd/system/openclaw.service
[Unit]
Description=OpenClaw AI Agent
After=network.target

[Service]
Type=simple
User=openclaw
WorkingDirectory=/opt/openclaw
ExecStart=/usr/bin/node /usr/lib/node_modules/openclaw/bin/openclaw start --config /opt/openclaw/config.yaml
Restart=always
RestartSec=5
Environment=NODE_ENV=production

# 资源限制
LimitNOFILE=65536
MemoryMax=1G
CPUQuota=150%

# 日志输出到CLS采集路径
StandardOutput=append:/var/log/openclaw/agent.log
StandardError=append:/var/log/openclaw/agent-error.log

[Install]
WantedBy=multi-user.target
代码语言:javascript
复制
# 创建运行用户
sudo useradd -r -s /sbin/nologin openclaw
sudo chown -R openclaw:openclaw /opt/openclaw

# 启动服务
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

# 检查状态
sudo systemctl status openclaw
curl http://localhost:18789/health

两台CVM都执行以上操作。


三、企业微信Bot对接

3.1 创建企业微信应用

  1. 1. 登录企业微信管理后台 → 应用管理 → 创建应用
  2. 2. 记录 AgentIdSecret
  3. 3. 设置"接收消息"的URL:https://your-domain.com/webhook/wecom
  4. 4. 记录 TokenEncodingAESKey

3.2 配置CLB

代码语言:javascript
复制
# 创建CLB实例(内网型,仅VPC内可访问)
# 如果需要接收企业微信回调,需要公网CLB + HTTPS证书

# 监听器配置
# 前端:HTTPS:443(绑定SSL证书)
# 后端:TCP:18789(两台CVM)
# 健康检查:HTTP GET /health,间隔10秒,阈值3次

CLB的健康检查会自动摘除故障节点。如果CVM-1挂了,流量自动切到CVM-2,实现基本的高可用。

3.3 配置回调域名

将CLB的公网IP绑定域名(如 agent.yourcompany.com),在企业微信后台填入回调URL:

代码语言:javascript
复制
https://agent.yourcompany.com/webhook/wecom

点击验证,通过后在企业微信里给应用发消息测试。


四、日志与监控

4.1 接入CLS日志服务

代码语言:javascript
复制
# 安装腾讯云日志采集Agent(LogListener)
wget https://mirrors.tencent.com/install/cls/loglistener-linux-x64.tar.gz
tar -zxvf loglistener-linux-x64.tar.gz
cd loglistener && sudo ./install.sh

# 配置采集路径
# 在CLS控制台创建日志主题,配置采集规则:
# 采集路径:/var/log/openclaw/*.log
# 解析模式:JSON(OpenClaw日志默认JSON格式)

4.2 配置告警规则

在CLS控制台创建以下告警:

告警名称

触发条件

通知方式

Agent进程异常

level:ERROR 5分钟内 > 10条

企业微信群机器人

模型API超时

event:model_timeout 5分钟内 > 5条

企业微信 + 短信

内存超限

memory_usage > 900MB

企业微信

队列堆积

queue_depth > 50

企业微信

4.3 关键监控指标

建议在Grafana(或云监控Dashboard)中配置以下面板:

代码语言:javascript
复制
系统指标:
├── CVM CPU/内存/磁盘使用率
├── TDSQL-C 连接数/QPS/慢查询
├── Redis 内存使用/命中率/连接数
└── CLB 活跃连接数/健康后端数

业务指标(从CLS日志聚合):
├── 日消息处理量
├── 模型调用延迟(P50/P99)
├── 工具调用成功率
├── 记忆检索命中率
└── 月度Token消耗及成本

五、成本估算

以广州地域为例,按中等使用强度(日均处理200-500条消息)估算:

资源

规格

月费用

CVM × 2

SA3.MEDIUM4(2核4G)包月

¥280

TDSQL-C

Serverless PostgreSQL

¥50-150(按量)

Redis

1G标准版

¥138

CLB

公网实例 + 带宽

¥100

COS

5GB存储 + 流量

¥5

CLS

日志存储1GB/月

¥10

SSL证书

免费DV证书

¥0

腾讯云合计

¥600-700/月

模型API(Claude)

日均300条

¥400-800/月

总计

¥1,000-1,500/月

对比:一个处理同等工作量的外包人员月成本约¥8,000-12,000。

如果使用腾讯混元大模型替代Claude作为主力,模型API成本可以进一步降低50-70%(内网调用,无出境流量费),且数据不出腾讯云网络,合规性更好。


六、生产环境Checklist

部署前过一遍这个清单:

#

检查项

状态

1

CVM安全组仅开放必要端口

2

数据库密码/API Key全部通过SSM管理

3

TDSQL-C开启自动备份

4

CLB健康检查已配置并验证

5

企业微信回调URL使用HTTPS

6

CLS日志采集和告警已配置

7

systemd配置了自动重启和资源限制

8

OpenClaw security配置已加固

9

敏感操作(文件写入/命令执行)需要人工审批

10

记忆表过期清理定时任务已配置


总结

本文介绍了基于腾讯云的OpenClaw企业级部署方案,核心改造点是:

  1. 1. 计算层:双CVM + CLB实现基本高可用
  2. 2. 存储层:TDSQL-C替代本地文件,支持pgvector语义检索
  3. 3. 缓存层:Redis统一承载会话缓存和消息队列
  4. 4. 安全层:SSM密钥管理 + 安全组网络隔离 + 应用层权限控制
  5. 5. 通道层:企业微信Bot原生对接,天然融入办公场景
  6. 6. 可观测层:CLS日志 + 告警,关键指标可视化

整套方案月成本约1000-1500元,2人天可完成部署,适合中小团队快速搭建内部AI Agent能力。

如果对方案有疑问或者有更好的实践经验,欢迎在评论区交流。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于腾讯云的OpenClaw企业级部署实践:CVM+TDSQL+微信Bot全链路打通
    • 背景
    • 整体架构
      • 腾讯云产品选型说明
    • 一、基础设施搭建
      • 1.1 创建CVM实例
      • 1.2 创建TDSQL-C PostgreSQL实例
      • 1.3 创建Redis实例
    • 二、Agent服务部署
      • 2.1 环境初始化
      • 2.2 配置文件
      • 2.3 将密钥写入SSM凭据管家
      • 2.4 使用systemd管理进程
    • 三、企业微信Bot对接
      • 3.1 创建企业微信应用
      • 3.2 配置CLB
      • 3.3 配置回调域名
    • 四、日志与监控
      • 4.1 接入CLS日志服务
      • 4.2 配置告警规则
      • 4.3 关键监控指标
    • 五、成本估算
    • 六、生产环境Checklist
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档