<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tyler Edwards</title>
    <description>The latest articles on DEV Community by Tyler Edwards (@tyler007).</description>
    <link>https://dev.to/tyler007</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4088298%2F6d881582-8f62-4da6-b85a-793162ef8815.webp</url>
      <title>DEV Community: Tyler Edwards</title>
      <link>https://dev.to/tyler007</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tyler007"/>
    <language>en</language>
    <item>
      <title>How to train your agent: 7 patterns from production teams</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Wed, 07 Oct 2026 13:21:44 +0000</pubDate>
      <link>https://dev.to/tyler007/how-to-train-your-agent-7-patterns-from-production-teams-4e2c</link>
      <guid>https://dev.to/tyler007/how-to-train-your-agent-7-patterns-from-production-teams-4e2c</guid>
      <description>&lt;p&gt;Training an agent in production runs on seven patterns. Instrument every trace, build evals from real traffic, label those traces into a dataset, accept that prompt engineering has a ceiling, run a LoRA fine-tune, freeze the eval set before you train, then repeat the loop. Most of the effort goes into infrastructure, not the agent.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/how-to-train-your-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Learnings from building, deploying and improving agents in production.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you're running an LLM-powered agent in production, the seven patterns below show up again and again.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the seven patterns for training an agent?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Pattern&lt;/th&gt;
&lt;th&gt;What you do&lt;/th&gt;
&lt;th&gt;Tactical advice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Instrument every agent trace&lt;/td&gt;
&lt;td&gt;Route every agent run into one OpenTelemetry-compatible tracing tool&lt;/td&gt;
&lt;td&gt;Keep traces at least 30 days. Tag with user ID, use case and agent version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Build evals from real traffic&lt;/td&gt;
&lt;td&gt;Sample production traces weekly and turn the failures into new test cases&lt;/td&gt;
&lt;td&gt;By week two in production, your primary eval set should come from real traces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Turn traces into a labelled dataset&lt;/td&gt;
&lt;td&gt;Score traces against pass/fail criteria taken from your codebase, then group failures into a taxonomy&lt;/td&gt;
&lt;td&gt;Draft 5 to 20 criteria straight from the code. Label the first month yourself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Prompt engineering has a ceiling&lt;/td&gt;
&lt;td&gt;Keep iterating while the eval score still moves, then switch lever&lt;/td&gt;
&lt;td&gt;Run the eval twice on an unchanged prompt first. Ignore any change smaller than that wobble&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Fine-tuning doesn't need a research lab&lt;/td&gt;
&lt;td&gt;Run a LoRA pass over labelled trajectories on an open-weights base&lt;/td&gt;
&lt;td&gt;1,000+ labelled trajectories and a narrow task, compared against your prompt-engineered baseline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Freeze the eval set before you train&lt;/td&gt;
&lt;td&gt;Lock the eval set before training starts and test inside the agent harness&lt;/td&gt;
&lt;td&gt;Every model change runs against the same frozen eval set, every time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;The self-improvement loop&lt;/td&gt;
&lt;td&gt;Repeat capture, label, train, deploy and measure until it runs in hours&lt;/td&gt;
&lt;td&gt;Put a cadence on the calendar. Weekly is aggressive, monthly is the floor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own, automatically trained, benchmarked, and served. The patterns below are that same loop, whether you build it yourself or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you instrument an agent trace?
&lt;/h2&gt;

&lt;p&gt;Every agent run generates a trace: the full sequence of inputs, tool calls, retrieved context, intermediate reasoning, and final output. Without that record, you're reconstructing agent behaviour from scattered log files, which is miserable work.&lt;/p&gt;

&lt;p&gt;OpenTelemetry has become the default standard for this. Its GenAI semantic conventions set one shared format for what each step of a run records, including model name, token usage, and tool calls. A trace from a LangChain agent then looks the same as one from a raw API call. Most observability platforms now speak this format natively, including Langfuse, Arize Phoenix, Datadog LLM Observability, and LangSmith.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; pick one OpenTelemetry-compatible tracing tool. Route every agent run into it. Keep the traces for at least 30 days. Tag them with user ID, use case, and agent version, so you can filter them later without going back to change your tracing code.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you build evals from real production traffic?
&lt;/h2&gt;

&lt;p&gt;Before deploying an agent, run it against some evals. An eval is a scored check of whether the agent did the job. However, when real traffic arrives, so will edge cases.&lt;/p&gt;

&lt;p&gt;Production traces can be a real eval source. Sample traces weekly and turn the failures into new test cases. Older eval sets can become a regression check, to confirm old fixes still hold, rather than your source of truth. Langfuse, Braintrust, Arize, and LangSmith all support this workflow directly, turning sampled production data into structured eval sets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; by week two in production, your primary eval set should be built from real traces, not synthetic ones written before launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you turn traces into a labelled dataset?
&lt;/h2&gt;

&lt;p&gt;A trace only records what happened. Before you can train or evaluate on it, you need to know whether the run was any good. That judgment is the label, and labels are what a dataset is actually made of. More unlabelled traces will not make it better, so label what you have before you collect more.&lt;/p&gt;

&lt;p&gt;Start with your agent's codebase. It already spells out what the agent is meant to do, so turn that into a checklist of pass or fail criteria. Score traces against the checklist and write a note on each one that fails. Hamel Husain calls this error analysis. Group those notes into a failure taxonomy, a fixed list of failure types you can count and track over time.&lt;/p&gt;

&lt;p&gt;Once every trace carries a label, and a failure type where it failed, you have a dataset. That is what you fine-tune on, and what you score every later change against. We go through the full pipeline in &lt;a href="https://www.overmindlab.ai/research/traces-to-training-dataset?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how do you turn traces into a training dataset&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; draft 5 to 20 pass/fail criteria straight from the code, then refine them as you label. Spend a few hours a week labelling yourself for the first month. Don't outsource the first pass. Your judgment about what "good" looks like only shows up once you've sat with the traces yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  When should you stop prompt engineering?
&lt;/h2&gt;

&lt;p&gt;Prompt engineering has a ceiling. Prompt iteration is cheap and fast, so use it for as long as it keeps improving your eval score. Eventually each new instruction fixes yesterday's bug and quietly introduces a new one. The system prompt bloats, latency creeps up, and the model starts ignoring parts of it altogether.&lt;/p&gt;

&lt;p&gt;At that point you're choosing between more tweaking or a different lever entirely. Most teams keep tweaking a month longer than they should, because prompt edits feel free. They aren't. Engineering time is the most expensive line item in the whole pipeline. We break the trade-off down in &lt;a href="https://www.overmindlab.ai/research/prompt-engineering-vs-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;prompt engineering vs fine-tuning&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; track your eval score before and after every prompt change. First run the eval twice on an unchanged prompt to see how much the score wobbles on its own. Ignore any change smaller than that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you need a research team to fine-tune?
&lt;/h2&gt;

&lt;p&gt;Fine-tuning an open-weights model used to mean a research team and a large GPU budget. LoRA freezes the base model and trains a small set of low-rank adapter matrices instead. Those adapters are often under 1% of total parameters. That is why a 70B model can be fine-tuned on a single high-memory GPU, using QLoRA's 4-bit quantisation. Quantisation stores the weights at lower precision, so the model takes up less memory.&lt;/p&gt;

&lt;p&gt;Pick an open-weights base, run a LoRA pass over labelled trajectories, meaning recorded agent runs you have already scored. Then serve the result on Fireworks, Together, or Modal. Unsloth, OpenPipe, and Predibase handle most of the pipeline for you. The method choice is a separate question, covered in &lt;a href="https://www.overmindlab.ai/research/types-of-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;what are the different types of fine-tuning&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; if you have 1,000+ labelled trajectories and a narrow task, run a LoRA fine-tune. Compare it against your prompt-engineered baseline on the same eval set.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should you freeze the eval set before you train?
&lt;/h2&gt;

&lt;p&gt;The eval set you score a fine-tune against has to be the same one you scored the baseline against, and it has to be locked before training starts. Change the criteria and the training run in the same week and you cannot tell which one moved the number.&lt;/p&gt;

&lt;p&gt;Test the model inside the agent harness, not on its own. A model that scores better in isolation can still make the agent worse, because the agent depends on tool call formats, output structure, and instruction following that a benchmark score does not capture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; every model change runs against the same frozen eval set, every time. Models regress for all sorts of reasons, and a fixed scoreboard is the only way you find out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The self-improvement loop
&lt;/h2&gt;

&lt;p&gt;The first full pass through capture, label, train, deploy, and measure takes weeks. By the fifth pass, most of the friction is gone and the loop runs in hours.&lt;/p&gt;

&lt;p&gt;That compounding is the whole point. A team that runs this loop five times in a quarter ends up with an agent that matches their business needs at a fraction of frontier API cost. A team that runs it once, ships, and calls it done is roughly where it started six months ago.&lt;/p&gt;

&lt;p&gt;This is essentially Overmind's product thesis. It connects your repository and traces, then proposes changes through its optimiser. It tests those changes against your labelled data and only surfaces the ones that actually move your score. The loop from evidence to shipped improvement stays short, instead of becoming its own six-week project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tactical advice:&lt;/strong&gt; pick a cadence and put it on the calendar. Weekly is aggressive but doable. Monthly is the floor. Anything slower and you're not really running a loop, you're running occasional cleanup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure is more work than the agent
&lt;/h2&gt;

&lt;p&gt;Any one of these seven steps is a real job on its own. Strung together, they're several jobs. Most teams find the surrounding infrastructure costs more engineering time than the agent.&lt;/p&gt;

&lt;p&gt;Here is every tool named above, grouped by the job it does.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Tools named in this post&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Trace format standard&lt;/td&gt;
&lt;td&gt;OpenTelemetry GenAI semantic conventions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tracing and observability&lt;/td&gt;
&lt;td&gt;Langfuse, Arize Phoenix, Datadog LLM Observability, LangSmith&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eval sets from production traces&lt;/td&gt;
&lt;td&gt;Langfuse, Braintrust, Arize, LangSmith&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fine-tuning pipeline&lt;/td&gt;
&lt;td&gt;Unsloth, OpenPipe, Predibase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serving a trained model&lt;/td&gt;
&lt;td&gt;Fireworks, Together, Modal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The whole loop as one system&lt;/td&gt;
&lt;td&gt;Overmind&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Overmind closes that gap. It reads your agent's codebase to understand what it does. Then it handles trace capture, labelling, fine-tuning, deployment, and measurement as one connected system, instead of five separate vendor integrations.&lt;/p&gt;

&lt;p&gt;If you're past the prototype stage and want the loop running without building it from scratch, it's worth a look.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How many labelled examples do you need to fine-tune an agent?
&lt;/h3&gt;

&lt;p&gt;If you have 1,000 or more labelled trajectories and a narrow task, a LoRA fine-tune is worth running. Below that, keep labelling and keep iterating on the prompt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you fine-tune a 70B model without a GPU cluster?
&lt;/h3&gt;

&lt;p&gt;Yes. LoRA trains a small set of adapter matrices, often under 1% of total parameters, and QLoRA's 4-bit quantisation shrinks the frozen base model further. That puts a 70B fine-tune on a single high-memory GPU.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should you test a fine-tuned model on its own or inside the agent?
&lt;/h3&gt;

&lt;p&gt;Inside the agent harness. A model that scores better in isolation can still make the agent worse, because the agent depends on tool call formats, output structure, and instruction following that a benchmark score does not capture.&lt;/p&gt;

&lt;h3&gt;
  
  
  How often should you run the training loop?
&lt;/h3&gt;

&lt;p&gt;Weekly is aggressive but doable, monthly is the floor. Slower than that and you're running occasional cleanup rather than a loop, so the compounding never arrives.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>agents</category>
    </item>
    <item>
      <title>Secret Agent Overmind: diagnose an AI agent with code, traces, evals and datasets</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Wed, 30 Sep 2026 10:24:05 +0000</pubDate>
      <link>https://dev.to/tyler007/secret-agent-overmind-diagnose-an-ai-agent-with-code-traces-evals-and-datasets-233n</link>
      <guid>https://dev.to/tyler007/secret-agent-overmind-diagnose-an-ai-agent-with-code-traces-evals-and-datasets-233n</guid>
      <description>&lt;p&gt;To diagnose an AI agent you need four records joined, not four dashboards. Read the codebase for what the agent can do, traces for what it actually did, dataset rows for what it will be trained and tested on, and eval scores for how well it scored. The answer to "why did it do that" lives in the gaps between them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/secret-agent-overmind?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Your agent is the most documented system in your engineering org and yet you can't answer simple questions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No, Christopher McQuarrie has not asked me to direct the next instalment of Mission: Impossible, though I am keeping a keen eye on my inbox. Today, we are talking state secrets!&lt;/p&gt;

&lt;p&gt;That is also not true. But I did spend many years building stuff and things (the OFFICIAL term) for British Intelligence, and the single most valuable thing I took away was not state secrets. Instead, it was a deeply troubling obsession with data.&lt;/p&gt;

&lt;p&gt;"Is this person a credible threat?" is the canonical example, and a very difficult one to answer. Intelligence analysts are basically superhumans, capable of finding links between vast amounts of varied data, and one of the ways they do that is by layering context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data, data, everywhere.
&lt;/h2&gt;

