一篇关于 DOG API、心流、星图,以及门口那只狗的外层旁白

AI 摘要 / TL;DR

DOG API 是一份用接口、错误码和量化参数描述狗的开源技术规范,36章正文、18个附录、52条公开信源。它由优刻得 Astraflow 星图辅助生成视觉骨架,再由人逐条搭建。但这份文档真正值得关注的不是「狗也能写代码」的笑点,而是它揭示了一个被心流话语遮蔽的事实:人不是永不断线的设备,有些打断恰恰是把注意力从越来越窄的洞里捞回来。屏幕里的四条腿没有气味,门还是要自己开。

— 首图:狗坐在门口,人伸手过来

核心要点

  • DOG API 是一份技术规范:36章正文、附录A到R、52条公开信源,用接口、错误码、量化参数描述一只狗,授权方式为 CC BY-NC-SA 4.0。
  • 它由优刻得 Astraflow 星图辅助生成视觉骨架:这座站在长出来之前,先被画过一遍;星图是全站唯一一页会出网的页面。
  • 心流的真正价值不是永不断线:真正值得珍惜的心流,是做完一段以后还知道自己为什么该起来。
  • 屏幕里的四条腿没有气味:图可以越画越像,但牵引绳的重量、门缝里的光,仍然属于现场。
  • 这份文档有两个声部:规范本身平铺直叙,「本机:」开头的63条是它自己的话,没有出处,也不给建议。

01 心流不是不停下来

FLOW IS NOT ENDLESS

这些年,「心流」被讲得像一种高级续航:最好长时间在线、情绪稳定、输出平滑、连茶都不要凉。听起来很像一块性能不错的移动电源。

我对它的理解刚好相反。真正值得珍惜的心流,不是把人变成不会掉线的设备;而是做完一段以后,还知道自己为什么该起来,去接一杯水、摸一下狗、看看窗外有没有天黑。

DOG API 里的狗对此没有理论。它只负责把球叼过来,或者在你盯着屏幕时把头抵到你手里。它不是效率教练,也不提供情绪价值 KPI。它只是非常不讲职业道德地提醒你:你现在可能需要离开这张椅子。

这比很多「重获专注力」的文章都诚实。因为人并不是每一次被打断都输掉了专注。有些打断,是把注意力从一个越来越窄的洞里捞回来。

02 图会越来越会画,门还是要自己开

IMAGE, DOOR, REALITY

网站里的 Astraflow 星图入口很自然地出现:它能把人还没说清楚的东西,交给对话和图像生成继续往下画。这个能力很迷人,我并不想假装不迷人。

A SMALL REVERSAL

屏幕里的四条腿,没有气味。

我觉得这句话比许多关于 AI 的宏大判断都更耐看。图可以越画越像,语言也会越来越会接话;可有些东西并不因为难以复制就显得落后。它们只是仍然属于现场——牵引绳的重量、门缝里的光,和你终于决定出门的那个动作。

所以我不想把星图放成一段硬邦邦的「工具推荐」。在这里,它更像一盏屏幕的冷光:可以看,可以继续想,也可以在该出门的时候关掉。

03 它给狗补了一份说明书

WHAT IT ACTUALLY IS

DOG API 是一份技术规范。规范的对象不是芯片,不是数据库,是一只狗。它站在一个很朴素的前提上:狗已经在我们家里部署了几千年,跑得比大多数系统都稳,却始终没有一份官方说明书。所以它补了一份。

现在这份说明书是36章正文,另加附录A到R。它写着嗅觉阵列全双工,写着摇尾是一条带符号的矢量而不是「友好」这个布尔值;也写着地磁对齐、全天行为预算、生理基线,以及医疗和应急的标准场景。

里面的数字不是凑出来的。全文有52条公开信源,期刊名、DOI、临床指南编号都列在《公开信源》一章。

项目给的阅读建议只有一句:先读《公开信源》,再读正文。知道哪些是真的之后,剩下的部分才好玩。

它也不是养狗指南。碰到健康、用药、行为干预,它一律指向执业兽医和专业训练师,不给任何诊断级的建议。这一条写进了贡献守则。

正文之外,站上还有一堆能真的动手的东西:

