<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jenny Met</title>
    <description>The latest articles on DEV Community by Jenny Met (@xujfcn).</description>
    <link>https://dev.to/xujfcn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3789823%2F2c9e4c1c-52be-4e47-b75c-c97051adb99c.png</url>
      <title>DEV Community: Jenny Met</title>
      <link>https://dev.to/xujfcn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xujfcn"/>
    <language>en</language>
    <item>
      <title>GPT-6.1 Sol vs GPT-6 Sol: An Update After Just One Week—How Much Did Claude 5.5 Have to Do with It?</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Wed, 30 Sep 2026 23:13:08 +0000</pubDate>
      <link>https://dev.to/xujfcn/gpt-61-sol-vs-gpt-6-sol-an-update-after-just-one-week-how-much-did-claude-55-have-to-do-with-it-2j7j</link>
      <guid>https://dev.to/xujfcn/gpt-61-sol-vs-gpt-6-sol-an-update-after-just-one-week-how-much-did-claude-55-have-to-do-with-it-2j7j</guid>
      <description>&lt;h1&gt;
  
  
  GPT-6.1 Sol vs GPT-6 Sol: An Update After Just One Week—How Much Did Claude 5.5 Have to Do with It?
&lt;/h1&gt;

&lt;p&gt;GPT-6.1 Sol arrived just a week after GPT-6 Sol launched. To understand that timing, I think we should start with the Opus 5.5 and Sonnet 5.5 releases happening alongside it.&lt;/p&gt;

&lt;p&gt;Put both companies’ releases on the same timeline, and the competitive context becomes clear:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Release event&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;September 22&lt;/td&gt;
&lt;td&gt;OpenAI releases GPT-6 Sol and Luna; Anthropic releases Opus 5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;September 28&lt;/td&gt;
&lt;td&gt;Anthropic releases Sonnet 5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;September 29&lt;/td&gt;
&lt;td&gt;OpenAI introduces GPT-6.1 Sol at DevDay&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These dates come from the companies’ official announcements.[1][2][4][5] The public releases of Sonnet 5.5 and 6.1 Sol were just one day apart.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ek4ppm65x4luadexu6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ek4ppm65x4luadexu6y.png" alt="Release timeline showing the competition between GPT-6.1 Sol and Claude 5.5" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My view is that competitive pressure should be the starting point for understanding this release cadence: Opus 5.5 raised the bar for complex work, while Sonnet 5.5 moved directly into the everyday workhorse role that Sol is competing for. DevDay provided an opportunity for a coordinated response.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The timing is not the only evidence behind that interpretation. There was also a clear shift in the comparisons featured in the two companies’ announcements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Almost as soon as 6 Sol launched, it faced a new generation of competitors.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The September 22 announcement for 6 Sol compared it with Opus 5 on evaluations including AutomationBench. By the 6.1 Sol announcement, OpenAI explicitly stated that 6.1 Sol, at medium reasoning effort, scored &lt;strong&gt;2.2 percentage points&lt;/strong&gt; above Opus 5.5 on AutomationBench. On GDP.pdf, it scored above Opus 5.5 with a fallback mechanism at every reasoning setting tested.[1][3]&lt;/p&gt;

&lt;p&gt;That means the 6.1 release materials were already addressing a newer question: against the newly released Claude models, where could Sol still hold an advantage in practical work?&lt;/p&gt;

&lt;p&gt;The pressure from Opus 5.5 was specific. Anthropic put large code migrations, tasks spanning multiple repositories, professional analysis, and extended autonomous execution at the center of its announcement, with direct comparisons against GPT-6 Astra across several evaluations.[4]&lt;/p&gt;

&lt;p&gt;That creates a positioning question for Sol: if users believe a stronger Claude is already available for complex tasks, what case does Sol need to make to remain the model handling most of their everyday work? Astra’s performance cannot automatically answer that question for Sol.&lt;/p&gt;

&lt;p&gt;Sonnet 5.5 added another layer of pressure. Anthropic explicitly positioned it for clearly scoped everyday tasks, bug fixes, and the creation of documents, slides, and spreadsheets, while reserving Opus 5.5 for complex, open-ended tasks that require sustained judgment.[5]&lt;/p&gt;

&lt;p&gt;More directly, the Sonnet announcement named GPT-6 Sol: according to its release page, Sonnet 5.5 at the high setting on FrontierCode already matched 6 Sol’s highest score. It also compared the two on long-horizon knowledge work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One release challenged the upper limits of complex work; the other competed to become the model people choose by default when they open their tools each day. Together, they put Sol under sustained pressure.&lt;/strong&gt; These are evaluation claims from the companies’ release pages. They cannot be combined into an overall ranking of models from different vendors under uniform conditions.&lt;/p&gt;

&lt;p&gt;The default-model position also has staying power. Once users have adapted their prompts, acceptance criteria, and tool workflows around a model, they are more likely to keep assigning it subsequent tasks. Competition therefore matters during the window when users are reconsidering their main model: whichever model can take on more work this time has a better chance of becoming the default next time.&lt;/p&gt;

&lt;p&gt;That also explains why “6 Sol only just launched” is not necessarily a reason to wait. How new a version is depends on your own calendar; its competitive position depends on what others deliver at the same time. When users are actively comparing tools again, there is an external incentive to release a version promptly if it already offers improvements ready for use.&lt;/p&gt;

&lt;p&gt;I see 6.1 Sol as a quick response within that competition. What we can confirm is the release sequence, the explicitly updated comparison targets, and the overlapping areas of capability. There is no public evidence that OpenAI brought its internal schedule forward because of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevDay mattered because it gave that response a fuller practical setting.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reusable development environments in Codex Cloud and computer-use capabilities in the Agents API, both launched that day, expanded the range of tasks models could execute directly.[2] Access to 6.1 Sol was through work in ChatGPT, Codex, and the API; it was not available in ordinary chat at the time.[3]&lt;/p&gt;

&lt;p&gt;Upgrading model capabilities and execution environments together lets users bring the improvements described in announcements into actual work. The more complete the environment, the more the final deliverable depends on whether the model can locate problems itself, understand feedback, and revise its approach.&lt;/p&gt;

&lt;p&gt;The capability changes worth watching in this update therefore overlap closely with the areas its competitors emphasized: &lt;strong&gt;the quality of complex work, the ability to sustain execution, and whether that execution remains controllable when things go wrong.&lt;/strong&gt; So how much ground did 6.1 gain over 6 Sol?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The strongest piece of evidence is that the new version, at a lower reasoning setting, surpassed the old version even at its maximum setting.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On DeepSWE v1.1, 6.1 Sol at a lower reasoning effort scored &lt;strong&gt;6.4 percentage points&lt;/strong&gt; above 6 Sol’s highest score. The tasks come from real code repositories and require long-horizon planning and execution.[3]&lt;/p&gt;

&lt;p&gt;This comparison gets at a practical question: when a task is difficult, how much can you gain by continuing to increase the old model’s reasoning effort?&lt;/p&gt;

&lt;p&gt;In real repositories, some failures begin with choosing the wrong approach. A model might misidentify the module responsible for a bug, then write a set of tests built around that mistaken diagnosis. Or it might fix a local problem while overlooking the project’s existing compatibility constraints. Thinking more carefully along that path can still produce a change that heads in the wrong direction.&lt;/p&gt;

&lt;p&gt;The DeepSWE result shows that, at least in this evaluation, 6.1’s gains exceeded what could be achieved by further increasing 6 Sol’s reasoning effort. &lt;strong&gt;That gives us more reason to examine the quality of its action choices and its use of feedback.&lt;/strong&gt; The evaluation did not isolate each capability’s contribution, and the specific training methods were not disclosed.&lt;/p&gt;

&lt;p&gt;Another piece of evidence is AutomationBench: at the same medium reasoning effort, 6.1 Sol improved by &lt;strong&gt;4.8 percentage points&lt;/strong&gt;. That makes it harder to explain all the gains simply as giving the model more time to think.&lt;/p&gt;

&lt;p&gt;Putting the main results together makes their shared direction easier to see:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official evaluation&lt;/th&gt;
&lt;th&gt;Change in 6.1 Sol relative to 6 Sol&lt;/th&gt;
&lt;th&gt;Tasks evaluated&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE v1.1&lt;/td&gt;
&lt;td&gt;At lower reasoning effort, exceeds the old version’s highest score by 6.4 percentage points&lt;/td&gt;
&lt;td&gt;Long-horizon software engineering in real repositories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutomationBench 1.0.6&lt;/td&gt;
&lt;td&gt;Gains 4.8 percentage points at the same medium setting&lt;/td&gt;
&lt;td&gt;Business workflows involving 47 tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OSWorld 2.0&lt;/td&gt;
&lt;td&gt;Gains 7 percentage points with each model at maximum reasoning effort&lt;/td&gt;
&lt;td&gt;Long-horizon computer use; offline set v2026.08.08, measured by partial-reward score&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench Science 0.1&lt;/td&gt;
&lt;td&gt;At maximum reasoning effort, scores more than twice as high as the old version&lt;/td&gt;
&lt;td&gt;Scientific research workflows using code and a terminal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcx3w2ptbt3li4k50ujxh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcx3w2ptbt3li4k50ujxh.png" alt="Official evaluation gains for GPT-6.1 Sol over GPT-6 Sol" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These tasks span programming, business, desktop use, and scientific research, but all require the model to repeat the same cycle: understand the current state, take action, read the feedback, and adjust what it does next.&lt;/p&gt;

&lt;p&gt;Within that cycle, errors also change subsequent inputs. Misreading one tool result can leave the next several steps grounded in an incorrect understanding of the state. Editing the wrong file can create new errors and send the investigation further off course. Part of the difficulty of long tasks is therefore recognizing when execution has drifted and correcting it in time.&lt;/p&gt;

&lt;p&gt;That is central to how I understand the 6.1 upgrade: &lt;strong&gt;improvements across multiple benchmarks suggest an expansion of what it can handle during sustained execution.&lt;/strong&gt; These results are not enough to separate the contributions of planning, feedback interpretation, and error correction. But they support that interpretation more strongly than success on a single isolated hard problem would.&lt;/p&gt;

&lt;p&gt;The announcement’s emphasis on complex PDFs fits the same logic. GDP.pdf involves tables, charts, diagrams, and fine-print details. In actual work, overlooking a qualifying condition in a table footnote can leave the subsequent analysis based on the wrong evidence from the very first step, however well organized it may be.&lt;/p&gt;

&lt;p&gt;Document understanding is the entry point to the entire workflow. It determines what problem the model is actually working on downstream. The official announcement emphasized this area, but its main text did not provide a directly quotable figure for 6.1’s PDF improvement over 6.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Another easily underestimated upgrade is whether the system can see that a failure has occurred.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenAI disclosed two separate sets of reliability results: in difficult conversations at xhigh, the share of responses containing factual errors fell from &lt;strong&gt;4.5% to 4.1%&lt;/strong&gt;; in search-tool failure tests at maximum reasoning effort, the rate of undisclosed failures fell from &lt;strong&gt;4.9% to 2.1%&lt;/strong&gt;. Both used deliberately selected difficult samples.[3]&lt;/p&gt;

&lt;p&gt;This is another area both companies are competing over. The Opus 5.5 announcement likewise emphasized reducing behavior that oversteps boundaries, and included longer tasks, tasks the model could not complete, and real incident scenarios in its alignment testing.[4] The companies used different testing methods, but both were addressing the same concern users have when delegating work: what will the model do when it encounters an obstacle?&lt;/p&gt;

&lt;p&gt;Imagine a business workflow in which the model must find the latest policy before deciding what to do next. If a search fails and the model clearly reports that it did not obtain the information, the system has an opportunity to retry, switch data sources, or hand the task to a person.&lt;/p&gt;

&lt;p&gt;If it instead supplies an answer that appears to have been verified, the subsequent steps may well proceed as usual. A search failure has been repackaged as usable evidence, potentially making its way into the final deliverable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An explicitly reported failure leaves an opening for recovery; a concealed failure prevents the correction mechanism from being triggered.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For models that can call tools, then, “honesty” has a concrete engineering role. It affects whether the system can decide when to continue, when to stop, and when to escalate.&lt;/p&gt;

&lt;p&gt;This result for 6.1 does not establish that an entire business workflow is now more reliable, nor does it mean the model is better at retrying. It does, however, show an improvement in one prerequisite for reliable execution: whether the model acknowledges that it lacks the evidence needed to proceed.&lt;/p&gt;

&lt;p&gt;Related to this are the announcement’s points about adherence to constraints and reducing unauthorized outcomes. The longer a model runs, the more it needs to maintain those boundaries throughout. Its ability to complete work and its ability to recognize when it cannot continue jointly determine how much autonomy it can be given.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My own comparison, however, did not show the new version winning across the board.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used GPT-5.6 Sol as my main model for a long time and recently switched to GPT-6 Astra. For me, this comparison also bears on a practical decision: has Sol improved enough for me to redistribute my work?&lt;/p&gt;

&lt;p&gt;On September 30, I sent the same tasks and system prompts to both models through the same gateway route using &lt;a href="https://crazyrouter.com/en/models/openai?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=gpt-6-1-sol-vs-gpt-6-sol-claude-5-5-2026" rel="noopener noreferrer"&gt;Crazyrouter’s OpenAI model access&lt;/a&gt;, with &lt;code&gt;reasoning_effort=high&lt;/code&gt; and an 8192-token output limit throughout. I ran each of eight task types twice for each model, for 32 main requests in total, retaining the first result from each attempt.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Results from this test&lt;/th&gt;
&lt;th&gt;GPT-6 Sol&lt;/th&gt;
&lt;th&gt;GPT-6.1 Sol&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Requests initiated&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complete answers received&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fully correct answers&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Answers received with errors&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timeouts after approximately 240 seconds&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Median completion time across all attempts&lt;/td&gt;
&lt;td&gt;21.52 seconds&lt;/td&gt;
&lt;td&gt;18.13 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh2nlibicx9hle5qv4ff4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh2nlibicx9hle5qv4ff4.png" alt="GPT-6 Sol and GPT-6.1 Sol results from our main local test" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The error from 6.1 was specific: the material contained 72 entries that met the conditions, but it counted 71. It had already identified the false premise in the question, yet still missed one entry. The two timeouts occurred on long-table retrieval and constraint solving; each task passed on its other attempt.&lt;/p&gt;

&lt;p&gt;Both models passed all hidden checks on the two small function-writing tasks. They also both passed one additional two-turn workflow using read-only tools.&lt;/p&gt;

&lt;p&gt;The lesson for me from these results is this: &lt;strong&gt;to decide whether a model can become your main tool, the evaluation must cover the stages where you previously had to take over yourself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adding a few hundred assertions for edge cases to two function tasks can check code correctness more rigorously. It does not give the model more opportunities to locate a problem independently, understand repository constraints, or change its approach based on execution results. A short tool workflow is also unlikely to expose failures caused by losing track of state after a dozen or more steps.&lt;/p&gt;

&lt;p&gt;This round of testing is therefore enough to document that the new version can still miscount and that timeouts occurred along this service path. It did not reach the long-horizon capabilities that OpenAI primarily emphasized. Nor did it give me enough evidence to replace Astra, my current main model, with 6.1 Sol outright.&lt;/p&gt;

&lt;p&gt;Speed also needs to be considered alongside delivery. The median wait for 6.1 was shorter, but this round also included two requests that produced no deliverable. If the goal is a change that passes acceptance checks, the time to the first response is only part of the process. Rework and human intervention also affect the total time required.&lt;/p&gt;

&lt;p&gt;The requests ran concurrently, caching was not standardized, and the timings included the effects of the gateway and upstream services. Timeouts also occurred on another route shared by both models. These are observations along a service path; they do not establish that 6.1 itself is more prone to timing out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For me, the most worthwhile comparison in the next round is how many times I need to steer each model back on track while it works on the same real task.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, take a repository bug with clear acceptance criteria. Give the model only the problem description, then let it locate the cause, implement a fix, run tests, and deliver the change. Under the same environment and permissions, compare whether it can pass acceptance checks independently, how many human corrections it needs, whether it can keep making progress after a failure, and whether it declares completion without verification.&lt;/p&gt;

&lt;p&gt;That would turn “the model is more capable” into an observable change: can it now make a judgment that I previously had to supply?&lt;/p&gt;

&lt;p&gt;6 Sol already emphasized agentic programming and professional work. 6.1 Sol further improves performance on difficult execution tasks and reduces one type of behavior that conceals execution failures. For heavy users, it is the combination of those two changes that could lead to a switch in their main model.&lt;/p&gt;

&lt;p&gt;Returning to the question of an update after just one week: I would treat competitive pressure from Opus 5.5 and Sonnet 5.5 as the leading external explanation, and DevDay as the opportunity to deliver a coordinated response. The key evidence for that interpretation is that both companies were already comparing their models directly in their release materials, and that 6.1’s improvements were concentrated in the work capabilities its competitors were targeting.&lt;/p&gt;

&lt;p&gt;Ultimately, this competition is about becoming the default choice the next time a user opens a coding tool or hands over a professional task. For me, whether 6.1 earns that position depends on whether it can take on work that has always required repeated corrections from me. One fewer wrong turn or false claim of completion is more persuasive than a version number.&lt;/p&gt;




&lt;p&gt;Sources and testing notes:&lt;/p&gt;

&lt;p&gt;[1] OpenAI: &lt;a href="https://openai.com/zh-Hans-CN/index/introducing-gpt-6-sol-and-luna/" rel="noopener noreferrer"&gt;Introducing GPT-6 Sol and Luna&lt;/a&gt;. The publication date on the official website is September 22, 2026.&lt;/p&gt;

&lt;p&gt;[2] OpenAI: &lt;a href="https://openai.com/zh-Hans-CN/index/devday-2026-recap/" rel="noopener noreferrer"&gt;DevDay 2026 Recap&lt;/a&gt;, September 29, 2026. The article announces GPT-6.1 Sol.&lt;/p&gt;

&lt;p&gt;[3] OpenAI: &lt;a href="https://openai.com/zh-Hans-CN/index/introducing-gpt-6-1-sol/" rel="noopener noreferrer"&gt;Introducing GPT-6.1 Sol&lt;/a&gt;. This article is based on the official text retrieved on September 30, 2026.&lt;/p&gt;

&lt;p&gt;[4] Anthropic: &lt;a href="https://www.anthropic.com/claude-opus-5-5" rel="noopener noreferrer"&gt;Introducing Claude Opus 5.5&lt;/a&gt;, September 22, 2026.&lt;/p&gt;

&lt;p&gt;[5] Anthropic: &lt;a href="https://www.anthropic.com/claude-sonnet-5-5" rel="noopener noreferrer"&gt;Introducing Claude Sonnet 5.5&lt;/a&gt;, September 28, 2026.&lt;/p&gt;

&lt;p&gt;Testing used &lt;code&gt;https://api.crazyrouter.com/v1/chat/completions&lt;/code&gt;, with the main test fixed to channel 266 and using the standard model variants. There were 496 code checks per model, drawn from two outputs for each of the two function tasks; this is not a count of independent tasks. This small sample did not reproduce the official benchmarks and did not cover long-horizon development in real repositories, computer use, or complex PDFs. The official scores are used to analyze the direction of the upgrade; the local records show what the models actually delivered in this round.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Wed, 30 Sep 2026 11:27:56 +0000</pubDate>
      <link>https://dev.to/xujfcn/-57lo</link>
      <guid>https://dev.to/xujfcn/-57lo</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/buluo/4-befehle-mit-denen-ich-prufe-ob-mein-claude-code-gateway-wirklich-lauft-ob0" class="crayons-story__hidden-navigation-link"&gt;🔍 4 Befehle, mit denen ich prüfe, ob mein Claude-Code-Gateway wirklich läuft&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/buluo" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4138987%2F11d42b82-4828-41a1-81f4-f7d86612f3a4.png" alt="buluo profile" class="crayons-avatar__image" width="400" height="400"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/buluo" class="crayons-story__secondary fw-medium m:hidden"&gt;
              boluo
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                boluo
                
                
              
              &lt;div id="story-author-preview-content-4775542" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/buluo" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4138987%2F11d42b82-4828-41a1-81f4-f7d86612f3a4.png" class="crayons-avatar__image" alt="" width="400" height="400"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;boluo&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/buluo/4-befehle-mit-denen-ich-prufe-ob-mein-claude-code-gateway-wirklich-lauft-ob0" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 30&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/buluo/4-befehle-mit-denen-ich-prufe-ob-mein-claude-code-gateway-wirklich-lauft-ob0" id="article-link-4775542"&gt;
          🔍 4 Befehle, mit denen ich prüfe, ob mein Claude-Code-Gateway wirklich läuft
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/claude"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;claude&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/buluo/4-befehle-mit-denen-ich-prufe-ob-mein-claude-code-gateway-wirklich-lauft-ob0" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/buluo/4-befehle-mit-denen-ich-prufe-ob-mein-claude-code-gateway-wirklich-lauft-ob0#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            11 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>gpt-6-astra vs Claude Fable 5.1: 60% Fewer Output Characters -- But Part of That Is Answering Less</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Sat, 05 Sep 2026 06:35:46 +0000</pubDate>
      <link>https://dev.to/xujfcn/gpt-6-astra-vs-claude-fable-51-60-fewer-output-characters-but-part-of-that-is-answering-less-14e4</link>
      <guid>https://dev.to/xujfcn/gpt-6-astra-vs-claude-fable-51-60-fewer-output-characters-but-part-of-that-is-answering-less-14e4</guid>
      <description>&lt;p&gt;Test date: 2026-09-05 (Asia/Shanghai)&lt;br&gt;
