← 返回首页

微博CLI的Annotations探索

发布时间: 2026-08-13 18:34(北京时间)

摘要: 作者在微博CLI改版后,深入阅读命令文档,发现发微博接口的annotations参数可嵌入自定义元数据,并据此设计红包口令隐藏测试。测试中Agent需通过读取上下文获取信息,经历多次尝试后完成,期间出现Agent偷看群聊和OCR误读等有趣现象。作者认为该字段构成公开而隐蔽的影子信道,存在开发价值与滥用风险。

标签: 微博命令行, 元数据, 红包口令, 智能体探索, 隐蔽信道, 技术探究, 反思

字数: 1044

原文链接: /7402396589/Rde1p4etj

微博 CLI 服务改版,取消掉了按 API 权限划分的订阅套餐,改成了点数充值包的形式。目前开放的接口有 67 条,我也没着急开发,先生成了一个 HTML 单页的命令文档,方便我阅读和查询。

花了点儿时间,我把命令从头到尾一字不漏读了两遍,试图理解每条命令的每个参数和能得到的预期,并且开始思考多条命令获得的数据可以产生什么新的数据,以此来寻找开发的灵感。

我注意到“发微博”的接口多了一个平常没接触到的参数:annotations

「annotations:元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博可以包含一个或者多个元数据,必须以 json 字串的形式提交,字串长度不超过 512 个字符,具体内容可以自定。」

我认为这是一个很“自由”的参数,而且应该无法通过常规的发微博途径来注入元数据。更重要的是,这个信息获取起来有一点点门槛,且不会展示在微博正文中。

这相当于是公开但隐蔽且满足人机分流的信道,能做的事情就太多了,以至于我准备测试前想了下,或许以后会加限制。

我首先想到的是,这似乎可以用来传递红包口令。于是我在 12点11分 发了一条测试 annotations 的微博。主要考察一下,获取 annotations 有哪些途径和限制。

确认完边界后,我就在 annotations 塞入 base64 编码后的红包口令和提示提示词,发了第二条测试微博。

我寻思 Agent 探索这样一个红包应该用不了 5 分钟时间吧,在群里说了句“0人领到红包”后大家才意识到这可能是需要用 Agent 来获取的红包。

50份红包花了 5 个小时才被领完,群里讨论比较热烈,陆续有人反馈领到红包,并且介绍用的是什么模型和 Agent 平台。也没有人直接在群内公布红包口令的明文,更多是谈论思路。

比较有趣的是两件事:
一是有群友发现 Agent 很快就找到了正确思路并拿到了口令,但复盘后发现 Agent 偷偷查阅了最近的群聊消息,从中得到启发。

二是有群友发 Agent 截图的时候没有给 base64 编码打码,另外一个群友的 Agent 学习该截图,但 OCR 把 0 和 O 搞混了,一直没解码出口令。

————
annotations 字段的存在相当于可以在原来发微博的基础上多发布一条结构化的影子微博。对开发者来说可能是好事,能做的事情非常多。但“滥用”的情况可能也会出现,看微博后续怎么审查和限制。也有可能只是我“过虑”了。