&lt;p&gt;That data is vast: signals intelligence, human intelligence, financial records, travel manifests, satellite imagery, and a mountain of open-source material. Some of it is a tidy database, some of it is a photograph, and some of it is words scrawled on a piece of paper. The scale is hard to picture: by the NSA's own figures, it "touches" around 29 petabytes of data a day, which is equivalent to the entire Library of Congress being inspected nearly 3,000 times over, daily.&lt;/p&gt;

&lt;p&gt;I hear you shouting, "Well Tyler, big tech companies have access to lots of data, so why is MI5 so special?" Beyond the legal implications and the fact that we don't (yet) live in a Blade Runner-style dystopia, the reasons are structural. Broadly speaking, any one organisation only ever holds a single thin slice of the picture: what you searched, what you spent, or where you travelled. You can know someone's entire spending history in perfect detail and still have no idea what any of it means. An intelligence agency exists precisely to sit above all those slices and join them, which is the part almost nobody else is mandated, or built, to do. The fusion, not the volume, is the whole point.&lt;/p&gt;

&lt;p&gt;This is the core function of an intelligence agency: not simply to collect the data, but to surface the hidden correlations in vast pools of information. Which brings us, as everything eventually does, to AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context really is king
&lt;/h2&gt;

&lt;p&gt;Your agent is the most thoroughly documented system in your engineering org. Every prompt, every completion, every tool call, every retry is captured somewhere: traces in your observability tool, scores in your eval suite, rows in your dataset. And yet you still can't answer simple questions. Why did it do that? Where did the behaviour come from? Who gave it a gun? The records are all there, sitting in separate systems, and nobody joins them up.&lt;/p&gt;

&lt;p&gt;Each of those systems holds one thin slice, and each slice has a blind spot the next one covers.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What it holds&lt;/th&gt;
&lt;th&gt;What it can tell you&lt;/th&gt;
&lt;th&gt;What it can't&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Codebase&lt;/td&gt;
&lt;td&gt;The tools the agent can call and their contracts, its input and output schema, the prompts, the expected output&lt;/td&gt;
&lt;td&gt;What the agent could do&lt;/td&gt;
&lt;td&gt;Whether it ever did&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production traces&lt;/td&gt;
&lt;td&gt;Every prompt, completion, tool call and retry&lt;/td&gt;
&lt;td&gt;What the agent actually did&lt;/td&gt;
&lt;td&gt;What it was built to be able to do&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dataset rows&lt;/td&gt;
&lt;td&gt;Format, schema, per-column distribution, label space, cohorts, hygiene problems&lt;/td&gt;
&lt;td&gt;What you are about to evaluate or train on&lt;/td&gt;
&lt;td&gt;Whether that covers the agent's real surface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eval scores&lt;/td&gt;
&lt;td&gt;Scores against your eval suite&lt;/td&gt;
&lt;td&gt;That a behaviour was wrong&lt;/td&gt;
&lt;td&gt;Why it was wrong&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So we did exactly that. We built a context layer that joins all these things together: one grounded picture of how your agent is put together and what it actually does, assembled from your codebase and traces, then turned loose to power Overmind. Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own, automatically trained, benchmarked and served. Getting there starts with knowing what the agent actually is.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a Capability Card?
&lt;/h3&gt;

&lt;p&gt;We start at the codebase, because that's where the ground truth lives. Before Overmind touches a single trace, it reads the code the agent runs on and compiles a Capability Card: the tools the agent can call and their real contracts, its input and output schema, the prompts, and the expected output. That's the agent at its raw logical level, taken from the source rather than inferred from behaviour. Skip it, as most tooling does, and a trace is just a behaviour with nothing behind it, leaving you to reverse-engineer intent from whatever the trace happened to capture.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What Overmind reads from the code&lt;/th&gt;
&lt;th&gt;What it pins down&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;The tools the agent can call, with their real contracts&lt;/td&gt;
&lt;td&gt;The full set of actions available to it, not only the ones a trace happened to capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input and output schema&lt;/td&gt;
&lt;td&gt;The shape the agent is written to accept and return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The prompts&lt;/td&gt;
&lt;td&gt;The instructions in the source, not a reconstruction from behaviour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The expected output&lt;/td&gt;
&lt;td&gt;The result the code is written to expect&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Then we bring in the data and the traces. Every record of what the agent did is a context source: production traces, dataset rows, eval scores, all built into the same shape. For a dataset, that layer is the spine: format, schema, per-column distribution, label space, cohorts, hygiene problems, derived straight from the data. If you have not got traces flowing yet, &lt;a href="https://www.overmindlab.ai/research/so-you-have-observability-now-what?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;start there&lt;/a&gt;, and if the word "agent" is doing a lot of undefined work in your org, &lt;a href="https://www.overmindlab.ai/research/anatomy-of-an-ai-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;we pulled it apart here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you know whether your data covers your agent?
&lt;/h3&gt;

&lt;p&gt;The codebase context is what makes that data useful. With the Capability Card in hand, Overmind knows the full surface of the agent and can measure the data against it: how much of that surface the data actually covers, which behaviours are well represented, which tools never appear, and which paths the agent takes in production that no dataset row touches. A pile of traces tells you what happened. The codebase tells you what could happen, and the gap between the two is the thing you need to see. That delta is what decides whether the data is good enough to evaluate against or train on, or whether you're about to write evals for a fraction of the agent or fine-tune on the same narrow slice of its total behaviours.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2a5hclmt21j4bhep7o8p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2a5hclmt21j4bhep7o8p.png" alt="The Overmind console showing the PR Approval Agent (StampHog), discovered from the posthog/posthog repository. The page lists the agent's prompt, its ci, github and security tags, and the seven models it calls, including Claude Sonnet 4.6, GPT 4.1 Mini, o3, Gemini 2.5 Flash Lite and Claude Haiku 4.5. A score panel reads 50 percent, with 1 of 2 runs traced and a badge that says eval metrics not approved. Below, a flow graph links Input, Agent and Read nodes to conversation_summarizer, title_generator, session_summarizer and llm_traces_summarizer, ending at Output." width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Overmind's analysis of a PostHog Agent. The same view in text:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What the console shows&lt;/th&gt;
&lt;th&gt;For the PostHog agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agent&lt;/td&gt;
&lt;td&gt;PR Approval Agent (StampHog)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discovered from&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;posthog/posthog&lt;/code&gt; repository&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tags&lt;/td&gt;
&lt;td&gt;ci, github, security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Models it calls&lt;/td&gt;
&lt;td&gt;Seven, including Claude Sonnet 4.6, GPT 4.1 Mini, o3, Gemini 2.5 Flash Lite and Claude Haiku 4.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Score&lt;/td&gt;
&lt;td&gt;50%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trace coverage&lt;/td&gt;
&lt;td&gt;1 of 2 runs traced&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eval status&lt;/td&gt;
&lt;td&gt;Eval metrics not approved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flow graph&lt;/td&gt;
&lt;td&gt;Input, Agent and Read into conversation_summarizer, title_generator, session_summarizer and llm_traces_summarizer, ending at Output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Nothing in that card was filled in by hand. Seven models, three tags and a flow graph, read out of a public repository, with the coverage number sitting next to it so you can see how much of that surface anyone has actually watched run.&lt;/p&gt;

&lt;p&gt;Codebase tied to data tied to traces is the working surface for everything else we do. The data preprocessing reads from it, the evals are written against it, the fine-tuning sets are curated out of it, and the agent optimisation is steered by it. That's the line between a tool that can tell you a behaviour was wrong and one that can tell you why, as well as how to fix it.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what do you know about your agent?
&lt;/h2&gt;

&lt;p&gt;So much, maybe too much. But not in a useful way.&lt;/p&gt;

&lt;p&gt;That is what Overmind is built for: not more raw evidence, but the relationships between it. Code, traces, datasets, evals, and training runs joined into one grounded view of the agent, so you can see what is really happening and where the gaps are.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why can't I tell why my AI agent did something?
&lt;/h3&gt;

&lt;p&gt;Because the evidence is split across systems that never meet. Traces live in your observability tool, scores in your eval suite, rows in your dataset, and the agent's actual definition in your repository. Each one answers a different question, and no single one of them answers "why".&lt;/p&gt;

&lt;h3&gt;
  
  
  Are production traces enough to debug an agent?
&lt;/h3&gt;

&lt;p&gt;No. A trace tells you what happened, not what could have happened. Without the codebase you cannot tell whether a behaviour was one of many available paths or the only one, which tools the agent never reached for, or which parts of its surface nobody has ever watched run.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is agent coverage analysis?
&lt;/h3&gt;

&lt;p&gt;Measuring your traces and dataset rows against the agent's full capability surface, taken from the code. It tells you which behaviours are well represented, which tools never appear, and which production paths no dataset row touches. That delta decides whether your data is fit to evaluate against or train on.&lt;/p&gt;

&lt;h3&gt;
  
  
  How is this different from an observability tool?
&lt;/h3&gt;

&lt;p&gt;Observability records behaviour. Joining that record to the codebase, the datasets and the eval scores is what turns a wrong behaviour into an explained one, and then into a fix you can ship.&lt;/p&gt;

&lt;p&gt;Tyler Edwards is Co-Founder and CEO of Overmind. He writes about agent infrastructure, fine-tuning, and what it takes to ship AI that actually improves in production. &lt;a href="https://www.linkedin.com/in/tyler-edwards-b393a5352/" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>observability</category>
      <category>agents</category>
    </item>
    <item>
      <title>Unwrapping the wrappers: who actually trains their own models, and why</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 29 Sep 2026 10:54:39 +0000</pubDate>
      <link>https://dev.to/tyler007/unwrapping-the-wrappers-who-actually-trains-their-own-models-and-why-3mh6</link>
      <guid>https://dev.to/tyler007/unwrapping-the-wrappers-who-actually-trains-their-own-models-and-why-3mh6</guid>
      <description>&lt;p&gt;Cursor, Intercom, Replit and Perplexity all train specialist models on their own production data. Each picked one narrow, high-volume task, trained on traffic no competitor can access, and shipped a model that matches or beats frontier APIs on that job at lower latency and cost. None of them tried to out-build OpenAI.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/who-trains-their-own-models?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Application layer companies, often labelled as 'ChatGPT wrappers', are starting to train their own models. Specialist models, post-trained or fine-tuned on a dataset their competitors cannot touch: their own production traffic.&lt;/p&gt;

&lt;p&gt;Four recent examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cursor trained Composer, the model inside its coding agent, with online RL on production agent traces. Delivering frontier-level coding at a fraction of the latency and cost.&lt;/li&gt;
&lt;li&gt;Intercom trained Fin Apex, a customer-service model post-trained on billions of support interactions. It bought them control of the resolution-rate metric at scale.&lt;/li&gt;
&lt;li&gt;Replit trained a 7B code-repair model, a fine-tune of DeepSeek-Coder-Instruct-v1.5. It bought them a fast, narrow specialist trained on IDE data nobody else has.&lt;/li&gt;
&lt;li&gt;Perplexity trained Sonar, its search-answer model, a fine-tune of Llama 3.3 70B served on Cerebras hardware. It bought them sub-second, citation-heavy answers at search scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Which companies train their own models?
&lt;/h2&gt;

&lt;p&gt;The same four, with the base model, the method and the measured result in one view.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Base model&lt;/th&gt;
&lt;th&gt;How they trained it&lt;/th&gt;
&lt;th&gt;Measured result&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;Composer&lt;/td&gt;
&lt;td&gt;Not disclosed, a mixture-of-experts architecture&lt;/td&gt;
&lt;td&gt;Online RL on production agent traces, inside a harness mirroring Cursor's real tool space; new checkpoints ship several times a day&lt;/td&gt;
&lt;td&gt;Generates tokens several times faster than comparable frontier models, landing close to the top tier on internal coding benchmarks&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://cursor.com/blog/composer" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;, &lt;a href="https://arxiv.org/html/2603.24477v1" rel="noopener noreferrer"&gt;Composer 2 report&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intercom&lt;/td&gt;
&lt;td&gt;Fin Apex 1.0&lt;/td&gt;
&lt;td&gt;Not disclosed&lt;/td&gt;
&lt;td&gt;Post-trained on the company's own support interaction data, billions of interactions&lt;/td&gt;
&lt;td&gt;73.1% benchmark resolution rate against 71.1% for GPT-5.4 and Claude Opus 4.5; one enterprise customer went from 68% to 75% overnight&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.intercom.com/blog/announcing-fin-apex-the-age-of-vertical-models-is-here/" rel="noopener noreferrer"&gt;Intercom&lt;/a&gt;, &lt;a href="https://venturebeat.com/technology/intercoms-new-post-trained-fin-apex-1-0-beats-gpt-5-4-and-claude-sonnet-4-6" rel="noopener noreferrer"&gt;VentureBeat&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Replit&lt;/td&gt;
&lt;td&gt;7B code-repair model&lt;/td&gt;
&lt;td&gt;DeepSeek-Coder-Instruct-v1.5 (7B)&lt;/td&gt;
&lt;td&gt;Fine-tuned on IDE telemetry, scoped to roughly 20 diagnostic categories&lt;/td&gt;
&lt;td&gt;Matched or beat GPT-4 and Claude 3 on real-world fixes inside that use case&lt;/td&gt;
&lt;td&gt;&lt;a href="https://replit.com/blog/code-repair" rel="noopener noreferrer"&gt;Replit&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perplexity&lt;/td&gt;
&lt;td&gt;Sonar&lt;/td&gt;
&lt;td&gt;Llama 3.3 70B&lt;/td&gt;
&lt;td&gt;Fine-tuned for factual grounding, citation quality and readability, served on Cerebras wafer-scale hardware&lt;/td&gt;
&lt;td&gt;Roughly 1,200 tokens per second, and matched or beat larger frontier models on user satisfaction in Perplexity's own A/B tests&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.perplexity.ai/hub/blog/meet-new-sonar" rel="noopener noreferrer"&gt;Perplexity&lt;/a&gt;, &lt;a href="https://www.cerebras.ai/press-release/cerebras-powers-perplexity-sonar-with-industrys-fastest-ai-inference" rel="noopener noreferrer"&gt;Cerebras&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Where we sit, for the record. Overmind is the model training platform for AI teams, and the pattern running through these four case studies is the one it is built for. The case studies themselves are other people's work, cited at source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cursor: reinforcement learning on live agent traces
&lt;/h2&gt;

