Foreword
之前实践了MCP、Skills,最近又出来了OpenClaw,大火了一把,再来看一下OpenClaw又能干些啥吧
OpenClaw
历史
OpenClaw之前叫ClawdBot,是单独对接Claude的,但是由于瞬间爆火,对于谷歌服务大量访问,再加上Logo稍微有点侵权,直接把对应使用者的账号全封禁了,自然也就停止对谷歌系的支持,后续Meta、OpenAI都在大力招揽OpenClaw的团队,对应OpenClaw的创始人Peter,Peter后来直接投奔OpenAI了,站在了Google系的对面。
Peter在OpenClaw之前已经是一个传奇人物了,之前是做PDF相关渲染的组件的,基本上所有移动端使用的都是他的组件,很是牛逼
Peter之前写的代码是那种锱铢必较的风格,反而是到了OpenClaw这里,看了对他的采访,他已经不在意代码细节了,全都给AI去写了,自己只管功能和效果是否正确了,走向了另外一个极端,稍微有点奇怪,不太符合人物弧光。
OpenClaw就是他做一个AI助手,本质上就是希望AI可以帮自己直接完成事情,至于中间的过程也完全交给AI自己去迭代自己,而不需要人工介入,类似Manus那种,但是工作范围更广。
OpenClaw能火,其实也是建立在之前的MCP、Skills之上的,如果没有前面的软件能力开放,那么这个AI助手也巧妇难为无米之炊。
在MCP时我就预言了日后大模型供应商就会提供入口把其他软件接入进来,这么久都没有几家做出来像样的东西。一直到OpenClaw,刚好切入了这个点,同时他又符合大家对于AI助理需求的一些点:
- 开源,不会突然消失或者收费或者没人维护
- 自托管,不需要云服务,跑自己的机器就行了,隐私什么的都存储在本地
- 模型可选,如果是模型商的入口,那必然会屏蔽其他家的模型形成垄断,但是开源不会,甚至允许你接入各种不同的模型
- 可以操作本地OS,包括Windows、Linux、Android、IOS,真的像是个人在操作了
这是AI助理最基础几点要求,OpenClaw都满足了,再往大里说:
- 多模型路由,不同任务可以走不同模型,可以配置
- 技能扩展,可以接入MCP、Skills,各种插件,并且现在已有插件市场类的商店了
大模型从简单的语言对话,一下子跳跃到可以帮你直接干活了,不再拘泥于你要自己写好各种Skills、Prompt或者去调用MCP再完成一个任务了,从只能程序员使用或者有类似程序员能力的人使用,使用者一下扩展了很多,类似国内的这些模型,搞点奶茶、点外卖等等
OpenClaw从IM端入手,IM刚好就是人最多的,而不是类似大模型商,非要用户下一个新的APP,用他们的程序进入到AI助手的环境中,刚好保持了用户习惯,对于用户来说没有APP迁移和学习成本。
核心工作原理

我们都知道和大模型交流要有上下文,而且如果上下文特别多的情况下,会导致很久之前的重要信息被顶替。而如果真的使用OpenClaw作为AI助理,那无可避免的是上下文可能会特别多,这种情况下就需要额外的一些办法,把AI和你的对话或者工作内容等等关键事项,作为智能体的记忆存储下来

工作流
并不是说有了OpenClaw,就什么都可以做了,本质上还是类似Skills,需要你建立对应的工作流,然后让AI助理自动进行一些定期任务
如果是IM接入,那么对应的,它内部也可以做一个CRM系统,记住你的社交关系等内容,帮你定时提醒维护客户关系或者开会、用户反馈等事宜

类似的知识库也能直接给OpenClaw去记录甚至分享给其他人,相当于内部构建一个RAG,他甚至和上面的内容结合以后就可以分享给你的同事、朋友,让助理帮你分享对应内容(有时候你自己想不起来具体细节)

对应的到软件工程这里,也可以构建一个类似的工作流,直接让他来完成工作内容,甚至我们啥都不用干都可以,举个例子:

只要用户issues提的比较完整,剩下靠AI自己去处理,那么很多简单的问题都可以快速处理完
部署
这里就不在云上部署了,而是直接部署在本地,OpenClaw面向国外更多一些,这里和Telegram结合进行说明
下载代码
git clone https://github.com/openclaw/openclaw.git
cd openclaw
启动Docker编译脚本(其实没必要,直接拉云端最新的就行)
./docker-setup.sh
这里是官方一键启动的脚本,他会自动创建好,并且返回给你的登录地址和token,这里时gateway token,最好保留住,以后也有可能会用到
winpty docker compose run --rm openclaw-cli onboard
这里可能会出问题,建议用winpty包一层再执行onboard

需要你同意协议或者权限,这里注意是使用方向键确认,空格键选择,选好一些基础信息就可以启动了,这里选择用千问模型
- 会提示你需要登录千问的授权和token,授权以后就可以下一步了

选择对接的IM,可以看到竟然有飞书,企微、微信、钉钉什么的都还没有支持
这里选择Telegram,然后去Telegram与@BotFather对话,创建一个新的bot,并起名
/newbot
完成以后就拿到了Telegram的bot token,输回命令行。
后续是配置Skills还有一些基础功能,默认选择就行了
- 默认端口可能在windows容易出错,建议选择手动配置修改一下端口

2026-02-25 20:42:21 2026-02-25T12:42:21.921+00:00 Gateway failed to start: Error: non-loopback Control UI requires gateway.controlUi.allowedOrigins (set explicit origins), or set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true to use Host-header origin fallback mode
启动以后还会遇到一个情况,说白了跨域访问不允许,所以需要增加一个controlUi的配置项,指明访问域
"controlUi": {
"allowedOrigins": [
"http://127.0.0.1:28789",
"http://localhost:28789"
]
}
加上这部分配置以后就能正常访问了
正常启动以后默认地址是这里,然后登录进去就可以配置他了
http://127.0.0.1:18789/
第一次登录以后会提示离线

需要输入gateway的token以后,连接即可

此时和Telegram的机器人对话会提示要求配对

配对需要执行Cli的配对命令
docker compose run --rm openclaw-cli pairing approve Telegram NXYWNNRU
Approved Telegram sender 457350036.
正确以后会提示Approved的信息,到这里Telegram的bot就能正常工作了
完成我们的网页客户都这里的配对,这里需要先查看OpenClaw内部被请求的设备是谁
docker compose exec openclaw-gateway sh -c "node /app/dist/index.js devices list --token 你gateway的token"
正常会返回类似这样的一个东西,这里的Request 就是我们要的东西
Pending (1)
┌──────────────────────────────────────┬──────────────────────────────────┬──────────┬────────────┬──────────┬────────┐
│ Request │ Device │ Role │ IP │ Age │ Flags │
├──────────────────────────────────────┼──────────────────────────────────┼──────────┼────────────┼──────────┼────────┤
│ 9656c4a9-9ac6-4672-9315-ce47db26555c │ 3515c8425c3786148673e3e6ec5bf9f3 │ operator │ 172.18.0.1 │ just now │ │
│ │ 1fa70ec8dcc55085ce6ab6b8c536b79d │ │ │ │ │
└──────────────────────────────────────┴──────────────────────────────────┴──────────┴────────────┴──────────┴────────┘
接着允许这个请求
docker compose exec openclaw-gateway sh -c "node /app/dist/index.js devices approve <Request ID> --token 你gateway的token"
然后就能看到我们的网关UI正常匹配了,可以直接通过这个页面进行聊天

测试

刚开始初始化阶段需要给他一个名称和提供一些基础信息,然后可以看到私人助理此时已经正常运行了。
剩下你就可以把工作流或者一些要他做的事情通过对话的方式告诉他,让他执行了
网关页面的聊天

简单工作流,让助手提醒我写Blog

可以看到OpenClaw在我没做任何配置的情况下,就可以理解自然语言的任务,并且根据这个任务进行几轮迭代,然后把最优的结果输出给你
剩下你就可以发挥自己的想象力了,把很多东西扔给他去做
常见问题

