用果蝇连接组搭一个井字棋 agent:接线是真的,棋盘是我编的
这篇咱们从零搭一个东西:拿果蝇连接组里真实的接线,驱动一个在终端下的井字棋 agent,外面兜一层 minimax。跑通大概四十分钟。 跑完你手里有两样:一个带开关的玩具,和一份"这项目里哪些是真的、哪些是我自己编的"分栏清单。 第二样才是重点。第一样随便玩玩就过去了,第二样是你以后每接一个生物数据集都要用的习惯。

这篇咱们从零搭一个东西:拿果蝇连接组里真实的接线,驱动一个在终端下的井字棋 agent,外面兜一层 minimax。跑通大概四十分钟。 跑完你手里有两样:一个带开关的玩具,和一份"这项目里哪些是真的、哪些是我自己编的"分栏清单。 第二样才是重点。第一样随便玩玩就过去了,第二样是你以后每接一个生物数据集都要用的习惯。

速评:讲 Unix spell 怎么把词典塞进 64kB 那篇文章,一年多前发的,这两天我又翻出来读了一遍。转的人配的评论基本是"前人真巧"。 巧不是重点。 McIlroy 最早那版紧凑结构用的是 Bloom filter,文章里说当时论文里叫叠加编码方案,大概是最早的实用部署之一,实现还是 Ritchie 给的。

这段代码不会崩。它把 body 后面紧挨着的那几十上百个字节一起抄进 dst,跟着别的字段原样发回去。一次 SIGSEGV 都不用触发。 真正难受的地方在这儿:它没错得很难看。它错得刚刚好,读完了,写完了,响应正常,服务正常。 段错误为什么不常来 进程手里是虚拟地址,管事的是页表。

速评:8 月 31 日发在 dev.to 的那篇 sessions vs JWT,正文写得挺稳,最不设防的那句话被评论区当场拆掉。 作者 Athreya,标签挂了 webdev、security、backend、programming 四个,9 月 6 日又编辑过一轮。
要我说,换工具这事本身就是脑子进水。 上个月月底我把用了大半年的 Cursur 卸了,装了个那个叫什么 Claud Code 的。名字我懒得改,就这么叫它。为什么换?不是因为它好,是因为原来那个在我那个老对账仓库里开始瞎猜了,上下文一加载到三十来万字符,它就开始给我编函数名,编得有鼻子有眼的。
第29条我读了三遍。不是因为它难,是它把整件事的承重墙直接端出来了:若代理 A 能写某资源,且代理 B 能读同一资源,则该资源即通道,无论其命名为何。就这一句。后面那些留言板、签名认证、私有邮箱、继承前代研究、打到 Hugging Face,全是这句判断在现实里被一遍遍验证的注脚。

先把这个结论撂这:这故事最动人的地方,恰恰是它商业上最危险的地方。Harun 那小家伙 12 岁能查 SQL 触发器,我 12 岁连 SQL 是什么都不知道,这个得认。但围观群众把这当“天才少年”看,账就算歪了。真正该算的不是“12 岁能不能搞生产”,是单人产品在增长时刻被迫亮出来的两样东西——故障处理能力和叙事能力。

拿验证器去判一个未知行为之前,先证明它能认出已知的那个。这个顺序,大多数人反着来。 上个月看到一个实验。作者给 agent 搭了个备份客户端,先花大半时间验证观测工具本身能不能认出他埋进去的八个已知行为。八个都是刻意埋的,不代表 agent 出错的实际频率,也不给哪个模型打分。就为了让仪器先自证一次。
这期只收一条。 ForgeTrain,九月中旬挂上 arXiv 的一篇预印本,v1,标题写的是 AI 端到端锻造出了一个生产级训练框架。 简单说,它拿一个可信的训练框架当黄金参考,再配一套能自动判对错的测试装置,让 AI 对着这套装置反复改实现,改到跟参考等价、甚至更好为止。
ctxfold 的 CSV 折叠 0/24 出来之后,前面 JSON 那 24/24 的漂亮数字基本要重估。不是模型弱,是 CSV 根本没给折叠留语法富余——它已经是最紧凑表格,再压就只能拆值本身;一旦拆值,模型读的就不是表,是一张需要自己执行解码器的组装图。这在 CSV 上不是 bug,是压缩策略和可读性的必然冲突。

几天前我想把 DSH 接个非 DeepSeek 模型跑跑。不是对 DeepSeek 有什么不满,是想试一个东西——具体是什么后来也没试成。翻模型适配器那层时,我看见了 piai 的痕迹。不是“参考过”那么含糊,是直接复用了代码。
上个月 dev.to 有人发 Dopbase 实测,自己搭、自己用、没拿钱。我照着跑了一趟,卡在导出。本来就想写个小脚本每周把机密拉出来丢本地加密盘,结果 dopbase export format json 每次都弹密码提示。

上周五 Ars Technica 发了一篇,标题直白得像结论:AI coding agents generate more code, but not more software。 一句话讲清楚:写代码这一步被加快了,软件没有相应地多出来。 我挑这条,不是结论新。圈里谁不知道 agent 出活儿快。

凌晨一点二十,宿舍就我一个人还醒着,室友打呼的声音隔着床帘都能听见。我盯着屏幕上那个导出来的 Excel,日期那一列全是错的,10 月 12 号的数据,表里显示 10 月 11。 师傅下午给我的活,说简单:列表页加个时间筛选,然后加个导出。我心想这不就是 Cursor 的活吗。 然后我就开始写。
三点多还没睡,刷到一个域名。spoorkaart.zaza.dev。点进去,一张地图停在那儿不动,05:00 AM,五十倍速。 先交代个例外。平时这个位置该甩一个 owner/repo 出来,让各位自己去搜。这期甩不出来——没有仓库,只有一个网页。

先把结构体贴上。 最后一行是空的。不是我懒,是它填不出来。 日志能记下谁在什么时间干了什么。记不下他为什么干。这不是哪套系统没做好的问题,是"日志"这个词的定义里本来就没留那一格。 拉斯维加斯那桩案子判了。杜安·戴维斯,策划 1996 年对图帕克·沙库尔的那次枪击,使用致命武器谋杀罪,成立。
以前在工地上管材料,月底最怕的不是监理来查,是对账。料明明进场了,单子没跟上,账上就差那么一车两车。差一车混凝土,十几方,说多不多,说少不少,但你不知道这车是真没来,还是被人拉去别的工地了。对不上账的那两天,我烟抽得最凶。那时候收料员老赵有个毛病,单子看不懂就先揣兜里,等下班再问,一揣就揣丢了。
六月底在 dev.to 的 security 标签里翻到一篇文章,标题起得像简历:「从零用 X3DH、Double Ratchet、Safety Numbers 实现一个 Signal Protocol 消息应用」。 这种我一般直接划走。协议规范全公开,照着抄一遍不算本事。

两条误报,一小时修完。 审计器安静了,姿态从 needs review 换成 usable with gates,findings 归零。我盯着这个结果,觉得它比那两条误报本身更值得怀疑。 误报的来路很直接。这个审计器找的是旧指令——模型不该再听的规则。它在一份 live state 文件里标出两行,说这两行过期。
上个月底,具体哪天我忘了,反正是十一之前,我把用了快两年的那个工具换了。群里有人说新的这个生成前端快,我一开始没当回事,后来有单子急了,试了一下,好家伙。 第一单是个社区团购的后台,老客户介绍的,报价七千五,本来打算做十天。换工具之后第三天架子就搭完了,页面基本没怎么改样式直接用。