logoalt Hacker News

rbehrends • yesterday at 10:45 PM • 0 replies • view on HN

> Let's say I use the $200/month Claude (I don't, I use a cheaper plan, but stay with me). If I switch to a Opus 4.5 equivalent local LLM, and it makes even a single production issue that 5.5 wouldn't, that mistake will cost thousands of dollars.

There are a few points I'd like to make here.

First, the frontier is jagged. There are errors that Qwen3.8 Flash Next make that Opus 5.5 doesn't make, but the reverese is also true: Opus 5.5 makes errors that Qwen3.8 Flash Next doesn't make. The latter will likely be fewer, but they won't be zero. Outside of really large differences in capabilities, there is no total ordering among models, only a partial one.

As an aside, do you always run Opus 5.5 at max reasoning in order to minimize errors, too? I suggest most people don't, because they have their own intuition for good enough vs. cost.

Second, Opus 5.5's strength are autonomous tasks. For interactive, HITL work, it's not a particularly great choice. This includes its preferring complex Bash commands over tool use and inscrutable Python scripts, but also often not even explaining what it does. It is not a great choice to use as a virtual pair programmer, because following along what it does and maintaining a mental model is harder than with some other models (though probably because of benchmarks that prioritize autonomous work, these and related problems have infected other models, too). You can address that to an extent with CLAUDE.md instructions, but even that has imperfect results.

Finally, if you rely on a model not to make mistakes in order to ensure correctness, your software development process is fundamentally broken. You need to assume that any model will make at least some errors and need a development process that accounts for that. The problem here is not necessarily which model creates fewer errors, but which model creates code where errors are easier to discover. Ironically, more powerful models may create more complex code, making that harder.

You can see an analogous effect with reasoning effort in FrontierBench 2.0 [1]:

"FrontierCode is one of the few coding benchmarks where writing additional (correct) code doesn’t necessarily raise a model’s score. This leads to an interesting phenomenon: models can score lower at higher reasoning effort. Because this non-monotonicity often matches user sentiment but is hard to see in other evals, we consider it a useful feature of the benchmark."

A example:

"This task comes from PostHog’s open-source Android SDK, which apps use to record analytics events. When the device is offline, the SDK writes events to disk and sends them the next time the app starts. The task is to fix a startup bug in which two modules send data at the same time: the live queue sends new events while a legacy integration, PostHogSendCachedEventsIntegration.kt, sends the cached ones. The two race, and events reach the server out of order.

"At low effort, GPT-6 Astra moves cache loading into PostHogQueue.kt, removes the sending logic from the legacy integration, and leaves the SDK’s public API untouched, which produces a passing solution.

"At max effort, the model often deletes PostHogSendCachedEventsIntegration.kt outright and spreads its responsibilities across other legacy files. This also fixes the race and passes most of the hidden behavior tests. But the deleted class is part of the SDK’s public posthog.api surface, so removing it introduces an unnecessary breaking change for every app that references it. Scope blockers, which deterministically check that the model hasn’t modified certain files, catch this change, and the agent fails the task."

[1] https://cognition.com/blog/frontier-code-2.0