‹ BackHN Continuity

Thread

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

119 points · 41 comments · adchurch

Loading the complete thread in the background. This saved snapshot is available now. Refresh

  1. xms17189 · · focus · HN ↗

    [dead]

  2. redrove · · focus · HN ↗
    Is the model you trained available as open weights?
    1. adchurch · · focus · HN ↗
      It is not sorry!
  3. itsmeduncan · · focus · HN ↗

    [dead]

  4. thefourthchime · · focus · HN ↗
    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?
    1. aschla · · focus · HN ↗
      And similarly, Copilot’s Auto mode?

      Seems those are the direct competitors to this, and would be good to know whether it’s worthwhile to stand up a separate solution over those.

      1. adchurch · · focus · HN ↗
        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!
    2. adchurch · · focus · HN ↗
      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

  5. jamesforestwest · · focus · HN ↗
    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?
    1. adchurch · · focus · HN ↗
      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).

  6. aminsamir45 · · focus · HN ↗
    AGI is here!
  7. adurnos · · focus · HN ↗

    [dead]

  8. 1minusp · · focus · HN ↗
    Does this allow for a predefined budget?
    1. adchurch · · focus · HN ↗
      Yes!
  9. rirze · · focus · HN ↗
    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?
    1. adchurch · · focus · HN ↗
      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.

  10. ajspig1 · · focus · HN ↗
    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?

    1. adchurch · · focus · HN ↗
      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.

  11. YuechenLi · · focus · HN ↗
    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.
    1. conception · · focus · HN ↗
      6.1 Sol though is horribly slow. The time cost alone offloading to ds flash is probably worth a look.
      1. YuechenLi · · focus · HN ↗
        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.
      2. waximabbax · · focus · HN ↗
        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.
        1. conception · · focus · HN ↗
          No its like 30 t/s… its really slow.
  12. gitowiec · · focus · HN ↗
    Can it route to locally or LAN hosted Qwen or some other open weights model?
    1. adchurch · · focus · HN ↗
      Not yet! Something we're interested in experimenting with though, hit me up at andrew@weaveos.com if you have any thoughts here
  13. svnt · · focus · HN ↗
    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?
    1. adchurch · · focus · HN ↗
      Different frontier models are good at different things! We'll be the ones combining them optimally.
      1. svnt · · focus · HN ↗
        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.
        1. adchurch · · focus · HN ↗
          Yes! We believe this is entirely possible. Frontier LLMs are trained to solve different problems. We’re training a frontier router :)
  14. mrkn1 · · focus · HN ↗

    [dead]

  15. 361994752 · · focus · HN ↗
    Sounds very interesting. Do you have plan to support gh copilot as model provider?
    1. adchurch · · focus · HN ↗
      We support all the LLMs that Copilot sends data to!
      1. 361994752 · · focus · HN ↗
        Ofc :) Asking this because we have copilot at work (assuming it is quite common for enterprise)
    2. ryanhecht · · focus · HN ↗
      You might be interested in GitHub&#x27;s native take on this concept, HydraFusion: <a href="https:&#x2F;&#x2F;github.blog&#x2F;ai-and-ml&#x2F;github-copilot&#x2F;project-hydrafusion-frontier-quality-via-multi-model-orchestration&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.blog&#x2F;ai-and-ml&#x2F;github-copilot&#x2F;project-hydrafu...
  16. creativeSlumber · · focus · HN ↗
    Wouldn&#x27;t this impact the KV cache hit rates? I&#x27;ve noticed that in practice cache rates are very important to the actual cost you see.
  17. creativeSlumber · · focus · HN ↗
    &gt; 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&#x27;t this number be 10 * 100?

    1. rlprlprlp · · focus · HN ↗
      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.
      1. adchurch · · focus · HN ↗
        My calculation exactly!
  18. dackdel · · focus · HN ↗
    what about jev
    1. adchurch · · focus · HN ↗
      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.

  19. leej111 · · focus · HN ↗

    [dead]

  20. leanuard · · focus · HN ↗

    [dead]

  21. devmor · · focus · HN ↗
    I would like to see this (and any model router, frankly) benchmarked against two things, personally:

    1) Claude Code&#x27;s &quot;advisor mode&quot; (nominally, Sonnet 5.5 with a Fable advisor)

    2) Copilot&#x27;s &quot;HydraFusion&quot; model router&#x2F;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.

    &gt; 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&#x2F;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.

    1. adchurch · · focus · HN ↗
      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?

      1. devmor · · focus · HN ↗
        I’m not really sure, I can’t say I trust any kind of synthetic AI benchmarks.

        &gt; 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.

        1. adchurch · · focus · HN ↗
          &gt; 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:

          &gt; 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&#x27;t seen failure cases like that crop up in our own usage &amp; testing.

  22. parisbs · · focus · HN ↗
    What are your thoughts on potential biases transferred during training? There has been considerable debate regarding the reliability of benchmarks and test suites, and whether the training was guided or contaminated by the team&#x27;s internal perspectives. How much can this impact task routing and delegation decisions? What criteria were used to establish model suitability for a given task, and which metrics were used to validate it? Personally, I’ve often achieved better results with Sonnet 5 at medium effort than with Opus 5.5 at high effort; it would also be very interesting to understand how the reasoning effort is chosen in addition to the model itself
  23. krzychoo87 · · focus · HN ↗

    [dead]

  24. capocasa · · focus · HN ↗
    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- <a href="https:&#x2F;&#x2F;3code.capocasa.dev-" rel="nofollow">https:&#x2F;&#x2F;3code.capocasa.dev- which aims to reduce cost by using more compact system prompts and a clever compaction variant.

  25. ipvolt · · focus · HN ↗

    [dead]

  26. knifelemon · · focus · HN ↗

    [dead]

  27. Igsta · · focus · HN ↗

    [dead]

  28. folayii · · focus · HN ↗

    [dead]

  29. shurshilov · · focus · HN ↗

    [dead]

  30. tarekabouzeid · · focus · HN ↗
    Thanks for sharing !
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.