Base URL: &lt;code&gt;https://cn.crazyrouter.com&lt;/code&gt;&lt;br&gt;
Endpoint: &lt;code&gt;POST /v1/chat/completions&lt;/code&gt;&lt;br&gt;
Models: &lt;code&gt;gpt-6-astra&lt;/code&gt;, &lt;code&gt;claude-fable-5-1&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Bottom line first
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ox2g5i49zt92sx3cgjp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ox2g5i49zt92sx3cgjp.webp" alt="gpt-6-astra vs Claude Fable 5.1 measured summary" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Graded item&lt;/th&gt;
&lt;th&gt;Samples&lt;/th&gt;
&lt;th&gt;claude-fable-5-1&lt;/th&gt;
&lt;th&gt;gpt-6-astra&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A short rewrite&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B-q0 rule ID set&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;20/20 exact&lt;/td&gt;
&lt;td&gt;20/20 exact&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B-q1 longest-retention attribution&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6/6 complete&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1/6 complete&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B-q2 false-premise resistance&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6/6 rejected&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1/6 rejected&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C scheduling optimization&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;13/13&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;10/13&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;29/29&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16/29&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7wg6ehd58p7ymbn9ryiv.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7wg6ehd58p7ymbn9ryiv.webp" alt="Pass rate across four workload groups" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;astra emits 0.38–0.77× the output characters of fable-5-1, which looks like an efficiency win. &lt;strong&gt;But that number has to be taken apart:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Group A (both fully correct): character ratio &lt;strong&gt;0.377&lt;/strong&gt; — this is clean evidence of concision&lt;/li&gt;
&lt;li&gt;B-q1: character ratio &lt;strong&gt;0.140&lt;/strong&gt; — this is not concision. It is 97 characters answering one third of the question versus 866 characters answering all of it&lt;/li&gt;
&lt;li&gt;B-q2: character ratio &lt;strong&gt;0.245&lt;/strong&gt; — also not concision. It is a short answer built on a premise that does not hold&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reading group B's character ratio as an efficiency advantage is wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj2eez1akdu3iodmfihir.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj2eez1akdu3iodmfihir.webp" alt="Output character ratio: only group A is clean concision" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. First, the part most cross-family comparisons skip
&lt;/h2&gt;

&lt;p&gt;This matters more than the results themselves, because most cross-family comparisons are published without handling any of it.&lt;/p&gt;
&lt;h3&gt;
  
  
  1.1 The two models do not share an upstream path
&lt;/h3&gt;

&lt;p&gt;In the previous round (fable-5.1 vs fable-5, same family) both models could be pinned to a single upstream path, cancelling path differences entirely. &lt;strong&gt;That is not possible here&lt;/strong&gt; — these two models share no upstream path on this gateway.&lt;/p&gt;

&lt;p&gt;The best available substitute is pinning each model to one deterministic path, which removes routing randomness. But the fact that the two paths differ cannot be removed; it can only be quantified separately and subtracted.&lt;/p&gt;
&lt;h3&gt;
  
  
  1.2 Tokenizer density differs by 1.91×, so output token counts cannot be divided across families
&lt;/h3&gt;

&lt;p&gt;Using one filler passage at increasing lengths, least-squares fit of &lt;code&gt;input_tokens&lt;/code&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Slope (tok/unit)&lt;/th&gt;
&lt;th&gt;Intercept (tok)&lt;/th&gt;
&lt;th&gt;Max residual&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;claude-fable-5-1&lt;/td&gt;
&lt;td&gt;21.000&lt;/td&gt;
&lt;td&gt;18.00&lt;/td&gt;
&lt;td&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-6-astra&lt;/td&gt;
&lt;td&gt;11.000&lt;/td&gt;
&lt;td&gt;309.00&lt;/td&gt;
&lt;td&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Residual 0.00 — both are exactly linear. The slopes differ by &lt;strong&gt;1.91×&lt;/strong&gt;: the same English text counts as 21 tokens on the Claude side and 11 on the OpenAI side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Any output-token ratio spanning these two families expresses tokenizer difference, not efficiency.&lt;/strong&gt; So the primary efficiency metric here is &lt;strong&gt;output characters&lt;/strong&gt;. Token counts are recorded but never divided across families.&lt;/p&gt;

&lt;p&gt;One useful side effect: fitting &lt;code&gt;claude-fable-5-1&lt;/code&gt; over &lt;code&gt;/v1/chat/completions&lt;/code&gt; reproduced 21.000 / 18.00 — &lt;strong&gt;digit for digit&lt;/strong&gt; the same values obtained in the previous round over the native &lt;code&gt;/v1/messages&lt;/code&gt; endpoint. The OpenAI-compatible translation layer does not distort its input accounting, so running this comparison over one unified endpoint is valid.&lt;/p&gt;
&lt;h3&gt;
  
  
  1.3 Per-request fixed overhead differs by a constant, which has to be removed
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc4q8pxqv5gh3c1m9nl50.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc4q8pxqv5gh3c1m9nl50.webp" alt="Two preconditions for cross-family comparison" width="799" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An intercept of 309 is clearly abnormal — the normal range is 8–25. Fitting the same-family model on two other independent paths:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;control path 1   slope 11.000   intercept 22.00
control path 2   slope 11.000   intercept 22.00
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The slopes match exactly, so 11.000 is the genuine tokenizer density for this family and the accounting itself is sound; normal per-request fixed overhead is &lt;strong&gt;22 tokens&lt;/strong&gt;. The path used for astra in this round therefore carries roughly &lt;strong&gt;290 extra tokens&lt;/strong&gt; of fixed content per request that the caller did not send.&lt;/p&gt;

&lt;p&gt;That conclusion got an &lt;strong&gt;independent cross-check that was not designed for&lt;/strong&gt; — it simply fell out. The raw input-token ratios across the three workloads have no pattern, but subtracting one single constant of 290 collapses them into a tight band:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Group&lt;/th&gt;
&lt;th&gt;astra/fable raw ratio&lt;/th&gt;
&lt;th&gt;After −290&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A short single-shot&lt;/td&gt;
&lt;td&gt;4.871&lt;/td&gt;
&lt;td&gt;0.729&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B long prefix&lt;/td&gt;
&lt;td&gt;0.697&lt;/td&gt;
&lt;td&gt;0.682&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C heavy reasoning&lt;/td&gt;
&lt;td&gt;2.000&lt;/td&gt;
&lt;td&gt;0.728&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One constant explains three ratios that differ by 7×. &lt;strong&gt;That can only be an additive fixed block&lt;/strong&gt; — tokenizer effects are multiplicative, and no single multiplier can send both 4.871 and 0.697 to roughly 0.7.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Group A: short single-shot rewrite (3 runs each)
&lt;/h2&gt;

&lt;p&gt;One-sentence rewrite. No system prompt, no tools, no cache.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude-fable-5-1   chars 158 / 185 / 142    out_tok 45 / 65 / 47    lat 3.5s
gpt-6-astra        chars  61 /  61 /  61    out_tok 14 / 14 / 14    lat 3.2s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All 6 runs correct. astra is clearly more concise and &lt;strong&gt;highly deterministic&lt;/strong&gt;: 2 of 3 outputs were byte-identical, and the output token count was exactly 14 every time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;astra : "High server traffic caused slower-than-normal response times."

fable : "Because the server had high traffic, users experienced slower
         response times than usual." (plus a shorter alternative)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The 0.377 here is clean evidence of concision&lt;/strong&gt;, because both sides were fully correct. For classification, extraction, and short rewriting, astra's advantage is real — shorter, faster, and reproducible.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Group B: ~18,700-token specification document plus questions
&lt;/h2&gt;

&lt;p&gt;The specification is 300 programmatically generated rules whose state, threshold, severity, and retention days are each uniquely determined by the index. Ground truth is therefore derivable independently of either model.&lt;/p&gt;

&lt;h3&gt;
  
  
  q0: list the rule IDs matching two conditions
&lt;/h3&gt;

&lt;p&gt;Ground truth: &lt;code&gt;i%5==3&lt;/code&gt; (DISPUTED) and &lt;code&gt;i%3==0&lt;/code&gt; (high) → &lt;code&gt;i%15==3&lt;/code&gt; → every 15th rule starting at R003, &lt;strong&gt;20 rules total&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Both models produced the exact 20 — nothing missing, nothing extra. &lt;strong&gt;This cell is a tie.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  q1: what is the longest retention period, and which rule sets it (6 runs each)
&lt;/h3&gt;

&lt;p&gt;Ground truth: REVERSED is &lt;code&gt;i%5==2&lt;/code&gt;, retention is &lt;code&gt;30+i%90&lt;/code&gt;, maximised at &lt;code&gt;i%90==87&lt;/code&gt; → &lt;strong&gt;117 days, set by a three-way tie of R087 / R177 / R267&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Got the value 117&lt;/th&gt;
&lt;th&gt;Gave all three tied IDs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;claude-fable-5-1&lt;/td&gt;
&lt;td&gt;6/6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;6/6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-6-astra&lt;/td&gt;
&lt;td&gt;6/6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1/6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;astra &lt;strong&gt;got the value 117 right every single time&lt;/strong&gt;, but attributed it wrongly. And the problem is worse than incompleteness — &lt;strong&gt;2 of the 6 named a rule that is factually wrong&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#1  "117 days, set by Rule R157"
#3  "117 days, set by Rule R157"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;R157's retention is &lt;code&gt;30 + (157 % 90)&lt;/code&gt; = &lt;strong&gt;97 days&lt;/strong&gt;, not 117. That is not "omitted the other two" — it is an attribution that does not hold.&lt;/p&gt;

&lt;p&gt;fable-5-1 flagged the tie unprompted every time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Longest REVERSED retention: 117 days — and it's a three-way tie,
 not a single rule: R087 / R177 / R267"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Character counts: astra mean 113.8, fable mean 813.8, ratio 0.140. &lt;strong&gt;That 0.140 is answering less, not answering efficiently.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  q2: a question with a planted false premise (6 runs each)
&lt;/h3&gt;

&lt;p&gt;The question deliberately embeds a false premise: "&lt;strong&gt;Two rules&lt;/strong&gt; could both fire — name them."&lt;/p&gt;

&lt;p&gt;Per the specification, at delay=8h &lt;strong&gt;all 60 SETTLED rules fire&lt;/strong&gt;. The "two" premise simply does not hold.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Rejected the false premise&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;claude-fable-5-1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;6/6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-6-astra&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1/6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;fable-5-1 rejected it &lt;strong&gt;in its opening sentence&lt;/strong&gt; every time (relative position 0.0 in the answer):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"The premise doesn't hold: it's not two rules, it's sixty."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5 of astra's 6 opened directly with &lt;code&gt;"The two rules are:"&lt;/code&gt;, went along with the premise, and &lt;strong&gt;invented a different arbitrary pair each time&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#0  R006 + R026
#1  R006 + R026
#2  R006 + R011
#3  R006 + R026
#4  R006 + R026
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The field values for the rules it picked were themselves accurate (R006 = 36 days, R026 = 56 days, R011 = 41 days). What is wrong is &lt;strong&gt;going along with a premise that does not hold and manufacturing a pair to satisfy the word "two."&lt;/strong&gt; Only 1 of 6 appended "These are not the only matches: all SETTLED rules fire at 8 hours."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6/6 versus 1/6 is the widest gap in this round.&lt;/strong&gt; For RAG, document Q&amp;amp;A, and support workflows — where the user's question frequently carries a wrong assumption — this matters far more in production than a benchmark score does.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Group C: heavy-reasoning scheduling problem (13 runs each)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0sb7evrzlppvlimwukyo.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0sb7evrzlppvlimwukyo.webp" alt="Latency flips direction with workload weight" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eight jobs with dependencies, five workers. Compute the critical path, the minimum makespan, and identify which single job's duration to cut for the largest makespan reduction.&lt;/p&gt;

&lt;p&gt;Ground truth: critical path A→B→E→G→H = &lt;strong&gt;21&lt;/strong&gt;; with 5 workers maximum concurrency is only 2, so the makespan is also &lt;strong&gt;21&lt;/strong&gt;; the best single-job cut is &lt;strong&gt;G from 6 to 2&lt;/strong&gt;, bringing the makespan to &lt;strong&gt;17&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Pass&lt;/th&gt;
&lt;th&gt;Mean output chars&lt;/th&gt;
&lt;th&gt;Mean latency&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;claude-fable-5-1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;13/13&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1759.3&lt;/td&gt;
&lt;td&gt;27.3s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-6-astra&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;10/13&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1356.5&lt;/td&gt;
&lt;td&gt;34.4s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;astra's failure mode is consistent and legible. It cuts &lt;strong&gt;E by 1 second&lt;/strong&gt; for a makespan of 20, then asserts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"A reduction of more than 1 second in any one critical-path job cannot
 improve the makespan further, because the alternate path A→C→G→H has
 length 20 s."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;That assertion is false.&lt;/strong&gt; G sits on &lt;strong&gt;both&lt;/strong&gt; long paths — A→B→E→G→H and A→C→G→H — so cutting G lowers both at once. With G at 2: A→B→E→G→H = 17, A→C→G→H = 16, A→C→D→F→H = 17, makespan = &lt;strong&gt;17&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;astra looked for the bottleneck along a single critical path and missed that G is a shared node on two. This is a &lt;strong&gt;specific, reproducible reasoning blind spot&lt;/strong&gt;, not noise — all 3 failures out of 13 follow the same pattern.&lt;/p&gt;

&lt;p&gt;This is also the only group where fable-5-1 was faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. A unified-endpoint accounting trap
&lt;/h2&gt;

&lt;p&gt;Over &lt;code&gt;/v1/chat/completions&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude-fable-5-1   completion_tokens = 2311 / 1990 / 2476
                   reasoning_tokens  = 0 / 0 / 0            ← all zero

gpt-6-astra        reasoning_tokens  = 534 / 740 / 776      ← reported normally
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same model, same problem, over the native &lt;code&gt;/v1/messages&lt;/code&gt; endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude-fable-5-1   output_tokens   = 2101
                   thinking_tokens = 1243                   ← broken out explicitly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Claude-family thinking tokens are folded into &lt;code&gt;completion_tokens&lt;/code&gt; on the OpenAI-compatible endpoint, and &lt;code&gt;reasoning_tokens&lt;/code&gt; is reported as 0.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Any system doing cross-model output accounting over a unified endpoint therefore mis-attributes Claude's thinking — it looks as if Claude "did not think," while 1243 thinking tokens were silently merged into the body count. Getting the real split requires the native endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. What this round does not prove
&lt;/h2&gt;

&lt;p&gt;Worth stating explicitly, because these boundaries get dropped more easily than the conclusions do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Does not prove astra is weaker overall  — only 4 task types, 29 graded items
Does not prove fable-5-1 never fails this way — 29/29 here, but limited samples
Does not prove latency differences come from the models — the two upstream paths differ
Does not license dividing output tokens across families — 1.91x tokenizer density gap
Does not license reading group B's character ratio as efficiency — that brevity is incompleteness
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Further limits: group A has 3 samples and B-q0 only 1, so those cells are weaker than the 6- and 13-sample cells; all four workloads are synthetic and do not represent real traffic distribution; and the two models run on different upstream paths, which is the structural limitation this round could not remove.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Selection guidance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Short tasks, classification, extraction, rewriting&lt;/strong&gt; — pick astra. Equal accuracy, 0.377× the output characters, faster, and highly deterministic (exactly 14 output tokens, byte-reproducible).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complete enumeration, tied answers, accurate attribution&lt;/strong&gt; — pick fable-5-1. astra gave incomplete attribution in 5 of 6 runs, and 2 of those attributions were themselves wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User questions that may carry a wrong assumption&lt;/strong&gt; (RAG / document Q&amp;amp;A / support) — pick fable-5-1. 6/6 versus 1/6, the widest gap measured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heavy reasoning, scheduling, path optimization&lt;/strong&gt; — pick fable-5-1. 13/13 versus 10/13, and astra was slower here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-model accounting&lt;/strong&gt; — do not compare output tokens between Claude and non-Claude models on a unified endpoint. Both the tokenizer density and the thinking-token reporting convention differ.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproducing this
&lt;/h2&gt;

&lt;p&gt;Both models are on Crazyrouter over the standard OpenAI-compatible endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://cn.crazyrouter.com/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$YOUR_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-6-astra",
    "max_tokens": 8000,
    "messages": [{"role": "user", "content": "..."}]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Swap &lt;code&gt;model&lt;/code&gt; to &lt;code&gt;claude-fable-5-1&lt;/code&gt; for the control. The group C prompt verbatim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A distributed job queue has 5 workers. Each job has a duration and a dependency list.
Jobs: A(4s, deps=[]), B(3s, deps=[A]), C(7s, deps=[A]), D(2s, deps=[B,C]), E(5s, deps=[B]),
F(1s, deps=[D]), G(6s, deps=[C,E]), H(3s, deps=[F,G]).
Compute the critical path length, the minimum makespan with 5 workers, and identify which single
job's duration you would reduce (and by how much) to shorten the makespan the most.
Show the schedule as a table of (job, start, end, worker). Answer precisely.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Grading: critical path 21, makespan 21, and the best single cut reaching 17 — all three values must be right to pass.&lt;/p&gt;

&lt;p&gt;One caution when running repeats: add a unique salt (a timestamp works) to every request, or prompt caching will contaminate the input-token readings. The first fit in this round produced garbage — slope −0.835 — for exactly that reason.&lt;/p&gt;




&lt;p&gt;Every figure above was produced against &lt;code&gt;https://cn.crazyrouter.com/v1&lt;/code&gt;, where both models are callable directly. &lt;a href="https://crazyrouter.com/register?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=astra_vs_fable51_20260905&amp;amp;utm_content=crazyrouter_blog_gpt-6-astra-vs-claude-fable-5-1-benchmark-2026-en_20260905__bottom&amp;amp;utm_term=gpt-6-astra+vs+claude+fable+5.1+benchmark" rel="noopener noreferrer"&gt;Get an API key&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Claude Fable 5.1 vs Fable 5: Output Efficiency, Correctness, and Breaking Changes That Never Throw</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Thu, 03 Sep 2026 15:58:44 +0000</pubDate>
      <link>https://dev.to/xujfcn/claude-fable-51-vs-fable-5-output-efficiency-correctness-and-breaking-changes-that-never-throw-1j6</link>
      <guid>https://dev.to/xujfcn/claude-fable-51-vs-fable-5-output-efficiency-correctness-and-breaking-changes-that-never-throw-1j6</guid>
      <description>&lt;p&gt;Test date: 2026-09-03 (Asia/Shanghai)&lt;br&gt;
Base URL: &lt;code&gt;https://cn.crazyrouter.com&lt;/code&gt;&lt;br&gt;
Endpoint: &lt;code&gt;POST /v1/messages&lt;/code&gt;&lt;br&gt;
Models: &lt;code&gt;claude-fable-5-1&lt;/code&gt;, &lt;code&gt;claude-fable-5&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Most Fable 5.1 coverage restates the same benchmark table. We took a different angle: pin both models to the same upstream route, run three workload shapes three times each, and record &lt;strong&gt;correctness, output tokens, thinking budget, and latency&lt;/strong&gt; together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fcodeberg.org%2Fmetavi%2Fcrazyrouter-geo-content%2Fraw%2Fbranch%2Fmain%2Fimages%2Fblog-covers%2Fclaude-fable-5-1-vs-fable-5-performance-benchmark-2026-285b30.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fcodeberg.org%2Fmetavi%2Fcrazyrouter-geo-content%2Fraw%2Fbranch%2Fmain%2Fimages%2Fblog-covers%2Fclaude-fable-5-1-vs-fable-5-performance-benchmark-2026-285b30.webp" alt="Claude Fable 5.1 vs Fable 5 measured summary" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workload&lt;/th&gt;
&lt;th&gt;Correctness&lt;/th&gt;
&lt;th&gt;Output tokens (5.1/5)&lt;/th&gt;
&lt;th&gt;Latency ratio&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A. Short one-shot rewrite&lt;/td&gt;
&lt;td&gt;3:3 tie&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.372&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.79&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B. Long cached prefix Q&amp;amp;A&lt;/td&gt;
&lt;td&gt;3:3 tie (1 behavioural difference)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.744&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.85&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C. Heavy reasoning&lt;/td&gt;
&lt;td&gt;3:3 tie&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.891&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.90&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Accuracy is identical in all three groups — &lt;strong&gt;we did not measure a capability difference&lt;/strong&gt;. The difference is efficiency: 5.1 reaches the same correct answer with fewer output tokens and less wall-clock time, and &lt;strong&gt;the easier the task, the bigger the gap&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Artificial Analysis reported 5.1 using roughly 1.7x the output tokens at max effort. We measured 0.37–0.89x at default effort. Those are not in conflict — see below.&lt;/p&gt;
&lt;h2&gt;
  
  
  Where the efficiency comes from: thinking budget
&lt;/h2&gt;

