Wink Pings

他造了门接近TS的语言,模型却写不利索

Mario Zechner用spare agent搭了个评测工具,让不同模型分别用pico、QuickJS和djs写脚本。表格显示pico接近TS,模型仍然吃力。更有意思的是,评测工具本身也是codemode脚本。

Mario Zechner在X上贴了一张代码编辑器截图。顶部是“Design pico codemod”,下面跑着1763次工具调用,1次失败。失败那条以agent eval6 pico开头。这不像普通demo,更像一个用spare agent搭出来的评测工具。

代码编辑器截图,显示pico codemod任务和大量工具调用

前一天,Mario说要造一门给codemode用的语言,名字叫pico。有人问用什么写,他回C。有人问语法,他回得很冲:谁在乎。网友调侃,本来是要赢过Armin,结果加入了对方。pico这个名字还有插曲,有网友说它在斯洛伐克语里是甲基苯丙胺的昵称。

codemode可以理解成:模型写一段脚本,运行时去执行,脚本里可以调bash、写文件、开子代理。模型不用逐个调工具。Mario想让pico成为这门脚本语言。QuickJS是小型JS引擎,djs/TS是Armin那边的方案。于是eval6把三者放在一起比。

评测工具本身是p2 codemode脚本,跑在QuickJS沙箱里,async body。gist注释写着Not pi-durable。Mario在推文里称它exceptionally cursed。有网友刘朝总结:用code mode写eval harness,再spawn agents测code mode,诅咒含量刚好。

harness逻辑不复杂。任务、模型、语言三个维度交叉。每个组合让一个一次性子代理写脚本。子代理没有工具,只返回结构化输出。脚本写到文件,再由runner跑固定fixture,判输出、返回值和工具调用。最多3次尝试。只有编译/解析失败或运行时错误才重试,并把错误喂回去。脚本跑通但答案错,不重试。16个worker并发。结果追加到results.jsonl。

评估表格截图,对比pico、djs和QuickJS在120次运行中的表现

表格标题是Model eval (eval 6),对比pico、djs、QuickJS,每种120次运行。列了首次编译/解析、首次正确率、三次内正确率、跑完但答案错、运行时错误、脚本调用失败的工具调用次数、总字符长度、提示里描述的行数。下面按模型拆首试正确率和三次内正确率,模型包括Claude Sonnet 5.5、Claude Haiku 5.5、GPT-6 Sol、DeepSeek V4.1 Flash、Kimi K3、GLM-5.3。

Mario的结论:pico接近TS,模型还是struggle。他还补了一句,带类型检查的codemode语言能提升正确率,目前代价是首次尝试失败变多。这个问题可以靠改语言和改给agent的语言描述解决。换句话说,模型写不对,一部分是语言设计问题,一部分是说明书问题。

项目截图,显示测试套件、第8轮eval和站点更新计划

截图里列了提交前的测试套件:所有C测试和33个黄金案例,关闭JIT、开启JIT、强制模式下的TypeScript测试各136个,三种语言的全部60个参考解决方案,还有站点测试。提交内容是第8轮eval、QuickJS和djs评测工具,以及163行描述。站点代理在更新语言参考和Model evals页面。所有者留言:keep improving things until pico wins the eval。

目标不止是赢评测。Mario说,他想要一个durable execution VM,快照尽可能小,最终摆脱基于replay的持久执行。这个目标很具体。pico现在还没赢,Mario说会继续爬山,直到成功。看表格,pico离TS近,离模型写顺还有距离。先改语言,还是先改说明书,他得自己选。

发布时间: 2026-11-03 07:29