OpenClaw的无尽折腾:一个真实的技术"踩坑"日记

2026年3月12日 📅


开篇:为什么我要跟OpenClaw较劲? 🤔

网上说OpenClaw可以部署在Mac mini上,既能本地运行,又能操作实体浏览器帮自己干活,听起来简直是生产力神器!

但仔细一算账:Mac mini要花好几千买,还得专门找个地方存放,更要7×24小时运行——这性价比对我来说实在不高。况且这种本地部署的范式,很可能只是一种过渡方案。

那怎么办?我想到办公室现成的Windows电脑,结果一查,Windows用户普遍”不推荐”——安全机制太严格,安装过程太折腾。最后只剩下一个选择:部署到云服务器。 ☁️


第一章:服务器选购——预算与体验的拉锯战 💰

第一次:贪便宜的教训 😅

阿里云轻量服务器有一键部署,美国弗吉尼亚的机子一年只要99块,配上7块9的Coding Play Lite订阅,这价格真香。结果延迟高到让人崩溃!发条消息要等半天,这还叫智能助手?

问题很清晰:订阅在国内阿里云,服务器却在美国,跨洋延迟根本没法忍。好在有”5天无理由退订”,果断退货。

第二次:国内的尴尬 😓

99块是新用户专享,国内2核2G的服务器月租要好几百。最后找到上海一台2核4G,年付199,访问速度确实快了。新问题冒出来:这台机子连不上外网,想爬的数据全爬不到,直接变砖。

第三次:终于选对 ✓

继续退订,开始对比东京、首尔、新加坡的延迟。让AI测了下北京到这三个节点的延迟,东京和首尔差不多,首尔略胜一筹,就它了。


第二章:腾讯云的”九九八十一关” 🔧

腾讯云部署要通过多层端口转发才能连上Web UI——安全性确实提高了,但难度也增加了不少。好在折腾一番后终于部署成功。

端口转发是什么? 打个比方,就像公司前台把外来电话转接到对应部门的分机,避免OpenClaw的端口直接暴露在公网上。


第三章:双机器人——噩梦的开始 🤖💥

腾讯云界面可以直接配置钉钉和飞书,我顺手给OpenClaw加了两个机器人。一开始用得挺顺,但问题很快浮现:两个机器人同时处理任务时,必有一个卡住不动。钉钉是重灾区,十次卡住九次是它,只能重启OpenClaw解决。

起初以为是配置问题,重启确实能恢复。但某天晚上,重启也不灵了,只能重装镜像。重装意味着数据全丢,这让我非常谨慎,不敢轻易重装。于是大量求助AI辅助修复,但多数时候修不好,只能熬夜重装。官方说五分钟搞定,实际上至少要花一小时。


第四章:排查——与”灵异事件”的较量 🔍👻

为了根治双机器人卡顿,我开始翻日志找线索,结果有了重大发现:钉钉居然在调用飞书的接口!有一次问钉钉机器人”你有什么权限”,它回答”我有飞书的权限”。通道串了,这是根本问题。

第一次尝试:AI隔离——失败 ❌

网上说可以让两个机器人”记住”各自的分工,我照做了,完全没用。问OpenClaw能不能物理隔离,它说可以,但问题依旧。

第二次尝试:分离Agent和Workspace ⚙️

找到新方案:给两个机器人分配独立的工作空间(workspace)和Agent。云端服务器纯命令行操作,改JSON文件得用光标慢慢拖,极其痛苦。本来不想这么干,但连续几天晚上都卡死,实在受不了了。

咬牙给钉钉单独配了Agent和workspace,终于消停了一天。好景不长,再次卡住。进Web UI一看会话列表,傻眼了:钉钉、飞书加一个主会话,按理说最多三个,实际却有五个!仔细比对发现,同一条钉钉消息,PC端发的和手机端发的,居然进了不同的会话。


第五章:真相大白 💡

核心问题:钉钉把PC端和手机端识别成了两个不同的”客户端”,消息被拆散了。查文档发现有个dmScope参数,可以控制会话合并还是分离。改成main模式后,同一个钉钉账号的所有消息终于汇总到一个会话里。

接下来清理废弃会话——必须用命令行,Web UI干不了这活。说实话,OpenClaw的Web UI真的很难用。

折腾完这些,两个机器人终于彻底分离,不再互相干扰,也不再卡住。


第六章:权限——太大就是灾难 ⚠️🔒

OpenClaw的稳定性问题,很大程度上源于默认权限过大。Agent出厂自带全权限,动不动就改配置文件、删系统文件,网关直接无法重启。连续三四天熬到半夜一两点,基本都是权限惹祸。

接下来必须给每个机器人收紧权限。其实网上早有人建议:一个OpenClaw实例只跑一个机器人、一个Agent最稳。但我偏要折腾,非要搞明白不可,结果就是连续几天通宵。


第七章:技术细节揭秘 🔬

端口转发 🔄

把外部请求”转接”到内部设备,就像前台转分机。腾讯云用它隐藏OpenClaw的真实端口,提升安全性。

dmScope参数 📋

含义
main 所有私信合并到一个会话(推荐)
per-channel-peer 每个频道/用户单独会话

钉钉PC端和手机端被识别为不同客户端,导致消息分散。设为main即可解决。

Agent与Workspace 👤📁

每个Agent可独立配置:

  • workspace:工作目录
  • agentDir:配置目录
  • tools.deny:权限黑名单

双机器人隔离的核心配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"agents": {
"list": [
{
"id": "dingding",
"name": "dingding",
"workspace": "/root/.openclaw/workspace-dingding",
"agentDir": "/root/.openclaw/agents/dingding/agent",
"tools": {
"deny": ["write", "edit", "apply_patch"]
}
}
]
}
}

权限收紧 🔐

默认权限会乱改配置、删文件、搞崩网关。解决方案:

1
2
3
4
5
{
"tools": {
"deny": ["write", "edit", "apply_patch", "shell"]
}
}

清理废弃会话 🧹

Web UI无能为力,只能命令行:

1
2
3
openclaw sessions list          # 查看会话
openclaw sessions remove <id> # 删除指定会话
openclaw sessions cleanup # 清理全部废弃会话

总结 📝

  • 部署选择 🖥️:Mac mini贵且占地,Windows安装麻烦,云服务器是折中方案
  • 服务器选址 🌏:国内快但可能断外网,海外延迟高但功能完整,首尔表现不错
  • 双机器人 🤖:最好只用一个,必须用两个的话做好完整隔离
  • dmScope 🔗:钉钉用户务必设为main,避免多端消息分裂
  • 权限控制 🔒:默认权限太危险,用tools.deny收紧
  • 会话清理 🧹:废弃会话会累积成灾,定期命令行清理
  • Web UI 💻:功能有限,很多操作得靠命令行
  • 数据备份 💾:重装会丢数据,提前备份

结尾:折腾继续 🔄

目前两个机器人基本稳定,但还有一堆事要做:

  • 精细化权限配置
  • 优化响应速度
  • 挖掘更多自动化场景

OpenClaw的折腾之路,没有尽头。 🚀