十五个标签页。上周二早上通勤前,我攒了这么多没看的文章。一篇 Paul Graham 的随笔。两篇关于扩散模型的 arXiv 论文。一篇 4000 字的 Substack 长文,讲芯片制造。还有一个 Hacker News 帖子,半夜看到的,当时觉得挺有意思。
最后看了几篇?零。
是不是很熟悉?你收藏。你给自己发链接。你存到 Pocket、Instapaper、Notion 里那个叫"待读"的栏目——那个栏目像霉菌一样疯长。文章越堆越多。你再也没打开过。
后来真正管用的办法是:我让 Telegram 机器人念给我听。
没人提过的断层
AI Agent 的能力已经强得离谱。我的 Telegram 机器人能搜网页、总结 PDF、生成图片、写代码、翻译。全在聊天窗口里完成,不用切出去。确实厉害。
但你让它朗读一篇网页文章试试。
"帮我读一下这个:https://paulgraham.com/persistence.html"
会发生什么?三种情况。机器人一个字符一个字符地念 URL。或者把整页 HTML 原封不动甩给你。再不然——最常见的——它直接给你一段摘要,但你要的根本不是摘要。你想听原文。完整的。走路去地铁的时候听。
问题是结构性的。大多数 TTS 技能只接受纯文本输入。字符串进去,音频出来。它们根本不知道 URL 是什么。不会抓网页。也没有能力分辨正文和导航栏、Cookie 弹窗、"订阅我的 Newsletter"浮层、侧边栏热门推荐、评论区。
就算你手动复制粘贴文章内容——在手机上谁会这么干?——段落结构也丢了。标题没了。TTS 引擎拿到一堵文字墙,像压路机一样碾过去。
能理解 URL 的技能
你需要的是一个能同时做两件事的技能:提取和朗读。抓取页面,判断哪些是正文,丢掉杂质,然后把干净的文本转成音频。一步到位。
这就是 OpenClaw 的用武之地。OpenClaw 是一个开放协议,让 AI Agent 使用"技能"——发布在 ClawHub 上的模块化工具。你可以把它理解成 Agent 能力的 npm。你的 Telegram 机器人装上一个技能,就突然多了一项本事。
你需要的那个技能叫 CastReader。目前 ClawHub 上唯一一个能跑通 URL 到音频完整流程的。
配置方法(三步,不写代码)
1. 找一个兼容 OpenClaw 的 Agent。
Telegram 是最简单的起点。OpenClaw 官方机器人就跑在 Telegram 上——搜索一下,开个对话。Discord 也行。如果你用 OpenClaw SDK 自己搭了 Agent,一样的。
2. 安装 CastReader 技能。
发这条消息给你的 Agent:
clawhub install castreader搞定。不需要 API key。不需要配置。不需要填支付信息。
3. 发一个 URL。
read https://paulgraham.com/persistence.html就这样。音频回来了。
底层到底干了什么
没有魔法,没有黑箱。实际流程是这样的:
你的 Agent 收到 URL,调用 CastReader 技能。技能启动一个无头浏览器——真正的 Chromium 实例,不是简单的 HTTP 请求——加载页面。为什么要用真浏览器?因为现在的网页有一半离了 JavaScript 就跑不起来。SPA、动态加载、客户端渲染。一个普通的 fetch() 只能拿到空的 <div id="root"></div>,别的什么都没有。
页面渲染完成后,CastReader 的提取引擎开始工作。它遍历 DOM 树,按文本密度、链接比例、语义信号给每个容器打分。导航菜单链接密度高——扔掉。带版权声明的页脚——扔掉。Cookie 同意弹窗——剥离。剩下的就是文章。
干净的文本被分成段落,送进 Kokoro TTS。每个段落变成一个 MP3 片段。技能通过你的 Agent 逐段发回:一条文字消息显示段落内容,后面跟着音频。一段一段来。你可以暂停、跳过、重放。
一篇 2000 字的文章,全程不到一分钟。
真实使用,不是广告
我连续用了三周,每天都用。几个实际案例:
给 Agent 发了一篇 Paul Graham 的文章(https://paulgraham.com/greatwork.html)。47 秒内收到 12 个音频片段。干干净净。没有"Home | Essays | Bio"之类的导航废话。就是文章本身。
试了一个微信读书的小说章节——腾讯的阅读平台,3 亿用户。大多数提取工具碰都碰不了,因为文本是用 Canvas 画上去的。DOM 是空的。CastReader 有专门的提取器,在文本送到 Canvas 渲染器之前就截获了章节数据。成功了。说实话我自己都意外。
一篇 arXiv 论文(https://arxiv.org/abs/2401.06209)。LaTeX 模板内容被过滤了,作者单位信息被跳过,参考文献部分被去掉。读了摘要、引言和正文。数学公式的朗读不太完美——这对 TTS 来说天生就难——但散文部分很干净。
一篇 6000 字的 Substack 文章,里面嵌了推文和醒目引用。提取了正文,跳过了推文嵌入(那些是交互式 iframe,不是文本),其余内容按顺序朗读。
其他 TTS 技能呢?
ClawHub 上还有几个 TTS 选项。kokoro-tts 用的是同款 Kokoro 语音模型——质量很好,支持 40 多种语言,完全免费。openai-tts 用 OpenAI 的声音,如果你更喜欢那个的话。mac-tts 用 Apple 系统自带的语音合成。
三个都不错。用来处理纯文本的话。你发一段字符串,拿回音频。
但它们都不能接收 URL。都不能从网页中提取内容。这不是说它们不好——只是不同的工具解决不同的问题。如果你的使用场景是从 URL 读文章,CastReader 目前是唯一能跑通闭环的技能。
试试看
去 /openclaw 看配置说明和完整命令参考。技能免费。不需要 API key,没有用量限制,没有会过期的试用期。
十五个标签页的文章,通勤路上全部听完。就这么简单,没别的。