← Back to context

Comment by drkleiner

19 hours ago

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.

Both of those orchestrations will work for sure.

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.

Edit: you can also use a smart agent to ask another smart agent, obviously, which is good for personal workflows.

  • Doesn't that muddle intent of the original prompt? If the smarter model didn't understand your intent correctly, the dumber one sure won't and it rephrasing and expanding the prompt will just amplify it's misunderstanding, no?

    • It could make sense to use a cheap model to decide if you need to run a long, high effort or otherwise costly effort. Then you can take many decisions at low cost, but think hard when it’s time to make an important decision.

    • You wouldnt normally use a dumb model as a personal agent to get a smarter model to do work, but you may make use of that mechanism in some kind of automation process.

      But there are definitely cases.

      GPT Pro is an absolutely spectacular model, that almost cannot be used without 'prompt help'. Or rather, it can only be effectively leveraged by very intricate prompting, which requires the help of another agent.

      I typically use Claude Code to write prompts for GPT Pro , and cut and paste the prompt in, and let GPT Pro work for 20 minutes, then take the response back to Claude Code and work with Opus to consider the results.

      Opus is 'dumber' (nominally) then GPT Pro.

  • >you can also use a smart agent to ask another smart agent

    What's the best method to have a 'smart' agent just.. ask itslef?

    • Generally, you want a different smart agent as they have different strong sides (e.g. call Sol for a review from Opus)

      You may use https://github.com/pingdotgg/t3code as a wrapper above claide/codex/pi/... harnesses, or a proxy below (forgot which one, as agent what theo uses for balancing multiple claude subs)

      2 replies →

    • Just ask. The agents already know how. To boost it, have it read the exact docs that OAI/Anthropic provide.

      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.

This is how I do it too. I run three levels:

  * Orchestrator: Opus 5.5
  * Feature lead: GPT 6.1 Sol
  * Worker: Muse Spark 1.3 Contributor

As long as you have an appropriate project and sandbox for Muse Spark it's the real secret sauce for my setup and it's dirt cheap on OpenCode Go.

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/

  • Just one thing

    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.

    • It sure saves tokens and even the 100$ subscriptions provide massive amounts of dev power. Also fair to note - mixing models is perhaps a good idea anyway as this way the entropy in them mixes and this supposedly improves result quality.

  • And which agent checks the work that the Worker does? If it's garbage then isn't that just extra tokens consumed by the Orchestrator or Feature lead?

    I'd be interested to know what the difference in cost is in this setup on building a complex feature vs using Opus directly.

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.

What do you use to get Opus to call Qwen?

  • 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

    • Nah, OpenRouter is the same API as self hosting, but you need to provide your API key. It's as easy as a URL swap

  • 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.

    AI studio can search web, etc, etc already so my agent is less complicated with addons in general

    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.

  • 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

    • What hardware and inference engine do you use? On my Radeon R9700, at least with llama.cpp and some others, the GPU provides as many tok/sec with a single stream as with concurrent ones, so it's just as fast and supports longer contexts to swap contexts to RAM on turn boundaries.

      1 reply →

    • 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.

      1 reply →

  • 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

  • You can have a setup like this with OpenCode agents, where you can define custom top-level agents, subagents, and assign specific models to each.

    https://opencode.ai/docs/agents/

    There are a lot of ways to do this if you stop using Big Ai harnesses that make it difficult to use models besides theirs.

  • ohmypi will spawn subagents across different providers out of the box. Opus will spawn subagents running on my local ds4 installation just fine