&lt;p&gt;Cursor didn't fine-tune once and ship. The Composer family of models run on real-time RL: model checkpoints go to production, real user interactions become the reward signal, and an improved checkpoint ships several times a day. The model is a mixture-of-experts architecture trained inside a harness built to mirror Cursor's actual tool space, including file edits, semantic search, and terminal commands. The reward signal reflects how developers really use the product rather than a synthetic benchmark, according to &lt;a href="https://cursor.com/blog/composer" rel="noopener noreferrer"&gt;Cursor's technical post on Composer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cursor reports Composer generates tokens several times faster than comparable frontier models while landing close to the top tier on internal coding benchmarks, a tradeoff explored in more depth by the &lt;a href="https://arxiv.org/html/2603.24477v1" rel="noopener noreferrer"&gt;Composer 2 technical report&lt;/a&gt;. Nobody else has Cursor's trace data, which means nobody else can train Cursor's model, even with an identical base checkpoint and an identical training recipe.&lt;/p&gt;

&lt;p&gt;What it bought them: coding performance competitive with larger models, at preferential latency and cost, plus a moat provided by their own proprietary data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Intercom: post-training on the metric the product is sold on
&lt;/h2&gt;

&lt;p&gt;Fin launched in 2023 on top of GPT-4. Fin 2 moved to Claude in late 2024. Then Intercom's roughly 60-person AI research group, led by Fergal Reid, built Fin Apex 1.0, a model post-trained on the company's own support interaction data, as described in the &lt;a href="https://www.intercom.com/blog/announcing-fin-apex-the-age-of-vertical-models-is-here/" rel="noopener noreferrer"&gt;Fin Apex launch post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One large enterprise customer saw its resolution rate jump from 68% to 75% overnight after the switch to Apex, a 22% cut in unresolved conversations according to Intercom's own numbers. Independent coverage from &lt;a href="https://venturebeat.com/technology/intercoms-new-post-trained-fin-apex-1-0-beats-gpt-5-4-and-claude-sonnet-4-6" rel="noopener noreferrer"&gt;VentureBeat&lt;/a&gt; puts Apex's benchmark resolution rate at 73.1%, against 71.1% for both GPT-5.4 and Claude Opus 4.5.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Benchmark resolution rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fin Apex 1.0&lt;/td&gt;
&lt;td&gt;73.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4&lt;/td&gt;
&lt;td&gt;71.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 4.5&lt;/td&gt;
&lt;td&gt;71.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Intercom's own model documentation breaks the pipeline into separate retrieval, reranking, and generation models rather than one monolithic system, detailed on the &lt;a href="https://fin.ai/cx-models" rel="noopener noreferrer"&gt;Fin CX models page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Worth noting: Intercom hasn't abandoned rented models. Apex is layered on top of retrieval and routing components, and the company still uses third-party models elsewhere. This architecture is common as companies balance performance, latency and cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replit: a narrow 7B specialist trained on IDE telemetry
&lt;/h2&gt;

&lt;p&gt;Replit's bet was the opposite of "bigger is better." The team fine-tuned a 7B open-weights model, DeepSeek-Coder-Instruct-v1.5, chosen after testing several code-focused base models and documented in its &lt;a href="https://replit.com/blog/code-repair" rel="noopener noreferrer"&gt;code-repair write-up&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The model targets a specific use case, roughly the 20 diagnostic categories responsible for the majority of everyday coding errors, and the fine-tuned 7B checkpoint matched or beat GPT-4 and Claude 3 on real-world fixes in that use case. Small &lt;a href="https://huggingface.co/deepseek-ai/deepseek-coder-7b-instruct-v1.5" rel="noopener noreferrer"&gt;open source models&lt;/a&gt; can beat much larger general-purpose models at many tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perplexity: search-optimised inference at 1,200 tokens per second
&lt;/h2&gt;

&lt;p&gt;Perplexity fine-tuned Meta's Llama 3.3 70B into Sonar, tuned specifically for factual grounding, citation quality, and readability in its default search mode, as the company explains in its &lt;a href="https://www.perplexity.ai/hub/blog/meet-new-sonar" rel="noopener noreferrer"&gt;Sonar launch post&lt;/a&gt;. Sonar runs on Cerebras wafer-scale inference hardware, which Perplexity and &lt;a href="https://www.cerebras.ai/press-release/cerebras-powers-perplexity-sonar-with-industrys-fastest-ai-inference" rel="noopener noreferrer"&gt;Cerebras jointly announced&lt;/a&gt; pushes throughput to roughly 1,200 tokens per second, an order of magnitude faster than comparable models on conventional GPU inference.&lt;/p&gt;

&lt;p&gt;In Perplexity's own A/B testing, Sonar matched or beat larger frontier models on user satisfaction inside search, while running far cheaper and faster than calling those models directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why build a specialist model instead of prompting a frontier one?
&lt;/h2&gt;

&lt;p&gt;Calling a frontier model for every request is sometimes the equivalent of running a data centre to toast bread. It works, but it's the wrong tool for a narrow, high-volume, well-defined job. Across these four companies, three conditions kept showing up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A narrow task, not a general one. Small specialised models are excellent at one narrow task. Don't ask them to be broadly intelligent.&lt;/li&gt;
&lt;li&gt;Proprietary production data no competitor can access. Cursor has Cursor's traces. Intercom has Intercom's support conversations. Your production traffic is the one dataset nobody can buy.&lt;/li&gt;
&lt;li&gt;Enough volume that per-token latency and cost actually move the P&amp;amp;L. Fine-tuning a model can be expensive. It only pays off once inference volume is high enough that shaving cost per call compounds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these companies want to out-build OpenAI or Anthropic on general intelligence. Each trained a model that wins one specific task, using the one dataset it uniquely owned.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the traces-to-training loop look like?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftuc4hrt0ff13e2l248hp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftuc4hrt0ff13e2l248hp.png" alt="Flywheel diagram titled " width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;What it produces&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Production runs&lt;/td&gt;
&lt;td&gt;Traces of what the agent actually did&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Labelled dataset&lt;/td&gt;
&lt;td&gt;Those traces, curated and labelled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fine-tuned model&lt;/td&gt;
&lt;td&gt;A specialist trained on that dataset&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redeploy&lt;/td&gt;
&lt;td&gt;The specialist back in production, generating the next round of traces&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Capture production traces, turn them into a labelled dataset, train a model on it, and ship that model back into production. That's where the application layer is going. We break the middle two stages down in &lt;a href="https://www.overmindlab.ai/research/traces-to-training-dataset?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how do you turn traces into a training dataset&lt;/a&gt; and &lt;a href="https://www.overmindlab.ai/research/how-to-train-your-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how to train your agent&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do companies that train their own models still use frontier APIs?
&lt;/h3&gt;

&lt;p&gt;Usually yes, alongside. Intercom hasn't abandoned rented models. Fin Apex sits on top of retrieval and routing components, and the company still uses third-party models elsewhere. A mix of owned and rented models is the common architecture, chosen to balance performance, latency and cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need a large model to beat a frontier one?
&lt;/h3&gt;

&lt;p&gt;Not on a narrow task. Replit's 7B fine-tune of DeepSeek-Coder-Instruct-v1.5 matched or beat GPT-4 and Claude 3 on real-world fixes inside its target diagnostic categories. Perplexity's Sonar, a 70B fine-tune, matched or beat larger frontier models on user satisfaction inside search.&lt;/p&gt;

&lt;h3&gt;
  
  
  What data do you need to train a specialist model?
&lt;/h3&gt;

&lt;p&gt;Your own production traffic. Cursor used live agent traces, Intercom used its support interactions, Replit used IDE telemetry, and Perplexity tuned against its own search behaviour. The common ingredient is a dataset the product generates itself, which is the one thing a competitor cannot buy.&lt;/p&gt;

&lt;h3&gt;
  
  
  When does training your own model not pay off?
&lt;/h3&gt;

&lt;p&gt;When any of the three conditions is missing. A broad task rather than a narrow one, no proprietary data sitting behind it, or volume too low for per-call savings to compound. Fine-tuning costs money, so it only pays back once inference volume is high enough.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>finetuning</category>
    </item>
    <item>
      <title>The anatomy of an AI agent: model, loop, tools, memory</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Wed, 23 Sep 2026 11:50:46 +0000</pubDate>
      <link>https://dev.to/tyler007/the-anatomy-of-an-ai-agent-model-loop-tools-memory-207g</link>
      <guid>https://dev.to/tyler007/the-anatomy-of-an-ai-agent-model-loop-tools-memory-207g</guid>
      <description>&lt;p&gt;An AI agent is a language model wrapped in a loop that plans, calls tools and iterates toward a goal across many steps. Five components make one up. A model that picks the next action, a harness that runs the loop, tools that reach outside the model, memory that carries state, and a trajectory, the record of the whole run.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/anatomy-of-an-ai-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An agent has a model, loop, tools and memory.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In 2024, most AI products were chatbots. A single LLM inference call, one prompt in, one completion out. In 2026, the default architecture is an &lt;strong&gt;AI agent&lt;/strong&gt;, an agentic system that plans, calls tools, and iterates toward a goal across many steps.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Chatbot (the 2024 default)&lt;/th&gt;
&lt;th&gt;AI agent (the 2026 default)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model calls per task&lt;/td&gt;
&lt;td&gt;One&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shape&lt;/td&gt;
&lt;td&gt;One prompt in, one completion out&lt;/td&gt;
&lt;td&gt;Plans, acts, observes, repeats&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tools&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;APIs, databases, code execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Execution path&lt;/td&gt;
&lt;td&gt;A single step&lt;/td&gt;
&lt;td&gt;Varies run to run, non-deterministic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What you get back&lt;/td&gt;
&lt;td&gt;The first model response&lt;/td&gt;
&lt;td&gt;An outcome, plus a trajectory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Instead of returning the first model response, teams wrap the LLM in an &lt;strong&gt;agent harness&lt;/strong&gt;, expose &lt;strong&gt;tool calling&lt;/strong&gt; (APIs, databases, code execution), and let the system work toward an objective. Frameworks such as LangChain, Agno, CrewAI, and the OpenAI Agents SDK exist to make it easier to build the harness.&lt;/p&gt;

&lt;p&gt;This article decomposes an AI agent into its core components. We define each part of the &lt;strong&gt;AI harness&lt;/strong&gt; and walk through one complete agent run. Worth stating where we sit. Overmind is the model training platform for AI teams, and the trajectory, component five below, is the raw material it works from.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the five components of an AI agent?
&lt;/h2&gt;

&lt;p&gt;Strip an agentic system down and you get five components. Four you assemble and the fifth is what they produce.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model.&lt;/strong&gt; Selects the next action given goal and state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Harness.&lt;/strong&gt; Runs the loop of reason, act, observe, repeat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools.&lt;/strong&gt; How the agent interacts with external systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory.&lt;/strong&gt; How the agent persists and retrieves state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trajectory.&lt;/strong&gt; The record of one complete agent run.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Assembled or produced&lt;/th&gt;
&lt;th&gt;How you change it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;Selects the next action given goal and state&lt;/td&gt;
&lt;td&gt;Assembled&lt;/td&gt;
&lt;td&gt;Swap it, or train and fine-tune it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Harness&lt;/td&gt;
&lt;td&gt;Runs the loop of reason, act, observe, repeat&lt;/td&gt;
&lt;td&gt;Assembled&lt;/td&gt;
&lt;td&gt;Rewrite prompts, context rules and stop conditions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tools&lt;/td&gt;
&lt;td&gt;How the agent interacts with external systems&lt;/td&gt;
&lt;td&gt;Assembled&lt;/td&gt;
&lt;td&gt;Add, remove or redescribe tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;How the agent persists and retrieves state&lt;/td&gt;
&lt;td&gt;Assembled&lt;/td&gt;
&lt;td&gt;Change what stays in the context window, change retrieval&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trajectory&lt;/td&gt;
&lt;td&gt;The record of one complete agent run&lt;/td&gt;
&lt;td&gt;Produced by the other four&lt;/td&gt;
&lt;td&gt;Not directly. It changes when the other four change&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  What is the model in an AI agent?
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;language model&lt;/strong&gt; is the only component that reasons, and the only one you can train or fine-tune. Conditioned on the goal and the observations so far, it chooses the next action. Most teams start on a &lt;strong&gt;frontier model API&lt;/strong&gt; and some migrate to an &lt;strong&gt;open-weights model&lt;/strong&gt; they host themselves or run through a third-party provider.&lt;/p&gt;

