Excellent read. I use the same hybrid approach for a lot of security engineering work and it’s working well after initial calibrations, for example for our own harness we rebuilt auto mode exactly like this to judge tool calls and intent.
I had the same idea, I extended opencode-warden to use a local decision model to validate tool inputs and outputs. It seems to work... ok? d1 is fast enough to run locally on an old 1080 GTX. Not sure if I can recommend relying on it.
If you use Qwen3.8 27B to manage, to orchestrate, do do shallow research, and then make it ask claude you will notice that Qwen can get out of Haiku, Sonnet and Opus almost as good answers... I was researching how good the model asnswers where, I can't get to work with anything but Fable, but Qwen can get good work from any of them.
My theory is that if you make Qwen understand you, Qwen can elaborate as much as needed to get any of those models get good results, because it's filling in details.
So using Qwen to direct claude also get's you amazing results way way cheaper...
> My theory is that if you make Qwen understand you, Qwen can elaborate as much as needed to get any of those models get good results, because it's filling in details.
How is this different than just telling the model you’re using to fill in the gaps itself?
If you’re not manually reviewing the intermediate hop, how does that add to the “understanding you”?
there is no difference... each case may be different, I have a local qwen gpu setup... and is fast... but not as fast as claude.
Fable is amazing and if it cost the same as my qwen setup I'll be running fable and never had qwen in first place.
But Fable is crazy expensive, Qwen is not as fast but cheaper... Haiku is fucking dumb IN MY HANDS... BUT my local qwen is quick enough to be briefed, get the idea and delegate.
I work with Fable mostly delegating to opus/sonnet and it's cheaper than just fable, I can't stand working with opus or the other models.
Why Qwen directing the others?
For the things claude refuse, Qwen can make very specific questions and still get an answer without triggering the thing.
I think that his idea is that a lot of preparation / setup work is boiler plate / brain dead stuff that can be done by a shallower model.
It's like, find the relevant scientific papers by using Google search and the scientific paper MCPs, summarizing stuff, etc. Then the big model can come in and actually think on the artifacts
I do the opposite of this, use Qwen3.8-27B as subagents, Opus 5.5 as orchestrator and planner, never implementer, and it cuts my token usage significantly. So it is using Claude to direct Qwen. Never thought of the other way around, will give this a try soon as possible.
Custom MCP with a variety of functions, I have different Qwen profiles with a variety of subagent numbers and cache pools, my default is 192k pool with 64k initial context that can grow 32k at a time up to 128k, allowing 3x64k, 2x96k or 1x128k and 1x64k subagents. Qwen uses Pi harness. Model I use specifically is ukisai/Swift-1.5-Qwen3.8-27B-GSQ-RCO-GGUF
Why not using a proxy in claudecode to forward all the claude-* model to anthropic as a standard proxy forwarder and route other models to other providers (openrouter, vllm, ..)?
This way Claude's model can get all the context from other models as all in the same harness.
To use other models than claude-* you can use agents files.
Ps: as you won't use your proxy to distill or alter claudecode requests to anthropic you should be compliant with anthropic rules.
So I use Google Gemini to plan or review; otherwise same loop so brain dumping how I get Gemini to Qwen/Gemma/Meta's model I forget the codename for; local agent reads the AI Studio log locally via Google Drive where they store the logs by default in a JSON format
So with the gdrive app for my OS it just looks like a local file path. Had the local agent learn to parse it.
I still prompt in AI studio direct as needed; local agents see the log change but cannot push back to Gemini their result.
Few reasons:
AI Studio is available where ever via browser, no VS Code or my usual vim setup to miss. I can switch between projects there as an idea hits and the agent switches up the local repo path and session history.
Also using AI Studio between local agent turns has been my "human in the middle" approach; to have an explicit gap in the process and check each turn.
I only have a 24GB 3090 most models also take longer locally and I never hit the free tier limits with Gemini :D
Though the latest Meta model is twice as fast at 30B for me as other similar size models. 1-2 hour code gen and QA of build errors is now 30-50 minutes to parse latest changes from Gemini and get a successful build. The Meta model is pretty great at "fill in the middle" from a well structured plan.
Overall this loop feels like a normal workday pace. I freelance so I have a lot more say over that.
I just fell Claude "there's an LLM server on this port serving this model, use it as a subagent"
Claude will write some scripts to call the LLM API and use it like any other tool.
I haven't found a pressing need for anything more complex than that. My multi-agent setups tend to be a pile of bespoke scripts per project anyway, an MCP server is only gonna get in the way. But I suppose this is because I self-host the models, if you're using OpenRouter or whatever it may need more complexity than a curl call to an unauthenticated port
you can easily run qwen locally in a pi harness (or similar) and just tell claude code to delegate all implementation work to it. claude will even setup the harness with the local model
My goal was/is to have a local model as a "stable" part of the system, or at least a part of it that you have full control over, and have it reach out to the cloud for some Opus. In practice, to get results, I operate as you say.
At this point if I could do anything with zero effort or time, I would get Opus 5.5 to make a grand scheme, handoff to the local model, and give it ability to reach out to Opus again.
I do something like this by using old rule-based bot tech as the first layer you hit, and if it hits any situation it does not understand deterministically, it shells out for help to an external "smarter" agent.
That way you can do old school intent matching and rule-based bots that work super well, and only shell out for deeper work.
Smart agent to orchestrate cheaper agents for labour.
Dumber agents to be very explicit about asking smarter agents for requests that require deep information.
This is a thing - the SOTA models really light up the more information you can provide them, and humans are too lazy / incapable of doing that in every prompt.
Does anyone have any evidence that having the most powerful model being the orchestrator, and other sub agents being progressively less powerful, is optimal? Is this just common sense or it has been measured somehow?
For me it could be that this scheme may make the code itself poorly written, verbose or faulty
I think whether it's bottom-up or top-down, the core principle is still that you use cheap models for grunt work and use frontier models for expertise and direction.
In my setup, the orchestrator also drives a lot of the design and planning, and the less capable models get inputs from the more capable models by responding back up the chain. The more capable models also review everything that is produced by the cheaper models.
I've also had systems that invert this and allow cheaper models to call out to more capable models when they need to, but in my observation I found them quite bad at knowing even when to call out and I find wrapping the cheap models a bit more reliable in that problems tend to get caught before they bubble up to the user.
Anthropic has a native solution to this which is that you can use `/advisor` to adjust config to enable using Sonnet but set Opus as an advisor or use Haiku and then set Sonnet or Opus as advisor that the weaker model will automatically call when it thinks something warrants it:
Oh man I’m been playing with little -> big vs big -> little sub-tasking a bunch.
My sense so far is it’s very much about problem domain “taste” and there is no one correct answer (that is token cost efficient).
Does the smartest agent need the full flavor of the context of the problem to make real progress (i.e what’s been tried, how you’ve influenced the approach) or does the smartest agent really need a crisp problem definition and context room to really work.
I suspect that a lot of the fudging around with MCPs and tools can be delegated to smaller agents. Astra doesn't need to look at 300 websearch results or to extract the relevant parts out of a webfetched HTML page
Absolutely no matter whether you generally go big small or small big, you should always be like “ask haiku / Luna to check all X” or “see if there are other ways to Y”
> Oh man I’m been playing with little -> big vs big -> little sub-tasking a bunch.
I too wonder the same...
The real-world provides us many examples of such big -> little, or smart -> not-as smart workflows. For instance, we don't typically ask juniors or mid-level SDEs to design solutions to exceedingly challenging problems for a reason. However there are _some_ areas that those with less experience can tackle that is relatively risk-free if their work is reviewed by a more experienced engineer, which leads me to a conclude that it's task dependent.
This sort of stuff has me believing that decision model controlled/prioritized context is the future of context management beyond the raw AGENTS.md file.
Why give all the context to an agent, when the context can also be curated, updated and made concise automatically for each new problem.
I too feel like context management has a lot of room for improvement, but the problem right now is that dynamic context management will most likely tank your cache hit rate. We need caching that's not just based on prefix-matching for this to make sense.
And as I see it that is impossible with current autoregressive global attention models because each part depends on the one before. Maybe if we can cache the local attention in blocks and only recompute the global parts.
My bandaid fix for this is having a large number of sessions or "agents" and being ok with them being inactive at times, but they maintain their context. This has to be in some kind of system with appropriately sized "departments" to justify that agent's existence, or to justify it splitting into two, or creating sub-agents, etc. Yes, there is a cost when you cold start an agent after a week, but for now I'd rather pull that whole 400k+ context back without layers and layers of /compact. And then hopefully you keep that agent going for long enough to benefit from any cache-hit discounts.
Not really a good analogy, but it feels like having an image you like but every time you view it, it runs it through another loop of jpg compression. Use it when it's most effective, otherwise let it preserve it's details.
I wonder if something like this is the undisclosed new approach from Anthropic that presumably has massive improvements by combining multiple models. Leveraging decision models as much as possible seems logical for extra speed and token efficiency.
I think OpenAI and Anthropic have both been doing similar "routing" approaches for a while. Wasn't OpenAI one of the first to have a small model start responding to you for the first several tokens so that you got an instant response while the big model became available?
Similarly, Grok has been routing to Opus internally for a little while now I think.
i'm so numb to these headlines nowadays... i guess i've been disappointed by how effective these approaches end up being for actual work but i feel like it's easy to produce these headlines with "proof" that doesnt prove anything besides the sandboxed scenario it was run in
Ideally, "system one" intelligence is good both at quick reactions and at knowing when to hold off and wait for "system two." Sure enough, that works with Jev.
I don't usually get excited about the high-level, "whoooa man" marketing-speak, but the parallel is striking.
We've been doing this for a while. Fine tuning the decision model helps a lot too. The problem is you still need a pretty low confidence threshold (e.g 10%), but often times that reduces the work by 70% with 0% quality loss (in our benchmarks)
Can you share the full dataset? I think this can easily be beaten.
I think you should have solved it deterministically. And evaluate suspicious cases after that to new determistic rules. Also you did value false positives the same as false negatives. A customer receiving an outreach for a purchase he didn’t do is certainly worse than if he doesn’t receive one. So the benchmark should rank false positives higher than any number of false negatives (which I think is equal to not decide).
I say this respectfully as I’ve done this before, but I think you lost the plot with this approach.
Not hard to test. I wired a “judge” into my existing Jev setup and… it works. I was able to trim my prompt down to the basics without “engineering” and have my entire test suite pass. Best I could get before was 1 failure, with an extremely brittle prompt. Like, adding a comma where grammatically appropriate broke 10 more tests.
Where is the Jev that can replace 20 Opus sessions asking each other for help in a coordinated way? I want to shift towards a local model that "asks for help" in an effective way, but it still seems a bit out of reach. I mean, you could build your own 27B or 35B or A3B or bumblebee and spend a week or two carefully forming it into something useful, but it feels like that would be too specific and it would be thrown out when something like qwen4 is released. Maybe not, I don't know. Opus still exists as it is, in a "subsidized" form that's hard to step down from.
Found similar results, but the economics of the models involved have changed so quickly that it becomes so task specific on what the right thing to do was.
With an assemblage of models like Jev + Opus or Jev + Qwen, Jev would often do the right thing when deciding to escalate to another model - I was impressed that it would usually make the right call, especially if you gave it good awareness of what the other model capabilities were. "ESCALATE to opus if you need good vision awareness".
When Haiku 5.5 came out though, for my tasks, the cost differences disappeared almost immediately. Haiku was good enough / fast enough for so many things that introducing a decider layer didn't offer huge wins. Jev's "millisecond" level performance was nice but would get dwarfed by other latencies in my chain ( web browsing ), that it didn't make a measurable difference in my tasks.
This made me think... Is anyone using small models to generate candidates and let a more expensive model pick one? I.e. genetic programming on neural networks? Perhaps a decision model could be used for the picking?
Jev is pretty cool for augmenting llms in a lot of ways. We use it in our own agent orchestrator[1] to help route ideas/prompts to running agent sessions. I find when I have a lot of parallel agents running its hard to reason about which agent I should be talking to and Jev makes that call for me.
It's illustrative that there are even errors in how the humans have formulated the task and documented the errors.
They propose:
Valentino → Female Child
Yet this is obviously a boy name, else it would be Valentina. Is this model going to return confidence values? No, they want decisions. This is an inherent problem in AI with reductive logic for these tasks.
Likewise, dates. Is 17/08/22:
- 20170822 (Chinese write the year first, and in speech and chat they will say '17' not '2017'.)
- 20220817 (Everywhere But North America.)
Is 04/06/2009:
- 20090604 (Non-North American)
- 20090406 (American)
Without knowing the cultural context, the location, the document type, the document author, etc, you could be getting it wrong.
It’s an interesting problem. And i have following thoughts to it?
- Are all cases even decidable?
- Shouldn’t one false positive rank higher than a hundred rank negative.
-Shouldnt’t the AI just abstain from decisions to avoid false positives.
- Is it smarter to seperate this in a lot of small sub problems and to define this as a rule set of small yes no decicions, why does this need to be solved agentically?
- You should definitely clean up deterministically first.
I feel like if you really want to solve this problem, you would approach it differently. This seems like a wrong approach and a bad article on top?
> -Shouldnt’t the AI just abstain from decisions to avoid false positives.
Yes, and I think regulation should be quite strong in this regard.
> - Is it smarter to seperate this in a lot of small sub problems and to define this as a rule set of small yes no decicions, why does this need to be solved agentically?
For larger contexts I worry about agentic confabulation, but humans unquestionably look at the gestalt when doing matching. I don't want idiot clankers making enforced decisions because they have misunderstood one field.
> - You should definitely clean up deterministically first.
If you can't do field validation on entry then I'm not sure deterministic rules work better, they may be worse, although easier to reason about.
>Is this model going to return confidence values? No, they want decisions.
The system doesn't return confidence values because that's not what they are designing. The models, however, do and to me it's interesting that Jev's measure of confidence is pretty well calibrated to its correctness.
>Without knowing the cultural context, the location, the document type, the document author, etc, you could be getting it wrong.
And? There's no perfect process, just ones that asymptotically approach correctness at exponentially increasing cost. They own the system and get to decide what works for them.
Exactly, there is no perfect process for such simplistic binary decision making. But we are seeing pipelines for tasks, like document processing, where it is becoming accepted that the machine is right.
Rather than binary classification we should be locating document fragments in a high dimensional feature space, and with all those fragments coming to a confidence bounded guess.
Additionally, when someone submits documents that can't be recognised as valid, the response should not be INVALID, it should be UNDECIDED. In that sense, passing to Opus is great, but passing a tiny fragment of the problem is a bad way to do it.
Yep. It's actually kind of mind blowing how well "reasoning" works at de-biasing and pushing out of global minima, in hindsight, when you see how jagged things get again without.
These are the results of a little performance tuning/permutation testing run against context format and question wording we did. Obviously there is a lot of noise here but I was actually kinda surprised that there was a clear "best way to ask the question" even for relatively low N and low complexity/ambiguity of the task.
(This is a ~30s Ai-driven gif presentation of the results, the full grid shows up about 15s in): https://imgur.com/a/wGFZvGw
These models in particular have some pretty dubiously generalized and diverse training datasets. You can see this for yourself BTW by looking at the datasets SOTA Jev-like models are being trained against and evaluated on. No knock against the teams btw, I just think it's rather demystifying and makes me quite optimistic at how much better these models are going to get over the next few years: https://labs.baseten.co/articles/mammoth-1-and-elephant-1-fr...
96 comments
[ 4.3 ms ] story [ 28.7 ms ] threadHow is this different than just telling the model you’re using to fill in the gaps itself?
If you’re not manually reviewing the intermediate hop, how does that add to the “understanding you”?
Why Qwen directing the others? For the things claude refuse, Qwen can make very specific questions and still get an answer without triggering the thing.
It's like, find the relevant scientific papers by using Google search and the scientific paper MCPs, summarizing stuff, etc. Then the big model can come in and actually think on the artifacts
I ask task x -> big model thinks and delegate to luna heavy dumb work.
Ps: as you won't use your proxy to distill or alter claudecode requests to anthropic you should be compliant with anthropic rules.
Both are, I think, valid options. Depends on the workflow you're looking for.
So with the gdrive app for my OS it just looks like a local file path. Had the local agent learn to parse it.
I still prompt in AI studio direct as needed; local agents see the log change but cannot push back to Gemini their result.
Few reasons:
AI Studio is available where ever via browser, no VS Code or my usual vim setup to miss. I can switch between projects there as an idea hits and the agent switches up the local repo path and session history.
Also using AI Studio between local agent turns has been my "human in the middle" approach; to have an explicit gap in the process and check each turn.
I only have a 24GB 3090 most models also take longer locally and I never hit the free tier limits with Gemini :D
Though the latest Meta model is twice as fast at 30B for me as other similar size models. 1-2 hour code gen and QA of build errors is now 30-50 minutes to parse latest changes from Gemini and get a successful build. The Meta model is pretty great at "fill in the middle" from a well structured plan.
Overall this loop feels like a normal workday pace. I freelance so I have a lot more say over that.
Claude will write some scripts to call the LLM API and use it like any other tool.
I haven't found a pressing need for anything more complex than that. My multi-agent setups tend to be a pile of bespoke scripts per project anyway, an MCP server is only gonna get in the way. But I suppose this is because I self-host the models, if you're using OpenRouter or whatever it may need more complexity than a curl call to an unauthenticated port
https://tysonberry-wogan.com/command-and-control-by-tyson/
At this point if I could do anything with zero effort or time, I would get Opus 5.5 to make a grand scheme, handoff to the local model, and give it ability to reach out to Opus again.
That way you can do old school intent matching and rule-based bots that work super well, and only shell out for deeper work.
Smart agent to orchestrate cheaper agents for labour.
Dumber agents to be very explicit about asking smarter agents for requests that require deep information.
This is a thing - the SOTA models really light up the more information you can provide them, and humans are too lazy / incapable of doing that in every prompt.
Entirely depends on what you are trying to do.
What's the best method to have a 'smart' agent just.. ask itslef?
Asking Claude to make prompts is like a Math teacher stuck working at a cafe about Math problem, the just light up.
They are very good at at it.
GPT 6.1 Sol is surprisingly efficient too, I've been impressed with it.
My orchestration skill setup is https://github.com/beefsack/processed-beef/
Does anyone have any evidence that having the most powerful model being the orchestrator, and other sub agents being progressively less powerful, is optimal? Is this just common sense or it has been measured somehow?
For me it could be that this scheme may make the code itself poorly written, verbose or faulty
In my setup, the orchestrator also drives a lot of the design and planning, and the less capable models get inputs from the more capable models by responding back up the chain. The more capable models also review everything that is produced by the cheaper models.
I've also had systems that invert this and allow cheaper models to call out to more capable models when they need to, but in my observation I found them quite bad at knowing even when to call out and I find wrapping the cheap models a bit more reliable in that problems tend to get caught before they bubble up to the user.
https://code.claude.com/docs/en/advisor
It allegedly will automatically judge when to call the stronger model, not sure how much instructions in prompts or AGENTS.md can steer it.
My sense so far is it’s very much about problem domain “taste” and there is no one correct answer (that is token cost efficient).
Does the smartest agent need the full flavor of the context of the problem to make real progress (i.e what’s been tried, how you’ve influenced the approach) or does the smartest agent really need a crisp problem definition and context room to really work.
I too wonder the same...
The real-world provides us many examples of such big -> little, or smart -> not-as smart workflows. For instance, we don't typically ask juniors or mid-level SDEs to design solutions to exceedingly challenging problems for a reason. However there are _some_ areas that those with less experience can tackle that is relatively risk-free if their work is reviewed by a more experienced engineer, which leads me to a conclude that it's task dependent.
Why give all the context to an agent, when the context can also be curated, updated and made concise automatically for each new problem.
Not really a good analogy, but it feels like having an image you like but every time you view it, it runs it through another loop of jpg compression. Use it when it's most effective, otherwise let it preserve it's details.
wait till they found out about that nanosecond latency “conditional model”
turns out I’ve been an “RLIF” training expert my whole career
GPT-6 Luna is a small LLM, not a decision model :P
Similarly, Grok has been routing to Opus internally for a little while now I think.
I don't usually get excited about the high-level, "whoooa man" marketing-speak, but the parallel is striking.
Despite the title, the article is not making claims of, or demonstrating general usage improvements or general coding agent improvements
I think you should have solved it deterministically. And evaluate suspicious cases after that to new determistic rules. Also you did value false positives the same as false negatives. A customer receiving an outreach for a purchase he didn’t do is certainly worse than if he doesn’t receive one. So the benchmark should rank false positives higher than any number of false negatives (which I think is equal to not decide).
I say this respectfully as I’ve done this before, but I think you lost the plot with this approach.
It's what I use locally. For my workload, it was right up there with Jev.
With an assemblage of models like Jev + Opus or Jev + Qwen, Jev would often do the right thing when deciding to escalate to another model - I was impressed that it would usually make the right call, especially if you gave it good awareness of what the other model capabilities were. "ESCALATE to opus if you need good vision awareness".
When Haiku 5.5 came out though, for my tasks, the cost differences disappeared almost immediately. Haiku was good enough / fast enough for so many things that introducing a decider layer didn't offer huge wins. Jev's "millisecond" level performance was nice but would get dwarfed by other latencies in my chain ( web browsing ), that it didn't make a measurable difference in my tasks.
[1] https://github.com/codealong/codealong
They propose:
Valentino → Female Child
Yet this is obviously a boy name, else it would be Valentina. Is this model going to return confidence values? No, they want decisions. This is an inherent problem in AI with reductive logic for these tasks.
Likewise, dates. Is 17/08/22:
- 20170822 (Chinese write the year first, and in speech and chat they will say '17' not '2017'.)
- 20220817 (Everywhere But North America.)
Is 04/06/2009:
- 20090604 (Non-North American)
- 20090406 (American)
Without knowing the cultural context, the location, the document type, the document author, etc, you could be getting it wrong.
Cf Lies we believe about Names, Addresses and Dates.
It’s an interesting problem. And i have following thoughts to it?
- Are all cases even decidable?
- Shouldn’t one false positive rank higher than a hundred rank negative.
-Shouldnt’t the AI just abstain from decisions to avoid false positives.
- Is it smarter to seperate this in a lot of small sub problems and to define this as a rule set of small yes no decicions, why does this need to be solved agentically?
- You should definitely clean up deterministically first.
I feel like if you really want to solve this problem, you would approach it differently. This seems like a wrong approach and a bad article on top?
No, and I think undecideable is quite frequent.
> -Shouldnt’t the AI just abstain from decisions to avoid false positives.
Yes, and I think regulation should be quite strong in this regard.
> - Is it smarter to seperate this in a lot of small sub problems and to define this as a rule set of small yes no decicions, why does this need to be solved agentically?
For larger contexts I worry about agentic confabulation, but humans unquestionably look at the gestalt when doing matching. I don't want idiot clankers making enforced decisions because they have misunderstood one field.
> - You should definitely clean up deterministically first.
If you can't do field validation on entry then I'm not sure deterministic rules work better, they may be worse, although easier to reason about.
The system doesn't return confidence values because that's not what they are designing. The models, however, do and to me it's interesting that Jev's measure of confidence is pretty well calibrated to its correctness.
>Without knowing the cultural context, the location, the document type, the document author, etc, you could be getting it wrong.
And? There's no perfect process, just ones that asymptotically approach correctness at exponentially increasing cost. They own the system and get to decide what works for them.
Rather than binary classification we should be locating document fragments in a high dimensional feature space, and with all those fragments coming to a confidence bounded guess.
Additionally, when someone submits documents that can't be recognised as valid, the response should not be INVALID, it should be UNDECIDED. In that sense, passing to Opus is great, but passing a tiny fragment of the problem is a bad way to do it.
That isn't obvious, unless you've been doing ML for a while.
These are the results of a little performance tuning/permutation testing run against context format and question wording we did. Obviously there is a lot of noise here but I was actually kinda surprised that there was a clear "best way to ask the question" even for relatively low N and low complexity/ambiguity of the task.
(This is a ~30s Ai-driven gif presentation of the results, the full grid shows up about 15s in): https://imgur.com/a/wGFZvGw
These models in particular have some pretty dubiously generalized and diverse training datasets. You can see this for yourself BTW by looking at the datasets SOTA Jev-like models are being trained against and evaluated on. No knock against the teams btw, I just think it's rather demystifying and makes me quite optimistic at how much better these models are going to get over the next few years: https://labs.baseten.co/articles/mammoth-1-and-elephant-1-fr...