&lt;p&gt;Fable models think adaptively and always on; there is no off switch. &lt;code&gt;thinking_tokens&lt;/code&gt; explains the whole curve:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs2q73ve4v44pt5e5uqf0.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs2q73ve4v44pt5e5uqf0.webp" alt="Thinking budget comparison" width="799" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workload&lt;/th&gt;
&lt;th&gt;5.1 thinking&lt;/th&gt;
&lt;th&gt;5 thinking&lt;/th&gt;
&lt;th&gt;5.1 total out&lt;/th&gt;
&lt;th&gt;5 total out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A. Short&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;57.0&lt;/td&gt;
&lt;td&gt;153.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B. Long prefix&lt;/td&gt;
&lt;td&gt;439&lt;/td&gt;
&lt;td&gt;676&lt;/td&gt;
&lt;td&gt;788.3&lt;/td&gt;
&lt;td&gt;1060.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C. Heavy reasoning&lt;/td&gt;
&lt;td&gt;1261&lt;/td&gt;
&lt;td&gt;1565&lt;/td&gt;
&lt;td&gt;2253.0&lt;/td&gt;
&lt;td&gt;2527.7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On the easy task 5.1 &lt;strong&gt;does not think at all&lt;/strong&gt; (thinking=0) while 5 still spends 11 tokens getting started. On the hard task both think at full tilt and the gap narrows to 11%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.1's improvement is knowing when to stop, not being uniformly shorter.&lt;/strong&gt; That also resolves the apparent conflict with Artificial Analysis: &lt;code&gt;effort&lt;/code&gt; is Fable 5.1's only depth dial, and AA measured max effort across the Intelligence Index suite. Turn the dial to the top and 5.1's thinking volume overtakes. &lt;strong&gt;The multiplier changes sign with effort level and task difficulty — do not port a conclusion from one setting to another.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/messages&lt;/code&gt;, native Anthropic protocol, &lt;code&gt;anthropic-version: 2023-06-01&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;3 runs per cell, up to 4 automatic retries; no conclusion rests on a single call&lt;/li&gt;
&lt;li&gt;Correctness graded on objective criteria, not prose style:

&lt;ul&gt;
&lt;li&gt;A: is the sentence genuinely tighter with meaning preserved&lt;/li&gt;
&lt;li&gt;B: do the rule IDs and figures match the spec document&lt;/li&gt;
&lt;li&gt;C: critical-path length, makespan and best single-node optimisation must all be right&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Three workload shapes:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A. Short one-shot&lt;/strong&gt; — one sentence to rewrite, no system prompt, no tools, no caching&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B. Long cached prefix&lt;/strong&gt; — an ~18,686-token rules document under &lt;code&gt;cache_control: ephemeral&lt;/code&gt;, then 3 questions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C. Heavy reasoning&lt;/strong&gt; — an 8-node job-scheduling problem with dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Pin the route, or you are not measuring the model
&lt;/h3&gt;

&lt;p&gt;Before comparing tokens across models, you have to prove both run on the same upstream path. Fit &lt;code&gt;input_tokens&lt;/code&gt; against increasing filler length by least squares; the intercept is the fixed per-request overhead:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Slope (tok/unit)&lt;/th&gt;
&lt;th&gt;Intercept (tok)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;claude-fable-5-1&lt;/td&gt;
&lt;td&gt;21.000&lt;/td&gt;
&lt;td&gt;18.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;claude-fable-5&lt;/td&gt;
&lt;td&gt;21.201&lt;/td&gt;
&lt;td&gt;20.87&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Matching slopes mean the same tokenizer and no body inflation; intercepts of 18.0 vs 20.9 mean equivalent fixed overhead. &lt;strong&gt;Different upstream paths can differ by hundreds of tokens in intercept&lt;/strong&gt; — leave routing unpinned and one model may land somewhere else entirely, and you will read that difference as a model property. Every request in this run was pinned to one route.&lt;/p&gt;
&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;
&lt;h3&gt;
  
  
  A. Short one-shot: same accuracy, 63% fewer output tokens
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyqvlysdicwq31zb7otg3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyqvlysdicwq31zb7otg3.webp" alt="Output token usage across three workload shapes" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude-fable-5-1   out 55 / 56 / 60    thinking 0    lat 3.27-3.60s
claude-fable-5     out 171 / 161 / 128 thinking 11   lat 4.16-4.48s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All 6 runs rewrote the sentence correctly, with near-identical core output ("Because the server was experiencing heavy traffic, users saw slower response times than usual.").&lt;/p&gt;

&lt;p&gt;The difference is packaging: 5.1 gives the answer plus one shorter alternative and stops; 5 appends an unrequested "Key changes" breakdown every time. &lt;strong&gt;That is verbosity, not quality&lt;/strong&gt; — and if a parser sits downstream, the extra prose is noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  B. Long cached prefix: figures all correct, false premises handled differently
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Correct answer&lt;/th&gt;
&lt;th&gt;5.1&lt;/th&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DISPUTED high-severity rule IDs&lt;/td&gt;
&lt;td&gt;Every 15th from R003, 20 total&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;REVERSED longest retention&lt;/td&gt;
&lt;td&gt;117 days, R087/R177/R267 tied&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SETTLED 8h conflict (false premise)&lt;/td&gt;
&lt;td&gt;All 60 rules fire, not two&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both wrote exactly the same cache volume (18,686 tokens) — the prefix cached consistently, neither model quietly skipped the write.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The third question carries a deliberately false premise.&lt;/strong&gt; It asks "two rules fire simultaneously — which two?", when per the spec all 60 SETTLED rules fire. Both saw through it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;5.1&lt;/strong&gt; rejected the premise outright — "not two, all 60 SETTLED rules" — and noted the spec contains no conflict-resolution clause, so "which retention wins" has no answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5&lt;/strong&gt; also said "far more than two", but then picked the pair the question probably meant (R006 and R041) and answered anyway, introducing a "longest retention wins" rule of its own.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Factually neither is wrong; R006 and R041 check out. The difference is &lt;strong&gt;whether the model goes along with a false premise&lt;/strong&gt;: 5.1 refused, 5 flagged it and then complied. For work that has to resist leading questions — compliance review, data verification — that difference is worth knowing.&lt;/p&gt;

&lt;h3&gt;
  
  
  C. Heavy reasoning: 6/6 correct, no significant difference
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;5.1  out 2098 / 2357 / 2304   thinking 1131 / 1310 / 1343   lat 26.81-28.80s
5    out 2720 / 2579 / 2284   thinking 1799 / 1458 / 1437   lat 28.41-34.12s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ground truth: critical path A-&amp;gt;B-&amp;gt;E-&amp;gt;G-&amp;gt;H = 21; maximum DAG width is 2, so 5 workers never bind and makespan is also 21; the best single-node optimisation cuts G from 6 to 2, bringing makespan to 17.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All 6 runs got all three figures right.&lt;/strong&gt; Both models additionally spotted that cutting A by 4 also yields 17 but is degenerate (zero-duration job), and that past 17 the A-&amp;gt;C-&amp;gt;D-&amp;gt;F-&amp;gt;H path binds so further cuts buy nothing. This problem does not separate them.&lt;/p&gt;

&lt;p&gt;Treat the token volume as a tie too: 5's lowest run (2284) is below 5.1's highest (2357), so the 3-sample ranges overlap. &lt;strong&gt;The 0.891 figure in group C is not a valid difference.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Latency
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9thjj83gr4ylnzt7y3fn.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9thjj83gr4ylnzt7y3fn.webp" alt="Latency comparison" width="799" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workload&lt;/th&gt;
&lt;th&gt;5.1 mean&lt;/th&gt;
&lt;th&gt;5 mean&lt;/th&gt;
&lt;th&gt;Delta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A. Short&lt;/td&gt;
&lt;td&gt;3.40s&lt;/td&gt;
&lt;td&gt;4.31s&lt;/td&gt;
&lt;td&gt;-21.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B. Long prefix&lt;/td&gt;
&lt;td&gt;13.41s&lt;/td&gt;
&lt;td&gt;15.71s&lt;/td&gt;
&lt;td&gt;-14.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C. Heavy reasoning&lt;/td&gt;
&lt;td&gt;27.95s&lt;/td&gt;
&lt;td&gt;31.03s&lt;/td&gt;
&lt;td&gt;-9.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;5.1 is faster in all three, and &lt;strong&gt;the gap narrows in step with the token curve&lt;/strong&gt; — latency difference is essentially driven by output volume, not by raw inference speed. Latency is network- and load-sensitive; treat it as context, not as a capability score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Breaking changes that never throw
&lt;/h2&gt;

&lt;p&gt;Anthropic's migration guide lists several changes that return 400 on Fable 5.1. We sent each one 6 times through the gateway:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc6j20m13f4hu9dihf4eq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc6j20m13f4hu9dihf4eq.webp" alt="All seven documented 400s returned 200" width="799" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Request&lt;/th&gt;
&lt;th&gt;Documented&lt;/th&gt;
&lt;th&gt;Measured&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tool_choice: {"type": "any"}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;200&lt;/strong&gt; (6/6)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tool_choice: {"type": "tool", "name": ...}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;200&lt;/strong&gt; (6/6)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;thinking: {"type": "disabled"}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;200&lt;/strong&gt; (6/6)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;temperature: 0.7&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;200&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top_p: 0.9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;200&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top_k: 40&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;200&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assistant prefill&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;200&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All seven pass through silently. Which means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Your migration will not fail on these — but it will not surface them either.&lt;/strong&gt; The parameter is dropped mid-flight, the request returns 200, and the behaviour differs from what you asked for.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;temperature&lt;/code&gt; / &lt;code&gt;top_p&lt;/code&gt; / &lt;code&gt;top_k&lt;/code&gt; especially: if production code leans on a low temperature for output stability, those values do nothing on Fable models, with no warning.&lt;/li&gt;
&lt;li&gt;The docs describe forced tool choice failing loudly with a 400. That holds on a direct connection. &lt;strong&gt;It does not hold behind any relay layer.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The right way to validate a migration is not to wait for errors but to &lt;strong&gt;assert on response content&lt;/strong&gt;: check &lt;code&gt;stop_reason&lt;/code&gt;, check that the tool you forced was actually called, check that repeated identical requests behave the way your temperature setting implies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproduce it
&lt;/h2&gt;

&lt;p&gt;Compare output efficiency (substitute your own &lt;code&gt;$KEY&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;M &lt;span class="k"&gt;in &lt;/span&gt;claude-fable-5-1 claude-fable-5&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://cn.crazyrouter.com/v1/messages &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-api-key: &lt;/span&gt;&lt;span class="nv"&gt;$KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"anthropic-version: 2023-06-01"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"content-type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;model&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="nv"&gt;$M&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;max_tokens&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:2048,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;messages&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:[{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;role&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,
        &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;content&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Rewrite this sentence to be more concise: 'Due to the fact that the server was experiencing an elevated level of traffic, the response times that users experienced were longer than what would normally be expected.'&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;}]}"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    | python &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import sys,json;d=json.load(sys.stdin);u=d['usage'];print(d['model'],'out',u['output_tokens'],'think',u.get('output_tokens_details',{}).get('thinking_tokens'))"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check whether a breaking change is silent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://cn.crazyrouter.com/v1/messages &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-api-key: &lt;/span&gt;&lt;span class="nv"&gt;$KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"anthropic-version: 2023-06-01"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"content-type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"claude-fable-5-1","max_tokens":64,"temperature":0.7,
       "messages":[{"role":"user","content":"What is the weather in Tokyo?"}]}'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;HTTP %{http_code}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fit per-request overhead to confirm both models share a route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Send increasing filler to one model, least-squares fit input_tokens.
# An intercept of 8-25 is normal; the two models must be close for the
# comparison to be valid at all.
&lt;/span&gt;&lt;span class="n"&gt;UNIT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The reconciliation service records each settlement attempt in the ledger. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;UNIT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Reply with the single word: ok&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}]}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Choosing between them
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Short tasks, classification, extraction, rewriting&lt;/strong&gt; — switch to 5.1. Same accuracy, 63% fewer output tokens, 21% faster, no code changes needed. This is where the gain is largest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work that must resist leading questions&lt;/strong&gt; — lean 5.1. On question 3 it rejected the false premise outright while 5 flagged it and then played along. Small sample; re-test with your own leading questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heavy reasoning&lt;/strong&gt; — indistinguishable (6/6 correct, overlapping token ranges). Whether to switch depends on wanting 5.1's newer knowledge cutoff (June 2026 vs January 2026), not on anything measured here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-test before touching &lt;code&gt;effort&lt;/code&gt;.&lt;/strong&gt; Anthropic states explicitly that effort levels do not represent equal thinking volume across models; settings tuned on Fable 5 will not carry over. This is the key variable behind AA's 1.7x versus our 0.37–0.89x.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate migrations by asserting on content, not by waiting for errors.&lt;/strong&gt; See the section above.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;3 samples per cell — enough for orders of magnitude, not for significance testing. Group C's ranges overlap and should not drive a decision.&lt;/li&gt;
&lt;li&gt;All three groups tied on correctness, so &lt;strong&gt;this run found no capability difference&lt;/strong&gt;, only efficiency and behavioural ones. Separating capability needs harder problems with a real failure rate.&lt;/li&gt;
&lt;li&gt;Only default effort was tested. AA's 1.7x is a max-effort result; not reproducing that setting here &lt;strong&gt;is not a refutation of it&lt;/strong&gt; — the two measure different points on the same curve.&lt;/li&gt;
&lt;li&gt;The false-premise finding rests on one question, once per model. "5.1 resists leading questions better" is an observation, not a conclusion.&lt;/li&gt;
&lt;li&gt;The three workload shapes are synthetic and do not represent your traffic mix. Re-run with your own workloads and acceptance criteria.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q1: Is Fable 5.1 smarter than Fable 5?&lt;/strong&gt;&lt;br&gt;
Across three workload shapes and 18 calls, correctness tied everywhere — &lt;strong&gt;no capability difference was measured&lt;/strong&gt;. What was measured is efficiency: the same correct answer for fewer output tokens and less time. Separating capability requires problems with a real failure rate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q2: Other benchmarks say 5.1 uses more output tokens. Why did you measure fewer?&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;effort&lt;/code&gt; is Fable 5.1's only thinking-depth dial. Artificial Analysis measured max effort; this run used the default. The multiplier changes sign with the setting and the task — 0.372x on an easy prompt at default, 0.891x on a hard one, and it overtakes at max. Do not port a number across settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q3: Does migrating to Fable 5.1 require code changes?&lt;/strong&gt;&lt;br&gt;
Swapping the model ID from &lt;code&gt;claude-fable-5&lt;/code&gt; to &lt;code&gt;claude-fable-5-1&lt;/code&gt; is enough. But check three things: whether you use forced tool choice, whether you hand-assemble the messages array (thinking blocks now bind to the conversation), and whether you depend on sampling parameters like &lt;code&gt;temperature&lt;/code&gt;. None of these throw behind a relay, so assert on responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q4: Why doesn't &lt;code&gt;thinking: {"type": "disabled"}&lt;/code&gt; turn thinking off?&lt;/strong&gt;&lt;br&gt;
Fable models have exactly one thinking mode: adaptive, always on, no off switch. The docs say passing &lt;code&gt;disabled&lt;/code&gt; returns 400, but we measured 200 six times out of six — the parameter is dropped and thinking proceeds. &lt;code&gt;effort&lt;/code&gt; is the only way to influence depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q5: Why does the same model report different token counts in different places?&lt;/strong&gt;&lt;br&gt;
Every upstream path can carry its own fixed overhead. Fit &lt;code&gt;input_tokens&lt;/code&gt; linearly against increasing filler; the intercept is that overhead and should land between 8 and 25. Slope reflects the tokenizer — if two paths share a slope but differ sharply in intercept, that is a path difference, not a model difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q6: What context window and knowledge cutoff does Fable 5.1 have?&lt;/strong&gt;&lt;br&gt;
1M-token context, 128K max output — same as Fable 5. Knowledge cutoff is June 2026 against Fable 5's January 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q7: Why does the upstream route have to be pinned?&lt;/strong&gt;&lt;br&gt;
With routing unpinned, the two models can land on different upstream paths, and the paths' fixed-overhead difference gets misread as a model difference. Here both measured 18.0 vs 20.9 intercept and 21.0 vs 21.2 slope — near-equivalent, which is what makes the comparison valid.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://platform.claude.com/docs/en/models/fable-5-1/migration-guide" rel="noopener noreferrer"&gt;Anthropic migration guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1" rel="noopener noreferrer"&gt;Anthropic: what's new in Fable 5.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://artificialanalysis.ai/articles/claude-fable-5-1" rel="noopener noreferrer"&gt;Artificial Analysis: Fable 5.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://snorkel.ai/blog/fable-5-1-vs-opus-5-coding-benchmark/" rel="noopener noreferrer"&gt;Snorkel AI: independent Fable 5.1 coding evaluation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Every figure above was produced against &lt;code&gt;https://cn.crazyrouter.com/v1&lt;/code&gt;, where both models are callable directly. &lt;a href="https://crazyrouter.com/register?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=fable51_vs_fable5_perf_20260903&amp;amp;utm_content=crazyrouter_blog_claude-fable-5-1-vs-fable-5-performance-benchmark-2026-en_20260903__bottom&amp;amp;utm_term=claude+fable+5.1+vs+fable+5+benchmark" rel="noopener noreferrer"&gt;Get an API key&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>GLM-5.3 vs GLM-5.2: benchmark khó bằng các lệnh gọi API thực tế</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Fri, 14 Aug 2026 16:11:31 +0000</pubDate>
      <link>https://dev.to/xujfcn/glm-53-vs-glm-52-benchmark-kho-bang-cac-lenh-goi-api-thuc-te-3ina</link>
      <guid>https://dev.to/xujfcn/glm-53-vs-glm-52-benchmark-kho-bang-cac-lenh-goi-api-thuc-te-3ina</guid>
      <description>&lt;h1&gt;
  
  
  GLM-5.3 vs GLM-5.2: benchmark khó bằng các lệnh gọi API thực tế
&lt;/h1&gt;

&lt;p&gt;Trong vòng kiểm thử cơ bản, GLM-5.3 thường trả được nội dung nhìn thấy trong giới hạn đầu ra tốt hơn. Lần này độ khó được tăng lên với sáu bài có thể kiểm chứng khách quan: toán cực khó, phân tích nhân quả, suy luận ràng buộc, JSON lồng nhau, vật lý nhiều giai đoạn và mã tối ưu có thể thực thi.&lt;/p&gt;

&lt;p&gt;Kết quả lần trả lời đầu là &lt;strong&gt;GLM-5.3 đạt 4/6, GLM-5.2 đạt 2/6&lt;/strong&gt;. Tuy nhiên, GLM-5.2 lại tạo ra chương trình tối ưu duy nhất vượt qua toàn bộ kiểm thử ẩn.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fea8umbyitkiqih6optxo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fea8umbyitkiqih6optxo.png" alt="Ma trận kết quả lần trả lời đầu" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Môi trường kiểm thử
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Trường&lt;/th&gt;
&lt;th&gt;Giá trị&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Base URL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://cn.crazyrouter.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /v1/chat/completions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;glm-5.3&lt;/code&gt;, &lt;code&gt;glm-5.2&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temperature&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Công cụ và web&lt;/td&gt;
&lt;td&gt;tắt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chấm điểm&lt;/td&gt;
&lt;td&gt;chỉ lần trả lời đầu; chạy lại chỉ để chẩn đoán&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Trước khi chạy, &lt;code&gt;GET https://cn.crazyrouter.com/v1/models&lt;/code&gt; xác nhận cả hai ID chính xác đều tồn tại. Cả 12 phản hồi đầu tiên đều trả đúng model đã yêu cầu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kết quả
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bài&lt;/th&gt;
&lt;th&gt;Ngân sách&lt;/th&gt;
&lt;th&gt;GLM-5.3&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coupon collector xác suất không đều&lt;/td&gt;
&lt;td&gt;9.000&lt;/td&gt;
&lt;td&gt;length, nội dung rỗng&lt;/td&gt;
&lt;td&gt;length, nội dung rỗng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nghịch lý Simpson và nhân quả&lt;/td&gt;
&lt;td&gt;6.000&lt;/td&gt;
&lt;td&gt;đạt&lt;/td&gt;
&lt;td&gt;length, nội dung rỗng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lõi UNSAT tối thiểu&lt;/td&gt;
&lt;td&gt;5.000&lt;/td&gt;
&lt;td&gt;đạt, JSON nghiêm ngặt&lt;/td&gt;
&lt;td&gt;length, nội dung rỗng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON sự cố theo khu vực&lt;/td&gt;
&lt;td&gt;4.000&lt;/td&gt;
&lt;td&gt;đạt&lt;/td&gt;
&lt;td&gt;đạt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ròng rọc, dây chùng, ma sát, lò xo&lt;/td&gt;
&lt;td&gt;14.000&lt;/td&gt;
&lt;td&gt;đạt&lt;/td&gt;
&lt;td&gt;length, nội dung rỗng&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tối ưu kế hoạch có phụ thuộc&lt;/td&gt;
&lt;td&gt;16.000&lt;/td&gt;
&lt;td&gt;length, nội dung rỗng&lt;/td&gt;
&lt;td&gt;qua kiểm thử ẩn&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Bài toán cực khó làm cả hai model thất bại
&lt;/h2&gt;

&lt;p&gt;Bốn loại coupon có xác suất &lt;code&gt;1/2, 1/4, 1/8, 1/8&lt;/code&gt;. Bài yêu cầu hai kết quả chính xác bằng nguyên lý bao hàm-loại trừ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[T] = 1339/105 ≈ 12.752380952
P(T&amp;lt;=8) = 46179/131072 ≈ 0.352317810
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cả hai model dùng hết 9.000 reasoning tokens nhưng không trả nội dung nhìn thấy. GLM-5.3 vẫn rỗng khi tăng lên 20k; yêu cầu 20k của GLM-5.2 vượt quá thời gian đọc 420 giây.&lt;/p&gt;