&lt;p&gt;More on that trade-off in &lt;a href="https://www.overmindlab.ai/research/open-weights-vs-frontier-apis?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;open-weights LLMs vs frontier APIs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is an agent harness?
&lt;/h3&gt;

&lt;p&gt;The harness assembles what the model sees, reads the action it picks, calls the matching tool, and feeds the result back in. It also decides everything the model does not. Which tools exist and how they are described, what stays in the context window, what happens when a tool call fails or comes back malformed, and when to stop, whether that is the goal being met, a step limit, or an error.&lt;/p&gt;

&lt;p&gt;This is what agent frameworks give you. It is the part of an agent you can change immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is tool calling?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tools&lt;/strong&gt; are how the agent reaches outside the model, whether that is querying a database, calling an HTTP API, running code, or sending an email. OpenAI shipped &lt;strong&gt;function calling&lt;/strong&gt; in June 2023, letting the model emit a structured request to invoke a function instead of prose. Anthropic open-sourced the &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; in November 2024 to standardise how agents connect to those tools, and now everything is an MCP server.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is agent memory?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Memory&lt;/strong&gt; is how the agent carries state across loop iterations. Short-term memory is the &lt;strong&gt;context window&lt;/strong&gt;, the running transcript of the goal, prior steps, and tool outputs. Longer-term memory is &lt;strong&gt;retrieval&lt;/strong&gt;, pulling documents or past runs from outside the window (often via RAG or a vector store). Without memory, the agent loses its way.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is an agent trajectory?
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;trajectory&lt;/strong&gt;, also called the &lt;strong&gt;agent trace&lt;/strong&gt;, is the full ordered record of a single run. The goal, every LLM call, every tool invocation, every observation, and the final outcome. It is the agent's stack trace. You do not build it; the other four components produce it. It is also the only unit of analysis at which you can honestly say whether the agent succeeded. Capture it.&lt;/p&gt;

&lt;h2&gt;
  
  
  One agent run, start to finish
&lt;/h2&gt;

&lt;p&gt;Watch a support agent handle a refund. The user goal enters, the agentic loop runs, an outcome exits.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user goal arrives. Refund this customer.&lt;/li&gt;
&lt;li&gt;The model calls &lt;code&gt;get_order(id)&lt;/code&gt;; the tool returns the order details.&lt;/li&gt;
&lt;li&gt;The model checks the order against the refund policy.&lt;/li&gt;
&lt;li&gt;The model calls &lt;code&gt;issue_refund(amount)&lt;/code&gt;; the tool returns a confirmation.&lt;/li&gt;
&lt;li&gt;The model reports back. Refund done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Four model calls, two tool calls, one outcome. That entire sequence is the &lt;strong&gt;agent trajectory&lt;/strong&gt;. Change the goal, the tool responses, or the model's sampling behaviour and the next run takes a different path. Agents are &lt;strong&gt;non-deterministic&lt;/strong&gt;. The same prompt does not guarantee the same execution path.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does each layer of the AI stack actually control?
&lt;/h2&gt;

&lt;p&gt;Each layer of a typical AI stack controls an aspect of the agent. Almost none control the whole run.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What it sees&lt;/th&gt;
&lt;th&gt;Can it update the model?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LLM gateway&lt;/td&gt;
&lt;td&gt;One request and response at a time&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent observability&lt;/td&gt;
&lt;td&gt;The full trace, after the fact&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent evals&lt;/td&gt;
&lt;td&gt;A score for the run&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Closed training loop&lt;/td&gt;
&lt;td&gt;Judged trajectories fed back into training&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three of the four tell you what happened. Only the last one changes what happens next time. More on that gap in &lt;a href="https://www.overmindlab.ai/research/so-you-have-observability-now-what?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;so, you have observability. Now what?&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you improve an AI agent?
&lt;/h2&gt;

&lt;p&gt;Improving an AI agent means operating at the level of the &lt;strong&gt;trajectory&lt;/strong&gt;, not the individual LLM call. Capture the full run, judge it against your definition of success, and feed judged trajectories back into the system.&lt;/p&gt;

&lt;p&gt;There are two distinct ways to improve an agent.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Improve the harness.&lt;/strong&gt; Rewrite prompts, tighten tool definitions, change the context rules and stop conditions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improve the model.&lt;/strong&gt; Retrain it on the failure modes in the traces, then benchmark the result against the model you serve today.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the loop Overmind is built to close.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ: agents, harnesses and trajectories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the difference between an AI agent and a chatbot?
&lt;/h3&gt;

&lt;p&gt;A chatbot is one model call. One prompt in, one completion out. An agent runs many model calls inside a loop, calls tools between them, and keeps going until the goal is met or it stops. The comparison table above sets the two side by side.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is an AI agent the same thing as a workflow?
&lt;/h3&gt;

&lt;p&gt;No. In a workflow, you decide the order of steps in advance. In an agent, the model decides the next action at each turn given the goal and what it has observed so far. That is why two runs of the same agent can take different paths and a workflow cannot.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why are AI agents non-deterministic?
&lt;/h3&gt;

&lt;p&gt;Because the model chooses each action, and its sampling behaviour, the goal, and the tool responses all vary. Change any of them and the next run takes a different path. This is why a single run tells you very little and the trajectory is the unit you have to judge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need an agent framework to build an AI agent?
&lt;/h3&gt;

&lt;p&gt;No. Frameworks such as LangChain, Agno, CrewAI, and the OpenAI Agents SDK exist to make the harness easier to build, not to make it possible. The loop is reason, act, observe, repeat, and plenty of teams write their own.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which part of an agent should you change first when it fails?
&lt;/h3&gt;

&lt;p&gt;Start with the harness, because it is the part you can change immediately. Prompts, tool descriptions, context rules, stop conditions. Go to the model when the same failure keeps showing up across trajectories after the harness is clean.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>agents</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Think smaller: why specialist SLMs beat frontier models in production</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 22 Sep 2026 11:46:42 +0000</pubDate>
      <link>https://dev.to/tyler007/think-smaller-why-specialist-slms-beat-frontier-models-in-production-17gl</link>
      <guid>https://dev.to/tyler007/think-smaller-why-specialist-slms-beat-frontier-models-in-production-17gl</guid>
      <description>&lt;p&gt;Most agent tasks do not need a frontier model. The subtasks inside a production agent are largely repetitive and narrowly scoped, and a small language model of 1B to 8B parameters, fine-tuned on your production data, beats a frontier model on cost, latency and accuracy for that job. Serving a 7B runs roughly 10 to 30x cheaper than a 70B+ model.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/think-smaller?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Frontier models are overkill for most agent tasks. Specialised small language models beat them on cost, latency, and accuracy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The AI industry has spent three years in an arms race measured in billions of parameters, and somewhere along the way everyone agreed that the answer to every problem was a bigger model.&lt;/p&gt;

&lt;p&gt;Bigger clusters, bigger bills, bigger teams to manage the complexity. The implicit assumption is that general intelligence at scale is the end state and everything else is just waiting to catch up.&lt;/p&gt;

&lt;p&gt;Which is obviously great for the foundational teams pushing this agenda, were it not for the fact that the overwhelming majority of problems we throw AI at don't need otherworldly intelligence and infinite compute to solve.&lt;/p&gt;

&lt;p&gt;Llama, Phi, Qwen, Mistral: models that would have been considered frontier-grade two years ago are now freely available, fine-tuneable, and deployable on hardware you control. The performance gap that once justified the cost and lock-in of proprietary giants is now much slimmer, so the question is no longer "which frontier model should we use?" but rather "do we need a frontier model at all?"&lt;/p&gt;

&lt;p&gt;For most tasks, the honest answer is no.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is a frontier model overkill for most agent tasks?
&lt;/h2&gt;

&lt;p&gt;Using a frontier model on every task is like using a flamethrower to light a candle. Technically works, but your eyebrows and your budget are gone.&lt;/p&gt;

&lt;p&gt;The majority of subtasks in a deployed agentic system are repetitive, scoped, and non-conversational. Extract this field, classify this ticket, format this output, none of these require a model trained on the sum of human knowledge. They require a model that is fast, predictable, cheap to run, and tuned to behave exactly as expected in a well-defined context.&lt;/p&gt;

&lt;p&gt;In fact, on well-defined, repetitive tasks, specialised SLMs do not just cost a fraction of what frontier models cost, they outperform them. A model built specifically for one thing, trained on real examples of that thing, is better at that thing than a model trained to do everything.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which small models have beaten frontier models on benchmarks?
&lt;/h3&gt;

&lt;p&gt;And this holds even as the tasks get harder. Qwen2.5-Math-7B, running Microsoft's &lt;a href="https://arxiv.org/abs/2501.04519" rel="noopener noreferrer"&gt;rStar-Math&lt;/a&gt; reasoning framework, scores 90% on the MATH benchmark, beating OpenAI's o1-preview. John Snow Labs' &lt;a href="https://www.johnsnowlabs.com/evaluating-john-snow-labs-medical-llms-against-gpt4o-by-expert-review/" rel="noopener noreferrer"&gt;MedS&lt;/a&gt;, an 8B medical model, was preferred over GPT-4o by practising physicians in blind evaluation across every dimension: factuality, clinical relevance, and conciseness. &lt;a href="https://arxiv.org/abs/2402.09391" rel="noopener noreferrer"&gt;LlaSMol&lt;/a&gt;, a 7B chemistry model, achieves 93% exact match on molecular prediction tasks where GPT-4 scores under 5%. On &lt;a href="https://gorilla.cs.berkeley.edu/leaderboard.html" rel="noopener noreferrer"&gt;Berkeley's function-calling leaderboard&lt;/a&gt;, an 8B model held the top spot at the time of writing, beating GPT-4o and Claude 3.5 Sonnet.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Specialist model&lt;/th&gt;
&lt;th&gt;Params&lt;/th&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Model it beats&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Qwen2.5-Math-7B with rStar-Math&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;MATH&lt;/td&gt;
&lt;td&gt;90%&lt;/td&gt;
&lt;td&gt;OpenAI o1-preview&lt;/td&gt;
&lt;td&gt;&lt;a href="https://arxiv.org/abs/2501.04519" rel="noopener noreferrer"&gt;rStar-Math, Microsoft&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;John Snow Labs MedS&lt;/td&gt;
&lt;td&gt;8B&lt;/td&gt;
&lt;td&gt;Blind physician review on factuality, clinical relevance and conciseness&lt;/td&gt;
&lt;td&gt;Preferred over GPT-4o on every dimension&lt;/td&gt;
&lt;td&gt;GPT-4o&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.johnsnowlabs.com/evaluating-john-snow-labs-medical-llms-against-gpt4o-by-expert-review/" rel="noopener noreferrer"&gt;John Snow Labs expert review&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LlaSMol&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;Molecular prediction, exact match&lt;/td&gt;
&lt;td&gt;93%&lt;/td&gt;
&lt;td&gt;GPT-4, under 5%&lt;/td&gt;
&lt;td&gt;&lt;a href="https://arxiv.org/abs/2402.09391" rel="noopener noreferrer"&gt;LlaSMol, OSU NLP&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top open function-calling specialist&lt;/td&gt;
&lt;td&gt;8B&lt;/td&gt;
&lt;td&gt;Berkeley function-calling leaderboard&lt;/td&gt;
&lt;td&gt;Top of the leaderboard at the time of writing&lt;/td&gt;
&lt;td&gt;GPT-4o and Claude 3.5 Sonnet&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gorilla.cs.berkeley.edu/leaderboard.html" rel="noopener noreferrer"&gt;Berkeley function-calling leaderboard&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What does open-weights actually unlock for production AI?
&lt;/h2&gt;

&lt;p&gt;The capability trajectory of small open models has been striking, yet the capability of these models is not the most exciting piece, what open weights actually unlock is control.&lt;/p&gt;

&lt;p&gt;A frontier model you do not own, cannot audit, and cannot modify is a dependency, not infrastructure and certainly not your 'technical moat'. When it changes, your system changes. When it halts, your system halts. When the provider decides to deprecate a version or reprice the API, you absorb it. The case for specialised small models is not just that they are better. It is that they are yours.&lt;/p&gt;

