PRODUCT

Introducing Ensemble Groups: Multi-LLM Collaboration

January 7, 2026 4 min read

FireFoundry Team

Product

What if your AI agents could consult multiple models and synthesize the best answer? What if, instead of betting everything on a single LLM provider, you could assemble a panel of experts that reasons together? That is exactly what Ensemble Groups make possible.

Today we are announcing Ensemble Groups -- a new feature in the FireFoundry Broker Service that lets you route a single request to multiple LLM providers simultaneously and synthesize the results into a single, higher-quality response.

What Are Ensemble Groups?

An Ensemble Group is a broker configuration that defines two or more model pools as a collective. When a request arrives at an ensemble group, the broker does not pick one provider -- it queries all of them in parallel. A configurable synthesis step then combines those responses into a single result that is more accurate, more robust, and more trustworthy than any individual model could produce on its own.

Think of it as a panel discussion rather than a solo presentation. Each model brings its own strengths, biases, and reasoning patterns. By combining their perspectives, you get answers that are greater than the sum of their parts.

How It Works

Setting up an Ensemble Group takes just a few steps:

The synthesis strategies are where the real power lives:

Use Cases

Ensemble Groups shine wherever accuracy matters more than minimizing latency:

Built on the Industrial Broker

Ensemble Groups are not a bolt-on feature. They are built directly into FireFoundry's industrial-grade Broker Service, which means they inherit all the production capabilities your agents already rely on:

Because ensemble requests are just broker requests, they work seamlessly with your existing failover policies, cost controls, and audit logging. There is nothing new to operate.

Custom Synthesis with AgentML

The built-in synthesis strategies -- consensus, best-of-N, and specialized routing -- cover the most common use cases. But what happens when your domain requires something more specific? That is where AgentML comes in.

AgentML is FireFoundry's XML-based domain-specific language for defining executable agent programs and workflows. It is a declarative, procedural language that lets you orchestrate complex multi-step logic -- including custom ensemble synthesis patterns -- without writing TypeScript. AgentML programs execute as async generators, yielding progress updates and returning structured results.

When you configure an ensemble group, you can choose a predefined synthesis strategy or provide a custom AgentML program that defines exactly how responses should be combined. Here is an example of a custom synthesis pattern that scores each model's response, applies domain-specific validation, and merges the best elements:

<agent id="CustomSynthesis" display-name="Domain Synthesis"
       description="Custom ensemble synthesis with validation">
  <static-args>
    <arg name="responses" type="array" required="true"/>
    <arg name="originalQuery" type="string" required="true"/>
  </static-args>

  <run-impl>
    <yield-status message="Scoring model responses"/>

    <!-- Score each response for relevance and accuracy -->
    <let name="scored" value="[]"/>
    <loop items="args.responses" as="response" index="idx">
      <call-bot name="ResponseScorerBot" result="score">
        <arg name="query" value="args.originalQuery"/>
        <arg name="response" value="response.content"/>
      </call-bot>
      <let name="scored" value="[...scored, { ...response, score }]"/>
    </loop>

    <!-- Select the highest-scoring response as the base -->
    <let name="best" value="scored.sort((a,b) => b.score.total - a.score.total)[0]"/>

    <!-- If top two scores are close, merge their insights -->
    <if condition="scored.length > 1 && scored[0].score.total - scored[1].score.total < 0.1">
      <yield-status message="Merging top responses"/>
      <call-bot name="ResponseMergerBot" result="merged">
        <arg name="primary" value="scored[0].content"/>
        <arg name="secondary" value="scored[1].content"/>
        <arg name="query" value="args.originalQuery"/>
      </call-bot>
      <return value="merged"/>
    </if>

    <return value="best.content"/>
  </run-impl>
</agent>

This AgentML program receives the array of model responses, runs each through a scoring bot, and then either selects the winner or merges the top two if they are close in quality. The entire process is observable through FireFoundry's telemetry -- you can trace exactly which models contributed what, how they were scored, and why the final answer was chosen.

AgentML is a core part of the FireFoundry Agent SDK, not just an ensemble feature. You can use it to define full agent workflows, multi-step pipelines, and conditional logic -- all declaratively in XML. Because it is XML, it is particularly well-suited for AI-assisted generation: LLMs produce valid AgentML more reliably than they produce TypeScript, making it an excellent choice for dynamically constructed workflows. For the full AgentML reference and getting-started guide, see the developer documentation.

Getting Started

Ensemble Groups are available now in the broker service configuration for all beta partners. Define an ensemble group in your broker config, specify the model pools and synthesis strategy -- or write a custom one in AgentML -- and start sending requests. It is that straightforward.

To learn more about how the broker handles multi-provider routing and capacity management, visit the Platform overview. For hands-on configuration details and the AgentML reference, check the developer documentation.

Ready to try Ensemble Groups? If you are already in the beta, update your broker configuration and start experimenting today. If you are not yet in the beta, request access and we will get you set up.

FireFoundry Team

Product

The FireFoundry team builds enterprise infrastructure for AI agents. We are engineers, product thinkers, and operators who have spent years building and scaling production AI systems. Our mission is to close the gap between AI prototypes and production-grade software.

Related Posts

Request Beta Access

FireFoundry is now in private beta. Join the teams already building production AI agents on the Agent-as-a-Service platform.