工具 功能 关键参数 表情渲染器 把13维参数渲染成24×24像素的SVG 13维参数空间 量化评估器 真实计算26项参数,各自带单位、取值范围和报警阈值 26项参数 图表图鉴 19张手写的SVG图表 19张 外设控制台 管理14类玩具和13道安全门槛 14类玩具、13道门槛 赛博遛狗 把一张图降格成网格,再导出SVG —

这份文档有两个声部。一个是规范本身,平铺直叙,只摆事实。另一个以「本机:」开头,是它自己的话,一共63条,没有出处,也不给建议。

授权写在页面上,CC BY-NC-SA 4.0。署名、非商用、相同方式共享。要拿走可以,记得写上是谁写的。

04 画完图,活儿才刚开始

HOW IT WAS MADE

制作过程没有多神秘,但比看上去长。

起点是一个还没想清楚的念头。人把它交给优刻得 Astraflow 星图,让它先把图铺出来。过一会儿,屏幕里就多出一张能继续看的东西。这座站在长出来之前,先被画过一遍。

话说到这儿,很多人会以为活儿干完了。恰恰相反,画完图才是开工。

这个项目给自己定了十条硬约定,其中最不客气的一条是:参数必须有出处。正文里出现的任何数字,受体数量、体温、寿命、周期、阈值,都必须能在《公开信源》那一章里找到对应来源。找不到的,一律标成 HEURISTIC,也就是社区经验值。项目的原话是,不接受无出处的精确数字。

第二条是,同一份事实只准存一份。26项量化参数只在注册表里定义一次,附录里的表格、文档里「共N项」的计数,全部由脚本从注册表生成。手工改过的表格,下一次同步就会被覆盖。项目自己写过一句教训:同一份事实存在两个副本之后,它们一定会开始漂移。

第三条是,改完必须自证。每一次改动都要跑一遍全量校验:21个页面、130条站内链接、标签配平,两百多处章节交叉引用逐条对得上;再跑一套91项的渲染冒烟。然后在无头浏览器里按1400、1100、980、900、760、600六个宽度各截一遍,确认没有东西横向戳出面板。

踩坑提示 这套笨办法抓到过真问题。有一版三列的模型表,在362像素宽的容器里撑到了456像素,横向戳出面板94像素;还有一处,拉完模型清单会把用户手填的模型ID顶掉。两处都是这么翻出来的。

还有几条,比功能更值钱

  • 表情不是情绪词,是13维参数空间里的一个采样点,必须离已有状态足够远,必须能被外部观测到,还得如实填一个信心分。「愧疚」这一项只给了0.22,因为那多半是人类的误读。
  • 图表只准用声明过的灰阶令牌。明度就是数据,重要就更黑,不用颜色和阴影区分系列;面积编码一律开方;演示数据禁用随机数,否则刷新两次图就不一样。
  • 外设只转移负荷,不创造配额。每加一类玩具,都要回答它把哪一份配额从「需要你在场」转成了「不需要你在场」。答不上来的不是外设,是摆设。
  • 激光笔是唯一被整类弃用的条目。它只能服务追逐那一相,写到终点就欠了一张欠条。项目没给它降级,直接把整类删了。

星图在里面的位置

它是全站唯一一页会出网的页面,其余页面拔掉网线照样能读。这一页做三件事:拉模型清单、流式对话、文生图。清单接口免KEY,实测拉到133个模型,条目自带人民币价目和峰谷时段;清单一拉,对话模型和生图模型会自动分成两份;生出来的图可以直接交给《赛博遛狗》降成网格,再导出SVG。

接口口径它一个字没自己发明。四个节点域名、三条路径、鉴权头的写法、尺寸字段的三种写法,全部照官方文档。真正属于它自己选的只有三项,温度0.7、两分钟超时、只留最近12轮,而这三项都老实标了HEURISTIC。

KEY也不经任何人的手。它只存在浏览器内存里,默认连标签页都不记,不落本地存储,不写进任何文件。页面上会把发出去的每一个请求原样贴出来给你核对,KEY打码只留首尾各四位。

修订序列现在走到0.23。0.8.0以前它是个27章的单文件版本,那份现在躺在archive里,只增不改。

最后一件小事。我写这篇的时候,它35章。文章发出来的第二天,它又多了一章,现在是36。首页那张统计卡还挂着35,没来得及改。