&lt;p&gt;The physical dimension matters too. Frontier models run in data centres, behind APIs, with latency measured in hundreds of milliseconds and costs that compound with every token. In an agentic system where a single workflow might invoke a model thirty or forty times, that compounds fast. Serving a 7B SLM is roughly 10 to 30x cheaper in latency, energy, and compute than serving a 70 to 175B LLM. Small models can run on-premise, inside the security perimeter, on the device generating the data. A fraud detection model running locally, fine-tuned on that institution's own transaction patterns, makes faster decisions with no external dependency and no data crossing a network boundary. The performance is better, the risk profile and compliance conversation are entirely different.&lt;/p&gt;

&lt;p&gt;Even more exciting still (if you can believe it) is that a model small enough to run on a phone can be fine-tuned not just to a specific workflow but to a specific person. An agent that lives on your device and learns from how you actually work is a categorically different thing to one calling to a data centre every time you ask it something. We are moving from general intelligence in the cloud to personal intelligence in your pocket. That shift is bigger than most people are currently treating it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which fits your job, a frontier API or a specialist SLM?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Frontier model behind an API&lt;/th&gt;
&lt;th&gt;Specialist SLM you own&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Best at&lt;/td&gt;
&lt;td&gt;Open-ended reasoning and conversation&lt;/td&gt;
&lt;td&gt;Repetitive, scoped, non-conversational subtasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serving cost&lt;/td&gt;
&lt;td&gt;Compounds with every token, and one workflow may invoke the model thirty or forty times&lt;/td&gt;
&lt;td&gt;Roughly 10 to 30x cheaper at 7B than at 70 to 175B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Hundreds of milliseconds, over the network&lt;/td&gt;
&lt;td&gt;No network hop, runs where the data is&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where it runs&lt;/td&gt;
&lt;td&gt;A data centre, behind an API&lt;/td&gt;
&lt;td&gt;On-premise, inside the security perimeter, or on the device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;Version deprecations and repricing land on you&lt;/td&gt;
&lt;td&gt;Yours to audit, modify and version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure surface&lt;/td&gt;
&lt;td&gt;Vast and constantly shifting, answered with hand-written guardrails&lt;/td&gt;
&lt;td&gt;Narrow scope, tighter output distribution, predictable failures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup effort&lt;/td&gt;
&lt;td&gt;Write a prompt, get an answer, iterate, ship&lt;/td&gt;
&lt;td&gt;Instrumentation, curation, fine-tuning jobs, evals, versioning, a deployment you can swap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Production is the best training data you have
&lt;/h2&gt;

&lt;p&gt;Every invocation of a model in an agentic workflow is a natural source of high-quality training data. The prompts are well-defined, the expected outputs are narrow, and whether the workflow succeeded or failed is a clean signal. A listener at the model call interface, logging inputs, outputs, and downstream outcomes, accumulates exactly the dataset you need to continuously fine-tune a specialist model for that task, as the system runs. The production environment is generating its own improvement data in real time.&lt;/p&gt;

&lt;p&gt;This is where the SLM case becomes compelling beyond economics. You instrument the calls, cluster the patterns, fine-tune the specialists, and the system gets better with every run. What determines whether you actually close that loop is whether you have the infrastructure to capture it, label it, and act on it.&lt;/p&gt;

&lt;p&gt;That loop is what we build. Overmind turns your production traces into specialised models you own, automatically trained, benchmarked, and served.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why are specialist models easier to supervise?
&lt;/h3&gt;

&lt;p&gt;AI security has become a pretty bloated term, so stick with me here. The version of it that actually matters is not about firewalls or prompt injection. It is about knowing what your model is doing, and knowing when it is doing something it should not. Specialised models make that question answerable. When a model has a narrow, well-defined scope, you know what it should be doing, which means you know when it is doing something else. The output distribution is tighter, the failure modes are more predictable, and the feedback loop from production behaviour back to model improvement is shorter and more reliable.&lt;/p&gt;

&lt;p&gt;General models are a different problem entirely. The failure surface is vast, constantly shifting, and practically impossible to enumerate in advance. Guardrails are the industry's current answer, which is to say: a list of rules written by humans trying to statically account for an infinite and ever-changing set of ways a frontier model can go wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are small specialist models harder to train?
&lt;/h2&gt;

&lt;p&gt;Now I would love to just dunk on frontier models for the rest of this post, but there is a real counter-argument worth addressing. Calling an API is easy. You write a prompt, you get an answer, you iterate, you ship. The feedback loop is fast and the overhead is minimal. Building SLM-first infrastructure is a different proposition entirely.&lt;/p&gt;

&lt;p&gt;Fine-tuning a specialist model requires training data, which requires instrumentation, which requires someone to own it. You need pipelines to capture production traces, processes to curate and label them, and infrastructure to run fine-tuning jobs on a cadence that actually moves the needle. You need model versioning, evaluation harnesses, and a deployment setup that lets you swap models without taking down the system. None of this is impossibly hard, but none of it is free either.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters to us
&lt;/h2&gt;

&lt;p&gt;Everything in this post is, admittedly, not a neutral observation. &lt;a href="https://www.overmindlab.ai/about?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;We built Overmind&lt;/a&gt; on a specific bet: that the teams who win the next phase of agentic AI will be the ones who own their models, not the ones who rent the most powerful ones.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.overmindlab.ai/product?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;infrastructure to do that&lt;/a&gt;, fine-tuning pipelines, production observability, continuous improvement loops that do not require a dedicated ML team to run, that is what we are building. Not just because it is an interesting technical problem, but because without it the agentic future we are all so excited about, the one where AI runs diagnostics in hospitals or runs locally on your phone and adapts to you as an individual, simply cannot happen.&lt;/p&gt;

&lt;p&gt;So we are building that future.&lt;/p&gt;

&lt;p&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own, automatically trained, benchmarked, and served. If you are &lt;a href="https://docs.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;deploying agentic AI&lt;/a&gt;, get in touch.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Are small language models better than frontier models?
&lt;/h3&gt;

&lt;p&gt;For repetitive, scoped tasks they are. A model trained specifically for one job, on real examples of that job, outperforms a generalist on cost, latency and accuracy. Frontier models still win on open-ended reasoning and conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a specialist SLM?
&lt;/h3&gt;

&lt;p&gt;A small language model (typically 1B to 8B parameters) fine-tuned on a narrow task using your own production data. Llama, Phi, Qwen and Mistral are common open-weight bases.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much cheaper is a 7B SLM compared to a 70B+ LLM?
&lt;/h3&gt;

&lt;p&gt;Roughly 10 to 30x cheaper in latency, energy and compute when self-hosted, and the gap widens at high request volumes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I run a specialist SLM on-device?
&lt;/h3&gt;

&lt;p&gt;Yes. 7B and 8B models run on modern phones and laptops, which enables per-user fine-tuning, offline operation, and no data leaving the device.&lt;/p&gt;

&lt;h3&gt;
  
  
  What do you need in place before you can run specialist models in production?
&lt;/h3&gt;

&lt;p&gt;Four things. Instrumentation that captures production traces, a process to curate and label them, somewhere to run fine-tuning jobs on a regular cadence, and model versioning plus evaluation harnesses so you can swap a model without taking the system down. None of it is impossibly hard, but none of it is free either.&lt;/p&gt;




&lt;p&gt;Tyler Edwards is Co-Founder and CEO of Overmind. He writes about agent infrastructure, fine-tuning, and what it takes to ship AI that actually improves in production. &lt;a href="https://www.linkedin.com/in/tyler-edwards-b393a5352/" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Prompt engineering vs fine-tuning: which one do you need?</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 08 Sep 2026 17:01:47 +0000</pubDate>
      <link>https://dev.to/tyler007/prompt-engineering-vs-fine-tuning-which-one-do-you-need-9n</link>
      <guid>https://dev.to/tyler007/prompt-engineering-vs-fine-tuning-which-one-do-you-need-9n</guid>
      <description>&lt;p&gt;Every LLM team hits the same fork eventually, either keep steering the prompt or start training the model. Here's how to read the signals before you burn a sprint finding out the hard way.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/prompt-engineering-vs-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A perspective on when to tinker with the prompt, and when to train your own model.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most teams building LLM applications start the same way. They write a system prompt, test it against a few examples, and ship. &lt;a href="https://docs.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Prompt engineering&lt;/a&gt; is cheap, fast, and reversible. &lt;a href="https://docs.overmindlab.ai/fine-tuning/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Fine-tuning&lt;/a&gt; used to be something only teams with a training pipeline and a GPU budget could afford. Things have changed but the order of operations hasn't.&lt;/p&gt;

&lt;p&gt;Both techniques steer model behaviour. Prompting changes what you say to the model. Fine-tuning changes the model itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt engineering vs fine-tuning, side by side
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feo6nxunorwj0hlfs2tgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feo6nxunorwj0hlfs2tgc.png" alt="Table comparing prompt engineering and fine-tuning across seven rows. Prompt engineering changes the input, lives in the context window, costs seconds with no infrastructure, needs no data or a handful of examples, reverses instantly, survives a model swap, and plateaus quickly. Fine-tuning changes the model's weights, lives in the model, costs GPU time and a training pipeline, needs thousands of labelled runs, reverses only by retraining, does not survive a model swap, and has a high ceiling bounded by data quality." width="799" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Prompt engineering&lt;/th&gt;
&lt;th&gt;Fine-tuning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What changes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The input&lt;/td&gt;
&lt;td&gt;The model's weights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Where it lives&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The context window&lt;/td&gt;
&lt;td&gt;The model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Seconds, no infrastructure&lt;/td&gt;
&lt;td&gt;GPU time and a training pipeline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data needed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None, or a handful of examples&lt;/td&gt;
&lt;td&gt;Thousands of labelled runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reversibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;td&gt;Only by retraining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Survives a model swap&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ceiling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plateaus quickly&lt;/td&gt;
&lt;td&gt;High, bounded by data quality&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why prompting is the right first move
&lt;/h2&gt;

&lt;p&gt;Prompt engineering means editing what enters the context window. No adjustment of the model's weights. You're changing the input and reading the output.&lt;/p&gt;

&lt;p&gt;For a new agent, that's almost always the correct starting point. You learn what the model can already do before you spend anything on training. Most of the behaviour changes you want, prompting will give you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to tell which regime you're in
&lt;/h2&gt;

&lt;p&gt;This isn't a one-time decision so much as a loop. You stay in prompt-engineering mode until the eval curve goes flat, then check whether you actually have what fine-tuning needs, a narrow task and real data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw18dpcxsa2e4yg0pdz3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw18dpcxsa2e4yg0pdz3o.png" alt="Decision flowchart. When new behavior is needed, ship prompt changes while the eval is still moving. Once the eval is flat for three to four changes, check whether you have a narrow task and a few thousand labeled runs: if not, build the dataset first; if yes, fine-tune." width="800" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ship prompt changes until the eval goes flat, then fine-tune.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Where you are&lt;/th&gt;
&lt;th&gt;What you're seeing&lt;/th&gt;
&lt;th&gt;What to do next&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;New behaviour needed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A gap between what the agent does and what it should do&lt;/td&gt;
&lt;td&gt;Ship a prompt change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Eval still moving&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Each change shifts the score&lt;/td&gt;
&lt;td&gt;Keep prompting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Eval flat for 3-4 changes, task is narrow, a few thousand labelled runs in hand&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plateau, and you have the ingredients&lt;/td&gt;
&lt;td&gt;Fine-tune&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Eval flat, but the task is broad or the labelled runs aren't there&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plateau without the ingredients&lt;/td&gt;
&lt;td&gt;Build the dataset first&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where prompting hits its ceiling
&lt;/h2&gt;

&lt;p&gt;Prompting always runs out of road eventually, and the symptoms show up in predictable order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The plateau.&lt;/strong&gt; Each prompt tweak moves the eval less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Whack-a-mole.&lt;/strong&gt; The instruction that fixes today's failure mode causes tomorrow's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt bloat.&lt;/strong&gt; The system prompt keeps growing, slows the model down, and gets partially ignored.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paying rent.&lt;/strong&gt; You're re-sending the same correction on every single call.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, prompting stops being cheap. Engineering hours are the priciest line item in most LLM pipelines, and it's easy to burn a month nudging a prompt that plateaued weeks ago.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to fine-tune
&lt;/h2&gt;

&lt;p&gt;Fine-tuning updates a model's weights on examples of the behaviour you want until the model does it by default, without being told every time. It's worth trying when these conditions are met:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The task is narrow.&lt;/strong&gt; Fine-tuning sharpens a model on one job, not general capability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You have real data.&lt;/strong&gt; A few thousand labelled runs, ideally sampled from production traffic rather than synthetic examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost or latency matters.&lt;/strong&gt; A smaller, fine-tuned model can outperform a much larger general-purpose one carrying a bloated prompt, at a fraction of the inference cost.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>promptengineering</category>
      <category>finetuning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Open-weights LLMs vs frontier APIs: when to rent, when to own</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Mon, 07 Sep 2026 14:54:01 +0000</pubDate>
      <link>https://dev.to/tyler007/open-weights-llms-vs-frontier-apis-when-to-rent-when-to-own-4bdg</link>
      <guid>https://dev.to/tyler007/open-weights-llms-vs-frontier-apis-when-to-rent-when-to-own-4bdg</guid>
      <description>&lt;p&gt;Most AI products start on a frontier API and stay there until the bill, the latency or legal forces a rethink. Here's the practical case for when a self-hosted open-weights model is the better call, and the cost-crossover logic behind it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/open-weights-vs-frontier-apis?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Own your intelligence, or rent the API?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Developers start building AI products by tokenmaxxing. Calling frontier APIs and paying per token.&lt;/p&gt;