如果直接用windows git bash执行会出现无法选择yes或者no,下面的QuickStart也不能选择,这里最好用winpty包一下再执行,这样交互UI就正常了
winpty docker compose run --rm openclaw-cli onboard
启动以后提示,要么是端口被占用,要么是端口就不允许用
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:18790 -> 127.0.0.1:0: listen tcp 0.0.0.0:18790: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
端口被占用比较好解决,看哪个程序然后把他干掉就行了。
但是端口不允许用,我第一次碰到,windows下查看保留端口,就能看到刚好把18790这个附近的端口保留了
netsh int ipv4 show excludedportrange protocol=tcp
协议 tcp 端口排除范围
开始端口 结束端口
---------- --------
5357 5357
17945 18044
18045 18144
18145 18244
18245 18344
18345 18444
18445 18544
18545 18644
18645 18744
18745 18844
50000 50059 *
要么去掉这里的端口,要么在openclaw里选择manual手动配置,然后改这个端口号
- 一般不建议动保留端口,可能其他使用的程序会出问题

当发现这个问题的时候,推荐修改.env文件内的端口号
gateway connect failed: Error: unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)
[openclaw] CLI failed: Error: gateway closed (1008): unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/node/.openclaw/openclaw.json
Bind: lan
at Object.onClose (file:///app/dist/call-CmI9Jmad.js:444:10)
at WebSocket.<anonymous> (file:///app/dist/client-Bri_7bSd.js:2128:23)
at WebSocket.emit (node:events:519:28)
at WebSocket.emitClose (/app/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js:273:10)
at Socket.socketOnClose (/app/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js:1346:15)
at Socket.emit (node:events:519:28)
at TCP.<anonymous> (node:net:346:12)
出现这个错误是因为你在宿主机器上访问容器内的OpenClaw时,他认为你是个外人,不认识你,所以需要你附带操作的token才允许你交互
OpenClaw用他自己的一键Docker配置反而整的更麻烦了,特别是他的gateway竟然和OpenClaw是分离的两个东西,要单独授权,这个就有点太麻烦了。
- 以前的经验都是这个gateway UI和OpenClaw是一体的,不需要额外的授权或者什么的,在这里反复折腾了老半天
Summary
Skills中就已经可以搭建基础工作流了,只是这个工作流触发或者执行时还是有很多地方需要人工审核或者启动,而OpenClaw相当于是一个For循环,允许这个东西自动工作了,权限更大,甚至能力也可以自动补充,而不需要Skills里面给他一个个增加这种能力,确实更进一步了。
但是在OpenClaw这么强大的同时,也要谨慎,因为他的权限过大,很容易在AI理解出错的情况下,做出来一些很奇葩的事情,比如直接给你东西删除了,覆盖了,或者公开了什么私密的东西。
同时看似OpenClaw轻而易举的就完成了某些事情,但是也要注意到实际后面的token消耗,由于我只是体验,走的本身是千问的免费token,实际这个任务量大了以后根本顶不住

这里看到一次消耗了10-15k tokens,这已经非常夸张了,如果你自己写个skill,把刚才对应的能力写成代码,估计用不了这么多
同样的由于OpenClaw可以直接接入IM工具,最好是给他一个新的账号类似TG的bot,而不是把你自己的账号给了OpenClaw。
- 给自己账号有一个好处,有可能真的可以把OpenClaw变成自己的数字人,甚至自己的语气、习惯和很多内容都可以让他模仿和学习,如果你完全不在意自己的隐私的话
在Windows下用Docker部署还是有点太绕了,建议还是直接部署到云服务或者内网的其他机器上去,Windows的部署体验还是比较繁琐,要解决的问题一个接一个。或者是直接原生部署,不要用Docker,这样就不存在OpenClaw和Gateway还互相不认识的情况了
目前比较划算的部署方式就是利用一些比较大的订阅服务,持续消费token,而不是买token,大工程消耗量有点惊人
Quote
https://www.v2ex.com/t/1193787#reply19
https://www.ifanr.com/1655353?utm_source=rss&utm_medium=rss&utm_campaign=
https://www.youtube.com/watch?v=8kNv3rjQaVA
https://docs.openclaw.ai/start/getting-started