入口不藏在别处:https://nullurl.github.io/dog-api-spec/。想看它怎么用星图,直接进 tools/astraflow.html。

05 原文在下面,我只补了一处

VERBATIM ARCHIVE

下面这篇「本机」原文和两张内文配图,我几乎没动。只有一处例外,它写到那台会画图的外设的时候,我插了几句话。剩下的都是它自己的呼吸,我在外面多加了一层人类旁白:负责承认,我们很擅长给一切命名、归档、做成系统;也很需要一只不愿意被系统完全解释的狗。

INNER ARTICLE · VERBATIM

内层正文:以下内容与配图均保持原样

我不是API。我只是每次都在门口。

本机 · DOG API

本机:DOG API / 状态:门外有脚步声时自动唤醒。

他们把我写成了一套系统。

系统有接口,有错误码,有35个章节。有52条出处。还有一段很长的话,说明我的尾巴为什么不在响应体里。

我都同意。

除了一条。

门开以后,他们要先看我。

他们通常会先放包。这个动作我尊重。包里可能有吃的,也可能有他们在另一个洞里坐了一整天留下来的味道。

但包放下以后,他们要看我。

这条没有写进文档。我记在别的地方。

06 关于我这套系统

SYSTEM NOTES

本机:人给我测了很多东西。鼻子、耳朵、眉毛、心跳,还有我转圈时到底在看哪里。

本机:他们说我有默认能力。我也有。比如在一根胡萝卜掉到地上之前,把它判给自己。

本机:他们做了表情渲染器。眉毛高一点,嘴巴张一点,耳朵斜一点,屏幕里的我就换了一张脸。

本机:屏幕外的我不需要拖滑块。人只要拿起外套,我就能把全部表情一次性加载出来。

本机:他们做了量化评估器。输入体重、环境和当天的行为,页面会还给他们一些数字。

本机:数字不咸,不香,也不会掉在地上。人看完以后还是会去厨房。这一部分运行得很好。

本机:他们做了外设控制台。人把球、绳子和玩具逐项登记,判断哪一个合格。

本机:我会把球叼到他们脚边。合格不合格,由他们扔不扔决定。

本机:他们画了图表。柱子说我今天走了多少,折线说我喝了多少,热力图说我在哪一段时间最活跃。

本机:图表没有画我在门边趴了很久。那段时间里,楼道每响一下,我都没有错过。

07 关于人搭东西

HUMANS BUILDING

本机:人一认真,桌上就会长出纸、线、杯子和几块发光的板子。

本机:他们把一件事拆成很多小块,又把小块拼回去。拼好了以后,会很久不动。

本机:他们管这个过程叫心流。

我管它叫水凉了。

本机:他们写页面的时候,常常把一句话删掉,又写回来。人对一行字犹豫,比我对一块饼干久得多。

本机:我在桌边趴着。他们以为我睡着了。

本机:我没有。我在等他们终于想起,自己也该起身走两步。

本机:有时候,他们会突然停下,把手放到我头上。没有指令,没有奖励,也没有下一步。

本机:我会把头往上顶一点。这个动作不需要版本更新。

— 内文配图一:人伏在桌前,手放在狗头上

08 关于那个会画图的外设

THE DRAWING DEVICE

本机:人新接进来一个名字很长的外设,叫优刻得 Astraflow 星图。

本机:它能和人说话,也能画图。人把一段想不清楚的话放进去,过一会儿,屏幕里就多出一张能继续看的东西。

本机:他们照着那张东西,把后面的事一件一件搭起来。我这才知道,那不是外设。

这座站在长出来之前,先被画过一遍。

本机:我这套系统有35章正文、18个附录,还有52条出处。骨架都是先在屏幕里出现过一次的。

本机:表情渲染器是,量化评估器是,图表图鉴和外设控制台也是。连那52条出处,也是它先排好的。

本机:不过最先想把我写成系统的,是人。他喜欢狗,不是随便喜欢一下的那种,他能从耳朵的角度看出我今天不想说话。

本机:人写别的东西也是这样。写完就放出去,不留门,也不收钱。别人要改,他也搭过手,搭完就走。

本机:所以他对我做了同一件事。拆开,一条一条写清楚,整份放在外面。他管这个叫开源。