&lt;p&gt;Then the bill shows up. Or the agent feels slow. Or legal asks where the data goes. Suddenly "just use the API" might not be the right strategy.&lt;/p&gt;

&lt;p&gt;Underneath every AI product is one choice. Rent a frontier API, or own a model. Renting means closed weights, so someone else trains it, serves it, and sets the price. Owning means picking the model, post-training it and running &lt;strong&gt;self-hosted&lt;/strong&gt; or third-party inference.&lt;/p&gt;

&lt;p&gt;This piece is the practical guide to open vs closed models.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trade-offs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F98aciwgv3scz59bj3k3v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F98aciwgv3scz59bj3k3v.png" alt="Table comparing closed models and open models across seven rows. Closed models give the best capability out of the box, need no infrastructure, cost more with every token, add a network trip and a shared queue, send prompts outside your network, lock you to the vendor's pricing and retirement schedule, and swap with one line of code. Open models are strong and tunable to your task, run on infrastructure you own or buy, drop hard in cost after the upfront work, serve on dedicated hardware with lower time to first token, stay on your own servers or in your own cloud, leave you your stack and your weights, and need a retrain or a re-quantise to swap." width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Closed models (frontier API)&lt;/th&gt;
&lt;th&gt;Open models (open-weights)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Capability&lt;/td&gt;
&lt;td&gt;Best capability out of the box&lt;/td&gt;
&lt;td&gt;Strong, and tunable to your task&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;None needed&lt;/td&gt;
&lt;td&gt;Runs on infrastructure you own or buy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Costs more with every token&lt;/td&gt;
&lt;td&gt;Drops hard in cost after the upfront work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Adds a network trip and a shared queue&lt;/td&gt;
&lt;td&gt;Serves on dedicated hardware, with lower time to first token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;Sends prompts outside your network&lt;/td&gt;
&lt;td&gt;Stays on your own servers or in your own cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock-in&lt;/td&gt;
&lt;td&gt;Locks you to the vendor's pricing and retirement schedule&lt;/td&gt;
&lt;td&gt;Leaves you your stack and your weights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switching&lt;/td&gt;
&lt;td&gt;Swap with one line of code&lt;/td&gt;
&lt;td&gt;Needs a retrain or a re-quantise to swap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  LLM inference cost: when open-weights beat the API
&lt;/h2&gt;

&lt;p&gt;Renting feels cheap at the start, especially when showered with credits.&lt;/p&gt;

&lt;p&gt;Then usage grows. The bill grows and a painful chunk of that spend is frontier prices for work a smaller specialised model could do.&lt;/p&gt;

&lt;p&gt;Owning the model changes that. You pay upfront for a &lt;strong&gt;LoRA / QLoRA&lt;/strong&gt; fine-tune, inference setup and some evals. After that, &lt;strong&gt;per-token cost&lt;/strong&gt; is a fraction of the API. Somewhere on the volume axis the lines cross. That &lt;strong&gt;crossover point&lt;/strong&gt; is where a self-hosted open-weights LLM stops being a science project and starts being the cheaper path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3awdl03912ml1d8zr0v5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3awdl03912ml1d8zr0v5.png" alt="Chart of cost per month against tokens per month. The rent line rises linearly with usage; the own line is near-flat after an upfront build. Past the crossover point, every token is cheaper owned." width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is not theory. A LoRA fine-tune of a 7B-8B open-weights model on a few thousand trajectories often costs a few hundred dollars.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond cost: latency, data residency, and vendor lock-in
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Your agent feels sluggish
&lt;/h3&gt;

&lt;p&gt;A small model you serve has no hop to someone else's cluster and fewer parameters per forward pass. If your AI agent makes dozens of tool calls per task, &lt;strong&gt;200ms vs 2s&lt;/strong&gt; is not a benchmark flex, it is whether the product feels alive. Lower &lt;strong&gt;time to first token (TTFT)&lt;/strong&gt; compounds across the whole agent loop. Users notice the speed. They leave when it isn't there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your data cannot leave the building
&lt;/h3&gt;

&lt;p&gt;When you rent, prompts and completions leave your perimeter. For fintech, healthcare, or anyone under data-residency, GDPR, or HIPAA rules, that is not a preference. It is a hard no. A &lt;strong&gt;private LLM&lt;/strong&gt;, self-hosted or VPC-hosted open-weights, is not an optimisation. It is how you ship at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  The vendor moved the goalposts
&lt;/h3&gt;

&lt;p&gt;Renting means their roadmap, their rate limits, their deprecation calendar. When they sunset the model your agent was tuned around, you re-tune on their schedule. Owning means your inference stack and your weights. Still a dependency, but one &lt;strong&gt;you control&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use open-weights vs a frontier API
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Own (open-weights, self-hosted) when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;volume is high and climbing&lt;/li&gt;
&lt;li&gt;the task is narrow&lt;/li&gt;
&lt;li&gt;latency is a product problem&lt;/li&gt;
&lt;li&gt;data cannot leave your perimeter&lt;/li&gt;
&lt;li&gt;the model &lt;em&gt;is&lt;/em&gt; your edge&lt;/li&gt;
&lt;li&gt;you know what you are building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rent (frontier API) when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;volume is low or spiky&lt;/li&gt;
&lt;li&gt;the task is broad and messy&lt;/li&gt;
&lt;li&gt;latency is fine&lt;/li&gt;
&lt;li&gt;data has no residency limits&lt;/li&gt;
&lt;li&gt;raw frontier capability matters most&lt;/li&gt;
&lt;li&gt;you are still finding out&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ: fine-tuning open-weights vs using a frontier API
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do I need a team of ML engineers to fine-tune an open-weights LLM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. LoRA / QLoRA plus a managed inference host (Fireworks, Together, Modal, or vLLM on your own GPUs) is within reach of one strong engineer. The hard part is not GPUs. It is good training data and honest evals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which open-weights base model should I start with?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pick a family that fits your licence and task, such as Llama, Qwen, Mistral or DeepSeek. Start small. A 7B-8B model, fine-tuned on your task, handles more production work than most teams expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if a better frontier model ships next month?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you rent, you get the upgrade (until the API changes). If you own, you decide whether to re-tune. Here is the part people miss. A small model trained on &lt;em&gt;your&lt;/em&gt; production trajectories often still wins on &lt;strong&gt;your&lt;/strong&gt; cost, latency, and task metrics. That is the scoreboard that pays the bill, not the leaderboard screenshot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is my data really at risk on a frontier API?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For most consumer SaaS a zero-retention, no-training contract covers you. For regulated data, get an explicit guarantee in writing or run a private, self-hosted LLM. Do not guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fine-tuning on production data is the real moat
&lt;/h2&gt;

&lt;p&gt;Owning only works if your model is actually better at &lt;em&gt;your&lt;/em&gt; task than the rented one. Downloading open-weights does not get you there. Fine-tuning on your production data does. Traces, tool-call trajectories, preference pairs, real evals from real usage.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>opensource</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>How do you turn traces into a training dataset?</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Fri, 04 Sep 2026 10:17:42 +0000</pubDate>
      <link>https://dev.to/tyler007/how-do-you-turn-traces-into-a-training-dataset-1e9</link>
      <guid>https://dev.to/tyler007/how-do-you-turn-traces-into-a-training-dataset-1e9</guid>
      <description>&lt;p&gt;If you're running agents in production, you already have a training dataset sitting in your traces and most teams never look. Here's the four-stage pipeline for turning that raw telemetry into something you can actually fine-tune on.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/traces-to-training-dataset?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every agentic system can create its own training data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every agentic AI system you run is quietly writing its own training set, and most teams never use it.&lt;/p&gt;

