模型 · System One

你声明的选项就是整个模型

一个炭灰色网格框架,除一格外每格都嵌着象牙白陶瓷砖,一块琥珀色瓷砖躺在框架之外
受缺失格子启发的原创抽象编辑插画。

用语言模型,糟糕的提示会生成糟糕的句子,你看得出来。用类型化的决策模型,糟糕的问题会生成一个类型完全正确、格式完美的答案,而你根本看不出任何毛病。

这正是值得在把模型接入任何系统之前先理解的陷阱。来自2026年9月17日那一周的两项证据——一项是预先注册的评价,一项是实践者的运行——从不同方向指向同一个结论:你得到的准确率,很大程度上取决于你如何写这些问题。Ciyo 不运行 Jev;它不生成图像,也不生成视频,且不在我们的任何一个模型注册表中。

一个问题,还是五个

本周发布的最直接证据来自一位运行钓鱼邮件分流的实践者。作为一个单一问题提问时,这项任务得了 62.6%。拆成五个独立问题,针对同一 state 评估并在代码中合并后,得了 95%。

这只是某人用自己的标签、在没有公开数据集情况下的运行,所以它是一个尝试拆分的理由,而不是一个可以引用的数字。但它与厂商自己的文档建议一致——分解成原子化的单一目的问题,而不是在一个问题里做多因素判断——也与 API 的形态一致:在一次调用中,每个问题都针对同一 state 并行评估。

经济账让这条建议很容易遵循。一次调用中占主导的成本是发送 state,而不是回答问题。只要 state 上了线路,问五个几乎免费。

两根柱状图,比较作为单个问题提问时的 62.6% 准确率和拆分为五个时的 95% 准确率
由 @rajeshberi 在 X 上于 2026年9月21日 报告。仅说明单次实践者运行,并非基准测试。Ciyo 制图。

如何拆分一个抗拒拆分的问题

「这封邮件是钓鱼企图吗」是结论,不是问题。拆分的方法是去问能使之成立的证据,一次一条,然后把下结论的事交给你自己的代码。

发件人域名是否与它声称所属的组织匹配?消息是否在索要凭证或付款?措辞里是否有时间压力?可见的链接文字是否与它们实际指向的地方一致?在这个发件人通常使用名字的地方,问候语是否泛泛?

五个窄问题,五个各自带置信度的值的答案,以及你代码中一条可以读取、测试和修改而无需触碰提示的规则。最后这部分才是真正的奖赏:合并逻辑变成了普通的软件。

一个已分解问题集的形态
questions: {
  "sender_mismatch": { "type": "noul", "instructions": "发件人域名与消息声称所属的组织不匹配。" },
  "asks_for_secret": { "type": "noul", "instructions": "消息向读者索要密码、验证码或付款。" },
  "time_pressure":   { "type": "noul", "instructions": "消息迫使读者迅速行动。" },
  "link_mismatch":   { "type": "noul", "instructions": "可见的链接文字与其实际指向的位置不同。" },
  "risk":            { "type": "score", "instructions": "把这封消息投递到收件箱有多危险?",
                        "criteria": ["无害", "可疑", "疑似钓鱼", "明显恶意"] }
}

选项名是一个标签;标准才是定义

Choice 接受一个从选项名到描述的 `criteria` 映射,Score 接受一个有序的级别描述数组。这些字符串不是写给你同事的文档。它们是模型唯一拥有的定义。

「billing(账单)」几乎什么也没告诉它。「发件人在询问一张发票、一笔他不认得的收费、一笔退款,或者更改付款方式」才告诉它要找什么。这第二个版本也是你在任何东西自动化之前可以和同事争论的版本,而那正是分歧代价最低的时刻。

写标准就像给入职第一天的新人写操作指引:什么归这里,什么看起来相似却归别处,以及当两者都不是时该怎么办。

它给不了你的那个答案

现在说一个更尖锐、也会改变设计的发现。在2026年9月20日发布的预先注册评价中,作者们测试了模型是否会示意某个 state 落到了声明选项之外。在30个不存在逃生选项的越界案例里,它没有标记其中任何一个。

那不是缺陷。那是类型系统正按宣传的那样运作:你声明了可能的答案,于是就返回了一个声明类型的值。但这意味着一个越界的输入不会响亮地失败。它安静地成功,附带最接近的选项和一个置信度的值。

修复只需一行问题设计。你自己声明逃生选项——`none_of_these`、`needs_a_human`、`not_applicable`——并像对待真正选项一样仔细地为它写标准。然后在代码里路由它。

两张卡片,对比没有逃生选项时会发生什么,以及该声明什么来代替
0-of-30 这一发现来自2026年9月20日预先注册的 priorbench/jev 评价。Ciyo 制图。

同一项评价发现它擅长什么

值得把另一半也报告出来,因为围绕这些模型的民间说法,往往在令人安心的方向上错,在悲观的方向上也错。

同一项运行发现,数字比较和日期排序在13种不同的问题设计间保持在 99.6%,否定在 100% 的被测案例中都被正确处理。三天前发布的一份实践者指南曾警告说否定可能失灵,且模型不擅长算术和日期。那次更大规模、预先注册的运行没有重现这一点。

这对于2026年9月整个这个话题是个有用的提醒:围绕一个公开还不到一周的模型,大量言之凿凿的建议正在流传。优先选择附带方法和代码仓库的证据。

2026年9月关于同一弱点的两种说法
主张来源预先注册的运行发现了什么
不擅长算术和日期计算一份实践者指南,2026-09-17数字比较和日期排序在13种设计中保持在 99.6%
否定可能失灵同一份指南否定在被测案例的 100% 中被正确处理
上下文腐化:准确率随无关 state 而下降同一份指南此处未被反驳;值得在你自己的 state 上测试
逐字读取指令同一份指南与越界发现一致:它回答的是你写下的那个问题

问题上线生产前的检查清单

它是否原子化?如果句子里含有「和」或「除非」,它很可能是两个问题。

选项是否详尽,包括一个逃生出口?如果一个看似合理的输入无处落脚,它会落到错误的地方。

每个选项都有标准吗?选项名是个标签;标准才是定义,而模型只拥有你写下的东西。

评分量表有序吗?Score 期望两到十个在序列中有意义的级别,而返回的评分可以落在它们之间。

你是否针对自己的标签测量过它?本文中的每个数字都来自别人的任务。

关于问题设计的问题

为什么拆分问题更好

每个问题都针对同一 state 孤立评估,所以窄问题就是窄任务。合并逻辑于是住在你的代码里,可被测试。一位实践者的运行在拆分后,于自己的标签上从 62.6% 提升到 95%。

多问问题会更贵吗

贵得极少。占主导的成本是你发送的 state;问题针对它并行评估。

如果一个输入不符合我的任何选项,会怎样

它无论如何都会得到最接近的选项。一项预先注册的评价发现,在未声明逃生选项时,30 个越界案例中有 0 个被标记。声明一个。

它在日期和否定上很弱吗

一份实践者指南在 2026年9月17日 这么说。三天后更大规模的预先注册运行测得,数字与日期排序为 99.6%,否定为 100%。与其相信任一方,不如在你自己的数据上测试。

继续阅读

Ciyo 撰写关于创意与智能体工具背后的模型,并测试那些它能运行的模型。