datalink.ac
data in the link

把数据放进
链接里。

不是数据的截图,也不是仪表盘的入口。数据本身就在 URL 里—— 人读图,agent 读数,读的是同一串东西。

01 datalink as context 链接本身就是上下文,而不是一个需要去抓取、截图、转述的页面的指针。
02 datalink as agent context 对 agent 来说链接就是接口:它读链接、写链接,在链接上做计算。
datalink.ac/d?type=pie&labels=TS,Py,Go&values=4821,2312,980
实时渲染 svg
按语言划分的 star 数饼图

同一个链接,读成文本:/d.json · 打开交互编辑器

问题

喂给模型最贵的东西,是一张图。

当一张图表以图片的形式进入模型,会发生三件事:像素被重新编码成视觉 token; 数值靠读像素还原;结论就是某人从一张图上猜出来的数字。 然后它被引用、被写进报告,而没有人发现那个错误。

有损

图片是一种有损格式

图上没画的东西就没了——而模型被要求把它还原出来。

昂贵

像素比文本贵

一张 705×500 的图大约是 470 个视觉 token;同样的数字写成 JSON 大约 40 个。

无法核对

你没法验证答案

要来源,拿到的是图片的链接;要数据,拿到的是猜测。

主张 01

别再给模型喂截图。

同一个链接同时给出渲染和数据。人拿到图,agent 拿到精确的、机器可读的数值—— 没有猜测这一步,也就没有翻译这一步。

人 · 渲染

加载中…

数字的一张照片。读得快,但没法核对。

同一个链接

agent · 数据

加载中…

改上面那串链接再回车。图变了是因为数据变了——agent 那一侧也跟着变, 因为它们本来就是同一串字符。

主张 02

URL 就是 API。

每一条数据链接都是从参数到「真相的一张图」的纯函数。没有会话、没有登录、没有仪表盘、 没有刷新按钮。人改链接是为了看,agent 改链接是为了算。 除此之外什么都不用变,因为也没有别的。

渲染结果实时

加载中…

参数随便改

改数值、改类型、改标题。每一次输入都会重写链接并重新渲染。 界面就这些——没有别的界面了。

主张 03

图只是一种渲染,链接才是通用形态。

「数据住在 URL 里」这件事跟饼图毫无关系。同一套扁平参数也能描述结构图、表格、 日历、幻灯片。换的是渲染器,不变的是链接。

每个标签页都是一条链接。图表和日历来自 x-cmd/draw, 幻灯片来自 x-cmd/ppt, 表格来自本站。同一个原型,不同的渲染器。

协作

同一串字符,两双手。

这是给人和 agent 协作用的工具,不是用来替代人。 人调参数是为了看清,agent 改参数是为了算清。 谁都不用去学对方的软件,因为共同的界面就是一个 URL—— 唯一一种双方早就知道怎么复制、修改和转发的格式。

人

探索

改链接、看图、转发。改了主意再改一次。链接就是一条笔记。

agent

计算

改写链接、读数据视图、返回数字。不做 OCR,不做估算,也不会把某一位数字读错。

为什么比仪表盘强。 仪表盘把数据留在服务器上,只发图片; 数据链接把数据留在字符串里,两个都发。仪表盘要登录、要往返、要截图; 链接什么都不需要——这正是 agent 能直接用的原因,也是它永远不会过期的原因。
从哪开始

数据链接最先证明自己的地方,是 GitHub。

不是仪表盘,不是 BI 工具。是那些「文字本来就在、图片本来就不在」的地方: issue、pull request、release note。 那里是用字写的,给人读的,而且越来越多是被 bot 读的。 链接三样都合适,而截图三样都不合适。

release · v0.3.0bar
按语言划分的代码构成柱状图

release note 想说的是「新增 2400 行,主要是 TypeScript」。这句话本来就是一张表。做成链接,它同时是一张图——而且依然可 grep、可 diff,也能被整理仓库的 bot 读懂。

这条链接
issue · 「这东西是干嘛的?」用例图
开发者使用数据链接的用例图

用三段话解释一个功能,比一张图老得快。而且因为它是链接,下一个人可以直接挪一个框,而不用开口要求重画。

这条链接
pull request · 「改了什么?」思维导图
这次 PR 动到的文件的思维导图

这是 reviewer 真正会要的那张图。做成链接,它是可以被审的:在 PR 里改一个参数,图就跟着变。截图没法被审。

这条链接
为什么 GitHub 排在第一。 那里的东西本来都是文本:一个 diff、一条评论、一份 release note。 数据链接不用任何人改习惯就能落进去——而且读 issue 的 bot 拿到的是数字,不是数字的照片。
试一试

交给你的 agent。

x-cmd-draw skill 会教 agent 怎么拼数据链接。不用装、不用密钥、不存数据—— agent 把 URL 拼出来,图就出来了。

安装
npx clawhub@latest install edwinjhlee/x-cmd-draw
或者直接取一条链接
curl 'https://datalink.ac/d?type=pie&labels=TS,Py,Go&values=4821,2312,980'
值得粘贴的一段 prompt
画一张饼图,把我们的错误预算按服务拆开,然后把精确的数值给我。
从链接里读,不要从图片里读——我要的是数值,不是你看图得到的印象。
最后把链接发给我,我自己想改参数。

最后那句话就是整个想法:让 agent 去读数据而不是像素, 再把链接交回给人——那串链接在人手里依然是一件可用的工具。

下一步

规范草案正在成形。

那几条不变量——自包含、双读者、参数化、可版本化、无损—— 正在被写下来,这样任何渲染器都能实现一条数据链接,任何 agent 都能放心依赖它。