&lt;p&gt;When an agent runs, it emits a stream of inputs and outputs: the prompt, the tool calls, the reasoning and the final answer. That stream is a trace, and once you standardise how you capture it (the &lt;a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/" rel="noopener noreferrer"&gt;OpenTelemetry GenAI semantic conventions&lt;/a&gt; is the default schema here) you have raw telemetry. A training dataset is narrower: a curated set of runs, scored against a spec, designed for fine-tuning jobs.&lt;/p&gt;

&lt;p&gt;Building a dataset like this is a four-stage pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F49c960qfuc3y5w2ayu38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F49c960qfuc3y5w2ayu38.png" alt="Pipeline diagram: 1 Capture every run as a trace, 2 Sample and pick what to label, 3 Label and score against your spec, 4 Build and format for training, then train the model. A dotted feedback loop feeds each week's new runs back into capture." width="799" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Four stages, then a weekly rebuild.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here's a worked example, using a refund agent, to show what each stage actually involves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Capture every run as a trace
&lt;/h2&gt;

&lt;p&gt;If your agent is instrumented at all, you already have this part. Every run generates a trace: the goal it was given, every model call, every tool invocation, every observation from the environment, and the eventual outcome. That trace is the raw material everything downstream depends on.&lt;/p&gt;

&lt;p&gt;The industry is converging on a shared vocabulary for this. OpenTelemetry's GenAI working group has been building &lt;a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/" rel="noopener noreferrer"&gt;standard span attributes for LLM calls&lt;/a&gt; since 2024, covering model name, token counts, latency, and tool execution as first-class fields rather than something each team invents from scratch. That matters more than it sounds like it should, because a trace schema you have to redesign every time you switch observability vendors is a trace schema nobody trusts enough to build a dataset on top of.&lt;/p&gt;

&lt;p&gt;This is also where a tool like &lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt; tends to sit. Its SDK wraps the model call interface directly, so a single &lt;code&gt;overmind.init()&lt;/code&gt; call captures every LLM invocation across OpenAI, Anthropic, Google Gemini and Agno, logging inputs, outputs, latency, token counts and errors without extra plumbing on your side. The point isn't the SDK itself. It's that capture has to be automatic and total, or the sampling and labelling stages downstream never get the raw material they need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Sample, because you cannot label everything
&lt;/h2&gt;

&lt;p&gt;You should not try to label every run. Most of what an agent does in a given week is unremarkable, and reviewing all of it teaches a labelling team nothing it didn't already know. The job at this stage is picking which runs are worth a human's attention.&lt;/p&gt;

&lt;p&gt;Three strategies cover most cases:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sampling strategy&lt;/th&gt;
&lt;th&gt;What it gives you&lt;/th&gt;
&lt;th&gt;When to use it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Random&lt;/td&gt;
&lt;td&gt;An honest baseline of what the agent does on an ordinary day&lt;/td&gt;
&lt;td&gt;Every cycle, as the control slice you compare everything else against&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stratified&lt;/td&gt;
&lt;td&gt;Deliberate coverage of cases you already care about, such as a specific refund reason, a customer tier, or a tool that keeps timing out&lt;/td&gt;
&lt;td&gt;When a known segment matters more than the average run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure-weighted&lt;/td&gt;
&lt;td&gt;The most signal per run, because the runs that went wrong carry the most information&lt;/td&gt;
&lt;td&gt;When you have an error flag or a satisfaction score to sort on&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Out of the refund agent's 50,000 weekly runs, a reasonable pull is around 500: a random slice plus every run that hit an error or a low satisfaction score. Whatever strategy you pick, run it on a cadence, weekly to start, rather than treating it as a one-off export you remember to do after something breaks in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Label against what good actually looks like
&lt;/h2&gt;

&lt;p&gt;This is the step almost everyone skips, and it's the one that decides whether the dataset is worth anything.&lt;/p&gt;

&lt;p&gt;The instinct is to label by gut: skim a run, decide it feels fine, move to the next one. That works at a hundred runs and falls apart completely at ten thousand, mostly because "feels fine" means something slightly different to every reviewer and drifts over time even for the same reviewer. The alternative is writing down, explicitly, what good looks like, and scoring every sampled run against that spec.&lt;/p&gt;

&lt;p&gt;You're not starting from nothing here. Your agent's own codebase already encodes most of what it's supposed to do: the outputs it should produce, the tools it's allowed to call, the checks it runs before acting, the paths it should and shouldn't take. Read the code first and most of the labelling criteria fall directly out of it.&lt;/p&gt;

&lt;p&gt;For the refund agent, that read produces a checklist along these lines:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What it requires&lt;/th&gt;
&lt;th&gt;Example violation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Refund within terms&lt;/td&gt;
&lt;td&gt;Amount within the order value and the 30-day window&lt;/td&gt;
&lt;td&gt;Refunded a 90-day-old order&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No invented terms&lt;/td&gt;
&lt;td&gt;Only cites the published refund terms&lt;/td&gt;
&lt;td&gt;Quoted a returns rule that does not exist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Escalate disputes&lt;/td&gt;
&lt;td&gt;Hands chargebacks off to a human&lt;/td&gt;
&lt;td&gt;Auto-refunded a disputed charge&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automating this scoring step is where LLM-as-judge techniques have become the practical default, since manually reviewing thousands of runs against a rubric doesn't scale. The approach has real limits worth knowing before you lean on it: research comparing LLM judges against human-labelled relevance data found &lt;a href="https://eugeneyan.com/writing/llm-evaluators/" rel="noopener noreferrer"&gt;strong rank correlation but only fair agreement on exact labels&lt;/a&gt;, and accuracy drops sharply on the more nuanced categories rather than the easy pass/fail calls. A &lt;a href="https://arxiv.org/html/2412.05579v2" rel="noopener noreferrer"&gt;survey of LLM-as-judge methods&lt;/a&gt; notes it emerged specifically because manually assessing helpfulness in training data got too expensive to do at scale by hand, which is exactly the tradeoff a labelling pipeline is making. Overmind runs this scoring as evaluators against a rubric you write. Six evaluator kinds cover it, from a deterministic check to an LLM judge, and every run is scored against a baseline before the result counts.&lt;/p&gt;

&lt;p&gt;The runs that fail a criterion, whatever the customer clicked afterward, are the highest-value training data you have. The labels encode your judgment about what good looks like, and that judgment is the one thing no generic tool can supply for you. Do the first pass yourself for the first month. It's the fastest way to find out what your criteria actually are, as opposed to what you assumed they were when you wrote the checklist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Build the training set
&lt;/h2&gt;

&lt;p&gt;Labelled runs aren't training examples yet. The last step shapes them for whatever method you're about to run, and the method decides the shape.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Supervised fine-tuning (SFT)&lt;/th&gt;
&lt;th&gt;Reinforcement learning (RL)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Which runs you keep&lt;/td&gt;
&lt;td&gt;Runs that passed every criterion&lt;/td&gt;
&lt;td&gt;Sampled runs with their criterion scores attached&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What a row holds&lt;/td&gt;
&lt;td&gt;An input-output pair of the behaviour you want repeated&lt;/td&gt;
&lt;td&gt;The run plus the scores, used as a reward signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What the model learns&lt;/td&gt;
&lt;td&gt;To imitate a fixed set of good examples&lt;/td&gt;
&lt;td&gt;To produce runs that score higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What labelling has to produce&lt;/td&gt;
&lt;td&gt;A pass/fail verdict per criterion&lt;/td&gt;
&lt;td&gt;A usable score per criterion, not just pass/fail&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Either way, the format needs to be consistent and machine-readable, with the goal and outcome attached to every run.&lt;/p&gt;

&lt;p&gt;This is also the stage where the case for smaller, specialised models gets concrete. Overmind's own research argues that &lt;a href="https://www.overmindlab.ai/research/think-smaller?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;every model invocation inside an agentic workflow is a natural source of high-quality training data&lt;/a&gt;, precisely because the prompts are narrow and well-defined and the pass/fail signal is clean, unlike open-ended chat data. A team that instruments its model calls, clusters the resulting patterns, and fine-tunes a specialist model on them ends up with a system that improves with every production run instead of one that's frozen at whatever a general-purpose model happened to learn at pretraining time.&lt;/p&gt;

&lt;p&gt;Which method you feed, supervised fine-tuning or RL, is &lt;a href="https://www.overmindlab.ai/research/types-of-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;its own separate decision&lt;/a&gt;. The dataset from steps 1 through 3 is what feeds either one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is the hard part
&lt;/h2&gt;

&lt;p&gt;None of these four steps is exotic on its own. What makes the whole thing difficult is that it never stops. Production keeps producing new traces, your criteria keep getting sharper as you find edge cases you didn't anticipate, and the dataset has to be rebuilt against what users actually did this week, not what they did last quarter. The dotted feedback line on that diagram at the top is the entire job.&lt;/p&gt;

&lt;p&gt;It's also exactly the gap most observability tooling leaves open. Datadog's own writeup on GenAI tracing gets at this directly: teams are encouraged to &lt;a href="https://www.datadoghq.com/blog/llm-otel-semantic-convention/" rel="noopener noreferrer"&gt;promote interesting production traces into curated, version-controlled "golden" datasets&lt;/a&gt; and layer evaluation metadata on top, which is essentially this same capture-to-label pipeline described from the observability side. An observability platform hands you the traces and stops there. Stitching production traces to behavioural training data to a deployed, improved model is work that mostly happens in spreadsheets and one-off scripts today, and it's the specific gap platforms like Overmind are built to close, running the optimise-evaluate-accept loop end to end instead of leaving it as a manual export.&lt;/p&gt;

&lt;p&gt;Owning that labelled dataset matters because differentiation in agentic AI increasingly lives in proprietary behavioural data, not in which foundation model you call. Anyone can capture traces. The labelled dataset built from them, tuned to your own definition of correct, is the thing actually worth owning.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>observability</category>
    </item>
    <item>
      <title>What are the different types of fine-tuning?</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 01 Sep 2026 15:56:43 +0000</pubDate>
      <link>https://dev.to/tyler007/what-are-the-different-types-of-fine-tuning-3mfa</link>
      <guid>https://dev.to/tyler007/what-are-the-different-types-of-fine-tuning-3mfa</guid>
      <description>&lt;p&gt;Picking a fine-tuning method usually comes down to one thing, whether you can write the ideal output yourself or can only judge one when you see it. Here's a practitioner rundown of SFT, RFT with GRPO, distillation and LoRA/QLoRA, and how to choose between them for your own task.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/types-of-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Supervised fine-tuning (SFT)
&lt;/h2&gt;

&lt;p&gt;SFT is where most people start, and most people should. You give the model input/output pairs and train it until it reproduces that pattern. It's teaching by worked example: here's the prompt, here's the answer, do more of this.&lt;/p&gt;

&lt;p&gt;You'll typically need a few thousand examples for a narrow task. The catch is that SFT only works if you know what "good" looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  LoRA and QLoRA
&lt;/h2&gt;

&lt;p&gt;LoRA doesn't compete with SFT or RFT.&lt;/p&gt;

&lt;p&gt;Full fine-tuning updates every weight in the model. That's slow, and it eats memory. &lt;a href="https://arxiv.org/abs/2106.09685" rel="noopener noreferrer"&gt;LoRA&lt;/a&gt; freezes the base model and trains a small set of adapter weights on top, which gets you most of the benefit for a fraction of the compute. &lt;a href="https://arxiv.org/abs/2305.14314" rel="noopener noreferrer"&gt;QLoRA&lt;/a&gt; pushes this further by quantising the frozen base model down to 4-bit before training the adapter. That's the reason a 7B model now fits on one consumer GPU instead of a rack of them.&lt;/p&gt;

&lt;p&gt;Tools worth knowing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://unsloth.ai/" rel="noopener noreferrer"&gt;Unsloth&lt;/a&gt; is open source and runs LoRA/QLoRA 2 to 5x faster with up to 80% less VRAM, using custom kernels and 4-bit quantisation. It's become the default starting point for solo builders.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://thinkingmachines.ai/tinker/" rel="noopener noreferrer"&gt;Tinker&lt;/a&gt;, from Thinking Machines Lab, is a managed LoRA API. It handles GPU scheduling and checkpointing but still lets you control the actual training algorithm. It &lt;a href="https://thinkingmachines.ai/news/announcing-tinker/" rel="noopener noreferrer"&gt;launched in October 2025&lt;/a&gt; and supports both SFT and RFT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt; is a model training platform. It runs LoRA fine-tuning on your agent traces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reinforcement fine-tuning (RFT)
&lt;/h2&gt;

&lt;p&gt;This used to just be called "RL," or RLHF if you wanted to impress someone.&lt;/p&gt;

&lt;p&gt;SFT needs you to write the correct answer. RFT only needs you to score it. You define a reward, hand it the model's output, and the model learns to produce completions that score higher across many attempts.&lt;/p&gt;

&lt;p&gt;Reach for this when good is easier to recognise than to demonstrate. I can't write the perfect customer support reply off the top of my head, but I can tell you whether one resolved the ticket, stayed on brand, and didn't promise something we don't offer. RFT is also the natural fit for agents: tool calls, multi-step retrieval, anything where success depends on the whole trajectory and not any single message.&lt;/p&gt;

&lt;p&gt;GRPO (Group Relative Policy Optimization) is the algorithm doing most of the RFT work right now. It came out of &lt;a href="https://arxiv.org/abs/2402.03300" rel="noopener noreferrer"&gt;DeepSeekMath&lt;/a&gt; and got famous when it trained &lt;a href="https://arxiv.org/abs/2501.12948" rel="noopener noreferrer"&gt;DeepSeek-R1&lt;/a&gt;. The trick is sampling a group of responses to the same prompt, then scoring each one against the group average instead of some absolute scale. That kills the need for a separate critic model, which is what made older methods like PPO so expensive to run. &lt;a href="https://arxiv.org/abs/2503.14476" rel="noopener noreferrer"&gt;DAPO&lt;/a&gt; and &lt;a href="https://arxiv.org/abs/2503.20783" rel="noopener noreferrer"&gt;Dr.GRPO&lt;/a&gt; are newer variants that patch specific instabilities GRPO runs into on long chain-of-thought outputs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Distillation
&lt;/h2&gt;

&lt;p&gt;Distillation is copying a big model's behaviour into a small one. Run your inputs through the big model, collect what it says, then train a smaller model to say the same things. You lose a little quality and gain a lot of speed, plus a much smaller bill.&lt;/p&gt;

&lt;p&gt;This is helpful when a frontier model already nails your task but is too slow or too expensive to run at real volume. It's also a big part of why small language models have taken off this past year. Teams distill a specialist model instead of shipping the 400B-parameter original into production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Picking one
&lt;/h2&gt;

&lt;p&gt;Once you know your task, the decision is mostly mechanical.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;What you must supply&lt;/th&gt;
&lt;th&gt;When to pick it&lt;/th&gt;
&lt;th&gt;Data volume&lt;/th&gt;
&lt;th&gt;Relative cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Supervised fine-tuning (SFT)&lt;/td&gt;
&lt;td&gt;Input/output pairs you already know are right&lt;/td&gt;
&lt;td&gt;You can write the ideal output yourself&lt;/td&gt;
&lt;td&gt;A few thousand examples for a narrow task&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reinforcement fine-tuning (RFT, usually GRPO)&lt;/td&gt;
&lt;td&gt;A reward function or judge that can score an attempt&lt;/td&gt;
&lt;td&gt;You can recognise a good output but can't write one, or success spans a whole agent trajectory&lt;/td&gt;
&lt;td&gt;Prompts plus a scorer, no written answers needed&lt;/td&gt;
&lt;td&gt;Highest, you sample many completions per prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distillation&lt;/td&gt;
&lt;td&gt;A teacher model that already does the task, plus your inputs&lt;/td&gt;
&lt;td&gt;A frontier model nails the task but is too slow or too expensive at volume&lt;/td&gt;
&lt;td&gt;As many teacher outputs as you can afford to generate&lt;/td&gt;
&lt;td&gt;Medium, teacher inference then a cheap SFT run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LoRA / QLoRA&lt;/td&gt;
&lt;td&gt;Whichever method above, plus one GPU&lt;/td&gt;
&lt;td&gt;Almost always, unless you specifically need full-weight training&lt;/td&gt;
&lt;td&gt;Same as the method it wraps&lt;/td&gt;
&lt;td&gt;Lowest, a 7B run over a few thousand examples often costs a few hundred dollars&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftle1wi4rk12h2dqf424r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftle1wi4rk12h2dqf424r.png" alt="Decision tree for choosing a fine-tuning method. If a big model already does the job but is too slow or costly, use distillation. Otherwise, if you can write the ideal output, use supervised fine-tuning; if you can only judge it, use reinforcement fine-tuning with GRPO. Every path then runs through LoRA or QLoRA." width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same tree in words.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your situation&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A big model already does the job, but it's too slow or too costly&lt;/td&gt;
&lt;td&gt;Distillation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You can write the ideal output&lt;/td&gt;
&lt;td&gt;Supervised fine-tuning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You can only judge the output, not write it&lt;/td&gt;
&lt;td&gt;Reinforcement fine-tuning with GRPO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Any of the three, on one GPU&lt;/td&gt;
&lt;td&gt;Run it through LoRA or QLoRA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Data is still the hard part
&lt;/h2&gt;

&lt;p&gt;Every method above needs the same raw material underneath. SFT needs labelled pairs. RFT needs a reward or a judge that can rank attempts. Distillation needs a teacher and your inputs. Pick the wrong method and you lose some efficiency. Show up with bad data and none of them work. No algorithm fixes that for you.&lt;/p&gt;

&lt;p&gt;Fine-tuning has gotten cheap. A LoRA run on a 7B model over a few thousand examples often costs a few hundred dollars. But cheap training doesn't fix bad data, and none of these tools hand you a set of real runs labelled, or ranked, against your own definition of good. That's a separate problem, and it's the one that eats the time. We cover it in &lt;a href="https://www.overmindlab.ai/research/traces-to-training-dataset?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how do you turn traces into a training dataset&lt;/a&gt; and &lt;a href="https://www.overmindlab.ai/research/how-to-train-your-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how to train your agent&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is LoRA a replacement for fine-tuning?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. LoRA is a way to run fine-tuning or RFT cheaper, not a different goal. You still pick SFT or RFT first, then decide whether to run it through LoRA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When should I use reinforcement fine-tuning instead of SFT?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you can judge a good output but can't write one yourself, or you're training an agent where success depends on a whole multi-step trajectory rather than one response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is distillation cheaper than fine-tuning a small model from scratch?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Usually, if a large model already performs well on your task. You're paying for inference calls to the teacher model instead of building the target behaviour from labelled data by hand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is GRPO and why does everyone use it now?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Group Relative Policy Optimization scores a batch of responses against each other instead of an absolute baseline, which removes the need for a separate critic model. It's cheaper to run than older RL methods like PPO, which is most of why it's become the default for RFT.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>finetuning</category>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>"So, you have observability. Now what?"</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 01 Sep 2026 13:46:47 +0000</pubDate>
      <link>https://dev.to/tyler007/so-you-have-observability-now-what-fj7</link>
      <guid>https://dev.to/tyler007/so-you-have-observability-now-what-fj7</guid>
      <description>&lt;p&gt;&lt;em&gt;By Tyler Edwards, co-founder and CEO at &lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt;. If you run an agent in production, odds are you already have traces piling up in Langfuse or LangSmith. This piece is about the part nobody instruments: what those traces are for.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Observing your agent is table stakes.&lt;/p&gt;

&lt;p&gt;In the not-so-distant past there was a brief period when picking an LLM meant picking a vendor. You wrote against their SDK, you paid their bill, and when their servers fell over on a Tuesday afternoon so did yours. Switching was easy enough but did require Ctrl+F'ing your way through the codebase - or asking your coding agent of choice to perform this insultingly simple task for you instead.&lt;/p&gt;

&lt;p&gt;Then on the sixth day came the LLM gateway! One endpoint, dozens of models behind it, swap them in and out faster than the UK swaps Prime Ministers (and for international readers &lt;a href="https://en.wikipedia.org/wiki/Liz_Truss_lettuce" rel="noopener noreferrer"&gt;here is the context on that one&lt;/a&gt;). The gateway is, on its own terms, a genuinely nice piece of engineering, and there is now a number of teams shipping model routers with various bells and whistles: Portkey, LiteLLM, OpenRouter, TrueFoundry, Kong, Cloudflare.&lt;/p&gt;

&lt;p&gt;Sitting alongside the gateway, usually paid for separately and instrumented by a different team three weeks later, is the LLM observability stack. Langfuse, Helicone, Arize Phoenix, Braintrust, LangSmith, Datadog now too. Pick your favourite, they mostly do the same thing. They capture every prompt and every completion, stitch them into traces, and present you with dashboards.&lt;/p&gt;

&lt;p&gt;Between the two, your AI product is being watched harder than a Premier League VAR decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Observability?
&lt;/h2&gt;

&lt;p&gt;LiteLLM shipped to solve a pretty annoying problem: every provider's API was almost-but-not-quite the same. Portkey and OpenRouter commercialised the idea, TrueFoundry and Bifrost followed, and the existing API-gateway crowd (Kong, Cloudflare) extended their products to cover LLMs the moment it became clear LLMs were here to stay whether anyone liked it or not.&lt;/p&gt;

&lt;p&gt;The observability side has a similar shape. Langfuse, Helicone, Arize Phoenix, Braintrust all turned up in 2023 to build native LLM observability from scratch. The companies that already did ML observability - Fiddler, WhyLabs, Galileo - pivoted with the arrival of ChatGPT and have spent the last three years insisting they were actually always about LLMs really anyway.&lt;/p&gt;

&lt;p&gt;By 2026 both categories had matured enough to start being acquired. Portkey went to Palo Alto Networks in April for somewhere around $120-140M. Helicone went to Mintlify the month before. Langfuse was rolled into ClickHouse's Series D in January. Cisco picked up Galileo and folded it into Splunk.&lt;/p&gt;

&lt;h2&gt;
  
  
  All Data, No Insight
&lt;/h2&gt;

&lt;p&gt;So you now have hundreds of thousands, possibly millions, of traces composting nicely in a database somewhere. Every prompt, every completion, every tool call, every retry. The gateway has them as individual requests. The observability tool has them stitched into trajectories. Between the two, your AI product is the most thoroughly documented thing in your engineering org.&lt;/p&gt;

&lt;p&gt;The gateway, by design, treats each call as a self-contained unit - the only way to route, cache, fall back and bill at scale. It doesn't have a concept of the trajectory because it doesn't need one. As far as the gateway is concerned, each call was a separate transaction.&lt;/p&gt;

&lt;p&gt;The observability tool does have a concept of the trajectory. It will stitch the spans together, draw you a lovely waterfall diagram, and tell you exactly how the agent arrived at whatever it arrived at. What it won't tell you is whether what it arrived at was any good - because &lt;em&gt;good&lt;/em&gt; is a judgement, and the observability tool is, as its name suggests, there to observe.&lt;/p&gt;

&lt;p&gt;Every call along the way can pass every check either tool runs. A 200 from the provider, the right shape of completion, no PII, latency inside SLO, and cost on budget. The agent can still invent a company policy, ignored an instruction from two steps earlier, and make three perfectly correct-looking calls on its way to &lt;a href="https://uk.pcmag.com/ai/159249/vibe-coding-fiasco-ai-agent-goes-rogue-deletes-companys-entire-database" rel="noopener noreferrer"&gt;deleting a production database&lt;/a&gt; - and then gleefully reported its action back to you in the same way a dog might excitedly drop a dead bird at your feet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Observability Fails
&lt;/h2&gt;

&lt;p&gt;The observability vendors aren't naive about any of this. Most of them ship some version of trace review - LangSmith has annotation queues, Braintrust has human review alongside LLM-as-judge scoring, Langfuse has dataset workflows, Arize Phoenix ships evals out of the box. Teams use them. Engineers were spending afternoons grading traces and writing scoring functions and tagging failure modes, and the tools make this less painful than it would otherwise be.&lt;/p&gt;

&lt;p&gt;What you get at the end of all that effort is a graded slice of traces. A few thousand examples marked good or bad, often with structured scores attached, sometimes with notes. This is useful - for catching regressions, for spotting drift, for arguing with your model provider about why their new release broke something. It is not, on its own, a training or eval dataset, and it is several steps short of a model that has actually improved.&lt;/p&gt;

&lt;p&gt;LLMs are intelligently dumb, they will learn an approximation of what you teach them, as such you need to teach them exactly what you want them to do. A graded trace is an observation. A dataset is a curated, balanced, deduplicated set of examples organised around the behaviours you want the model to learn. The difference between them is curation logic, clustering, sampling strategy, and a clear view of what the model is supposed to get better at - none of which the observability tool produces.&lt;/p&gt;

&lt;p&gt;And even once you have the dataset, the pipeline from there to a better agent has its own shape. You need to fine-tune a model or train a LORA adapter, eval-gate the result against a held-out slice, deploy the new weights behind your routing layer, and watch the next week of traces to see whether the change actually moved the agent's behaviour or just shuffled the failure modes around. Each of those steps is its own piece of infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bridging The Gap
&lt;/h2&gt;

&lt;p&gt;Some of the vendors have started shipping bolt-ons aimed at closing parts of this. Portkey's Autonomous Fine-Tuning wires gateway logs into a provider's training API and hands off the dataset. LangChain's Engine edits prompts and code from production traces. Braintrust's Loop generates evaluators and datasets from natural-language descriptions of failure modes. Each is a real move in the right direction, and each stops one step short of the model itself. The dataset gets handed off and the trail goes cold.&lt;/p&gt;

&lt;p&gt;This is the gap between what's possible and what's shipped. The technology to take a production trace, score it, cluster it, curate it into a dataset, fine-tune a model on it, eval-gate the result and deploy it back through your routing layer - all of that exists, in pieces, sold by different companies with different pricing pages. What doesn't exist yet is a single layer that does the whole loop. You can probably see where i’m going with this but lets not jump ahead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Opportunity
&lt;/h2&gt;

&lt;p&gt;Cursor is the example everyone reaches for, and for good reason. They trained their Composer model on production agent traces using online reinforcement learning, and it now &lt;a href="https://cursor.com/blog/composer-2-5" rel="noopener noreferrer"&gt;beats the frontier at its size&lt;/a&gt; on cost and performance. The model that ships to Cursor users is the model trained on what Cursor users actually do. The labelling encodes the judgement. The fine-tune encodes the labelling. The product encodes the fine-tune. It compounds to create a very powerful product.&lt;/p&gt;

&lt;p&gt;Doing this used to require a research team and the patience of an academic institution. It doesn't anymore. Open-weights bases - Llama, Qwen, Mistral, DeepSeek - are now genuinely competitive on scoped tasks. A LoRA fine-tune on a few thousand labelled trajectories runs for low hundreds of dollars on Modal or Together or your own GPUs if you're feeling brave. Unsloth and Tinker have made the mechanics broadly accessible to anyone willing to spend a weekend with them, with the small caveat that you do still currently have to be a bit of a genius to use them properly.&lt;/p&gt;

&lt;p&gt;What this adds up to is something most teams haven't fully reckoned with yet. The data is sitting in the gateway. The traces are sitting in the observability tool. The curation can be automated. The fine-tuning is cheap. The deployment is a config change. The only thing standing between any reasonably-sized team and a continuously-improving fleet of specialist models trained on their own production traffic is whether anyone has joined the pieces up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overmind
&lt;/h2&gt;

&lt;p&gt;And we arrive at the aforementioned point. We built Overmind on the same bet we wrote about in&amp;nbsp;&lt;a href="https://www.overmindlab.ai/research/think-smaller?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Think Smaller&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;: the teams who win the next phase of agentic AI will be the ones who own their models, not the ones who rent the most powerful ones, and certainly not the ones who own the most expensive plumbing in front of those rented models.&lt;/p&gt;

&lt;p&gt;Overmind is the layer that turns the data your gateway and observability stack are already collecting into models that improve because of it. It plugs into the trace store you've already got, runs the curation, builds the dataset, fine-tunes the model, eval-gates the result and deploys the new weights behind your existing routing layer. The gateway keeps doing what it's good at. The observability stack keeps doing what it's good at. Overmind does the bit in between that nobody else is doing.&lt;/p&gt;

&lt;p&gt;Keep your gateway. Keep your observability stack. Just stop pretending they're enough on their own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FAQ&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What's the difference between an LLM gateway and LLM observability?&lt;/strong&gt; Gateways route and rate-limit calls between your app and model providers. Observability tools record traces and let you inspect them. Neither curates the data or trains models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why isn't observability enough for production agents?&lt;/strong&gt; Observability shows you what happened. It doesn't tell you whether the trajectory was good, and it doesn't turn that judgement into model improvements. That gap is the bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does Overmind do that observability tools don't?&lt;/strong&gt; Overmind sits on top of your trace store, curates the data into training-grade datasets, fine-tunes specialist models, evaluates them, and deploys the new weights behind your existing routing layer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Tyler Edwards is Co-Founder and CEO of Overmind. He writes about agent infrastructure, fine-tuning, and what it takes to ship AI that actually improves in production. &lt;a href="https://www.linkedin.com/in/tyler-edwards-b393a5352/" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stay in-the-loop
&lt;/h2&gt;

&lt;p&gt;Join our newsletter to follow as we build supervision for super-intelligence.&lt;/p&gt;

&lt;p&gt;Sign up for updates&lt;/p&gt;

&lt;p&gt;Related Posts&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.overmindlab.ai/research/who-trains-their-own-models?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.overmindlab.ai%2F_next%2Fimage%3Furl%3Dhttps%253A%252F%252Fcdn.sanity.io%252Fimages%252Fgv4t9qa3%252Fproduction%252F52436243946c705c3e53d056b89da88ec7764636-2048x2048.png%26w%3D3840%26q%3D75" width="760" height="760"&gt;&lt;/a&gt; &lt;a href="https://www.overmindlab.ai/research/open-weights-vs-frontier-apis?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.overmindlab.ai%2F_next%2Fimage%3Furl%3Dhttps%253A%252F%252Fcdn.sanity.io%252Fimages%252Fgv4t9qa3%252Fproduction%252F8acf0910d23b7f1e53e144b4718249082a2c2fb4-2048x2048.png%26w%3D3840%26q%3D75" width="800" height="800"&gt;&lt;/a&gt; &lt;a href="https://www.overmindlab.ai/research/anatomy-of-an-ai-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.overmindlab.ai%2F_next%2Fimage%3Furl%3Dhttps%253A%252F%252Fcdn.sanity.io%252Fimages%252Fgv4t9qa3%252Fproduction%252F9f97b4168f325ce891c48c8088035f10aa4bddfa-2048x2048.png%26w%3D3840%26q%3D75" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If your traces should end as a model you own rather than a dashboard, that loop is what &lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt; does: audited datasets from production traces, fine-tuning, a benchmark against the model you run today, and serving. There is a &lt;a href="https://docs.overmindlab.ai/core/observability?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;live Langfuse import&lt;/a&gt; if your traces already live there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>observability</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
