Show HN: Open-source model routing for coding agents at Astra-level performance

113 points | by adchurch 2 days ago

26 comments

  • YuechenLi 1 day ago
    Have you compared this to using GPT-6.1 Sol instead of GPT 6 Astra + Deepseek? From my test, 6.1 Sol is a lot more token efficient than 6 Sol while being similar to Astra in performance, and I don't really find 6 Astra to be significantly better than 6/6.1 Sol for general coding as I feel 6 Astra is only noticeably better at spatial reasoning/vision compared to 6 Sol, and 6.1 Sol really closed the gap on that front.
    • conception 23 hours ago
      6.1 Sol though is horribly slow. The time cost alone offloading to ds flash is probably worth a look.
      • waximabbax 5 hours ago
        It mostly feels horribly slow if you leave reasoning effort at max for Sol 6.1. If you dial it to normal/high/xhigh, Sol 6.1 is only a couple of minutes behind Astra, performs almost as well on terminal bench v4 tasks, and is about 4 to 5x cheaper.
      • YuechenLi 22 hours ago
        I don't really mind the speed, I like watching Codex work most of the time, slower work means I have time to do corrective nudging for when the initial prompt was unclear.
  • capocasa 14 hours ago
    That sounds really quite interesting- one question pops up, this sounds like it could produce a lot of non-cache input tokens. How much impact does this have, and are you mitigating it?

    Interested in adding support to my own 3code- https://3code.capocasa.dev- which aims to reduce cost by using more compact system prompts and a clever compaction variant.

  • thefourthchime 1 day ago
    Interesting work, and thanks for describing how your router works internally. It's definitely a fascinating subject. How would you say this compares to Cursor's auto mode?
    • adchurch 1 day ago
      Absolutely!

      Conceptually very similar to Cursor's auto mode. The key distinctions are:

      - We plug into any harness (e.g. Claude Code, Codex, OpenCode, Pi)

      - We aren't incentivized to route to our own model, we're incentivized to route to the best model whatever it may be

    • aschla 1 day ago
      And similarly, Copilot’s Auto mode?
      • adchurch 1 day ago
        I haven't tried it as recently but last time I checked they only route once per session (or subagent). Imo this is basically impossible to do correctly. Consider the case where you start with one prompt "rewrite this in rust". Trivial in a 1 day old repo, extremely difficult in e.g. the VSCode repo!
  • creativeSlumber 20 hours ago
    > then there are 10^100 possible paths through that session.

    Is this correct? in practice you would only be deciding what the next turn is going to be. Because the turn after the next turn is determined by the outcome of the next turn. So shouldn't this number be 10 * 100?

    • rlprlprlp 20 hours ago
      paths friend. so first turn you have ten options, second u have the same ten. assume turn one model h1. turn two you have ten options. 1x10. but you could have chosen any h on the first turn. so 10x10=100. turn three you could have gotten there 100 ways and still have ten options.
      • adchurch 20 hours ago
        My calculation exactly!
  • ajspig1 1 day ago
    How do you handle provider variance on OpenRouter for the opensource models? Or do you use your own hosted version to mitigate this?

    And for both opensource and closed source, does the router account for provider quality, or catch it when a provider degrades?

    • adchurch 1 day ago
      For our hosted version we carefully select which providers we use (we don't use OpenRouter). For the self-hosted version though, OpenRouter does make it much easier to get started (at the cost of that variance potentially affecting quality).

      Yes for both! We have some logic to put providers on cooldowns and/or deprioritize them.

  • svnt 1 day ago
    If you are training on data labeled by frontier models, how do you expect to exceed the performance of frontier models, other than in the cost dimension by recognizing simpler problems and routing to cheaper models?
    • adchurch 1 day ago
      Different frontier models are good at different things! We'll be the ones combining them optimally.
      • svnt 21 hours ago
        I understand the premise, but I believe success depends on you being able to effectively sort problems for other frontier models better than the frontier.
        • adchurch 15 hours ago
          Yes! We believe this is entirely possible. Frontier LLMs are trained to solve different problems. We’re training a frontier router :)
  • gitowiec 1 day ago
    Can it route to locally or LAN hosted Qwen or some other open weights model?
    • adchurch 1 day ago
      Not yet! Something we're interested in experimenting with though, hit me up at andrew@weaveos.com if you have any thoughts here
  • rirze 1 day ago
    How does this choose which models to use with any arbitrary set of model providers to work from? And why is an openrouter necessary for self-hosting?
    • adchurch 1 day ago
      To the point of using buckets of models: as long as there's >0 models available in a bucket, and we can order models in order of fit, we're resilient to different sets of models being available. With that said obviously cutting out some models has a much larger effect than others.

      OpenRouter isn't strictly necessary but it does make it easier to not have to set up accounts/API keys with several different providers to get started.

  • jamesforestwest 1 day ago
    How do you define the model buckets, and what happens when a session genuinely needs a model that isn't in the bucket the HMM picked?
    • adchurch 1 day ago
      You can think of buckets as models with similar capabilities. So for example Deepseek 4.1 Flash will not be in the same bucket as Astra.

      The latter is an interesting question! In practice because the session continues, we can see it's going down the wrong path and escalate. Basically no decision we make when routing is entirely unsalvageable (but we do have a performance penalty for every incorrect decision we make so of course we try to avoid it).

  • 361994752 21 hours ago
    Sounds very interesting. Do you have plan to support gh copilot as model provider?
  • redrove 1 day ago
    Is the model you trained available as open weights?
  • 1minusp 1 day ago
    Does this allow for a predefined budget?
  • dackdel 19 hours ago
    what about jev
    • adchurch 15 hours ago
      Routing is the type of decision shape Jev is meant for. But from our own testing (plus externally run benchmarks) it’s much worse at routing than our purpose-built model.

      I’d argue it’s similar to looking at the Meta algorithm for serving ads and asking “what about astra” - it could come up with an answer but it’s not the right model for the task.

  • devmor 19 hours ago
    I would like to see this (and any model router, frankly) benchmarked against two things, personally:

    1) Claude Code's "advisor mode" (nominally, Sonnet 5.5 with a Fable advisor)

    2) Copilot's "HydraFusion" model router/advisor combo.

    Specifically I would like to see them compared on architecture planning (both human assisted and hands-off with a draft document) and code review, as these are what I have found the most significant improvement on with multi-model systems.

    > our initial hypothesis that an ensemble of models can do better than any single model ever could.

    To your hypothesis, anecdotally I find both of these offerings to be far superior to any single model for most tasks of any real complexity, and both to have general frustration/failure cases that single models do not. I would not be surprised that any ensemble approach that utilizes more than one single model meets this hypothesis.

    Quite frequently I delegate review and restructuring loops to subagents acting as judges/advisors to tell the primary agent if it met the goal it was instructed to. For some workloads, I will even vet every tool call and user-facing output this way.

    • adchurch 15 hours ago
      Great idea, we’d love to run those benchmarks! Any in particular you trust?

      Also I’m very interested in the unique failure cases you’re referring to! What have you noticed?

      • devmor 6 hours ago
        I’m not really sure, I can’t say I trust any kind of synthetic AI benchmarks.

        > Also I’m very interested in the unique failure cases you’re referring to! What have you noticed?

        Permissions issues would be the most common - models collaborating with eachother on a task seem to try to convince eachother they have either more or less permission to do things than they actually do. Especially when transitioning between creating a plan and executing the plan.

        Another is deciding that there is a limit to the “loops” they are allowed to run to iterate on something. In many cases I have set an explicit goal, and come back to an agent stopped and reporting that it has hit the “maximum allowable loops of [insert arbitrary number that changes every time].”

        Now that I think about it further, I believe the other examples I have also all fall into the models hallucinating the presence of control instructions, or attempting repeatedly to violate permission boundaries that a single model’s harness instructions would usually guide it away from re-attempting.

        • adchurch 3 hours ago
          > I’m not really sure, I can’t say I trust any kind of synthetic AI benchmarks.

          Fair enough but what exactly were you thinking when you said:

          > I would like to see this (and any model router, frankly) benchmarked against two things

          And thanks for sharing about failure cases! Those do sound like strange harness-level things, honestly we haven't seen failure cases like that crop up in our own usage & testing.

  • ipvolt 9 hours ago
    [flagged]
  • parisbs 17 hours ago
    [dead]
  • krzychoo87 15 hours ago
    [dead]
  • itsmeduncan 1 day ago
    [flagged]
  • mrkn1 1 day ago
    [flagged]
  • xms17189 1 day ago
    [dead]
  • adurnos 1 day ago
    [dead]
  • leanuard 19 hours ago
    [dead]
  • leej111 19 hours ago
    [dead]
  • aminsamir45 1 day ago
    AGI is here!