Frontier accuracy for self-hosted conversational agents

distil labs builds the model that powers your conversational agent in hours, matching frontier models even on difficult conversations. On hardware you control, as weights you own.

smaller model →higher quality on your task →every off-the-shelf modelfrontier APIsself-hosted open modelsyour model

30M+ people use models trained on distil labs today

  • Rocketgraph logo
  • IBM Power logo
  • Knowunity logo
  • Octodet logo
  • MacPaw logo
  • Comand logo
  • Katrum logo

No off-the-shelf model fits your conversational agent

Self-hosted open models are not accurate enough on your task. Frontier APIs are accurate, but you rent them: off-site, priced per token and changed on someone else's schedule. The model your agent needs has to be built, and in-house that takes a specialist team and months per agent. With distil labs, one engineer ships it in hours.

How it works

Four steps from the data you have to a model you own. The auto-research agent runs them; you review the numbers.

  1. 1

    Start with the data you have

    Your harness spec (system prompt, tools, schemas, policies), a few manual examples, and the production traces you are already cleared to use. Only the harness spec is required: no protected records, no new legal approval. Built for teams whose data cannot leave the building.

    > Build a small model for our support agent from this repo: the
      harness spec in harness/, the 24 manual examples and the cleared
      traces in traces/. Go ahead.
    
    ⏺ Bash(distil dataset create --data support-agent/)
      ⎿  Upload successful. Dataset ID: ds-7f3a
         harness spec · 24 examples · 1,900 traces
  2. 2

    An auto-research agent builds your model

    It builds a test set from your harness, simulates conversations to generate training data including the rare cases, trains the model, evaluates it against your frontier baseline and repeats until parity. Hours of training, minutes of your time.

    > Train a model that matches our frontier API on the test set. Three
      runs at most, keep a log of every iteration. Go ahead.
    
    ⏺ Bash(distil dataset relabel-traces-test ds-7f3a)
      ⎿  ds-8c21 · 312 test conversations
    ⏺ Bash(distil dataset generate-synthetic-data-train ds-8c21)
      ⎿  ds-9d04 · 8,400 simulated conversations, 23% off script
    ⏺ Bash(distil slm create-from-dataset ds-9d04)
      ⎿  slm-2b7e · SFT, then RL · llm-as-a-judge 0.86 vs frontier 0.91
    ⏺ Run 1 misses topic switches. Run 2: more of them, 4 epochs.
      ⎿  slm-4c19 · llm-as-a-judge 0.91 vs frontier 0.91 ✓ parity
    1. 1Relabel traces
    2. 2Simulate conversations
    3. 3Post-train (SFT, then RL)
    4. 4Evaluate vs the frontier
    5. repeat until parity
  3. 3

    Deploy and evaluate

    Deploy the model on distil labs inference, in your VPC or on-premise, and point your agent at it, with the frontier API as fallback for the conversations you still want to rent. Score it on your own evals and on live traffic, side by side with the frontier API, and keep it when it matches.

    > Deploy slm-4c19 behind our support endpoint, frontier as fallback.
    
    ⏺ Bash(distil deployment create-from-slm slm-4c19)
      ⎿  Deployment started. Deployment ID: dep-5a1c
    ⏺ Bash(distil inference-endpoint create-from-deployment --name support
           --fallback-model "openai/gpt-5" dep-5a1c)
      ⎿  Endpoint Name: support-Qk3bZ1
         Endpoint:      https://inference.distillabs.ai/v1/chat/completions
  4. 4

    Keep improving: new traffic, new base models

    Once cleared, production conversations flow back in. The same auto-research agent reruns the loop on its own and ships the next version in about 80 minutes of training, whenever your agent changes, a weak spot shows up or a better open base model is released.

    > Two weeks of production traffic are cleared. Retrain on them.
    
    ⏺ Bash(distil traces create-from-inference-endpoint support-Qk3bZ1)
      ⎿  tr-c4e9 · 12,300 conversations since v1
    ⏺ Bash(distil dataset create-from-traces --config config.yaml
           --job-description job_description.json tr-c4e9)
      ⎿  ds-a310
    ⏺ Bash(distil slm create-from-dataset ds-a310)
      ⎿  slm-6e02 · v2 · SFT, then RL · about 80 minutes

How it works

Step 1 of 4

Start with the data you have

Your harness spec (system prompt, tools, schemas, policies), a few manual examples, and the production traces you are already cleared to use. Only the harness spec is required: no protected records, no new legal approval. Built for teams whose data cannot leave the building.

> Build a small model for our support agent from this repo: the
  harness spec in harness/, the 24 manual examples and the cleared
  traces in traces/. Go ahead.

⏺ Bash(distil dataset create --data support-agent/)
  ⎿  Upload successful. Dataset ID: ds-7f3a
     harness spec · 24 examples · 1,900 traces

Step 2 of 4

An auto-research agent builds your model

It builds a test set from your harness, simulates conversations to generate training data including the rare cases, trains the model, evaluates it against your frontier baseline and repeats until parity. Hours of training, minutes of your time.