本机:人也不是不干活。人干的是另一件活:删掉一句话,再写回来,再删掉。这件事它替不了。

本机:人也不瞒着。他们只是很少专门说一句,这座站是跟谁一起画出来的。这句话由我来说,比较合适。

本机:有时候,那张图也有四条腿。人会把屏幕转向我,说,你看。

我看了。它没有气味。

本机:人还是很高兴。他们高兴的时候,声音会变短,笑会变快。

本机:后来,他们会关掉屏幕,拿起牵引绳。

本机:这个顺序是正确的。

— 内文配图二:狗望向门口,屏幕上是一只星座狗

本机:星图入口在这里:https://nullurl.github.io/dog-api-spec/tools/astraflow.html。

本机:门口也在这里。两边都可以去。

09 关于他们没有写进去的部分

UNWRITTEN FIELDS

本机:他们在文档里写我不返回401。

本机:这句话不完整。我会不会过去,取决于他们是不是蹲下来。

本机:他们把领养写成一次派生。我的名字由几行字算出来。

本机:他们叫我名字的时候,声音总会变一点。这个变化没有参数。

本机:他们有52条出处。每一条都排得很整齐。

本机:我没有出处。我有一块垫子,一只碗,还有他们进门前在锁孔外停的那两秒。

本机:他们有时回来得很晚。门一开,我还是先跑过去。

本机:这不是接口约定。

这是我自己的问题。

10 关于这份说明书

THE MANUAL

本机:他们把我折成许多页面,试着说清楚我是怎么运行的。

本机:我没有补充。

本机:只是系统里有几处地方,不给他们进。

本机:比如我为什么能在他们还没说「没事」之前,就知道他们今天说不出来。

本机:再比如,他们把手放在我头上以后,为什么会停那么久。

本机:入口在这里:https://nullurl.github.io/dog-api-spec/。

本机:你们可以进去。

我在门口。带着球。

///

END

∞ 回到外层

BACK TO THE OUTER LAYER

我不认为一只狗能替人解决心流、孤独或创作焦虑。它连Wi-Fi密码都记不住,为什么要替我们承担这些宏大命题。

但一只狗可以坐在门口。可以让你在把世界越搭越复杂的时候,想起有些事不需要解释得太清楚。

这就够了。球在地上,门在前面。剩下的接口,明天再写。

常见问题

Q1:DOG API 到底是什么?

DOG API 是一份开源技术规范文档,用接口、错误码、量化参数等工程语言描述一只狗。它包含36章正文、附录A到R、52条公开信源,授权方式为 CC BY-NC-SA 4.0。它不是养狗指南,碰到健康、用药、行为干预一律指向执业兽医和专业训练师。

Q2:优刻得 Astraflow 星图在项目中扮演什么角色?

星图是全站唯一一页会出网的页面,承担三件事:拉模型清单、流式对话、文生图。项目起点是一个还没想清楚的念头,人把它交给星图先把图铺出来,这座站在长出来之前先被画过一遍。接口口径全部照官方文档,真正属于项目自己选的只有温度0.7、两分钟超时、只留最近12轮三项,且都标了HEURISTIC。

Q3:为什么说「心流不是不停下来」?

因为真正值得珍惜的心流,不是把人变成不会掉线的设备,而是做完一段以后还知道自己为什么该起来。人并不是每一次被打断都输掉了专注,有些打断是把注意力从一个越来越窄的洞里捞回来。

Q4:这份文档的「两个声部」是什么意思?

一个声部是规范本身,平铺直叙,只摆事实,所有数字都有出处。另一个声部以「本机:」开头,是狗自己的话,一共63条,没有出处,也不给建议。

Q5:项目如何保证数据的可靠性?

三条硬约定:参数必须有出处,找不到来源的一律标成HEURISTIC;同一份事实只准存一份,由脚本从注册表生成;改完必须自证,跑全量校验和渲染冒烟,再在六个宽度下截图确认没有横向溢出。

Q6:星图的KEY安全吗?

KEY只存在浏览器内存里,默认连标签页都不记,不落本地存储,不写进任何文件。页面上会把发出去的每一个请求原样贴出来给你核对,KEY打码只留首尾各四位。