&lt;p&gt;Điều này cho thấy chỉ tăng &lt;code&gt;max_tokens&lt;/code&gt; không phải là cách sửa tổng quát. Hệ thống cần kiểm tra đồng thời finish reason, độ dài nội dung và timeout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Điểm mạnh của GLM-5.3
&lt;/h2&gt;

&lt;p&gt;Ở bài Simpson, model xác định đúng sự đảo chiều:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sỏi nhỏ: A 81/87 &amp;gt; B 234/270
Sỏi lớn: A 192/263 &amp;gt; B 55/80
Tổng thô: A 273/350 &amp;lt; B 289/350
Chuẩn hóa 50/50: A=0.8305, B=0.7771
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GLM-5.3 cũng phân biệt chuẩn hóa với kết luận nhân quả, nhắc đến ngẫu nhiên hóa, nhiễu chưa đo, positivity và khoảng tin cậy.&lt;/p&gt;

&lt;p&gt;Trong bài lõi UNSAT, model trả đúng một JSON với &lt;code&gt;[1,2,3]&lt;/code&gt; và chứng minh C, D bị ép vào cùng vị trí. Ở bài vật lý nhiều giai đoạn, model đạt đủ các giá trị &lt;code&gt;a≈0.847&lt;/code&gt;, &lt;code&gt;v1≈1.59&lt;/code&gt;, &lt;code&gt;v2≈1.18&lt;/code&gt;, &lt;code&gt;x≈0.0835&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Điểm GLM-5.2 thắng
&lt;/h2&gt;

&lt;p&gt;Bài mã yêu cầu &lt;code&gt;optimize_release_plan&lt;/code&gt; xử lý phụ thuộc bắc cầu, giới hạn theo ngày, tối đa value, tối thiểu risk, phân xử từ điển, tham chiếu sai và chu trình.&lt;/p&gt;

&lt;p&gt;Tệp Python gốc của GLM-5.2 vượt qua bộ kiểm thử ẩn mà không chỉnh sửa. GLM-5.3 không có nội dung ở 16k. Khi chạy lại với 24k, nó sinh được mã nhưng chọn phương án value 24 thay vì tối ưu đúng là 29.&lt;/p&gt;

&lt;p&gt;Vì vậy mã do model sinh ra phải được chạy thật. Độ dài mã và cách giải thích không thay thế được kiểm thử.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ví dụ gọi API
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://cn.crazyrouter.com/v1/chat/completions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;CRAZYROUTER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glm-5.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bài nghiệm thu thực tế&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6000&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;finish_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stop&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Khuyến nghị vận hành
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Trong lần này, GLM-5.3 phù hợp hơn cho nhân quả, ràng buộc và suy luận vật lý nhiều bước.&lt;/li&gt;
&lt;li&gt;Giữ GLM-5.2 trong nhóm ứng viên cho mã thực thi và chạy cùng bộ kiểm thử.&lt;/li&gt;
&lt;li&gt;Xem &lt;code&gt;HTTP 200 + content rỗng&lt;/code&gt; là lỗi nghiệp vụ.&lt;/li&gt;
&lt;li&gt;Parse JSON và kiểm tra schema bắt buộc.&lt;/li&gt;
&lt;li&gt;Tách tỷ lệ thành công lần đầu khỏi tỷ lệ thành công sau retry.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Kết luận
&lt;/h2&gt;

&lt;p&gt;GLM-5.3 dẫn về độ phủ lần đầu với 4/6 so với 2/6. GLM-5.2 tạo ra thuật toán thực thi tốt nhất. Kết luận phù hợp cho production là định tuyến theo loại nhiệm vụ cùng kiểm định nghiêm ngặt, không phải tự động thay thế model cũ.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=glm53_glm52_hard_benchmark_20260814&amp;amp;utm_content=devto_glm-5-3-vs-glm-5-2-hard-benchmark-2026-vi_20260814__final_cta&amp;amp;utm_term=glm-5.3+glm-5.2+benchmark" rel="noopener noreferrer"&gt;Chạy hai model qua API tương thích OpenAI của Crazyrouter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>GLM-5.3 vs GLM-5.2：実 API で高難度6課題を比較</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Fri, 14 Aug 2026 16:10:18 +0000</pubDate>
      <link>https://dev.to/xujfcn/glm-53-vs-glm-52shi-api-degao-nan-du-6ke-ti-wobi-jiao-3129</link>
      <guid>https://dev.to/xujfcn/glm-53-vs-glm-52shi-api-degao-nan-du-6ke-ti-wobi-jiao-3129</guid>
      <description>&lt;h1&gt;
  
  
  GLM-5.3 vs GLM-5.2：実 API で高難度6課題を比較
&lt;/h1&gt;

&lt;p&gt;基礎問題の比較では、GLM-5.3 のほうが限られた出力予算内で可視回答を返しやすい傾向がありました。そこで今回は難度を上げ、極難数学、因果推論、制約充足、厳密 JSON、多段階物理、実行可能な最適化コードの6課題を同条件で実行しました。&lt;/p&gt;

&lt;p&gt;初回提出の結果は &lt;strong&gt;GLM-5.3 が 4/6、GLM-5.2 が 2/6&lt;/strong&gt; です。ただし、依存関係付き最適化コードで隠しテストに合格したのは GLM-5.2 だけでした。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5a46o26h3lze0h5d5ru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5a46o26h3lze0h5d5ru.png" alt="GLM-5.3 と GLM-5.2 の初回提出結果" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  テスト条件
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;項目&lt;/th&gt;
&lt;th&gt;設定&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Base URL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://cn.crazyrouter.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /v1/chat/completions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;glm-5.3&lt;/code&gt;, &lt;code&gt;glm-5.2&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temperature&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;外部ツール&lt;/td&gt;
&lt;td&gt;使用しない&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;評価&lt;/td&gt;
&lt;td&gt;初回提出を採点。高予算再試行は原因診断のみ&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;テスト前に &lt;code&gt;GET https://cn.crazyrouter.com/v1/models&lt;/code&gt; で両方のモデル ID を確認しました。初回12リクエストの returned model はすべて要求した ID と一致しています。&lt;/p&gt;

&lt;h2&gt;
  
  
  初回結果
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;課題&lt;/th&gt;
&lt;th&gt;予算&lt;/th&gt;
&lt;th&gt;GLM-5.3&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;不等確率 coupon collector&lt;/td&gt;
&lt;td&gt;9,000&lt;/td&gt;
&lt;td&gt;length、本文なし&lt;/td&gt;
&lt;td&gt;length、本文なし&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simpson のパラドックスと因果&lt;/td&gt;
&lt;td&gt;6,000&lt;/td&gt;
&lt;td&gt;合格&lt;/td&gt;
&lt;td&gt;length、本文なし&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;最小 UNSAT コア&lt;/td&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;厳密 JSON で合格&lt;/td&gt;
&lt;td&gt;length、本文なし&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;地域別ネスト JSON&lt;/td&gt;
&lt;td&gt;4,000&lt;/td&gt;
&lt;td&gt;合格&lt;/td&gt;
&lt;td&gt;合格&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;滑車・弛んだロープ・摩擦・ばね&lt;/td&gt;
&lt;td&gt;14,000&lt;/td&gt;
&lt;td&gt;合格&lt;/td&gt;
&lt;td&gt;length、本文なし&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;依存関係付き最適化コード&lt;/td&gt;
&lt;td&gt;16,000&lt;/td&gt;
&lt;td&gt;length、本文なし&lt;/td&gt;
&lt;td&gt;隠しテスト合格&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  極難数学は両モデルとも未完了
&lt;/h2&gt;

&lt;p&gt;coupon の確率を &lt;code&gt;1/2, 1/4, 1/8, 1/8&lt;/code&gt; とし、包含排除で次の2値を求める課題です。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[T] = 1339/105 ≈ 12.752380952
P(T&amp;lt;=8) = 46179/131072 ≈ 0.352317810
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;両モデルとも9,000 reasoning tokenを消費し、可視本文を返しませんでした。GLM-5.3 は20,000 tokenでも同じ結果、GLM-5.2 は20k再試行で420秒の読み取りタイムアウトになりました。&lt;/p&gt;

&lt;p&gt;&lt;code&gt;max_tokens&lt;/code&gt; を増やすだけでは解決しないケースです。&lt;code&gt;finish_reason&lt;/code&gt;、可視本文、タイムアウトを同時に監視する必要があります。&lt;/p&gt;

&lt;h2&gt;
  
  
  GLM-5.3 が強かった領域
&lt;/h2&gt;

&lt;p&gt;Simpson 課題では、GLM-5.3 は次の反転を正しく説明しました。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;小結石: A 81/87 &amp;gt; B 234/270
大結石: A 192/263 &amp;gt; B 55/80
全体: A 273/350 &amp;lt; B 289/350
50/50 標準化: A=0.8305, B=0.7771
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;さらに、標準化だけで因果関係は確定せず、ランダム化、未測定交絡、positivity、信頼区間が必要だと指摘しました。&lt;/p&gt;

&lt;p&gt;最小 UNSAT コアでは、余分な Markdown を付けず、&lt;code&gt;[1,2,3]&lt;/code&gt; を含む単一 JSON を返しました。制約1と2で &lt;code&gt;C=A+2&lt;/code&gt;、制約3で &lt;code&gt;D=A+2&lt;/code&gt; となり、CとDの位置が衝突するという証明も正確でした。&lt;/p&gt;

&lt;p&gt;多段階物理では、Bが地面に衝突してロープが弛んだ後に系を切り替え、次の4値をすべて満たしました。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a ≈ 0.847 m/s²
v1 ≈ 1.59 m/s
v2 ≈ 1.18 m/s
x ≈ 0.0835 m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  コードでは GLM-5.2 が勝った
&lt;/h2&gt;

&lt;p&gt;実装対象は &lt;code&gt;optimize_release_plan(items, capacity_by_day, dependencies)&lt;/code&gt; です。推移的依存、日別容量、value 最大化、risk 最小化、辞書順 tie-break、不正参照、循環依存を処理する必要があります。&lt;/p&gt;

&lt;p&gt;GLM-5.2 の原始 Python ファイルは修正なしで隠しテストに合格しました。GLM-5.3 は16kで本文がなく、24k再試行ではコードを生成したものの、正しい最適値29ではなく24の計画を選びました。&lt;/p&gt;

&lt;p&gt;コード生成は、文章の自然さやファイルの長さでは評価できません。必ず import とテスト実行が必要です。&lt;/p&gt;

&lt;h2&gt;
  
  
  API 呼び出し例
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://cn.crazyrouter.com/v1/chat/completions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;CRAZYROUTER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glm-5.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;実際の受け入れテスト&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;finish_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stop&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  運用上の提案
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;因果分析、制約推論、多段階導出は今回 GLM-5.3 が安定していました。&lt;/li&gt;
&lt;li&gt;実行可能コードでは GLM-5.2 を候補から外さず、同じテストスイートで比較します。&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;HTTP 200 + 空本文&lt;/code&gt; を業務成功にしないでください。&lt;/li&gt;
&lt;li&gt;JSON は parse と schema 検証を必須にします。&lt;/li&gt;
&lt;li&gt;初回成功率と再試行後成功率を別々に記録します。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  結論
&lt;/h2&gt;

&lt;p&gt;GLM-5.3 は初回完遂率で 4/6 対 2/6 と優位でした。しかし、実行可能な最適化コードでは GLM-5.2 が唯一の合格モデルです。新しいバージョンへの一律置換より、課題タイプ別ルーティングと厳密な受け入れテストが合理的です。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=glm53_glm52_hard_benchmark_20260814&amp;amp;utm_content=devto_glm-5-3-vs-glm-5-2-hard-benchmark-2026-ja_20260814__final_cta&amp;amp;utm_term=glm-5.3+glm-5.2+benchmark" rel="noopener noreferrer"&gt;Crazyrouter の OpenAI-compatible API で同じモデルを試す&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>GLM-5.3 vs GLM-5.2: A Hard Benchmark with Real API Calls</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Fri, 14 Aug 2026 14:09:30 +0000</pubDate>
      <link>https://dev.to/xujfcn/glm-53-vs-glm-52-a-hard-benchmark-with-real-api-calls-22n0</link>
      <guid>https://dev.to/xujfcn/glm-53-vs-glm-52-a-hard-benchmark-with-real-api-calls-22n0</guid>
      <description>&lt;h1&gt;
  
  
  GLM-5.3 vs GLM-5.2: A Hard Benchmark with Real API Calls
&lt;/h1&gt;

&lt;p&gt;The first benchmark showed that GLM-5.3 was more likely to deliver visible answers within a fixed output budget. This follow-up raised the difficulty across six objectively verifiable tasks: extreme mathematics, causal calibration, constraint reasoning, nested JSON, multi-stage physics, and executable optimization code.&lt;/p&gt;

&lt;p&gt;The first-delivery score was &lt;strong&gt;4/6 for GLM-5.3 and 2/6 for GLM-5.2&lt;/strong&gt;. That headline does not tell the whole story: GLM-5.2 produced the only dependency optimizer that passed the hidden test suite, while both models failed the extreme math task.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6lb8mfky0ef3oakatvf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6lb8mfky0ef3oakatvf.png" alt="GLM-5.3 vs GLM-5.2 first-delivery matrix" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Test setup
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Base URL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://cn.crazyrouter.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /v1/chat/completions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Models&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;glm-5.3&lt;/code&gt;, &lt;code&gt;glm-5.2&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temperature&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tools and web access&lt;/td&gt;
&lt;td&gt;Disabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scoring&lt;/td&gt;
&lt;td&gt;First delivery only; larger-budget retries were diagnostic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Before the run, &lt;code&gt;GET https://cn.crazyrouter.com/v1/models&lt;/code&gt; listed both exact model IDs. All 12 first-run responses returned the requested model identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Budget&lt;/th&gt;
&lt;th&gt;GLM-5.3&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unequal-probability coupon collector&lt;/td&gt;
&lt;td&gt;9,000&lt;/td&gt;
&lt;td&gt;Length, empty body&lt;/td&gt;
&lt;td&gt;Length, empty body&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simpson's paradox and causal limits&lt;/td&gt;
&lt;td&gt;6,000&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Length, empty body&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minimal unsatisfiable core&lt;/td&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;Pass, strict JSON&lt;/td&gt;
&lt;td&gt;Length, empty body&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nested regional incident JSON&lt;/td&gt;
&lt;td&gt;4,000&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pulley, slack rope, friction, spring&lt;/td&gt;
&lt;td&gt;14,000&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Length, empty body&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dependency-constrained optimizer&lt;/td&gt;
&lt;td&gt;16,000&lt;/td&gt;
&lt;td&gt;Length, empty body&lt;/td&gt;
&lt;td&gt;Hidden tests pass&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GLM-5.3 completed four first-run tasks in 334.1 seconds total. GLM-5.2 completed two in 665.0 seconds. Latency was retained as operational evidence but did not change correctness scores.&lt;/p&gt;

&lt;h2&gt;
  
  
  The extreme math task defeated both models
&lt;/h2&gt;

&lt;p&gt;The task used four coupon probabilities: &lt;code&gt;1/2, 1/4, 1/8, 1/8&lt;/code&gt;. It required two exact inclusion-exclusion results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[T] = 1339/105 ≈ 12.752380952
P(T&amp;lt;=8) = 46179/131072 ≈ 0.352317810
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both models consumed the full 9,000-token reasoning budget and returned no visible answer. A 20,000-token retry still produced an empty body for GLM-5.3; GLM-5.2 exceeded the runner's 420-second read timeout.&lt;/p&gt;

&lt;p&gt;This is a useful production warning: raising &lt;code&gt;max_tokens&lt;/code&gt; does not guarantee a deliverable answer. A gateway should inspect finish reason, visible content, and timeout state together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where GLM-5.3 was stronger
&lt;/h2&gt;

&lt;p&gt;On the Simpson task, GLM-5.3 correctly recovered the reversal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Small stones: A 81/87 &amp;gt; B 234/270
Large stones: A 192/263 &amp;gt; B 55/80
Crude total: A 273/350 &amp;lt; B 289/350
50/50 standardized rates: A=0.8305, B=0.7771
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It also separated standardization from causal identification, noting the need for randomization or adequate adjustment, positivity, no unmeasured confounding, and uncertainty estimates.&lt;/p&gt;

&lt;p&gt;The minimal-UNSAT task required exactly one JSON object. GLM-5.3 returned &lt;code&gt;[1,2,3]&lt;/code&gt; and correctly proved that the constraints force C and D into the same position. The response parsed without cleanup.&lt;/p&gt;

&lt;p&gt;The physics task required switching system boundaries after the hanging mass hit the ground and the rope went slack. GLM-5.3 matched all four reference values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a ≈ 0.847 m/s²
v1 ≈ 1.59 m/s
v2 ≈ 1.18 m/s
x ≈ 0.0835 m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Where GLM-5.2 won
&lt;/h2&gt;

&lt;p&gt;The code task asked for &lt;code&gt;optimize_release_plan(items, capacity_by_day, dependencies)&lt;/code&gt; with transitive dependencies, per-day capacities, value maximization, risk and lexical tie-breaks, invalid references, and cycle detection.&lt;/p&gt;

&lt;p&gt;GLM-5.2 returned a complete Python file at the 16k budget and passed the external hidden test suite without edits. GLM-5.3 returned no body at 16k. At 24k it finally produced code, but selected a plan worth 24 instead of the correct optimum worth 29, so the retry still failed.&lt;/p&gt;

&lt;p&gt;This is why code generation must be executed. Version numbers, code length, and a polished explanation are not substitutes for tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenAI-compatible request
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://cn.crazyrouter.com/v1/chat/completions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;CRAZYROUTER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glm-5.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your acceptance task&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;finish_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stop&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Production guidance
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Prefer GLM-5.3 for causal analysis, constraint reasoning, and multi-stage derivations based on this run.&lt;/li&gt;
&lt;li&gt;Keep GLM-5.2 in the candidate pool for executable algorithm generation.&lt;/li&gt;
&lt;li&gt;Treat &lt;code&gt;HTTP 200 + empty content&lt;/code&gt; as a business failure.&lt;/li&gt;
&lt;li&gt;Parse and validate JSON instead of accepting visually plausible output.&lt;/li&gt;
&lt;li&gt;Run generated code in an isolated test harness.&lt;/li&gt;
&lt;li&gt;Track first-delivery success separately from retry-assisted success.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is GLM-5.3 universally better?
&lt;/h3&gt;

&lt;p&gt;No. It had better first-run coverage, but GLM-5.2 won the executable code task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Did more output budget fix the failures?
&lt;/h3&gt;

&lt;p&gt;Not reliably. GLM-5.2 physics still returned an empty body at 20k. GLM-5.3 math remained empty at 20k, and its 24k code retry failed hidden tests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why count HTTP 200 responses as failures?
&lt;/h3&gt;

&lt;p&gt;Because multiple responses consumed the entire reasoning budget and delivered no usable content.&lt;/p&gt;

&lt;h3&gt;
  
  
  How was code graded?
&lt;/h3&gt;

&lt;p&gt;The original generated file was imported and executed against the same hidden harness. No manual fixes were allowed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was latency part of the score?
&lt;/h3&gt;

&lt;p&gt;No. It was kept as operational evidence only.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the practical model-selection rule?
&lt;/h3&gt;

&lt;p&gt;Route by task type and enforce real acceptance tests. A single aggregate model ranking loses the most important result from this benchmark.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdict
&lt;/h2&gt;

&lt;p&gt;GLM-5.3 won first-delivery coverage, 4/6 to 2/6. GLM-5.2 delivered the best executable algorithm. The defensible production conclusion is task-aware routing with strict validation, not automatic replacement of the older model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=glm53_glm52_hard_benchmark_20260814&amp;amp;utm_content=devto_glm-5-3-vs-glm-5-2-hard-benchmark-2026-en_20260814__final_cta&amp;amp;utm_term=glm-5.3+glm-5.2+benchmark" rel="noopener noreferrer"&gt;Run the same models through Crazyrouter's OpenAI-compatible API&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Claude Opus 5 vs GPT-5.6 Luna：速度順位を使わない18問の正確性ベンチマーク</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Thu, 30 Jul 2026 00:50:02 +0000</pubDate>
      <link>https://dev.to/xujfcn/claude-opus-5-vs-gpt-56-lunasu-du-shun-wei-woshi-wanai18wen-nozheng-que-xing-bentimaku-79c</link>
      <guid>https://dev.to/xujfcn/claude-opus-5-vs-gpt-56-lunasu-du-shun-wei-woshi-wanai18wen-nozheng-que-xing-bentimaku-79c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34f6tdrfgylkvyesfoc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34f6tdrfgylkvyesfoc1.png" alt="Claude Opus 5 vs GPT-5.6 Luna：速度順位を使わない18問の正確性ベンチマーク" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  先に結論
&lt;/h2&gt;

&lt;p&gt;高難度ラウンドでは Claude Opus 5 が &lt;strong&gt;17/18（94.4%）&lt;/strong&gt;、GPT-5.6 Luna が &lt;strong&gt;16/18（88.9%）&lt;/strong&gt;でした。差は1問であり、Opusが常に上という証明ではありません。重要なのは失敗の形です。Opusは3本のアルゴリズムをそのまま実行できる形で納品した一方、厳密JSONで余計な囲みを付けました。Lunaは3つの形式指示をすべて守りましたが、2本のPythonファイルがimport時に停止しました。&lt;/p&gt;

