神鬼寓言 5 与 GPT-5.6 Sol 在 NP 难问题上的对比:/goal 有帮助吗? ——查尔斯·阿扎姆

作者:袖梨 2026-07-19

TL;DR:我给 Claude Fable 5 和 GPT-5.6 Sol 提供了相同的未发布的 NP 硬优化问题,无论有没有它们的本机/目标模式。 《神鬼寓言5》绝对是一部野兽; /goal 不会改变游戏规则。

背景:这是一个最初在黑客马拉松上提交给学生的运筹学问题。几年前我花了一周时间编写 C++ 来解决这个问题,所以我有一个有用的人类基线。

在这个基准测试中,《神鬼寓言 5》绝对是野兽。它产生了总体上最好的解决方案,并且其一致性与我从该问题的模型中看到的任何东西都不同。这是纯粹的原始智慧。极好的。

另一个结果是 /goal 不是通用的“更加努力”开关。它改变了控制循环和搜索路径。有时会找到更好的盆。有时它会给一个坏主意更多的时间来成熟。

所有代码、提示、结果表、排除项和轨迹注释均位于 CLIArena 中。这是我关于此基准测试的第一篇文章的后续文章。

问题

KIRO 是我在 2018 年作为工科学生研究的一个光纤网络设计问题。给定格勒诺布尔、尼斯和巴黎的有向距离矩阵,求解器必须使用环路和短链连接分发点和终端,同时尊重几个结构约束。目标是电缆总长度。越低越好。

有效的网络由植根于配送中心的冗余环路组成,短分支悬挂在这些环路的塔上。每个塔必须恰好出现一次,并且反转电缆段可以改变其成本。

搜索空间有多大?

不存在单一的封闭形式计数,因为解决方案可以使用任意数量的循环、可变的循环大小以及不同的锚定和排序分支。但仅巴黎就给出了有用的下限。

即使我们忽略排序和分支,仅将 532 个终端中的每一个分配给 11 个配送中心之一,也有 11^532 种可能的分配。

更强的下界来自一组故意限制的有效解决方案:正好有 19 个循环,每个循环有 28 个终端,没有分支。这涵盖了所有 532 个终端,因为 19 x 28 = 532 ,同时保持低于循环的 30 个终端限制。订购 532 个终端,将该订购分成 19 个连续组,除以 19!因为循环集是无序的,因此为每个循环选择 11 个集线器之一:

(532!/ 19!) x 11^19 ~= 10^1223

我测试了什么

主要实验故意缩小范围:

在集中重复旗舰对之前,我为扫描中的每个模型运行了一对匹配的 30 分钟无提示对。对于 Fable 和 Sol,图表使用复制标题集中的第 1 对;其他四个型号各有一对。

然后我重复了旗舰比较,直到我对《神鬼寓言 5》进行了 3 次匹配运行,对《索尔》进行了 3 次匹配运行。

负数意味着/目标更好。 Goal 赢得了六次试验中的四次,因此仅胜率就足以让该功能看起来很有用。手段告诉另一半:

这两种模型通常都会获得较小的收益,偶尔也会出现较大的回归。这就是为什么 /goal 赢得了大多数比赛,但使两种手段都变得更糟。

寓言显然也更强。其简单平均数比索尔高出 1,875 分,其目标平均数比索尔高出 1,984 分。更重要的是,《Fable plain》的得分范围只有 319 点,而《Sol plain》则跨越了 1,958 点。 《神鬼寓言》的进球创造了最好的干净得分,31,934;寓言平原是最安全的配置。

深入研究目标命令

同一个命令隐藏两个不同的系统

Claude Code 和 Codex 都公开了 /goal ,但实现方式根本不同。

克劳德·代码:单独的评估者

Claude Code 将 /goal 实现为会话范围的 Stop 挂钩。每次主模型转动后,一个小型评估器模型(默认情况下为俳句)会读取条件和对话。它返回“是”或“否”并给出原因。 A no 开始另一轮;回答“是”则目标明确。

评估者无法使用工具或检查文件。它只能判断笔录中出现的证据。这可以赶上提前退出,但它无法知道是否值得再进行一千万次求解器迭代。 Anthropic 的目标文档

请记住,克劳德代码不是开源的,因此我们仅依赖 Anthropic 告诉我们的内容。

Codex:持久状态和生命周期工具

我还阅读了基准测试版本 Codex CLI 0.144.4 的源代码。 Codex 将目标视为持久线程状态:

  1. TUI 保存活动线程的目标,SQLite 存储其状态和预算会计。 TUI、模式
  2. 工作模型接收 create_goal 、 get_goal 和 update_goal 工具。工具规格
  3. 如果目标处于活动状态时线程变得空闲,Codex 会注入一个带有目标的连续轮次和完成审核。运行时、提示符

克劳德将完成任务委托给另一个模型。 Codex 让工作模型声明完成,然后在持久目标保持活动状态时恢复它。克劳德的评估员是独立的,但只能看到成绩单; Codex 可以查看文件和工具,但可以有效地对自己的工作进行评分。

为什么 /goal 可以赢得大多数比赛,但仍然是一个糟糕的默认值

在正常的编码任务中,进度通常是清晰的:另一轮可以修复测试或完成迁移。优化是不同的。一旦智能体选择了求解器,额外的时间就会放大好的决策或坏的决策。

这正是这里发生的事情。 Goal 在维持 Fable 快速编译的投资组合或 Sol 成功的链重新分配时发挥了作用。当《Fable》构建了一个缓慢的解算器或 Sol 致力于彻底的锚扫描时,这很痛苦。中位数稍微向右移动;坏尾巴在错误的尾巴上移动得更远。

局限性

这是一项未发布的 NP 困难任务,而不是通用的编码排行榜。只有《神鬼寓言》和《索尔》拥有三对干净的配对。其他比较混合了提示、包装版本和时间限制,并且试验通过可能已经发生偏差的订阅服务按顺序运行。

尽管任务元数据声明了 1 个 CPU,但容器暴露了 8 个 CPU,这有利于 Fable 的并行产品组合。每个评分的《Fable》和《Sol》输出都是有效的,部分原因是包装器需要早期检查点和最终验证。该基准测试衡量整个系统:模型、CLI、提示、订阅服务和工具。

复制这个

基准测试任务、包装器、分析脚本、图形生成器和完整的证据备忘录位于 CLIArena 中。原始作业目录因其大小而被排除在 Git 之外,但备忘录记录了每个可发布的分数、城市细分、已用时间、策略、排除和运行 ID。

主要命令是:

我放在标题中的结果并不是目标有帮助或有伤害。持久性功能可以赢得大多数单独的试验,同时使观察到的平均性能变得更糟。在硬优化问题上,循环的质量比循环持续执行的操作的质量更重要。

相关文章

精彩推荐