> Train a model that matches our frontier API on the test set. Three
  runs at most, keep a log of every iteration. Go ahead.

⏺ Bash(distil dataset relabel-traces-test ds-7f3a)
  ⎿  ds-8c21 · 312 test conversations
⏺ Bash(distil dataset generate-synthetic-data-train ds-8c21)
  ⎿  ds-9d04 · 8,400 simulated conversations, 23% off script
⏺ Bash(distil slm create-from-dataset ds-9d04)
  ⎿  slm-2b7e · SFT, then RL · llm-as-a-judge 0.86 vs frontier 0.91
⏺ Run 1 misses topic switches. Run 2: more of them, 4 epochs.
  ⎿  slm-4c19 · llm-as-a-judge 0.91 vs frontier 0.91 ✓ parity

Step 3 of 4

Deploy and evaluate

Deploy the model on distil labs inference, in your VPC or on-premise, and point your agent at it, with the frontier API as fallback for the conversations you still want to rent. Score it on your own evals and on live traffic, side by side with the frontier API, and keep it when it matches.

> Deploy slm-4c19 behind our support endpoint, frontier as fallback.

⏺ Bash(distil deployment create-from-slm slm-4c19)
  ⎿  Deployment started. Deployment ID: dep-5a1c
⏺ Bash(distil inference-endpoint create-from-deployment --name support
       --fallback-model "openai/gpt-5" dep-5a1c)
  ⎿  Endpoint Name: support-Qk3bZ1
     Endpoint:      https://inference.distillabs.ai/v1/chat/completions

Step 4 of 4

Keep improving: new traffic, new base models

Once cleared, production conversations flow back in. The same auto-research agent reruns the loop on its own and ships the next version in about 80 minutes of training, whenever your agent changes, a weak spot shows up or a better open base model is released.

> Two weeks of production traffic are cleared. Retrain on them.

⏺ Bash(distil traces create-from-inference-endpoint support-Qk3bZ1)
  ⎿  tr-c4e9 · 12,300 conversations since v1
⏺ Bash(distil dataset create-from-traces --config config.yaml
       --job-description job_description.json tr-c4e9)
  ⎿  ds-a310
⏺ Bash(distil slm create-from-dataset ds-a310)
  ⎿  slm-6e02 · v2 · SFT, then RL · about 80 minutes

What you get

Build your own model in hours, without post-training experience

An auto-research agent turns your harness and examples into curated training data and delivers the first model at frontier accuracy within hours, then retrains automatically when your agent changes or a better open base model is released. No model goes live until you approve it.

Nobody on your team needs to have post-trained a model before.

frontier accuracyCommon conversationsRare eventsinterruptions, topic switchesFrontier APIFine-tune on call logsYour model

Frontier accuracy on difficult conversations

Your model is as accurate as frontier models even on rare events such as users interrupting or switching topics, because we generate synthetic training conversations for the uncommon cases that production traffic rarely contains.

A fine-tune on call logs learns the calls that went well. Simulated conversations cover the ones that go off script, and a failure your evals flag is fixed in the next model.

Own the model, not a subscription to one

You own the weights, so the model runs on-premises or in your VPC under your security and compliance rules and changes only when you decide. It encodes how your agent works and gets better with every retrain.

Because it is 100 times smaller than a frontier model, it costs 20% of a frontier API.

Frontier modelrented, off-siteYour VPC or on-premisesYour agentYour model100× smaller · 20% of the cost

What the alternatives cannot do

Frontier model in your VPCSelf-hosted open modeldistil labs
First model in hours
rented, not built
months of ML time
hours of training
Accurate on rare conversations
at frontier price
generic model
matches the frontier
No protected data needed
nothing to train
tuning needs your traces
harness and a few examples
Yours to move and retrain
rented, vendor cadence
yours, retrain by hand
yours, retrained in 80 min

Ship your first conversational agent model in hours

Bring your harness and the data you are cleared to use. We show you a model that matches the frontier API on your eval, including the difficult conversations, before any protected data is involved.

Wondering what happens to your harness? Security and data handling

What Our Customers Say

We needed a small model that could power our product on an IBM P11, entirely on-premises. distil labs’ fine-tuned models allowed us to ship a self-contained solution where the SLM and our graph platform coexist on the same hardware. For customers in regulated industries, this means AI-powered query generation with complete data privacy – nothing ever leaves their environment.

David J. Haglin

Co-Founder and CTO at Rocketgraph

The collaboration with distil labs shows what’s possible when you fine-tune small language models and deploy them on IBM Power. It is not just about the performance–it’s about delivering private, accurate AI that’s ready for enterprise scale.

Unnikrishnan Rajagopal

Unnikrishnan Rajagopal

Director at IBM Power

The distil labs platform accelerated the release of our cybersecurity-specialized language model, KINDI, enabling faster iterations with greater confidence. As a result, we ship InovaGuard improvements sooner and continuously boost investigation accuracy with every release.

Samir Bennacer

Samir Bennacer

Co-Founder and CTO at Octodet

From our blog