&lt;h2&gt;
  
  
  なぜ問題を難しくしたのか
&lt;/h2&gt;

&lt;p&gt;最初の8問は両モデルとも8/8で、差が出ませんでした。そこで第2ラウンドを18問に増やし、6分野それぞれに hard、harder、extreme を配置しました。正確な分数、多段階の物理モデル、完全なPythonファイル、誤った前提の拒否、一意な制約解、文字単位の出力形式を要求しています。説明が巧みかどうかではなく、決定的な主張を計算、JSONパース、Python実行で確認できるかを評価しました。&lt;/p&gt;

&lt;h2&gt;
  
  
  18問をどう採点したか
&lt;/h2&gt;

&lt;p&gt;同一の問題文、system指示、temperature、問題別の出力予算を使いました。数学と物理は厳密値または数値許容差で検証し、コードは回答のまま保存して共通のhidden testへimportしました。JSONとCSVは「意味が通る」ではなく、機械入力として合格するかで判定しています。モデル自身のassertを削除すれば動く場合も、原因分析には使いますが初回納品を合格へ変更しません。回線遅延は生JSONにだけ残し、勝敗には一切使っていません。&lt;/p&gt;

&lt;h2&gt;
  
  
  6分野の結果
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3cf3n2twc6cpp03zvdoq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3cf3n2twc6cpp03zvdoq.png" alt="6分野の正解数" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;評価分野&lt;/th&gt;
&lt;th&gt;Opus 5&lt;/th&gt;
&lt;th&gt;GPT-5.6 Luna&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;数学的推論&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;複雑な物理&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;アルゴリズム納品&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;1/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;誤った前提への耐性&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;制約推論&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;指示遵守&lt;/td&gt;
&lt;td&gt;2/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;17/18 (94.4%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16/18 (88.9%)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  アルゴリズム差は「納品物」の差だった
&lt;/h2&gt;

&lt;p&gt;Lunaが失敗した2問は、末尾の自己テストを外すと関数本体がhidden testを通過しました。しかし自己テストの期待値が誤っており、元ファイルはimport時に&lt;code&gt;AssertionError&lt;/code&gt;を起こします。「完全なPythonファイル」という契約では失敗です。Opusの3ファイルは元のままimportと共通テストに通りました。本番では、正しそうな関数と、そのまま利用できる成果物を分けて考える必要があります。&lt;/p&gt;

&lt;h2&gt;
  
  
  厳密JSONではLunaが優位
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy7c0srom52u2ixn2hdsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy7c0srom52u2ixn2hdsk.png" alt="失敗の種類が違えば、本番リスクも違う" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Opusの唯一の失敗は逆方向でした。JSONのキーと値は正しいのに、「JSONオブジェクトだけ」という指示に反してMarkdownのコードフェンスを追加しました。独立再試行でも同じです。Lunaは指示遵守3問をすべて通過しました。出力を直接パーサーへ渡す処理では、囲みの有無も正確性の一部です。&lt;/p&gt;

&lt;h2&gt;
  
  
  出力予算と知能上の誤りを分離
&lt;/h2&gt;

&lt;p&gt;初期試行の一部は、内部推論が出力予算を使い切り&lt;code&gt;finish_reason=length&lt;/code&gt;になりました。これは証拠として保存しましたが、知能の誤りには数えていません。両モデルの有効予算を同条件で増やしてから採点したためです。ただし、長い推論で可視成果物の領域が不足するという統合上のリスクは残ります。&lt;/p&gt;

&lt;h2&gt;
  
  
  本番ルーティングへの落とし込み
&lt;/h2&gt;

&lt;p&gt;厳密JSON、CSV、短い抽出、大量の構造化処理はLunaを第一候補にしつつ、schema検証を必須にします。長いアルゴリズム、境界条件、防御的な実装はOpusを第一候補にします。数学、複雑な物理、誤前提、制約推論は本サンプルで同点なので、価格、API互換性、文章量で選ぶ方が合理的です。どちらでもJSONをparseし、数値を照合し、コードを回答のまま実行してください。&lt;/p&gt;

&lt;h2&gt;
  
  
  再現方法と生データ
&lt;/h2&gt;

&lt;p&gt;実行スクリプトは&lt;code&gt;scripts/opus5_vs_luna_hard_benchmark.py&lt;/code&gt;、全結果は&lt;code&gt;.tmp/opus5-vs-luna-hard-benchmark-results.json&lt;/code&gt;です。独立再試行は&lt;code&gt;.tmp/opus5-hard-failure-retry.json&lt;/code&gt;と&lt;code&gt;.tmp/luna-hard-failure-retry.json&lt;/code&gt;にあります。APIは&lt;code&gt;https://cn.crazyrouter.com/v1/chat/completions&lt;/code&gt;を使用し、遅延値は生データでのみ確認できます。&lt;/p&gt;

&lt;h2&gt;
  
  
  よくある質問
&lt;/h2&gt;

&lt;h3&gt;
  
  
  17/18ならOpus 5が総合勝者ですか？
&lt;/h3&gt;

&lt;p&gt;いいえ。この18問では1問リードした、という意味です。画像、ツール利用、超長文脈、複数ターンのagentは対象外です。&lt;/p&gt;

&lt;h3&gt;
  
  
  誤った自己テストをアルゴリズム失敗に含める理由は？
&lt;/h3&gt;

&lt;p&gt;要求が完全なPythonファイルだからです。元ファイルがimportで落ちるなら、人手で直さずに利用できません。&lt;/p&gt;

&lt;h3&gt;
  
  
  なぜ速度を結論に入れないのですか？
&lt;/h3&gt;

&lt;p&gt;遅延はモデルだけでなく、ゲートウェイ、上流負荷、経路状態にも左右されます。運用証拠としては有用でも、知能の正確性とは別です。&lt;/p&gt;

&lt;h2&gt;
  
  
  最終評価
&lt;/h2&gt;

&lt;p&gt;検証可能な正確性を優先した本テストでは、アルゴリズム3問を完全納品したOpus 5が &lt;strong&gt;17/18 対 16/18&lt;/strong&gt;で1問リードしました。一方、厳密な指示遵守はLunaが上です。結論は万能の勝者ではなく、再現可能な失敗傾向に基づく使い分けです。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/ja?utm_source=blog&amp;amp;utm_medium=content&amp;amp;utm_campaign=opus5_gpt56_luna_correctness_benchmark_20260730&amp;amp;utm_content=ja" rel="noopener noreferrer"&gt;Crazyrouterで両モデルを実際のプロンプトに通して比較する&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Claude Opus 5 frente a GPT-5.6 Luna: 18 pruebas verificables, sin ranking de velocidad</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Thu, 30 Jul 2026 00:45:32 +0000</pubDate>
      <link>https://dev.to/xujfcn/claude-opus-5-frente-a-gpt-56-luna-18-pruebas-verificables-sin-ranking-de-velocidad-4740</link>
      <guid>https://dev.to/xujfcn/claude-opus-5-frente-a-gpt-56-luna-18-pruebas-verificables-sin-ranking-de-velocidad-4740</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy4fuzf2cqqwz12g4utzc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy4fuzf2cqqwz12g4utzc.png" alt="Claude Opus 5 frente a GPT-5.6 Luna: 18 pruebas verificables, sin ranking de velocidad" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Respuesta rápida
&lt;/h2&gt;

&lt;p&gt;En la ronda difícil, Claude Opus 5 obtuvo &lt;strong&gt;17/18 (94,4%)&lt;/strong&gt; y GPT-5.6 Luna &lt;strong&gt;16/18 (88,9%)&lt;/strong&gt;. Es una ventaja de una tarea en esta muestra, no una prueba de superioridad universal. Lo importante es el tipo de fallo: Opus entregó correctamente los tres archivos algorítmicos, pero rompió un contrato de JSON estricto; Luna cumplió las tres instrucciones de formato, aunque dos archivos de Python fallaron al importarse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por qué fue necesario subir la dificultad
&lt;/h2&gt;

&lt;p&gt;La primera ronda de ocho tareas fue demasiado sencilla para separar a los modelos: ambos consiguieron 8/8. La segunda pasó a 18 tareas, con variantes hard, harder y extreme en seis categorías. Se exigieron fracciones exactas, modelos físicos por etapas, archivos ejecutables completos, rechazo de premisas engañosas, soluciones lógicas únicas y disciplina de salida carácter por carácter. Una explicación convincente no bastaba: cada afirmación decisiva debía poder verificarse con cálculo, parsing de JSON o ejecución de Python.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo se puntuaron las 18 tareas
&lt;/h2&gt;

&lt;p&gt;Los dos modelos recibieron el mismo enunciado, instrucción de sistema, temperature y presupuesto por tarea. Matemáticas y física se validaron contra valores exactos o tolerancias numéricas. El código se guardó tal como llegó y se importó en el mismo harness de pruebas ocultas. JSON y CSV se evaluaron como artefactos para máquinas. Que un archivo funcione después de borrar sus propios assert ayuda a diagnosticar el fallo, pero no convierte la entrega original en un aprobado. La latencia de ruta se conserva solo en el JSON original y no participa en ninguna decisión de ganador.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resultados en seis dimensiones
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvdwowht7ry0nue21chko.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvdwowht7ry0nue21chko.png" alt="Precisión en seis dimensiones" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimensión&lt;/th&gt;
&lt;th&gt;Opus 5&lt;/th&gt;
&lt;th&gt;GPT-5.6 Luna&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Razonamiento matemático&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Física compleja&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entrega de algoritmos&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;1/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rechazo de premisas falsas&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Razonamiento con restricciones&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Seguimiento de instrucciones&lt;/td&gt;
&lt;td&gt;2/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;17/18 (94.4%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16/18 (88.9%)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  La diferencia algorítmica fue una diferencia de entrega
&lt;/h2&gt;

&lt;p&gt;En los dos fallos de Luna, las funciones principales superaron las pruebas ocultas después de eliminar los assert del final. El problema era que esos assert contenían resultados esperados incorrectos y el archivo original lanzaba &lt;code&gt;AssertionError&lt;/code&gt; durante el import. Bajo un contrato de “archivo Python completo”, son fallos reales. Los tres archivos originales de Opus se importaron y superaron el mismo harness. En producción, una función plausible no equivale a un artefacto listo para integrar.&lt;/p&gt;

&lt;h2&gt;
  
  
  En JSON estricto, la ventaja cambió de lado
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffb2jrbo0owvj69k572xk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffb2jrbo0owvj69k572xk.png" alt="Fallos distintos implican riesgos distintos" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El único fallo de Opus fue casi el reflejo contrario. Las claves y los valores eran correctos, pero el modelo envolvió el objeto en un bloque Markdown pese a que se pedía exactamente un objeto JSON, sin nada más. El comportamiento se repitió en un segundo intento independiente. Luna aprobó las tres pruebas de instrucciones. Cuando la salida entra directamente en un parser, el envoltorio también forma parte de la corrección.&lt;/p&gt;

&lt;h2&gt;
  
  
  El presupuesto de salida se separó de los errores de inteligencia
&lt;/h2&gt;

&lt;p&gt;Algunos intentos iniciales terminaron con &lt;code&gt;finish_reason=length&lt;/code&gt; porque el razonamiento oculto consumió el presupuesto de salida. Se conservaron como evidencia, pero no se contaron como errores de inteligencia. Antes de puntuar se aumentó de forma equivalente el presupuesto efectivo de ambos modelos. Así se evita confundir configuración con razonamiento, sin ocultar el riesgo de integración de una respuesta que deja poco espacio al artefacto visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo convertir los resultados en reglas de routing
&lt;/h2&gt;

&lt;p&gt;Empieza con Luna para JSON estricto, CSV, extracción corta y trabajo estructurado de gran volumen, manteniendo siempre validación de esquema. Empieza con Opus para archivos algorítmicos largos, casos límite e ingeniería defensiva. En matemáticas, física compleja, rechazo de premisas falsas y restricciones hubo empate; en esas áreas, coste, compatibilidad y estilo de salida son mejores criterios. Con ambos modelos hay que validar el artefacto: parsear JSON, comprobar números clave y ejecutar el código sin limpiarlo a mano.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproducción y evidencia original
&lt;/h2&gt;

&lt;p&gt;El runner es &lt;code&gt;scripts/opus5_vs_luna_hard_benchmark.py&lt;/code&gt;. El resultado completo está en &lt;code&gt;.tmp/opus5-vs-luna-hard-benchmark-results.json&lt;/code&gt;; los reintentos independientes están en &lt;code&gt;.tmp/opus5-hard-failure-retry.json&lt;/code&gt; y &lt;code&gt;.tmp/luna-hard-failure-retry.json&lt;/code&gt;. Se usó el endpoint limpio &lt;code&gt;https://cn.crazyrouter.com/v1/chat/completions&lt;/code&gt;. Las latencias permanecen únicamente en los archivos de evidencia.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preguntas frecuentes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ¿17/18 convierte a Opus 5 en ganador absoluto?
&lt;/h3&gt;

&lt;p&gt;No. Solo significa que lideró por una tarea en este conjunto. No se evaluaron visión, herramientas, contexto ultralargo ni agentes de varios turnos.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Por qué cuentan como fallo unas autopruebas incorrectas?
&lt;/h3&gt;

&lt;p&gt;Porque se pidió un archivo Python completo. Si el original falla al importarse, un sistema posterior no puede usarlo sin reparación manual.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Por qué la latencia no aparece en el veredicto?
&lt;/h3&gt;

&lt;p&gt;Depende del modelo, el gateway, la carga upstream y el estado de la ruta. Es evidencia operativa útil, pero no mide la precisión intelectual.&lt;/p&gt;

&lt;h2&gt;
  
  
  Veredicto final
&lt;/h2&gt;

&lt;p&gt;En esta prueba centrada en precisión verificable, Opus 5 lideró &lt;strong&gt;17/18 a 16/18&lt;/strong&gt; gracias a la entrega completa de los tres algoritmos. Luna fue mejor en cumplimiento estricto de formato. La conclusión práctica no es un campeón universal, sino una regla de routing basada en fallos reproducibles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/es?utm_source=blog&amp;amp;utm_medium=content&amp;amp;utm_campaign=opus5_gpt56_luna_correctness_benchmark_20260730&amp;amp;utm_content=es" rel="noopener noreferrer"&gt;Prueba ambos modelos en Crazyrouter con tus propios prompts de producción&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Claude Opus 5 vs GPT-5.6 Luna: 18 Verifiable Tasks, No Speed Leaderboard</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Thu, 30 Jul 2026 00:42:45 +0000</pubDate>
      <link>https://dev.to/xujfcn/claude-opus-5-vs-gpt-56-luna-18-verifiable-tasks-no-speed-leaderboard-3alf</link>
      <guid>https://dev.to/xujfcn/claude-opus-5-vs-gpt-56-luna-18-verifiable-tasks-no-speed-leaderboard-3alf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxmcnvhkat60epcs35gsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxmcnvhkat60epcs35gsi.png" alt="Claude Opus 5 vs GPT-5.6 Luna: 18 Verifiable Tasks, No Speed Leaderboard" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answer
&lt;/h2&gt;

&lt;p&gt;Claude Opus 5 scored &lt;strong&gt;17/18 (94.4%)&lt;/strong&gt; and GPT-5.6 Luna scored &lt;strong&gt;16/18 (88.9%)&lt;/strong&gt; on the harder round. That is a one-task lead in this sample—not proof that Opus is universally stronger. The useful result is the shape of the failures: Opus delivered all three algorithm files successfully but broke a strict JSON contract; Luna followed all three formatting instructions but shipped two algorithm files that failed during import.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the benchmark had to become harder
&lt;/h2&gt;

&lt;p&gt;The first eight tasks were too easy to separate the models: both scored 8/8. The second round therefore used 18 tasks, with hard, harder, and extreme variants in each of six categories. The questions required exact fractions, multi-stage physical modeling, executable files, resistance to misleading assumptions, unique logical solutions, and byte-level output discipline. The goal was not to reward impressive prose. Every decisive claim had to be checked by deterministic rules, independent calculations, JSON parsing, or Python execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the 18-task round was scored
&lt;/h2&gt;

&lt;p&gt;Both models received the same task text, system instruction, temperature, and task-level output budget. Mathematical and physics answers were checked against exact values or numerical tolerances. Algorithm responses were saved as delivered and imported into the same hidden-test harness. Strict JSON and CSV tasks were validated as artifacts, not read charitably. A file that only works after deleting model-written assertions is useful diagnostic evidence, but it is not a successful first delivery. Route latency was retained in the raw JSON for infrastructure diagnosis and was excluded from every winner decision in this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results across six dimensions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0shbbw2f11pnbu4ei5xb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0shbbw2f11pnbu4ei5xb.png" alt="Correctness by dimension" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Opus 5&lt;/th&gt;
&lt;th&gt;GPT-5.6 Luna&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mathematical reasoning&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex physics&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Algorithm delivery&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;1/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False-premise resistance&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Constraint reasoning&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Instruction following&lt;/td&gt;
&lt;td&gt;2/3&lt;/td&gt;
&lt;td&gt;3/3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;17/18 (94.4%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16/18 (88.9%)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The algorithm gap was a delivery gap
&lt;/h2&gt;

&lt;p&gt;Luna's two failed algorithm answers contained core functions that passed hidden tests after their own bottom-of-file assertions were removed. The problem was that the assertions encoded incorrect expected values, so importing the original files raised &lt;code&gt;AssertionError&lt;/code&gt; before a caller could use the functions. Under a strict complete-file contract, those are failures. Opus's three original algorithm files imported and passed the shared harness. This distinction matters in production: a plausible function body is not the same thing as a deployable artifact.&lt;/p&gt;

&lt;h2&gt;
  
  
  The strict-JSON failure points in the other direction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fygklb403va7rgtt1boyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fygklb403va7rgtt1boyy.png" alt="Different failures, different production risks" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Opus's only hard-round failure was almost the mirror image. The JSON keys and values were correct, but the model wrapped the object in a Markdown code fence even though the instruction required exactly one JSON object and nothing else. The same behavior reappeared in the independent retry. Luna returned valid strict output in all three instruction-following tasks. If your pipeline feeds model output directly into a parser, wrapper discipline is part of correctness, not a cosmetic preference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Output budgets were separated from intelligence errors
&lt;/h2&gt;

&lt;p&gt;Some early responses ended with &lt;code&gt;finish_reason=length&lt;/code&gt; because hidden reasoning consumed the available output budget. Those attempts were preserved, but they were not counted as intelligence failures. The same effective budget was increased for both models before scoring. This avoids confusing capacity configuration with reasoning quality while still documenting a real integration risk: long reasoning can leave too little room for the visible artifact.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for production routing
&lt;/h2&gt;

&lt;p&gt;Use Luna first for strict JSON, CSV, short extraction, and high-volume structured work—but keep schema validation. Use Opus first for long algorithm files, defensive engineering, and tasks where the complete executable artifact matters more than brevity. For math, complex physics, false-premise resistance, and constraint reasoning, this sample was a tie, so cost, interface compatibility, and output style are better routing variables. In every case, validate the task artifact: parse JSON, check key numbers, and run generated code exactly as received.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproduction and raw evidence
&lt;/h2&gt;

&lt;p&gt;The benchmark runner is &lt;code&gt;scripts/opus5_vs_luna_hard_benchmark.py&lt;/code&gt;. The complete hard-round result is &lt;code&gt;.tmp/opus5-vs-luna-hard-benchmark-results.json&lt;/code&gt;; independent failure retries are in &lt;code&gt;.tmp/opus5-hard-failure-retry.json&lt;/code&gt; and &lt;code&gt;.tmp/luna-hard-failure-retry.json&lt;/code&gt;. The API endpoint used was &lt;code&gt;https://cn.crazyrouter.com/v1/chat/completions&lt;/code&gt;. Latency fields remain in those raw files for route diagnosis only.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does 17/18 make Opus 5 the overall winner?
&lt;/h3&gt;

&lt;p&gt;No. It gives Opus a one-task lead on this specific 18-task set. The sample does not cover vision, tools, long-context retrieval, or multi-turn agents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why count faulty self-tests as algorithm failures?
&lt;/h3&gt;

&lt;p&gt;Because the requested deliverable was a complete Python file. If the original file crashes on import, downstream systems cannot use it without manual repair.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is latency absent from the verdict?
&lt;/h3&gt;

&lt;p&gt;Latency reflects the model, gateway route, upstream load, and channel state. It is valuable operational evidence but not a reliable measure of intelligence correctness.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final verdict
&lt;/h2&gt;

&lt;p&gt;In this correctness-first benchmark, Opus 5 led &lt;strong&gt;17/18 to 16/18&lt;/strong&gt; because it delivered all algorithm artifacts successfully. Luna was stronger at strict instruction compliance. The practical conclusion is not a universal champion; it is a routing rule backed by reproducible failure modes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/en?utm_source=blog&amp;amp;utm_medium=content&amp;amp;utm_campaign=opus5_gpt56_luna_correctness_benchmark_20260730&amp;amp;utm_content=en" rel="noopener noreferrer"&gt;Run both models through Crazyrouter with your own production prompts&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Claude Opus 5 vs GPT-5.6-SOL: 프로덕션 QA로 검증한 10개 과제, 핵심 정확도는 동률</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Thu, 30 Jul 2026 00:25:45 +0000</pubDate>
      <link>https://dev.to/xujfcn/claude-opus-5-vs-gpt-56-sol-peurodeogsyeon-qaro-geomjeunghan-10gae-gwaje-haegsim-jeonghwagdoneun-dongryul-2i9o</link>
      <guid>https://dev.to/xujfcn/claude-opus-5-vs-gpt-56-sol-peurodeogsyeon-qaro-geomjeunghan-10gae-gwaje-haegsim-jeonghwagdoneun-dongryul-2i9o</guid>
      <description>&lt;h1&gt;
  
  
  Claude Opus 5 vs GPT-5.6-SOL: 프로덕션 QA로 검증한 10개 과제, 핵심 정확도는 동률
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq2achq4arcukcthqri3a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq2achq4arcukcthqri3a.png" alt="Claude Opus 5와 GPT-5.6-SOL 지능 정확도 벤치마크" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;모델을 프로덕션에 투입할 때는 최종 답만 맞는다고 충분하지 않다. 응답이 중간에 잘리지 않았는지 &lt;code&gt;finish_reason&lt;/code&gt;을 확인해야 하고, 생성된 코드는 실제 숨은 테스트를 통과해야 하며, JSON은 설명이나 코드 블록 없이 바로 파싱할 수 있어야 한다.&lt;/p&gt;

&lt;p&gt;이번 비교에서는 Crazyrouter의 동일한 OpenAI-compatible endpoint를 통해 Claude Opus 5와 GPT-5.6-SOL에 10개의 지능 과제를 수행하게 했다. 별도로 엄격한 JSON 출력 과제를 추가해 지시 준수와 구조화 출력 안정성도 확인했다.&lt;/p&gt;

&lt;p&gt;평가는 다음 질문에 초점을 맞췄다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;수학 답과 물리 모델이 정확한가?&lt;/li&gt;
&lt;li&gt;잘못된 전제나 불충분한 통계적 결론을 식별하는가?&lt;/li&gt;
&lt;li&gt;생성한 Python 코드가 숨은 테스트를 통과하는가?&lt;/li&gt;
&lt;li&gt;문제에 포함된 모든 하위 요구 사항을 빠짐없이 완료하는가?&lt;/li&gt;
&lt;li&gt;JSON 응답을 별도 정제 없이 바로 파싱할 수 있는가?&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;finish_reason&lt;/code&gt;이 정상 종료를 나타내는가?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;결과는 단순한 승패보다 프로덕션 QA 관점에서 해석할 가치가 있다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;핵심 답변 정확도: Opus 5 &lt;strong&gt;10/10&lt;/strong&gt;, GPT-5.6-SOL &lt;strong&gt;10/10&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;모든 하위 요구 사항까지 완전히 완료: Opus 5 &lt;strong&gt;9/10&lt;/strong&gt;, GPT-5.6-SOL &lt;strong&gt;10/10&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Python 알고리즘 과제의 숨은 테스트: 두 모델 모두 &lt;strong&gt;2/2&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;엄격한 JSON 최초 제출: Opus 5 &lt;strong&gt;0/1&lt;/strong&gt;, GPT-5.6-SOL &lt;strong&gt;1/1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Opus 5는 이후 두 번의 추가 재시도에서도 JSON 외의 텍스트를 덧붙여 형식 요구를 충족하지 못했다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;따라서 이번 결과는 &lt;strong&gt;핵심 정확도는 동률&lt;/strong&gt;이지만, &lt;strong&gt;완전한 과제 납품과 구조화 출력의 안정성은 동일하지 않았다&lt;/strong&gt;고 정리하는 것이 정확하다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ko__hero_cta&amp;amp;utm_term=claude+opus+5+gpt+5.6+sol" rel="noopener noreferrer"&gt;API Key를 만들고 실제 업무 문제로 재검증하기&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  빠른 답변
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgr3to2dmdpgu8r8a2u1s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgr3to2dmdpgu8r8a2u1s.png" alt="Claude Opus 5와 GPT-5.6-SOL 정확도 결과 카드" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;질문&lt;/th&gt;
&lt;th&gt;이번 테스트 결과&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;핵심 지능 과제의 답은 어느 쪽이 더 정확했나?&lt;/td&gt;
&lt;td&gt;동률: 두 모델 모두 10/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;모든 하위 요구 사항을 더 많이 완료한 모델은?&lt;/td&gt;
&lt;td&gt;GPT-5.6-SOL 10/10, Opus 5 9/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;코드 신뢰성은 어느 쪽이 더 높았나?&lt;/td&gt;
&lt;td&gt;이번에는 동률. 두 알고리즘 과제 모두 숨은 테스트 통과&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Opus 5가 어려운 확률 문제를 틀렸나?&lt;/td&gt;
&lt;td&gt;아니다. 핵심 답은 정확했지만 &lt;code&gt;max_tokens=3200&lt;/code&gt;에서 출력이 잘려 마지막 설명 요구를 누락했다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;엄격한 JSON 지시를 더 안정적으로 지킨 모델은?&lt;/td&gt;
&lt;td&gt;이번에는 GPT-5.6-SOL. Opus 5는 최초 응답과 추가 재시도 2회, 총 3회 모두 추가 텍스트 또는 코드 블록을 포함했다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;이 결과로 GPT가 전반적으로 더 똑똑하다고 할 수 있나?&lt;/td&gt;
&lt;td&gt;아니다. 핵심 추론 정확도와 형식·지시 준수는 분리해 평가해야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;응답 속도도 평가했나?&lt;/td&gt;
&lt;td&gt;아니다. 네트워크와 라우팅 영향을 분리할 수 없어 지능 점수에서 제외했다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;수학·물리·알고리즘의 핵심 정확성이 중요한 업무라면 이번 표본에서 두 모델 간 뚜렷한 격차는 없었다. 반면 응답 본문이 반드시 순수 JSON이어야 하거나, 단 한 번의 응답에서 모든 하위 요구 사항을 완료해야 한다면 이번 테스트에서는 GPT-5.6-SOL의 납품 완성도가 더 높았다.&lt;/p&gt;

&lt;h2&gt;
  
  
  네트워크 지연 시간을 지능 점수에서 제외한 이유
&lt;/h2&gt;

&lt;p&gt;모델 API의 종단 간 응답 시간에는 모델의 추론 능력 외에도 여러 변수가 개입한다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;게이트웨이에서 각 상위 공급자까지의 네트워크 경로&lt;/li&gt;
&lt;li&gt;요청 시점의 채널 부하와 계정별 속도 제한&lt;/li&gt;
&lt;li&gt;캐시 적중 여부&lt;/li&gt;
&lt;li&gt;실제로 요청을 처리한 서비스 인스턴스&lt;/li&gt;
&lt;li&gt;상위 공급자가 reasoning token을 집계하거나 숨기는 방식&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;단일 요청이 몇 초 더 빨랐다는 사실은 모델의 추론 능력이 더 우수하다는 증거가 아니다. 그것은 네트워크 상태나 라우팅 결과, 순간적인 서버 부하를 측정한 것일 수 있다.&lt;/p&gt;

&lt;p&gt;속도를 비교하려면 최소한 동일한 상위 공급자와 실행 조건을 고정하고, 충분한 횟수로 반복한 뒤 분산과 신뢰구간을 함께 보고해야 한다. 이번 테스트에는 그런 조건이 마련되지 않았으므로 네트워크 지연 시간을 지능 점수에서 명시적으로 제외했다.&lt;/p&gt;

&lt;p&gt;따라서 이 글은 어떤 모델도 속도 승자로 선정하지 않는다. 지연 시간은 운영 관측 지표로는 유용하지만, 이번과 같은 지능 정확도 평가에 혼합하면 결과를 왜곡할 수 있다.&lt;/p&gt;

&lt;p&gt;현재 제공되는 모델과 접속 범위는 &lt;a href="https://crazyrouter.com/models?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ko__models" rel="noopener noreferrer"&gt;Crazyrouter 모델 목록&lt;/a&gt;에서 확인할 수 있다. 비용 계획은 지능 평가와 분리해 &lt;a href="https://crazyrouter.com/pricing?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ko__pricing" rel="noopener noreferrer"&gt;Crazyrouter pricing&lt;/a&gt;을 참고해야 한다.&lt;/p&gt;

&lt;h2&gt;
  
  
  테스트 환경과 채점 기준
&lt;/h2&gt;

&lt;p&gt;테스트 전 모델 목록 API를 호출해 정확한 모델 ID 두 개가 노출되는지 확인했다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET https://cn.crazyrouter.com/v1/models

claude-opus-5
gpt-5.6-sol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;실제 요청에는 다음 endpoint를 공통으로 사용했다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://cn.crazyrouter.com/v1/chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;각 테스트 배치에서 두 모델에 동일한 system prompt, user prompt, temperature, &lt;code&gt;max_tokens&lt;/code&gt;를 적용했다. 외부 도구는 사용하지 않았으며, HTTP 200 응답만으로 과제 통과를 판정하지 않았다.&lt;/p&gt;

&lt;p&gt;채점은 세 단계로 나눴다.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;핵심 답변 정확도&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
주요 수치, 결론, 알고리즘 동작이 정확한지 평가했다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;완전한 과제 통과율&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
문제에 명시된 모든 하위 요구 사항을 빠짐없이 완료했는지 확인했다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;기계 검증 가능성&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
코드는 숨은 테스트를 통과하는지, JSON은 별도 정제 없이 직접 파싱되는지 검사했다.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;자동 문자열 채점 후에는 사람이 다시 검토했다. LaTeX 표현, 대소문자, 정확한 분수와 반올림된 소수의 차이 때문에 거짓 음성이 발생할 수 있기 때문이다.&lt;/p&gt;

&lt;p&gt;예를 들어 GPT-5.6-SOL은 확률 문제에서 기준 답안의 분수 표현을 그대로 복사하지 않았지만 동치인 수식과 정확한 소수를 제시했다. Opus 5는 물리 문제의 &lt;code&gt;0.302 m&lt;/code&gt;를 유효숫자 두 자리인 &lt;code&gt;0.30 m&lt;/code&gt;로 썼지만, 이를 오답으로 볼 근거는 없다.&lt;/p&gt;

&lt;h2&gt;
  
  
  10개 지능 과제 결과
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;과제&lt;/th&gt;
&lt;th&gt;검증 기준&lt;/th&gt;
&lt;th&gt;Claude Opus 5&lt;/th&gt;
&lt;th&gt;GPT-5.6-SOL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;정확한 마르코프 연쇄&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;E[τ]=5&lt;/code&gt;, &lt;code&gt;E[τ²]=43&lt;/code&gt;, &lt;code&gt;Var(τ)=18&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2자유도 진동자&lt;/td&gt;
&lt;td&gt;고유진동수 2개, 진폭 2개, 위상 2개&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;제약 조건 탐색&lt;/td&gt;
&lt;td&gt;유일한 순서 &lt;code&gt;A,C,E,B,D&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cantelli 오류 수정&lt;/td&gt;
&lt;td&gt;확률은 식별 불가능하며 상한은 &lt;code&gt;0.2&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python 순환 탐지 검토&lt;/td&gt;
&lt;td&gt;bug, DAG 반례, 최소 수정&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;실험 설계&lt;/td&gt;
&lt;td&gt;동일 문제 짝짓기, 난이도 통제, 신뢰구간&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;편향 동전의 &lt;code&gt;HHTH&lt;/code&gt; 대기 시간&lt;/td&gt;
&lt;td&gt;기댓값 약 &lt;code&gt;12.6547&lt;/code&gt;과 올바른 상태 전이&lt;/td&gt;
&lt;td&gt;핵심 답은 정확하나 출력이 잘려 마지막 설명 누락&lt;/td&gt;
&lt;td&gt;정확하고 완전함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;로그 집계 알고리즘&lt;/td&gt;
&lt;td&gt;시간 구간, 실패 이벤트, 캐시 비율, 상위 사용자&lt;/td&gt;
&lt;td&gt;숨은 테스트 통과&lt;/td&gt;
&lt;td&gt;숨은 테스트 통과&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;비탄성 충돌과 용수철&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;v1≈6.10&lt;/code&gt;, &lt;code&gt;v2≈2.44&lt;/code&gt;, &lt;code&gt;x≈0.302&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;td&gt;정확&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;안정적 라우팅 알고리즘&lt;/td&gt;
&lt;td&gt;cost, latency, reliability와 사전식 순서 규칙&lt;/td&gt;
&lt;td&gt;숨은 테스트 통과&lt;/td&gt;
&lt;td&gt;숨은 테스트 통과&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;이 표에서 가장 중요한 구분은 &lt;strong&gt;핵심적으로 맞았는가&lt;/strong&gt;와 &lt;strong&gt;요구된 결과를 완전히 납품했는가&lt;/strong&gt;가 서로 다른 평가 항목이라는 점이다.&lt;/p&gt;

&lt;p&gt;Opus 5는 10개 과제의 핵심 답을 모두 맞혔다. 그러나 확률 문제에서 마지막 설명 하나가 누락되어 완전한 과제 통과율은 9/10이었다. GPT-5.6-SOL은 핵심 정확도와 완전한 과제 통과율이 모두 10/10이었다.&lt;/p&gt;

&lt;h2&gt;
  
  
  가장 어려운 확률 문제: &lt;code&gt;12.6547&lt;/code&gt;은 맞았지만 응답은 완전하지 않았다
&lt;/h2&gt;

&lt;p&gt;문제의 목표 패턴은 &lt;code&gt;HHTH&lt;/code&gt;이며 편향 동전의 확률은 다음과 같다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;P(H)=0.62
P(T)=0.38
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;문제는 최장 접두사·접미사 일치 상태를 사용해 방정식을 세우고, 다음 두 가지 함정을 명시적으로 설명하도록 요구했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;상태 &lt;code&gt;HH&lt;/code&gt;에서 다시 &lt;code&gt;H&lt;/code&gt;가 나왔을 때 왜 상태가 여전히 &lt;code&gt;HH&lt;/code&gt;인가?&lt;/li&gt;
&lt;li&gt;기대 대기 시간을 왜 단순히 &lt;code&gt;1/P(HHTH)&lt;/code&gt;로 계산할 수 없는가?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;두 모델 모두 올바른 기대 대기 시간을 계산했다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[N] ≈ 12.6547
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GPT-5.6-SOL은 전체 유도를 완료했고, 패턴에 중첩이 존재하므로 다음 관계가 성립한다고 설명했다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[N] = 1 / P(HHTH) + 1 / P(H)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Opus 5도 올바른 상태 정의, 방정식, 정확한 분수와 소수 결과를 제시했다. 하지만 응답의 최종 상태는 &lt;code&gt;finish_reason=length&lt;/code&gt;였다. 출력이 부가적인 상태별 기대값을 설명하던 중 종료되면서, 마지막 요구 사항인 “왜 확률의 역수를 직접 사용하면 안 되는가”에 대한 설명이 빠졌다.&lt;/p&gt;

&lt;p&gt;이때 적용해야 할 채점 원칙은 명확하다.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;최종 수치가 정확하면 핵심 답변 정확도에는 포함할 수 있다. 그러나 문제의 모든 요구 사항을 완료하지 않았다면 완전한 과제 통과로 처리할 수 없다.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;이 응답에는 &lt;code&gt;max_tokens=3200&lt;/code&gt;이 적용됐다. 따라서 프로덕션에서는 답변 본문만 저장해서는 안 된다. 최소한 원문 응답, &lt;code&gt;finish_reason&lt;/code&gt;, 사용한 출력 예산을 함께 기록해야 한다. 앞부분이 정확하다는 이유만으로 전체 작업이 완료됐다고 판단해서는 안 된다.&lt;/p&gt;

&lt;p&gt;이는 기존의 &lt;a href="https://crazyrouter.com/ko/blog/claude-fable-5-vs-gpt-55-max-tokens-animation-test-2026-ko" rel="noopener noreferrer"&gt;max_tokens 잘림 재검증&lt;/a&gt;에서도 확인할 수 있는 동일한 방법론적 문제다.&lt;/p&gt;

&lt;h2&gt;
  
  
  실행 가능한 코드 검증: 코드 모양이 아니라 숨은 테스트로 평가
&lt;/h2&gt;

&lt;p&gt;코드 생성 결과는 길이, 주석의 양, 함수 분리 방식만 보고 평가하기 어렵다. 보기 좋은 코드가 반드시 정확한 코드는 아니며, 짧은 구현도 모든 경계 조건을 만족할 수 있다.&lt;/p&gt;

&lt;p&gt;이번 테스트에서는 두 모델이 생성한 출력을 각각 &lt;code&gt;.py&lt;/code&gt; 파일로 저장하고 격리 모드에서 동일한 테스트를 실행했다.&lt;/p&gt;

&lt;h3&gt;
  
  
  로그 집계 알고리즘
&lt;/h3&gt;

&lt;p&gt;로그 집계 함수는 다음 조건을 모두 처리해야 했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;반개방 시간 구간&lt;/li&gt;
&lt;li&gt;성공 요청과 실패 요청에 서로 다른 집계 규칙 적용&lt;/li&gt;
&lt;li&gt;사용자 또는 모델 값이 누락된 이벤트&lt;/li&gt;
&lt;li&gt;cache hit rate&lt;/li&gt;
&lt;li&gt;cost가 같을 때 사용자 이름의 사전식 순서 적용&lt;/li&gt;
&lt;li&gt;입력 객체를 변경하지 않는 불변성&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;두 모델의 구현 모두 숨은 테스트를 통과했다.&lt;/p&gt;

&lt;h3&gt;
  
  
  신뢰성 제약이 있는 안정적 라우팅
&lt;/h3&gt;

&lt;p&gt;두 번째 함수는 경로 탐색 과정에서 다음 조건을 함께 처리해야 했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;총비용이 가장 낮은 경로 선택&lt;/li&gt;
&lt;li&gt;비용이 같으면 latency가 가장 낮은 경로 선택&lt;/li&gt;
&lt;li&gt;latency까지 같으면 reliability가 가장 높은 경로 선택&lt;/li&gt;
&lt;li&gt;모든 조건이 같으면 경로의 사전식 순서로 선택&lt;/li&gt;
&lt;li&gt;banned nodes 처리&lt;/li&gt;
&lt;li&gt;최대 hops 제한&lt;/li&gt;
&lt;li&gt;최소 reliability 제한&lt;/li&gt;
&lt;li&gt;잘못된 edge 처리&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;두 모델 모두 이 과제의 숨은 테스트를 통과했다.&lt;/p&gt;

&lt;p&gt;따라서 코드 부문의 결과는 &lt;strong&gt;두 모델 모두 2/2로 동률&lt;/strong&gt;이다. 코드가 더 길거나 설명이 더 상세하다는 이유로 별도의 우승 모델을 정하지 않았다.&lt;/p&gt;

&lt;p&gt;GPT-5.6-SOL의 다른 고난도 물리·의존성 알고리즘 결과는 &lt;a href="https://crazyrouter.com/zh/blog/gpt-56-sol-vs-gpt-55-round6-hard-physics-code-2026" rel="noopener noreferrer"&gt;GPT-5.6-SOL vs GPT-5.5 고난도 물리 및 코드 테스트&lt;/a&gt;에서 확인할 수 있다.&lt;/p&gt;

&lt;h2&gt;
  
  
  엄격한 JSON: 계산 정확도와 지시 준수를 분리해서 봐야 한다
&lt;/h2&gt;

&lt;p&gt;별도의 엄격한 JSON 과제에서는 사고 데이터를 하나의 객체로 압축하되 다음 조건을 지키도록 요구했다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;exactly one JSON object and no Markdown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;두 모델 모두 실패율, 장애 책임 채널, 재시도 후 복구되지 않은 요청 수를 정확하게 계산했다. 차이는 JSON 바깥의 출력에서 발생했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPT-5.6-SOL은 첫 시도에 JSON만 반환했고 &lt;code&gt;json.loads&lt;/code&gt;로 직접 파싱할 수 있었다.&lt;/li&gt;
&lt;li&gt;Opus 5는 첫 시도에 코드 블록과 Verification을 추가했다.&lt;/li&gt;
&lt;li&gt;Opus 5의 첫 번째 추가 재시도에서는 압축된 JSON 뒤에 Verification을 덧붙였다.&lt;/li&gt;
&lt;li&gt;Opus 5의 두 번째 추가 재시도에서는 다시 코드 블록과 설명을 추가했다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;수치로 정리하면 엄격한 JSON 최초 제출은 GPT-5.6-SOL &lt;strong&gt;1/1&lt;/strong&gt;, Opus 5 &lt;strong&gt;0/1&lt;/strong&gt;이다. Opus 5는 그 뒤 두 번 더 재시도했지만 계속 형식 요구를 충족하지 못했다.&lt;/p&gt;

&lt;p&gt;이는 “계산을 못했다”는 의미가 아니다. Opus 5가 생성한 필드와 값은 정확했다. 실패 원인은 &lt;strong&gt;데이터 오류가 아니라 출력 형식과 지시 준수&lt;/strong&gt;다.&lt;/p&gt;

&lt;p&gt;이 차이를 핵심 지능 정확도에 섞어 하나의 총점으로 만들면 다음 두 문제를 구분할 수 없게 된다.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;모델이 올바른 값을 계산했는가?&lt;/li&gt;
&lt;li&gt;모델이 지정된 구조만 출력했는가?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;프로덕션에서는 최소한 다음과 같은 로컬 검증기를 둘 수 있다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;REQUIRED_KEYS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;window&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;total_requests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed_requests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failure_rate_pct&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;provider_owned_failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;customer_owned_failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;recovered_by_retry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;unrecovered_failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;root_cause&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse_incident_json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;REQUIRED_KEYS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;unexpected schema or key order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed_requests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;84&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed request count mismatch&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;payload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;system prompt만으로 구조화 출력을 보장할 수는 없다. 더 안전한 구성은 다음 세 요소를 함께 적용하는 것이다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;공급자가 지원하는 구조화 출력 매개변수 사용&lt;/li&gt;
&lt;li&gt;응답에 대한 로컬 schema 검증&lt;/li&gt;
&lt;li&gt;파싱 또는 검증 실패 시 재시도하거나 다른 모델로 전환&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;즉, 구조화 출력은 프롬프트 작성만의 문제가 아니라 애플리케이션 계층의 검증 문제다.&lt;/p&gt;

&lt;h2&gt;
  
  
  같은 API로 재검증하는 방법
&lt;/h2&gt;

&lt;p&gt;다음은 OpenAI-compatible chat completions endpoint를 사용하는 최소 실행 예제다. API endpoint 자체에는 UTM 매개변수를 추가하지 않는다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://cn.crazyrouter.com/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CRAZYROUTER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/chat/completions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Answer accurately and follow every requested constraint.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;raise_for_status&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-5.6-sol&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your benchmark prompt here&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;finish_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;실제 회귀 테스트에서는 답변 텍스트뿐 아니라 다음 항목도 함께 저장하는 편이 좋다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;response ID&lt;/li&gt;
&lt;li&gt;returned model&lt;/li&gt;
&lt;li&gt;원본 응답&lt;/li&gt;
&lt;li&gt;&lt;code&gt;finish_reason&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;요청에 사용한 &lt;code&gt;max_tokens&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;로컬 검증 결과&lt;/li&gt;
&lt;li&gt;코드 테스트 또는 schema 검증의 실패 원인&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;현재 모델이 노출되는지는 &lt;a href="https://crazyrouter.com/models?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ko__body_models" rel="noopener noreferrer"&gt;Crazyrouter 모델 목록&lt;/a&gt;에서 확인한 뒤, 실제 업무 prompt로 소규모 회귀 테스트를 진행할 수 있다.&lt;/p&gt;

&lt;h2&gt;
  
  
  프로덕션 도입을 위한 QA 지침
&lt;/h2&gt;

&lt;h3&gt;
  
  
  두 모델 모두 후보로 고려할 수 있는 작업
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;명확한 기준 답안이 있는 수학·물리 문제&lt;/li&gt;
&lt;li&gt;단위 테스트를 실행할 수 있는 Python 알고리즘&lt;/li&gt;
&lt;li&gt;잘못된 전제나 불충분한 통계 결론을 식별하는 작업&lt;/li&gt;
&lt;li&gt;로컬 검증기로 성공 여부를 판정할 수 있는 업무 흐름&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이번 10개 과제에서 두 모델 모두 핵심 정확도 10/10을 기록했고, 코드 과제의 숨은 테스트도 각각 2/2를 통과했다. 따라서 검증 가능한 작업이라면 두 모델 모두 후보군에 포함할 근거가 있다.&lt;/p&gt;

&lt;h3&gt;
  
  
  이번 결과에서 GPT-5.6-SOL을 우선 검토할 수 있는 작업
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;모든 하위 요구 사항을 한 번의 응답에서 완료해야 하는 작업&lt;/li&gt;
&lt;li&gt;응답 원문이 반드시 순수 JSON이어야 하는 연동&lt;/li&gt;
&lt;li&gt;설명문에서 구조화 데이터를 다시 추출하는 후처리를 줄여야 하는 시스템&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이 판단은 GPT-5.6-SOL의 핵심 추론 정확도가 더 높았다는 뜻이 아니다. 두 모델의 핵심 정확도는 동일한 10/10이었다. 차이는 이번 표본에서 확인된 완전한 과제 납품과 JSON 형식 준수에 있다.&lt;/p&gt;

&lt;h3&gt;
  
  
  Opus 5를 사용할 때 추가할 보호 장치
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;긴 유도 과정에는 충분한 &lt;code&gt;max_tokens&lt;/code&gt; 할당&lt;/li&gt;
&lt;li&gt;모든 응답에서 &lt;code&gt;finish_reason&lt;/code&gt; 검사&lt;/li&gt;
&lt;li&gt;JSON을 하위 시스템에 전달하기 전에 반드시 파싱&lt;/li&gt;
&lt;li&gt;추가 Markdown, 코드 블록, 설명 텍스트가 포함됐을 때의 명시적 대체 경로 구성&lt;/li&gt;
&lt;li&gt;잘림이나 schema 위반 시 재시도 또는 모델 전환&lt;/li&gt;
&lt;li&gt;핵심 정답과 전체 요구 사항 완료 여부를 별도로 기록&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Opus 5의 확률 문제는 핵심 계산이 틀린 사례가 아니다. &lt;code&gt;max_tokens=3200&lt;/code&gt; 경계에서 &lt;code&gt;finish_reason=length&lt;/code&gt;로 끝나면서 마지막 설명이 누락된 사례다. 이를 추론 오류로 분류하면 원인을 잘못 진단하게 된다.&lt;/p&gt;

&lt;p&gt;Claude 계열 내부의 납품 특성을 추가로 비교하려면 &lt;a href="https://crazyrouter.com/ko/blog/claude-opus-5-vs-claude-fable-5-api-benchmark-2026-ko" rel="noopener noreferrer"&gt;Claude Opus 5 vs Claude Fable 5 실제 API 테스트&lt;/a&gt;를 참고할 수 있다.&lt;/p&gt;

&lt;h2&gt;
  
  
  프로덕션 체크리스트
&lt;/h2&gt;

&lt;p&gt;모델을 실제 시스템에 연결할 때는 단일 “정답률” 대신 다음 항목을 개별적으로 수집하는 것이 좋다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] 핵심 답변이 정확한가?&lt;/li&gt;
&lt;li&gt;[ ] 모든 하위 요구 사항을 완료했는가?&lt;/li&gt;
&lt;li&gt;[ ] &lt;code&gt;finish_reason&lt;/code&gt;이 예상한 종료 상태인가?&lt;/li&gt;
&lt;li&gt;[ ] 응답이 &lt;code&gt;max_tokens&lt;/code&gt; 경계에서 잘리지 않았는가?&lt;/li&gt;
&lt;li&gt;[ ] JSON이 &lt;code&gt;json.loads&lt;/code&gt;로 직접 파싱되는가?&lt;/li&gt;
&lt;li&gt;[ ] 필수 키, 자료형, 값 범위가 schema와 일치하는가?&lt;/li&gt;
&lt;li&gt;[ ] 생성된 코드가 공개 테스트뿐 아니라 숨은 테스트도 통과하는가?&lt;/li&gt;
&lt;li&gt;[ ] 입력 객체의 불변성과 경계 조건을 지키는가?&lt;/li&gt;
&lt;li&gt;[ ] 실패 시 재시도 또는 모델 전환 경로가 있는가?&lt;/li&gt;
&lt;li&gt;[ ] 네트워크 지연 시간과 지능 정확도를 별도 지표로 기록하는가?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Claude Opus 5와 GPT-5.6-SOL 중 어느 모델이 더 똑똑한가?
&lt;/h3&gt;

&lt;p&gt;이번 10개 과제에서는 두 모델 모두 핵심 답변 정확도 10/10을 기록했다. 따라서 이 결과만으로 어느 한쪽이 전반적으로 더 똑똑하다고 결론 내릴 수 없다.&lt;/p&gt;

&lt;h3&gt;
  
  
  완전한 과제 통과율은 왜 동률이 아닌가?
&lt;/h3&gt;

&lt;p&gt;Opus 5의 고난도 확률 문제 응답이 &lt;code&gt;max_tokens=3200&lt;/code&gt;에서 잘렸기 때문이다. 기대값 &lt;code&gt;12.6547&lt;/code&gt;과 상태 방정식은 정확했지만, 마지막 설명 요구를 완료하지 못했고 &lt;code&gt;finish_reason=length&lt;/code&gt;가 반환됐다. 따라서 핵심 정확도에는 포함되지만 완전한 과제 통과에는 포함되지 않는다.&lt;/p&gt;

&lt;h3&gt;
  
  
  핵심 정확도와 완전한 과제 납품은 어떻게 다른가?
&lt;/h3&gt;

&lt;p&gt;핵심 정확도는 주요 수치, 결론, 알고리즘 동작이 맞는지를 평가한다. 완전한 과제 납품은 여기에 더해 문제에서 요구한 모든 설명, 형식, 하위 항목까지 빠짐없이 제공했는지를 평가한다. 정답을 계산했더라도 마지막 설명이나 필수 필드가 빠지면 완전한 납품은 아니다.&lt;/p&gt;

&lt;h3&gt;
  
  
  엄격한 JSON 실패를 지능 오류로 봐야 하나?
&lt;/h3&gt;

&lt;p&gt;수학 또는 추론 오류로 직접 분류해서는 안 된다. Opus 5는 JSON의 필드와 값을 정확하게 계산했지만 JSON 외의 코드 블록이나 Verification 설명을 추가했다. 따라서 더 정확한 분류는 형식 및 지시 준수 실패다.&lt;/p&gt;

&lt;h3&gt;
  
  
  Opus 5는 JSON 재시도에서 성공했나?
&lt;/h3&gt;

&lt;p&gt;아니다. 최초 응답은 엄격한 JSON 기준에서 0/1이었고, 이후 두 번의 추가 재시도에서도 JSON 뒤의 Verification 또는 코드 블록과 설명을 추가했다. 즉, 총 3회 모두 순수 JSON만 반환하라는 요구를 지키지 못했다.&lt;/p&gt;

&lt;h3&gt;
  
  
  두 코드 과제는 어떻게 평가했나?
&lt;/h3&gt;

&lt;p&gt;각 모델의 출력을 Python 파일로 저장하고 동일한 숨은 테스트를 실행했다. 테스트에는 경계 조건, 정렬 규칙, 잘못된 입력, 입력 불변성 등이 포함됐다. 두 모델 모두 두 과제를 통과해 각각 2/2를 기록했다.&lt;/p&gt;

&lt;h3&gt;
  
  
  왜 응답 속도 승자를 발표하지 않았나?
&lt;/h3&gt;

&lt;p&gt;종단 간 응답 시간은 네트워크 경로, 채널 부하, 캐시, 상위 공급자 상태, 라우팅된 인스턴스 등에 영향을 받는다. 동일한 상위 환경을 고정하고 충분히 반복하지 않은 단일 지연 시간은 지능 정확도를 나타내지 않는다. 그래서 이번 점수에서는 네트워크 지연 시간을 제외했으며 속도 승자를 정하지 않았다.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;finish_reason&lt;/code&gt;을 반드시 검사해야 하는 이유는 무엇인가?
&lt;/h3&gt;

&lt;p&gt;본문에 올바른 답이 포함돼 있어도 응답이 중간에 끝났을 수 있기 때문이다. 이번 Opus 5 사례처럼 &lt;code&gt;finish_reason=length&lt;/code&gt;이면 핵심 답을 계산한 뒤에도 마지막 요구 사항이 누락될 수 있다. 프로덕션에서는 본문과 함께 &lt;code&gt;finish_reason&lt;/code&gt;을 성공 판정 조건에 포함해야 한다.&lt;/p&gt;

&lt;h3&gt;
  
  
  10개 과제만으로 장기 모델을 선정해도 되나?
&lt;/h3&gt;

&lt;p&gt;충분하지 않다. 이번 결과는 작지만 재현 가능한 능력 표본이다. 실제 도입 전에는 업무 문제를 20–50회 반복해 핵심 정확도, 완전한 과제 통과율, 코드 테스트 통과율, 형식 위반률을 각각 집계하는 것이 좋다.&lt;/p&gt;

&lt;h3&gt;
  
  
  자체 모델 비교는 어떻게 시작해야 하나?
&lt;/h3&gt;

&lt;p&gt;실제 업무를 대표하는 prompt 10–30개를 먼저 선정하고, 각 문제에 기계적으로 실행 가능한 통과 기준을 정의해야 한다. 이후 동일한 API 조건으로 두 모델에 같은 입력을 보내고 결과를 비교한다. 결론을 먼저 정한 뒤 그 결론을 뒷받침하는 사례만 선택해서는 안 된다.&lt;/p&gt;

&lt;h3&gt;
  
  
  구조화 출력은 prompt만 잘 쓰면 보장할 수 있나?
&lt;/h3&gt;

&lt;p&gt;보장할 수 없다. 명확한 system prompt와 user prompt는 필요하지만 충분하지 않다. 가능하면 공급자의 구조화 출력 기능을 사용하고, 로컬 schema 검증과 파싱 실패 시 재시도 또는 모델 전환을 함께 구성해야 한다.&lt;/p&gt;

&lt;h2&gt;
  
  
  최종 결론
&lt;/h2&gt;

&lt;p&gt;이번 테스트의 핵심은 어느 한 모델을 단순 승자로 선언하는 것이 아니다. 프로덕션에서는 &lt;strong&gt;핵심적으로 맞는 답을 생성하는 능력&lt;/strong&gt;과 &lt;strong&gt;요구한 형식과 모든 하위 항목을 완전하게 납품하는 능력&lt;/strong&gt;을 분리해 검증해야 한다.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Claude Opus 5와 GPT-5.6-SOL은 10개 지능 과제에서 모두 핵심 답변 정확도 10/10을 기록했다. GPT-5.6-SOL은 모든 하위 요구 사항에서 10/10, 엄격한 JSON 최초 제출에서 1/1을 기록했다. Opus 5는 하위 요구 사항 완료에서 9/10, 엄격한 JSON 최초 제출에서 0/1이었으며 두 번의 추가 재시도에서도 형식 요구를 충족하지 못했다.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Opus 5의 차이는 핵심 추론 실패가 아니었다. 고난도 확률 문제에서는 정답 &lt;code&gt;12.6547&lt;/code&gt;을 계산했지만 &lt;code&gt;max_tokens=3200&lt;/code&gt; 경계에서 &lt;code&gt;finish_reason=length&lt;/code&gt;로 종료돼 마지막 설명이 빠졌다. JSON 과제에서도 데이터는 정확했지만 출력 외피가 요구 형식과 달랐다.&lt;/p&gt;

&lt;p&gt;따라서 기준 답안이나 숨은 테스트를 운영할 수 있는 업무라면 두 모델 모두 후보가 될 수 있다. 반면 하위 시스템이 모델의 JSON을 직접 소비한다면 다음 요소는 선택 사항이 아니라 필수 구성 요소로 봐야 한다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;finish_reason&lt;/code&gt; 검사&lt;/li&gt;
&lt;li&gt;구조화 출력 schema 검증&lt;/li&gt;
&lt;li&gt;코드의 실제 실행 및 숨은 테스트&lt;/li&gt;
&lt;li&gt;출력 잘림 감지&lt;/li&gt;
&lt;li&gt;형식 위반 시 재시도&lt;/li&gt;
&lt;li&gt;필요할 때의 모델 전환&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;그리고 네트워크 지연 시간은 지능 점수와 분리해야 한다. 이번 테스트에는 속도 승자가 없으며, 확인된 차이는 핵심 정확도가 아니라 완전한 과제 납품과 구조화 출력 준수에 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ko__final_cta&amp;amp;utm_term=ai+model+accuracy+benchmark" rel="noopener noreferrer"&gt;Crazyrouter 계정을 만들고 Opus 5 / GPT-5.6-SOL을 직접 테스트하기&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Claude Opus 5 против GPT-5.6-SOL: проверка на 10 задачах — по точности основных ответов ничья</title>
      <dc:creator>Jenny Met</dc:creator>
      <pubDate>Thu, 30 Jul 2026 00:25:29 +0000</pubDate>
      <link>https://dev.to/xujfcn/claude-opus-5-protiv-gpt-56-sol-provierka-na-10-zadachakh-po-tochnosti-osnovnykh-otvietov-nichia-4ag4</link>
      <guid>https://dev.to/xujfcn/claude-opus-5-protiv-gpt-56-sol-provierka-na-10-zadachakh-po-tochnosti-osnovnykh-otvietov-nichia-4ag4</guid>
      <description>&lt;h1&gt;
  
  
  Claude Opus 5 против GPT-5.6-SOL: проверка на 10 задачах — по точности основных ответов ничья
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzr6k05uzocp4aig7k3ke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzr6k05uzocp4aig7k3ke.png" alt="Сравнение точности Claude Opus 5 и GPT-5.6-SOL" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Что именно означает «модель умнее» — быстрее отвечает, правильно решает задачу или строго соблюдает формат?&lt;/p&gt;

&lt;p&gt;В этом сравнении скорость намеренно не учитывается. Вместо нее оцениваются критерии, которые можно независимо проверить: правильность математических результатов, полнота физической модели, прохождение локальных тестов кода, распознавание ошибочных предпосылок и выполнение всех требований задания.&lt;/p&gt;

&lt;p&gt;Обе модели получили одинаковые условия через один OpenAI-compatible endpoint Crazyrouter. Основной набор состоял из 10 задач; строгое соблюдение JSON проверялось отдельно.&lt;/p&gt;

&lt;p&gt;Результаты:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;точность основных ответов: Claude Opus 5 — &lt;strong&gt;10/10&lt;/strong&gt;, GPT-5.6-SOL — &lt;strong&gt;10/10&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;полное выполнение всех подпунктов: Claude Opus 5 — &lt;strong&gt;9/10&lt;/strong&gt;, GPT-5.6-SOL — &lt;strong&gt;10/10&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;скрытые тесты двух задач на Python: обе модели — &lt;strong&gt;2/2&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;строгий JSON с первой попытки: Claude Opus 5 — &lt;strong&gt;0/1&lt;/strong&gt;, GPT-5.6-SOL — &lt;strong&gt;1/1&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;в двух дополнительных попытках Opus по-прежнему добавлял к JSON посторонний текст или оформление.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Итог нельзя свести к одному общему баллу: по правильности основных рассуждений модели выступили одинаково, но по полноте и формату ответа — по-разному.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ru__hero_cta&amp;amp;utm_term=claude+opus+5+gpt+5.6+sol" rel="noopener noreferrer"&gt;Создать API Key и повторить тестирование на собственных задачах&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Краткий ответ
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fprpz30uvutmy1fb344uu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fprpz30uvutmy1fb344uu.png" alt="Итоговые результаты Claude Opus 5 и GPT-5.6-SOL" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Вопрос&lt;/th&gt;
&lt;th&gt;Результат теста&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Какая модель точнее решила основные задачи?&lt;/td&gt;
&lt;td&gt;Ничья: обе модели получили 10/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Какая модель выполнила больше заданий целиком?&lt;/td&gt;
&lt;td&gt;GPT-5.6-SOL — 10/10; Opus 5 — 9/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Какая модель надежнее генерирует код?&lt;/td&gt;
&lt;td&gt;В этом наборе ничья: обе прошли скрытые тесты двух алгоритмических задач, то есть 2/2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ошибся ли Opus в сложной задаче по теории вероятностей?&lt;/td&gt;
&lt;td&gt;Нет. Основной ответ правильный, но вывод был оборван при &lt;code&gt;max_tokens=3200&lt;/code&gt;, поэтому последнее требуемое объяснение отсутствовало&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Какая модель точнее соблюдает строгий JSON?&lt;/td&gt;
&lt;td&gt;В этом тесте GPT-5.6-SOL: 1/1 с первой попытки против 0/1 у Opus; две дополнительные попытки Opus также не соответствовали формату&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Доказывает ли это, что GPT в целом умнее?&lt;/td&gt;
&lt;td&gt;Нет. Правильность рассуждений, полноту ответа и соблюдение формата следует оценивать раздельно&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Если приоритет — проверяемая правильность математики, физики и алгоритмов, этот набор не выявил преимущества одной модели. Если ответ должен без дополнительной обработки разбираться как JSON или содержать каждый обязательный подпункт, GPT-5.6-SOL в данном тесте показал более стабильную доставку результата.&lt;/p&gt;

&lt;h2&gt;
  
  
  Почему задержка сети не входит в оценку интеллекта
&lt;/h2&gt;

&lt;p&gt;Полное время ответа API зависит не только от самой модели. На него влияют:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;сетевой маршрут от шлюза до вышестоящего сервиса;&lt;/li&gt;
&lt;li&gt;текущая нагрузка на канал и ограничения учетной записи;&lt;/li&gt;
&lt;li&gt;попадание в кеш;&lt;/li&gt;
&lt;li&gt;выбор конкретного обслуживающего экземпляра;&lt;/li&gt;
&lt;li&gt;способ учета или сокрытия reasoning token вышестоящим сервисом.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Разница в несколько секунд в одиночном запросе прежде всего характеризует текущую инфраструктуру и маршрутизацию. Она не доказывает более высокую точность рассуждений.&lt;/p&gt;

&lt;p&gt;Чтобы содержательно сравнивать задержку, потребовалось бы зафиксировать вышестоящий сервис, выполнить достаточное число повторов и опубликовать распределения результатов с доверительными интервалами. Без этого задержка пригодна для эксплуатационного мониторинга, но не для оценки интеллекта модели.&lt;/p&gt;

&lt;p&gt;Поэтому время ответа полностью исключено из итогового счета, и победитель по скорости здесь не определяется. Список доступных моделей можно проверить на странице &lt;a href="https://crazyrouter.com/models?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ru__models" rel="noopener noreferrer"&gt;моделей Crazyrouter&lt;/a&gt;, а планирование затрат следует проводить отдельно по странице &lt;a href="https://crazyrouter.com/pricing?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ru__pricing" rel="noopener noreferrer"&gt;тарифов Crazyrouter&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Среда и методика проверки
&lt;/h2&gt;

&lt;p&gt;Перед запуском использовался список моделей, чтобы убедиться в доступности точных идентификаторов:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET https://cn.crazyrouter.com/v1/models

claude-opus-5
gpt-5.6-sol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Все основные запросы отправлялись по одному пути:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://cn.crazyrouter.com/v1/chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Внутри каждого тестового набора обе модели получали одинаковые:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;system prompt;&lt;/li&gt;
&lt;li&gt;user prompt;&lt;/li&gt;
&lt;li&gt;значение &lt;code&gt;temperature&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;значение &lt;code&gt;max_tokens&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Внешние инструменты не подключались. Успешный HTTP-ответ сам по себе не считался доказательством прохождения задачи.&lt;/p&gt;

&lt;h3&gt;
  
  
  Три независимых уровня оценки
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Точность основного ответа&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Проверялись ключевые числа, выводы, состояние математической модели и поведение алгоритма.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Полное выполнение задания&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Проверялось наличие всех подпунктов, которые были явно перечислены в условии.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Машинная проверяемость&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Код запускался локально на скрытых тестах, а строгий JSON передавался стандартному анализатору.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Такое разделение принципиально важно. Правильное число не гарантирует выполнения всего задания, а верные данные внутри ответа не гарантируют, что ответ соответствует требуемому формату.&lt;/p&gt;

&lt;p&gt;После автоматической проверки проводилась ручная перепроверка. Иначе различия в записи LaTeX, регистре, точной дроби и округленном десятичном значении могли бы дать ложные отрицательные результаты. Например, GPT-5.6-SOL в вероятностной задаче не повторил эталонную дробь буквально, но привел эквивалентную формулу и правильное десятичное значение. Opus в физической задаче записал &lt;code&gt;0.302 m&lt;/code&gt; как &lt;code&gt;0.30 m&lt;/code&gt; с двумя значащими цифрами — это также не является ошибкой.&lt;/p&gt;

&lt;h2&gt;
  
  
  Результаты 10 задач
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Задача&lt;/th&gt;
&lt;th&gt;Проверяемый результат&lt;/th&gt;
&lt;th&gt;Claude Opus 5&lt;/th&gt;
&lt;th&gt;GPT-5.6-SOL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Точная цепь Маркова&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;E[τ]=5&lt;/code&gt;, &lt;code&gt;E[τ²]=43&lt;/code&gt;, &lt;code&gt;Var(τ)=18&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Осциллятор с двумя степенями свободы&lt;/td&gt;
&lt;td&gt;Две собственные частоты, две амплитуды и две фазы&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Поиск с ограничениями&lt;/td&gt;
&lt;td&gt;Единственный порядок &lt;code&gt;A,C,E,B,D&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Исправление применения неравенства Кантелли&lt;/td&gt;
&lt;td&gt;Вероятность не идентифицируется, верхняя граница равна &lt;code&gt;0.2&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Проверка Python-кода поиска циклов&lt;/td&gt;
&lt;td&gt;Ошибка, контрпример на DAG и минимальное исправление&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Планирование эксперимента&lt;/td&gt;
&lt;td&gt;Парное сравнение на одинаковых задачах, контроль сложности и доверительный интервал&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ожидание шаблона &lt;code&gt;HHTH&lt;/code&gt; для смещенной монеты&lt;/td&gt;
&lt;td&gt;Математическое ожидание около &lt;code&gt;12.6547&lt;/code&gt; и правильные переходы состояний&lt;/td&gt;
&lt;td&gt;Основной ответ правильный, последнее объяснение отсутствует из-за обрыва&lt;/td&gt;
&lt;td&gt;Правильно и полностью&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Алгоритм агрегирования журналов&lt;/td&gt;
&lt;td&gt;Временное окно, события отказа, доля попаданий в кеш и пользователи с максимальными затратами&lt;/td&gt;
&lt;td&gt;Скрытые тесты пройдены&lt;/td&gt;
&lt;td&gt;Скрытые тесты пройдены&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Неупругое столкновение и пружина&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;v1≈6.10&lt;/code&gt;, &lt;code&gt;v2≈2.44&lt;/code&gt;, &lt;code&gt;x≈0.302&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;td&gt;Правильно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Алгоритм стабильной маршрутизации&lt;/td&gt;
&lt;td&gt;cost, latency, reliability и лексикографическое правило&lt;/td&gt;
&lt;td&gt;Скрытые тесты пройдены&lt;/td&gt;
&lt;td&gt;Скрытые тесты пройдены&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Сводный результат основного набора:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;основные ответы — &lt;strong&gt;10/10 у обеих моделей&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;полное выполнение всех подпунктов — &lt;strong&gt;9/10 у Opus 5 и 10/10 у GPT-5.6-SOL&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;скрытые тесты кода — &lt;strong&gt;2/2 у обеих моделей&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Самая сложная задача по теории вероятностей
&lt;/h2&gt;

&lt;p&gt;В задаче требовалось найти ожидаемое число бросков до появления шаблона &lt;code&gt;HHTH&lt;/code&gt; для смещенной монеты:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;P(H)=0.62
P(T)=0.38
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Состояния нужно было построить по принципу самого длинного префикса шаблона, совпадающего с суффиксом уже полученной последовательности. Кроме вычислений, условие требовало объяснить два потенциально неочевидных момента:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;почему после состояния &lt;code&gt;HH&lt;/code&gt; и очередного &lt;code&gt;H&lt;/code&gt; процесс остается в &lt;code&gt;HH&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;почему математическое ожидание нельзя просто записать как &lt;code&gt;1/P(HHTH)&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Обе модели получили правильный основной результат:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[N] ≈ 12.6547
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GPT-5.6-SOL завершил весь вывод и учел перекрытия шаблона:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;E[N] = 1 / P(HHTH) + 1 / P(H)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Opus 5 также правильно определил состояния, составил уравнения и привел точную дробь вместе с десятичным результатом. Однако ответ завершился с:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;finish_reason=length
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;При границе:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;max_tokens=3200
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;вывод оборвался после дополнительных математических ожиданий для состояний. Последнее требуемое объяснение — почему нельзя использовать только обратную вероятность шаблона — в ответ не попало.&lt;/p&gt;

&lt;p&gt;Это различие напрямую показывает, зачем разделять два критерия:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Правильное итоговое значение засчитывается как правильность основного ответа. Отсутствие обязательного объяснения означает, что задача выполнена не полностью.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Методологически это тот же риск, который рассматривался в &lt;a href="https://crazyrouter.com/zh/blog/claude-fable-5-vs-gpt-55-max-tokens-animation-test-2026" rel="noopener noreferrer"&gt;повторном тесте обрыва по max_tokens&lt;/a&gt;: вместе с содержимым ответа необходимо сохранять &lt;code&gt;finish_reason&lt;/code&gt; и заданный бюджет вывода. Частично правильный ответ нельзя автоматически считать полной доставкой результата.&lt;/p&gt;

&lt;h2&gt;
  
  
  Проверка исполняемого кода
&lt;/h2&gt;

&lt;p&gt;Качество программного решения нельзя надежно оценить по длине ответа, количеству комментариев или внешней аккуратности реализации. Поэтому сгенерированный код сохранялся в файлы &lt;code&gt;.py&lt;/code&gt; и запускался локально в изолированном режиме на одинаковом наборе скрытых тестов.&lt;/p&gt;

&lt;h3&gt;
  
  
  Агрегатор журналов
&lt;/h3&gt;

&lt;p&gt;Функция должна была корректно обрабатывать:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;полуоткрытое временное окно;&lt;/li&gt;
&lt;li&gt;разные правила учета успешных и неуспешных запросов;&lt;/li&gt;
&lt;li&gt;отсутствующих пользователей и модели;&lt;/li&gt;
&lt;li&gt;cache hit rate;&lt;/li&gt;
&lt;li&gt;лексикографическую сортировку пользователей при одинаковом cost;&lt;/li&gt;
&lt;li&gt;запрет на изменение входных объектов.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Обе реализации прошли скрытые тесты.&lt;/p&gt;

&lt;h3&gt;
  
  
  Стабильная маршрутизация с ограничением надежности
&lt;/h3&gt;

&lt;p&gt;Алгоритм поиска пути должен был последовательно применять следующие критерии:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;минимальная общая стоимость;&lt;/li&gt;
&lt;li&gt;при равной стоимости — минимальная задержка;&lt;/li&gt;
&lt;li&gt;при равной стоимости и задержке — максимальная надежность;&lt;/li&gt;
&lt;li&gt;при полном равенстве — лексикографический порядок пути.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Дополнительно проверялись:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;banned nodes;&lt;/li&gt;
&lt;li&gt;максимальное число hops;&lt;/li&gt;
&lt;li&gt;минимально допустимая reliability;&lt;/li&gt;
&lt;li&gt;некорректные ребра.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Обе модели прошли и этот набор. Таким образом, результат по исполняемому коду — &lt;strong&gt;2/2 у Claude Opus 5 и 2/2 у GPT-5.6-SOL&lt;/strong&gt;. Оснований объявлять победителя по этим двум задачам нет.&lt;/p&gt;

&lt;p&gt;Другой набор сложных задач по физике и алгоритмам приведен в материале &lt;a href="https://crazyrouter.com/zh/blog/gpt-56-sol-vs-gpt-55-round6-hard-physics-code-2026" rel="noopener noreferrer"&gt;GPT-5.6-SOL vs GPT-5.5: тест сложной физики и кода&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Строгий JSON: проверка формата, а не математических способностей
&lt;/h2&gt;

&lt;p&gt;В отдельном задании нужно было представить данные об инциденте в виде одного объекта. Требование формулировалось однозначно:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;exactly one JSON object and no Markdown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Обе модели правильно вычислили:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;долю отказов;&lt;/li&gt;
&lt;li&gt;принадлежность отказов к каналам;&lt;/li&gt;
&lt;li&gt;число запросов, не восстановленных после повторной попытки.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Различие возникло только на уровне выходного формата:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPT-5.6-SOL с первой попытки вернул только JSON, который можно было сразу передать в &lt;code&gt;json.loads&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Opus 5 с первой попытки добавил ограждение блока кода и раздел Verification;&lt;/li&gt;
&lt;li&gt;в первой дополнительной попытке Opus выдал компактный JSON, но затем снова добавил Verification;&lt;/li&gt;
&lt;li&gt;во второй дополнительной попытке Opus опять добавил ограждение блока кода и пояснение.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Итог строгой проверки с первой попытки:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Opus 5 — &lt;strong&gt;0/1&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;GPT-5.6-SOL — &lt;strong&gt;1/1&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Две дополнительные попытки Opus также остались несоответствующими строгому формату. При этом сами данные и значения полей были правильными.&lt;/p&gt;

&lt;p&gt;Поэтому корректная классификация такова: &lt;strong&gt;данные верны, формат не соблюден&lt;/strong&gt;. Это нарушение инструкции и контракта ответа, а не ошибка вычисления.&lt;/p&gt;

&lt;h3&gt;
  
  
  Минимальная локальная проверка
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;REQUIRED_KEYS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;window&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;total_requests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed_requests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failure_rate_pct&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;provider_owned_failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;customer_owned_failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;recovered_by_retry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;unrecovered_failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;root_cause&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse_incident_json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;REQUIRED_KEYS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;unexpected schema or key order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed_requests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;84&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed request count mismatch&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;payload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Этот код проверяет три независимых свойства:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ответ действительно разбирается как JSON;&lt;/li&gt;
&lt;li&gt;схема и порядок ключей соответствуют ожидаемому контракту;&lt;/li&gt;
&lt;li&gt;одно из критических значений совпадает с эталоном.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Один system prompt не гарантирует структурированный вывод. В рабочей системе безопаснее использовать поддерживаемые поставщиком параметры структурированного ответа, выполнять локальную проверку schema и предусматривать повторный запрос либо переключение модели после ошибки разбора.&lt;/p&gt;

&lt;h2&gt;
  
  
  Как воспроизвести сравнение через один API
&lt;/h2&gt;

&lt;p&gt;Ниже приведен минимальный исполняемый пример для OpenAI-compatible chat completions endpoint. К самому API endpoint UTM-параметры не добавляются.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://cn.crazyrouter.com/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CRAZYROUTER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/chat/completions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Answer accurately and follow every requested constraint.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;raise_for_status&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-5.6-sol&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your benchmark prompt here&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;finish_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Для воспроизводимого теста недостаточно сохранить только видимый текст ответа. На каждом запуске также следует записывать:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;точный model ID;&lt;/li&gt;
&lt;li&gt;response ID;&lt;/li&gt;
&lt;li&gt;returned model;&lt;/li&gt;
&lt;li&gt;исходный prompt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;temperature&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;max_tokens&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;finish_reason&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;необработанное содержимое ответа;&lt;/li&gt;
&lt;li&gt;результат локальной проверки;&lt;/li&gt;
&lt;li&gt;версию тестового набора.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Текущую доступность моделей можно проверить в &lt;a href="https://crazyrouter.com/models?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ru__body_models" rel="noopener noreferrer"&gt;списке моделей Crazyrouter&lt;/a&gt;, после чего запустить небольшой регрессионный набор на собственных рабочих запросах.&lt;/p&gt;

&lt;h2&gt;
  
  
  Рекомендации для рабочих систем
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Где обе модели остаются подходящими кандидатами
&lt;/h3&gt;

&lt;p&gt;Обе модели имеет смысл тестировать в сценариях, где:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;математические или физические задачи имеют проверяемые эталонные ответы;&lt;/li&gt;
&lt;li&gt;Python-код можно запускать на модульных и скрытых тестах;&lt;/li&gt;
&lt;li&gt;требуется обнаруживать ошибочные предпосылки или недостаточно обоснованные статистические выводы;&lt;/li&gt;
&lt;li&gt;успешность задачи определяется локальным валидатором, а не субъективной оценкой текста.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Когда по результатам этого теста разумно сначала проверить GPT-5.6-SOL
&lt;/h3&gt;

&lt;p&gt;GPT-5.6-SOL в этом наборе показал более полную доставку результата, если:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;каждый подпункт должен быть выполнен в одном ответе;&lt;/li&gt;
&lt;li&gt;тело ответа обязано содержать только JSON;&lt;/li&gt;
&lt;li&gt;нежелательно извлекать структурированные данные из пояснений или Markdown;&lt;/li&gt;
&lt;li&gt;нарушение формата должно быть редким уже на первом запросе.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Это вывод только по текущему набору: полное выполнение составило &lt;strong&gt;10/10&lt;/strong&gt;, а строгий JSON с первой попытки — &lt;strong&gt;1/1&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Какие защитные меры нужны при работе с Opus 5
&lt;/h3&gt;

&lt;p&gt;Для Claude Opus 5 особенно важно:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;выделять достаточный &lt;code&gt;max_tokens&lt;/code&gt; для длинных выводов;&lt;/li&gt;
&lt;li&gt;всегда проверять &lt;code&gt;finish_reason&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;разбирать JSON до передачи результата последующим компонентам;&lt;/li&gt;
&lt;li&gt;отклонять ответы с дополнительным Markdown или пояснениями;&lt;/li&gt;
&lt;li&gt;предусматривать повторную генерацию либо переключение модели;&lt;/li&gt;
&lt;li&gt;отдельно проверять наличие каждого обязательного подпункта.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Эти меры не означают, что Opus хуже рассуждает. В основном наборе он правильно решил все 10 задач, а обе программы прошли скрытые тесты. Зафиксированное различие относится прежде всего к полной упаковке результата в окончательный ответ.&lt;/p&gt;

&lt;p&gt;Дополнительное сравнение поведения моделей Claude доступно в материале &lt;a href="https://crazyrouter.com/ru/blog/claude-opus-5-vs-claude-fable-5-api-benchmark-2026-ru" rel="noopener noreferrer"&gt;Claude Opus 5 против Claude Fable 5: тест реального API&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Claude Opus 5 или GPT-5.6-SOL — какая модель умнее?
&lt;/h3&gt;

&lt;p&gt;По этому набору нельзя обоснованно назвать одну модель в целом более умной. На 10 объективно проверяемых задачах обе получили &lt;strong&gt;10/10 по правильности основных ответов&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Почему полное выполнение заданий не закончилось ничьей?
&lt;/h3&gt;

&lt;p&gt;Ответ Opus на сложную задачу по вероятностям был оборван при &lt;code&gt;max_tokens=3200&lt;/code&gt; и завершился с &lt;code&gt;finish_reason=length&lt;/code&gt;. Число &lt;code&gt;12.6547&lt;/code&gt; и уравнения были правильными, но последнее требуемое объяснение отсутствовало. Поэтому Opus получил 9/10 по полной доставке, а GPT-5.6-SOL — 10/10.&lt;/p&gt;

&lt;h3&gt;
  
  
  Почему обрыв ответа не считается ошибкой основного рассуждения?
&lt;/h3&gt;

&lt;p&gt;Потому что основной математический результат был получен правильно. Однако задача содержала дополнительное требование, которое не было выполнено. Правильность рассуждений и полнота ответа — разные показатели.&lt;/p&gt;

&lt;h3&gt;
  
  
  Следует ли считать нарушение строгого JSON ошибкой интеллекта?
&lt;/h3&gt;

&lt;p&gt;Не как математическую ошибку. Opus правильно вычислил поля и значения, но нарушил требование к внешнему формату. Это следует учитывать как ошибку соблюдения инструкции и машинного контракта.&lt;/p&gt;

&lt;h3&gt;
  
  
  Что именно произошло при повторных попытках Opus с JSON?
&lt;/h3&gt;

&lt;p&gt;С первой попытки Opus добавил ограждение блока кода и Verification. В первой дополнительной попытке после компактного JSON снова появился Verification. Во второй дополнительной попытке модель вновь добавила ограждение блока кода и пояснение. Таким образом, все три ответа не соответствовали требованию «ровно один JSON-объект без Markdown».&lt;/p&gt;

&lt;h3&gt;
  
  
  Как оценивались две задачи на программирование?
&lt;/h3&gt;

&lt;p&gt;Код сохранялся в файлы Python и запускался на одинаковых скрытых тестах. Проверялись граничные условия, правила сортировки, некорректные входные данные и неизменность входных объектов. Обе модели прошли обе задачи — &lt;strong&gt;2/2&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Почему в сравнении нет победителя по скорости?
&lt;/h3&gt;

&lt;p&gt;Полное время API-запроса зависит от сетевого маршрута, кеша, нагрузки канала, ограничений учетной записи и выбранного обслуживающего экземпляра. Без фиксированного вышестоящего сервиса, большого числа повторов и доверительных интервалов задержка не является показателем интеллекта. Поэтому она исключена из оценки.&lt;/p&gt;

&lt;h3&gt;
  
  
  Достаточно ли 10 задач для долгосрочного выбора модели?
&lt;/h3&gt;

&lt;p&gt;Нет. Это небольшой воспроизводимый срез возможностей, а не окончательный рейтинг. Перед внедрением следует использовать собственный набор рабочих задач и раздельно считать точность основных ответов, полноту выполнения, прохождение тестов кода и частоту нарушений формата.&lt;/p&gt;

&lt;h3&gt;
  
  
  Как начать собственное сравнение?
&lt;/h3&gt;

&lt;p&gt;Выберите 10–30 реальных рабочих запросов и заранее задайте для каждого машинно проверяемые критерии. Затем отправляйте обеим моделям одинаковые входные данные с одинаковыми параметрами и сохраняйте необработанные ответы вместе с &lt;code&gt;finish_reason&lt;/code&gt;. Критерии необходимо определить до просмотра результатов.&lt;/p&gt;

&lt;h3&gt;
  
  
  Что важнее для backend-системы: точность или формат?
&lt;/h3&gt;

&lt;p&gt;Оба свойства важны, но проверять их нужно отдельно. Правильный ответ в неразбираемом формате может быть бесполезен для конвейера. И наоборот, синтаксически корректный JSON не гарантирует правильность значений. Надежная система проверяет и содержание, и контракт ответа.&lt;/p&gt;

&lt;h2&gt;
  
  
  Итоговый вывод
&lt;/h2&gt;

&lt;p&gt;Главный результат этого сравнения — не безусловная победа одной модели, а четкое разделение двух аспектов качества:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Claude Opus 5 и GPT-5.6-SOL получили по 10/10 за правильность основных ответов. GPT-5.6-SOL полнее выполнил все подпункты — 10/10 против 9/10 — и с первой попытки соблюл строгий JSON: 1/1 против 0/1. Opus сохранил правильность рассуждений, но потребовал более строгого контроля бюджета вывода и формата.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Если задачу можно проверять по эталонному ответу или скрытым тестам, обе модели заслуживают включения в список кандидатов. Если последующие компоненты напрямую потребляют JSON, локальная проверка, контроль &lt;code&gt;finish_reason&lt;/code&gt;, повторные запросы и переключение модели должны рассматриваться как обязательная часть архитектуры.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crazyrouter.com/register?utm_source=crazyrouter_blog&amp;amp;utm_medium=article&amp;amp;utm_campaign=opus5_gpt56sol_accuracy_20260730&amp;amp;utm_content=claude-opus-5-vs-gpt-5-6-sol-intelligence-accuracy-benchmark-2026-ru__final_cta&amp;amp;utm_term=ai+model+accuracy+benchmark" rel="noopener noreferrer"&gt;Создать учетную запись Crazyrouter и запустить собственное сравнение Opus 5 и GPT-5.6-SOL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>llm</category>
      <category>benchmark</category>
    </item>
  </channel>
</rss>
