OpenClaw 最大的短板,被一个命令行工具OpenCli补上了

4 阅读7分钟

认真玩过 OpenClaw 的人,应该都经历过那个时刻。

你给它布置了一个任务——去 X 上搜搜某个项目最近的讨论,或者把知乎上某个问题下面的高赞回答拉下来。模型接到指令,开始干活,你满怀期待地等着。

然后它告诉你:页面内容无法提取。

或者更离谱:它确实抓回来一坨东西,但你打开一看,全是导航栏、侧边栏、广告位的残渣,正文一个字没有。

你不甘心,换个方式,让它用浏览器去操作。这次倒是打开了页面,但操作到一半,浏览器连接断了。重启,再试,又断了。折腾半小时,数据还是没拿到。

这种事经历多了你就明白了:

OpenClaw 的瓶颈从来不是脑子,是手。它够不着这个世界。

我最近在本地电脑上跑了一圈 OpenCLI,抓了 X 上的讨论,翻了它的命令体系。跑完之后我越来越觉得——给 OpenClaw 配数据获取层这件事,OpenCLI 可能是目前最靠谱的选择。

下面说说为什么。


web_fetch、浏览器自动化,我都试过了,都不够用

在说 OpenCLI 之前,得先把 OpenClaw 自带的方案过一遍。不是它没有,是每个都有硬伤。

web_fetch 是默认开启的工具,原理很简单:发 HTTP 请求,拉 HTML,用 Readability 提取正文。问题是它不执行 JavaScript——官方文档原话就是 “It does not execute JavaScript”。2026 年了,X、小红书、知乎、B 站,哪个不是 JS 动态渲染的?web_fetch 去抓这些页面,拿回来的不是空壳就是一堆加载提示。更要命的是,碰到大一点的页面(1MB 左右),它会直接挂起,连超时都不触发,整个任务卡死。GitHub 上这类 issue 一搜一堆。

浏览器自动化 纸面上什么都能干——执行 JS、处理动态页面、保持登录态。但实际跑起来,CDP 连接三天两头断。跑着跑着突然报 “timed out after 15000ms”,任务直接废了,端口还经常卡死得手动杀进程。用隔离模式吧,没有任何登录态,碰到二次验证直接没戏;用 Extension Relay 复用本地浏览器吧,连接又不稳。Reddit 上、GitHub issue 里,吐槽浏览器断连的帖子多到数不清。

web_search 就更别提了,搜完只返回链接,内容还得靠 web_fetch 去抓。绕一圈,又回到 web_fetch 的坑里了。

这三套方案,简单场景凑合能用,但你想靠它们每天稳定地从十个平台抓数据?不现实。


OpenCLI 换了一个思路

web_fetch 和浏览器自动化有一个共同的问题——它们都是通用方案。给我一个 URL,我帮你把内容抠出来。给我一个页面,我帮你模拟人去点。

但现实是,每个平台的数据获取方式完全不一样。X 的数据结构和知乎不同,B 站的字幕接口和 YouTube 也不同,公众号文章更是自成一派。拿一个通用方案去硬啃所有平台,就是拿螺丝刀拧钉子。

OpenCLI 的做法不一样。它针对每个平台,沉淀了一条专门的命令。

opencli twitter search 搜 X。opencli bilibili subtitle 拿 B 站字幕。opencli weixin download 下公众号文章。每条命令背后都是针对那个平台做过适配的逻辑。

对 OpenClaw 来说区别很大——不用猜这个页面该怎么抓,调一条命令就完事了。参数明确,输出格式明确,成没成功也明确。

而且它还有个设计我觉得特别聪明:

opencli list

一条命令,把当前环境下所有可用的站点、适配器、命令全列出来。等于给 OpenClaw 铺了一张能力地图——先看看手里有什么牌,再决定怎么出。不用蒙着眼睛乱撞。

OpenClaw 跑在服务器上的时候,最尴尬的事情就是——你本地浏览器里登着的那些账号,它一个都用不了。你的 X 登录态、知乎 Cookie、Notion workspace、Discord 频道,对你来说触手可及,对远程的 OpenClaw 来说隔着一道墙。

浏览器自动化的 Extension Relay 理论上能解决,但前面说了,连接稳定性就是个坑。

OpenCLI 跑在你本地电脑上,天然就能吃到这些环境。我跑 opencli list 的时候发现,它不只支持网页站点,还能接桌面应用——Notion、Cursor、ChatGPT Desktop、Discord Desktop、豆包桌面版都在列表里。

桌面应用里的数据,web_fetch 想都别想,浏览器自动化也够不着。OpenCLI 能接。

这是它跟其他方案拉开差距最大的地方。


比浏览器稳,比 API 覆盖广,刚好卡在中间

如果把数据获取方案排个序——最底层是浏览器自动化,什么都能干但太重太脆;最顶层是官方 API,最稳但覆盖面窄得可怜,很多平台根本不开放。

OpenCLI 卡在中间。比浏览器稳定,因为不用每次去理解页面结构。比 API 覆盖广,因为不受限于平台愿不愿意开放接口。

而且 CLI 命令天生适合被串进工作流。参数进去,结果出来,格式固定。你想让 OpenClaw 跑一条完整链路——抓 X 讨论、拉 YouTube 字幕、总结成情报、写进飞书文档——每一步都得稳。浏览器操作今天页面长这样明天可能就变了,CLI 命令不会。

一个是铺好的铁轨,一个是每次都要现修的土路。跑一次看不出区别,跑一百次就知道了。


但说句实话,直接用还差几步

夸了这么多,得把丑话也说在前面。

OpenCLI 不是专门给 OpenClaw 做的。它是一个独立的命令行工具,有自己的设计逻辑和使用场景。它的能力刚好能补上 OpenClaw 在数据获取上的短板,但“能力匹配”和“开箱即用”是两回事。

你不能指望装完 OpenCLI 之后,OpenClaw 就自动知道怎么调它。

真正要把这两个东西接起来,至少还得干几件事:一是把 OpenCLI 的命令封装成 OpenClaw 的 Skills,让模型知道什么时候该调哪条命令、参数怎么传、结果怎么解析;二是安全加固——OpenCLI 跑在本地,能接登录态、能读桌面应用,这些能力很强,但也意味着一旦调用链路没控制好,风险不小。权限边界、调用频率、敏感数据的处理,都得提前想清楚。

这不是装个工具就完事的事情,是需要认真做工程化的。

但反过来说,这恰恰说明 OpenCLI 的价值是真实的——如果它只是个玩具,根本不值得你花时间去做封装和加固。值得你认真对接的东西,才是真正有用的东西。


别光听我说,自己跑一遍就知道

我在 web_fetch 的报错里转过,在浏览器断连的 issue 里翻过 workaround,在代理配置和 SSRF 限制之间反复横跳过。这些方案不是没用,简单场景下够了。

但如果你想的是长期稳定、覆盖多平台的数据获取——今天配好了下个月还能用的那种——我目前看到最靠谱的就是 OpenCLI。

不是因为它花哨。命令行工具一点都不花哨。

但它最像基础设施。OpenClaw 现在最缺的就是这个。

你不用信我。去本地跑一遍 opencli list,看看它能接多少东西。再跑一条 opencli twitter search,感受一下。

你自己会有判断。