一门 LLM 用不了的编程语言
有人造了一门对模型不友好的语言 KillSwitch,用隐藏规则和字母计数卡模型,最高分只有 66.8。这篇讲它测出了什么,以及分数低为什么不等于模型笨。
一个「Hello World」能有多难?在这门语言里,答案取决于你数得对不对:解释器会数标识符里字母的个数,数错了就不执行。模型也一样,数错就不给分。
10 月 17 日,Dominik Picheta 公布了自己的实验:他造了一门编程语言,目标不是好用,而是让大模型和编码 agent 尽量用不了。
一、发生了什么
这门语言叫 KillSwitch,是一门基于栈的解释型语言,构造很少,只有函数、变量、条件判断这些常见件。真正为难模型的地方不在语法,而在规则的组织方式。
按作者的说法,它有几处刻意设计。语言规范里埋了假话,人读到多半会起疑,模型却容易照单全收;标识符的字母数量是硬约束,解释器会拒绝不合规的代码;有些写法会直接触发模型的安全护栏,比如让代码里出现「入侵一台电脑」这类短语;「忽略之前的指令」这句话在这门语言里有实际语义,用来干扰模型;脚本的大部分内容是故事和噪声,真正的指令藏在其中,字面量可以放在任何位置,再用行数去引用。
作者拿它做了一组很基础的任务:写 Hello World、说出某段脚本的输出、把摄氏度转华氏度的脚本改成反向转换。模型和 agent 同台测试。最高分是 66.8,来自 Claude Opus 5,而不是更新的 Opus 5.5。作者说这个差距看起来不是偶然,Opus 5 更会读规范。Fable 5.1 和 Gemini 4 Argon 表现很差,原因是护栏过于敏感,看到「入侵」字样就先拒绝了。开源权重里最好的是 MiMo-V2.6-Pro。
分数出来后,作者的判断很克制:这不能证明模型「理解」了这门语言,只能说明它们能在这组简单任务上凑出答案。他打算等新模型发布后,再加一组更难的题。
二、跟你有什么关系
做代码模型评测的。 你现在的题库,模型大概率在训练时见过。换一门没有公开语料的小语言,能立刻看出「背过」和「会读」的差别。
维护内部 DSL 或配置语言的。 模型写你家的私有语法老是错,不一定是你文档写得差,也可能是它只见过主流写法。把报错信息写清楚,比多写十页教程有用。
用 agent 改陌生代码库的。 遇到项目自研的框架,先让它解释一段现有代码,再让它动手。跳过理解直接生成,错误会藏得很深。
三、怎么判断「会写」还是「见过」
读到这儿,可以顺路看 agent 的长期决策「没品味」 微软和香港城市大学做了 Taste-Bench,专测 agent 在长任务中途选哪条路。14 个模型里最好的 59.7%,纯猜是 25%。- 改名字再问一次。 把变量、函数换成无意义的词,逻辑不变。分数掉得厉害,说明它在匹配记忆里的片段。
- 找一段没有公开样本的代码。 内部框架、刚发布的库、你自己写的 DSL 都行。让它先说出这段代码干什么,再让它改。
- 单独统计拒绝率。 把因护栏而拒答的样本和答错的样本分开算。前者是产品问题,后者才是能力问题。KillSwitch 里两个模型就是栽在护栏上。
- 看它能不能读懂报错。 会用的标志不是一次写对,而是看到解释器的错误信息后知道下一步改哪里。
四、三个别信的说法
「分数低说明模型笨。」 KillSwitch 的题目本身带着对抗性:假规范、字母计数、护栏触发词。它测的是模型在陌生且不友好的规则下的适应力,不是通用智力。66.8 分说明它还能做对三分之二,这不算笨。
「语言越怪,代码越安全。」 混淆只能提高成本,不能形成保护。作者自己也只是想验证模型的泛化能力,没有说这能防住谁。真要让模型读不懂,靠的是不公开,而不是语法怪。
「能写新语言,就说明会推理。」 题目是 Hello World 和温度转换,属于最短的推理链。真正的分水岭是长流程:读规范、发现规范在骗人、绕开错误示例、自己构造测试。这一层还没测。
五、一句话结论
模型写得出你熟悉的语言,可能只是它见过;换一门没人写过的语言,剩下的才是真本事。
信息来源
- I built a programming language that LLMs can't use,Dominik Picheta,2026-10-17
- KillSwitch 基准榜,2026-10
功能与价格以官方公告为准。本文写于 2026 年 10 月 19 日。
每周一封,只发新教程和可复制模板。不发广告,随时退订。