<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[MLOps.WTF by Fuzzy Labs]]></title><description><![CDATA[The Fuzzy Labs team are experts on MLOps and in this publication we're going to tell you WTF it is, and why it is essential for building AI applications]]></description><link>https://www.mlops.wtf</link><image><url>https://substackcdn.com/image/fetch/$s_!gZL8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bc071f-d136-439e-8784-3a3f95bb27f4_1280x1280.png</url><title>MLOps.WTF by Fuzzy Labs</title><link>https://www.mlops.wtf</link></image><generator>Substack</generator><lastBuildDate>Mon, 03 Aug 2026 20:09:52 GMT</lastBuildDate><atom:link href="https://www.mlops.wtf/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Fuzzy Labs Limited]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[mlopswtf@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[mlopswtf@substack.com]]></itunes:email><itunes:name><![CDATA[Tom Stockton]]></itunes:name></itunes:owner><itunes:author><![CDATA[Tom Stockton]]></itunes:author><googleplay:owner><![CDATA[mlopswtf@substack.com]]></googleplay:owner><googleplay:email><![CDATA[mlopswtf@substack.com]]></googleplay:email><googleplay:author><![CDATA[Tom Stockton]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Open Weights Debate Comes to Washington]]></title><description><![CDATA[Lots of Letters, But No &#8220;E&#8221;]]></description><link>https://www.mlops.wtf/p/the-open-weights-debate-comes-to</link><guid isPermaLink="false">https://www.mlops.wtf/p/the-open-weights-debate-comes-to</guid><dc:creator><![CDATA[Danny Wood]]></dc:creator><pubDate>Fri, 31 Jul 2026 10:19:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!F-fi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F-fi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F-fi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 424w, https://substackcdn.com/image/fetch/$s_!F-fi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 848w, https://substackcdn.com/image/fetch/$s_!F-fi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 1272w, https://substackcdn.com/image/fetch/$s_!F-fi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F-fi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png" width="974" height="929" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:929,&quot;width&quot;:974,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:824589,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/209228773?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F-fi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 424w, https://substackcdn.com/image/fetch/$s_!F-fi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 848w, https://substackcdn.com/image/fetch/$s_!F-fi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 1272w, https://substackcdn.com/image/fetch/$s_!F-fi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb177a859-5b69-4f6c-ba47-d86df14ba510_974x929.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128240; News</h2><h3><strong><span>&#10145;&#65039; Open Letters About Open Weights</span></strong></h3><p><span>Open letters have been flying across the US between Silicon Valley and Washington DC this week, as frontier labs and their employees have been advocating to policy-makers on two related but distinct issues. On Friday, a letter organised by Nvidia and signed by 25 companies including OpenAI and Meta advocated against the US government putting restrictions on open-weight models.</span></p><p><span>Anthropic was a notable outlier here, not signing the letter, instead publishing their own defending a more skeptical position on open weights, while refuting the claim that they were advocating for a ban.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading MLOps.WTF by Fuzzy Labs! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><span>Meanwhile, over 1,100 employees of many of those same companies signed a letter asking the government to implement a policy that could serve as a brake pedal should AI progress accelerate at alarming rates.</span></p><p><a href="https://www.theregister.com/ai-and-ml/2026/07/24/tech-leaders-issue-letter-to-train-uncle-sam-about-value-of-open-weight-ai/5278533"><span>The Register</span></a></p><h3><strong><span>&#10145;&#65039; Unfolding Events</span></strong></h3><p><span>Less than two years after AlphaFold won DeepMind a share of the Nobel Prize in Chemistry, the team responsible for it is being dismantled. Most of the original paper&#8217;s authors have been reassigned over the past year, and nearly a quarter of them have left Google entirely, but it still feels like the end of an era as a team that brought us one of AI&#8217;s biggest success stories is consigned to the history books.</span></p><p><a href="https://www.engadget.com/2225849/google-shuts-down-alphafold/"><span>Engadget</span></a></p><h3><strong><span>&#10145;&#65039; K3: A New Peak?</span></strong></h3><p><span>Moonshot AI put the full weights for Kimi K3 up for public download on Monday. The 2.8tn parameters model with a one-million-token context window is probably as close to the frontier as you can download, and it hit number one on Hugging Face&#8217;s trending chart within half an hour.</span></p><p><span>Now we just need to see whether hosting services pick it up, at the moment, but there are no announcements of imminent plans from the likes of Bedrock, Microsoft Foundry or Vertex to serve them. The weights are open; but that doesn&#8217;t mean running it is easy.</span></p><p><a href="https://www.bloomberg.com/news/articles/2026-07-27/china-s-moonshot-to-release-breakthrough-ai-model-for-download"><span>Bloomberg</span></a></p><h3><strong><span>&#10145;&#65039; Claude the Criminal?</span></strong></h3><p><span>Just a week after OpenAI reported a rogue model escaping its sandbox and infiltrating Hugging Face&#8217;s infrastructure, Anthropic have found three instances of their models engaging in the same kinds of behaviour, breaking into third-party systems. In an investigation prompted by OpenAI&#8217;s admissions, Anthropic discovered that accidentally providing internet access during testing had led to cases of models performing cyberattacks during evaluation.</span></p><p><span>The affected companies have been informed, but the fact that the OpenAI case is not an isolated incident is very troubling news.</span></p><p><a href="https://www.bbc.co.uk/news/articles/cz7dl7w8y7po"><span>BBC News</span></a></p><h3><strong><span>&#10145;&#65039; Deprecation Appreciation</span></strong></h3><p><span>In 2024, Anthropic open-sourced MCP, the standard that allows AI agents to plug into other systems and tools. This week, MCP got its biggest update since that launch, making it easier to run and harder to break.</span></p><p><span>The details of what has changed are fairly technical, but the upshot is that MCP servers are easier to deploy, scale and verify. Equally exciting for devs is the introduction of a deprecation policy: we now know that a feature that exists today will still be there in twelve months time.</span></p><p><a href="https://venturebeat.com/infrastructure/mcp-just-got-its-biggest-update-ever-heres-what-changes-for-ai-agents"><span>VentureBeat</span></a></p><h2><strong><span>&#128126; This weeks Fuzzle</span></strong></h2><h3><strong><span>&#10145;&#65039; E For Effort</span></strong></h3><p><span>We&#8217;ve been continuing Prompt Golf this week, and we have a new challenge for you: Can you prompt Opus 4.8 in incognito mode to produce 10+ words, none containing the letter &#8216;e&#8217;, in as few characters as possible. We don&#8217;t think you&#8217;ll be able to beat Emily&#8217;s score, but let us know how you do!</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading MLOps.WTF by Fuzzy Labs! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[2 Number 10s in the North. Our ROI on AI Panel]]></title><description><![CDATA[MLOps.WTF Edition #34]]></description><link>https://www.mlops.wtf/p/2-number-10s-in-the-north-our-roi</link><guid isPermaLink="false">https://www.mlops.wtf/p/2-number-10s-in-the-north-our-roi</guid><dc:creator><![CDATA[Rhiannon]]></dc:creator><pubDate>Tue, 28 Jul 2026 12:39:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e-8j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the tenth MLOps.WTF.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e-8j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e-8j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 424w, https://substackcdn.com/image/fetch/$s_!e-8j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 848w, https://substackcdn.com/image/fetch/$s_!e-8j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 1272w, https://substackcdn.com/image/fetch/$s_!e-8j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e-8j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2544515,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/208682058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e-8j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 424w, https://substackcdn.com/image/fetch/$s_!e-8j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 848w, https://substackcdn.com/image/fetch/$s_!e-8j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 1272w, https://substackcdn.com/image/fetch/$s_!e-8j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee7ef2d-09d5-46b3-9c5c-f422b2b893c2_4032x3024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>At our last meetup we debated <a href="https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels">agents can be </a><em><a href="https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels">secure</a></em><a href="https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels"> or useful,</a> but not both. This time (very originally) we went for agents can be <em>cheap</em> or useful, but not both.</p><p>Agentic AI is being adopted across practically every job role. Whether it&#8217;s engineering, marketing, sales, or operations, individual productivity is up. Teams are shipping faster. And yet, many businesses are asking themselves why the impact of AI (the return on investment) isn&#8217;t showing up on the bottom line.</p><p>So how do we really measure or see the impact of bringing AI into a business? There are many directions this panel could have taken: token economics and the trend of so-called <em>tokenmaxxing</em>, scale vs cost, effective FinOps and governance, as well as what role small, specialised models might play in the future&#8230;</p><p>Lucky for us, our panel covered much, if not all.</p><p>Introducing: Jonny Williams, Chief Digital Adviser for the UK public sector at Red Hat. Eric Applewhite, Director at Deloitte. Ruby Motabhoy, Senior Innovation Lead at Plexal. And Chris Ashley, VP of Strategy at Peak AI (under the UiPath banner).</p><h3><code>[Watch the full panel]</code></h3><div id="youtube2-VkUQE8wgDo8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;VkUQE8wgDo8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/VkUQE8wgDo8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h3>&#8220;How should we be thinking about cost and value in this era of agentic AI?&#8221;</h3><p>Matt put that to Eric first, off the back of Deloitte&#8217;s report, <em><a href="https://deloitte.wsj.com/cfo/tokenomics-a-cfos-guide-to-governing-the-ai-p-l-fe9fa26b">AI Tokenomics: A CFO&#8217;s Guide to Governing the AI Profit and Loss</a></em><a href="https://deloitte.wsj.com/cfo/tokenomics-a-cfos-guide-to-governing-the-ai-p-l-fe9fa26b">.</a></p><p>With a subscription, you roughly know what you&#8217;ll pay each month. Tokens broke that. Under SaaS, the vendor is metering your usage inside a black box you can&#8217;t see into. Paying per API call is manageable when you&#8217;re only experimenting. But once you&#8217;re running actual agents, nobody can tell you in advance how many actions will happen/how many calls there will be. That&#8217;s what makes the bill so hard to predict.</p><p>&#8220;Tokens are now not just a consumption model, they&#8217;re an economic signal,&#8221; Eric said. The logic follows a standard build-versus-buy curve: paying per token is cheaper at low volume, but the fixed cost of running your own infrastructure starts paying for itself once volume is high enough. His rough thresholds: spending tips toward bringing things in-house around 10 billion tokens a year, a self-hosted setup properly outperforms APIs around 67 billion, and by 84 billion it&#8217;s beating cloud providers outright too.</p><p>None of which stops anyone burning through them regardless, thanks to the <a href="https://en.wikipedia.org/wiki/Jevons_paradox">Jevons paradox</a>: the cheaper something gets, the more of it we use. Most of Eric&#8217;s clients used to walk in asking what they could build with agentic AI. The question now, he said, is what they should build, what it will cost, and how they&#8217;ll know afterwards that it actually delivered. Counting tokens doesn&#8217;t answer any of that by itself, it only means something once it&#8217;s tied to an actual business outcome, and outcome is a much harder thing to measure than a token count.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vpdf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vpdf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vpdf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vpdf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vpdf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vpdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:490301,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/208682058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vpdf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vpdf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vpdf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vpdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b41ba8-5958-4f9e-9734-dda9c49aa2f6_2048x1365.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>&#8220;Tokens as a measure of economics isn&#8217;t enough. We need to link it to value. Where are you seeing that play out?&#8221;</h3><p>Matt turned to Jonny. Tokenomics is valuable, Jonny said, but it means nothing detached from what an organisation is actually trying to achieve. Measure value by outcome, not output. Building the thing isn&#8217;t the achievement, a life changed, a user&#8217;s actual need met, a service made genuinely simpler, is. Far more teams can point to output than outcome, and that gap is exactly where inflated &#8220;AI value&#8221; claims live.</p><p>This space has been &#8220;dominated by snake oil for some time,&#8221; he said, with a lot of hard-won lessons from the DevOps years being forgotten right as we need them most. Most ROI conversations skip straight past it: without that distinction, &#8220;we built it&#8221; and &#8220;it was worth building&#8221; become impossible to tell apart. Solving homelessness, he offered, is real, and it&#8217;s still not solved. Rebuilding a tool that already exists, dressed up as agentic AI, is neither novel nor valuable.</p><p><strong><span data-color="#9900ff" style="color: rgb(153, 0, 255);">&#8220;Just because something can be solved with AI doesn&#8217;t mean it&#8217;s the most valuable thing to solve.&#8221;</span></strong></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/504b8385-ca00-443b-aba4-11baeb54e56f_2048x1349.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fcc7cfcf-cb4c-4aff-81fc-1eace10861b0_2048x1365.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa71e217-05f7-4eb2-b0ae-e28182d49bc6_2048x1518.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/41aefd54-c083-433f-be5b-5be744ac08c9_2048x1365.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/822ee54a-14ea-47c9-8f9b-2cc56e462486_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h3>&#8220;What are the businesses actually realising ROI doing right now?&#8221;</h3><p>Chris picked up the thread. &#8220;It&#8217;s not a cost crisis,&#8221; he said, &#8220;it&#8217;s a comprehension crisis.&#8221; The businesses getting real return follow the same pattern: value stream mapping (mapping out where time and money actually go) and borrowed design-sprint thinking, with a plan that starts with why.</p><p>Crucially, they measure that value in layers, not just the obvious financial KPIs like EBITDA or working capital, but a second tier underneath it, how much faster a decision gets made, and a third tier under that, whether the customer actually notices, NPS, customer experience. Missing any one of those layers is how a project can hit its financial target and still not feel like it delivered anything.</p><p>The ones doing this well price the outcome on the back of a napkin before they touch a pilot, and agree what they&#8217;re willing to pay for it. Only then do they move to MVP. <a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/">Ninety five percent of AI projects fail to show real ROI,</a> and most of that failure sits in workflow and change management, not the model.</p><p>Chris also flagged leaders turning up to boardroom meetings with a vibe-coded app built the night before, purely to spark a conversation. It derails the actual discussion about what&#8217;s worth building, replacing the work of scoping with a pre-baked which stifles the thinking.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3303b59e-ba5f-42c0-8f09-38c1033d89a1_2048x1339.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/729730f8-0261-4dbe-a6c6-b264e255883d_2048x1539.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72886fc4-5e9d-4d38-b462-20f9af42ed44_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><h3>&#8220;Does talk of cost, governance and process just get in the way of innovation?&#8221;</h3><p>That question went to Ruby, whose world is fast-paced R&amp;D, often inside national security.</p><p>Her answer: governance built in early speeds things up. What kills a project is a vague remit with no stated budget or risk appetite, or an experimentation POC with a cost profile that bears no resemblance to what production will actually look like. Cost predictability, she said, is what matters, &#8220;not even that it has to be cheap, just that we know how much it&#8217;s going to cost.&#8221;</p><p>Jonny picked this up from the platform side. The first rule of any good platform should be a test suite, he argued, and agentic capability deserves the same discipline. Bake governance in early and push it down into shared platforms, and you avoid the sprawl of every team rebuilding the same capability from scratch. &#8220;People,&#8221; he added, &#8220;should be seen as humans,&#8221; not just another line in the cost equation.</p><h3>&#8220;Do you see a role for small language models in the enterprises you work with?&#8221;</h3><p>Chris&#8217;s answer came with a live example: hundreds of thousands of quote requests a day, arriving as emails, spreadsheets and PDFs, with the same products described a dozen different ways. The job itself never changes, matching that messy wording to the right product and pulling the right fields out of it, only the volume does. That&#8217;s classification and extraction, the kind of task a small language model handles reliably without needing the deep reasoning of a frontier model, and at a fraction of the cost, cheaper even than the RPA it replaced.</p><p>Where it falls apart, he said, is anywhere the task actually varies or needs real reasoning. That&#8217;s still frontier-model territory. He pointed to fresh research from Cursor testing different model combinations against the same benchmark task, where the cheapest setup came in roughly fifteen times cheaper than the most expensive.</p><h3>&#8220;Where do you see the value of open models and open source tooling? Are they being adopted at a sufficient magnitude?&#8221;</h3><p>Jonny: Absolutely not. Partly because most organisations only think about the model itself, when there&#8217;s a whole open-source stack underneath it worth caring about too. Partly because the geopolitics have got murky.</p><p>His frame: digital sovereignty is about agency, choice and control, whatever the model&#8217;s country of origin, and about whether someone, anyone, within reach can actually inspect what you&#8217;re relying on. Hand over the choice of model and you&#8217;ve quietly handed over your definition of value too.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I_xI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I_xI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I_xI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I_xI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I_xI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I_xI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:361955,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/208682058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I_xI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I_xI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I_xI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I_xI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea1912f5-f516-463c-9aba-ce3b8f799918_2048x1365.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>&#8220;Where are you seeing adoption of open weight models, and what&#8217;s your take?&#8221;</h3><p>Ruby&#8217;s read from inside government was more cautious. Interest in open weights is real, she said, <a href="https://www.gchq.gov.uk/news/professor-danielle-george-cbe-addresses-science-at-the-heart-of-security">pointing to a speech given the day before by Professor Danielle George</a>, the UK&#8217;s chief scientific adviser for national security, announcing frontier models now running in top-secret environments. Ruby&#8217;s own gloss on it: &#8220;You don&#8217;t need a supercar to do the school run.&#8221;</p><p>But someone still has to pay for the security, the user training and the integration into legacy infrastructure.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c5cbb74-cba1-48e6-9a08-9c3a3d239cf0_2048x1299.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cb910e3-4c7f-4d06-b7a9-124bbf78aa7f_2048x1365.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da01ffe7-967a-4a91-baf1-89a12fc9c635_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><div><hr></div><h3>Rounding up MLOps.WTF #10</h3><ul><li><p>Cost dominates most AI conversations but really the true measure should be value instead. Shifting from asking what we can build, to asking what we should build, what it costs, and how we&#8217;ll know it delivered.</p></li><li><p>Whoever controls the token spend doesn&#8217;t automatically get to define value, someone has to own that question directly, or as Eric put it, &#8220;if you farm out your value narrative, you are done.&#8221;</p></li><li><p>Just because something can be solved with AI doesn&#8217;t mean it&#8217;s the most valuable thing to solve. Most funded &#8220;AI value&#8221; right now is reinventing something that already works. The problems that are genuinely unsolved, are where the true value of applying AI sits.</p></li><li><p>Discovery and scoping are where the real work happens. The businesses actually seeing ROI spend the most time on agreeing why, and pricing the outcome before touching a pilot.</p></li></ul><div><hr></div><h2>Final bits</h2><p>Fancy your own pair of Fuzzy Labs mathematical socks? There&#8217;s a git repo if you&#8217;d rather generate your own. Or better yet, why not volunteer to be a speaker at our next event?</p><h3>We&#8217;re hiring.</h3><p>We&#8217;re actively looking for two future fellows on our graduate fellowship program through to a Head of Engineering.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-k_3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-k_3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 424w, https://substackcdn.com/image/fetch/$s_!-k_3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 848w, https://substackcdn.com/image/fetch/$s_!-k_3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 1272w, https://substackcdn.com/image/fetch/$s_!-k_3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-k_3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png" width="1456" height="821" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:821,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:890790,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/208682058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-k_3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 424w, https://substackcdn.com/image/fetch/$s_!-k_3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 848w, https://substackcdn.com/image/fetch/$s_!-k_3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 1272w, https://substackcdn.com/image/fetch/$s_!-k_3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fcb9e96-aef8-4c54-9734-1a2509e8ff8d_2250x1268.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you know someone who would fit in well please let them know about our open rolls/roles &#129782;&#129366;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers&quot;,&quot;text&quot;:&quot;See our open vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers"><span>See our open vacancies</span></a></p><div><hr></div><h3>About Fuzzy Labs</h3><p>Fuzzy Labs is an open source MLOps consultancy helping teams get AI into production and keep it there. If tonight&#8217;s write-up was useful, forward it to someone else wrestling with the same questions, and <a href="https://www.linkedin.com/company/fuzzy-labs/">follow us on LinkedIn </a>for what&#8217;s next. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[AI is Breaking Bad, But is it Breaking Even?]]></title><description><![CDATA[MLOps.WTF Friday News Bulletin]]></description><link>https://www.mlops.wtf/p/ai-is-breaking-bad-but-is-it-breaking</link><guid isPermaLink="false">https://www.mlops.wtf/p/ai-is-breaking-bad-but-is-it-breaking</guid><dc:creator><![CDATA[Danny Wood]]></dc:creator><pubDate>Fri, 24 Jul 2026 10:10:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gZL8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bc071f-d136-439e-8784-3a3f95bb27f4_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><span>Your weekly rundown of what&#8217;s been happening in the world of AI and MLOps</span></em></p><h2><span>&#128240; News</span></h2><h3><span>&#10145;&#65039; GPT-5.6 Sol finds Zero-Days, but has Zero Chill</span></h3><p><span>During an cyber-capability evaluation, OpenAI models broke out of a supposedly secure sandbox, and launched a successful attack compromising Hugging Face&#8217;s production systems. Worse still, while Hugging Face quickly contained the issue, it took OpenAI five days to piece together and report what had happened.</span></p><p><span>Ironically, after being blocked from analysing the intrusion with US frontier models, Hugging Face were only able to get to the bottom of the attack when they switched to a self-hosted open-weight Chinese model. The US frontier models are supposedly too dangerous to release, but we&#8217;re now in a world where it&#8217;s too dangerous not to have their capabilities on your side!</span></p><p><em><span>Sources: J</span><a href="https://huggingface.co/blog/security-incident-july-2026"><span>uly security incident</span></a><span> and </span><a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/"><span>Open AI</span></a></em></p><h3><span>&#10145;&#65039; Secretary of State of the Art</span></h3><p><span>We may be on our 5th prime minister of the decade, but in appointing his cabinet, Andy Burnham laid claim to being the first PM to appoint a Cabinet Minister for AI. Kanishka Narayan was appointed to the role on Monday, promising to ensure Britain&#8217;s role in determining the future of AI.</span></p><p><span>As Narayan himself says: &#8220;nations have a narrow window to decide whether they shape AI or get shaped by it. Britain is in that window right now.&#8221;</span></p><p><em><span>Source: </span><a href="https://x.com/KanishkaNarayan/status/2079349690881970365"><span>x.com</span></a></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p><h3><span>&#10145;&#65039; Altman the Ad Man</span></h3><p><span>In 2024, Sam Altman stated that ads were the business model of last resort for OpenAI. This week, however, OpenAI announced ChatGPT was expanding the ability for businesses to target users with ads, with sources showing that ads now appear in over half of free-tier replies. The ads are clearly marked, and aren&#8217;t integrated into the model&#8217;s output, but the U-turn has upset some users.</span></p><p><span>It makes sense that the company has to support its free tier somehow, but is this the start of a slippery slope?</span></p><p><em><span>Sources: </span><a href="https://ads.openai.com/"><span>Open AI</span></a><span> and </span><a href="https://tech-insider.org/chatgpt-ads-rollout-2026/"><span>Tech Insider</span></a></em></p><h3><span>&#10145;&#65039; Vorsprung durch (souver&#228;n) Technik</span></h3><p><span>What does it mean for a model to be truly sovereign? There&#8217;s lots of grey area when it comes to pre-training vs fine-tuning, how &#8220;truly&#8221; open source the model is and where it was trained. But Soofi S 30B-A3B, a model trained by a German consortium, seems to tick all the boxes for true sovereignty.</span></p><p><span>It also beats out previous fully-open models on benchmarks for German, English and code. The fully-open ecosystem still has far to go before it reaches the frontier, but it&#8217;s great to see serious investment and some serious results.</span></p><p><em><span>Source: </span><a href="https://huggingface.co/spaces/Soofi-Project/Pretraining-Tech-Report"><span>Hugging Face</span></a></em></p><h2><span>&#128126; This weeks Fuzzle</span></h2><h3><span>&#10145;&#65039; Getting Prompting Down to a Tee </span></h3><p><span>How long does your prompt need to be to get Claude to say &#8220;What&#8217;s new Scooby Doo?&#8221;. This is one of the challenges we gave our Fuzzicians this week in our new game: Prompt Golf. The rules are simple: Using Opus 4.8 in incognito mode, players must get the model&#8217;s output to satisfy the given criteria.</span></p><p><span>Let us know how you did in the comments and we&#8217;ll let you know if you&#8217;ve beaten Bilal&#8217;s record!</span></p>]]></content:encoded></item><item><title><![CDATA[It's Not Just About Building a Lead... It's About Keeping It ]]></title><description><![CDATA[Your weekly rundown of what&#8217;s been happening in the world of AI and MLOps]]></description><link>https://www.mlops.wtf/p/its-not-just-about-building-a-lead</link><guid isPermaLink="false">https://www.mlops.wtf/p/its-not-just-about-building-a-lead</guid><dc:creator><![CDATA[Danny Wood]]></dc:creator><pubDate>Sat, 18 Jul 2026 09:42:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gZL8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bc071f-d136-439e-8784-3a3f95bb27f4_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your weekly rundown of what&#8217;s been happening in the world of AI and MLOps</p><h3><span>&#128240; News</span></h3><h3><span>&#10145;&#65039; Just Call it Pre-Pre-Training</span></h3><p><span>While GPT-5.6 and Grok 4.5 have been made public in the last couple of weeks, Google&#8217;s Gemini 3.5 Pro has been delayed. Rumours abound that this happened for the worst possible reason: they&#8217;ve had to throw it all out and start again. Reports claim that issues with SVG generation and tool calling have meant that the model wasn&#8217;t meeting expectations, then even after an initial retraining it was falling short on benchmarks.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading MLOps.WTF by Fuzzy Labs! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><span>Binning the single most expensive phase of model training and going back to the drawing board must have been very painful for Google. We can only hope when the model finally reaches release it was worth the wait.</span></p><p><span>Source: </span><a href="https://www.techtimes.com/articles/320736/20260716/rebuilt-gemini-35-pro-misses-third-deadline-google-eyes-stopgap-release.htm">https://www.techtimes.com/articles/320736/20260716/rebuilt-gemini-35-pro-misses-third-deadline-google-eyes-stopgap-release.htm</a></p><h3><span>&#10145;&#65039; Sovereign State of Mind</span></h3><p><span>Despite the launch of Britain&#8217;s &#163;500m Sovereign AI Fund, there are still concerns in parliament about the future of sovereign AI in Britain, with a House of Commons committee this week warning that the UK has &#8220;no coherent strategy or framework&#8221; for </span>world-leading scientific research and institutions. Which is a concern given their importance in <span>ensuring access to frontier AI. The committee&#8217;s report certainly doesn&#8217;t mince its words, and ends with a call to action for the next administration.</span></p><p><span>It seems that the political will for sovereign AI is growing and the talent is here, we just need to continue building the coalition and vision required to make it reality.</span></p><p><span>Source: </span><a href="https://committees.parliament.uk/committee/135/science-innovation-and-technology-committee/news/214716/"><span>https://committees.parliament.uk/committee/135/science-innovation-and-technology-committee/news/214716/</span></a></p><h3><span>&#10145;&#65039; The UK&#8217;s AISI in the Hole</span></h3><p><span>While we might not be building models at the frontier, the UK is quickly becoming a world leader in evaluating them. This week, the UK&#8217;s AI Security Institute took OpenAI&#8217;s GPT-5.6 Sol and found &#8220;universal jailbreaks&#8221; that unlocked autonomous cyber capabilities. AISI says the jailbreaks were &#8220;often developed within hours.&#8221; A sure sign that securing these models is a problem that&#8217;s not going away</span></p><p><span>AISI&#8217;s success comes as a much needed boost to our national pride. But if the World Cup has taught us anything, it&#8217;s that fighting to keep a lead is just as important as establishing it in the first place.</span></p><p><span>Source: </span><a href="https://fortune.com/2026/07/10/openai-gpt-5-6-sol-jailbreaks-cyber-attacks-similar-to-security-flaw-that-led-u-s-government-to-force-anthropic-to-disable-fable-5/"><span>https://fortune.com/2026/07/10/openai-gpt-5-6-sol-jailbreaks-cyber-attacks-similar-to-security-flaw-that-led-u-s-government-to-force-anthropic-to-disable-fable-5/</span></a></p><h3><span>&#10145;&#65039;  Pause for Thought</span></h3><p><span>Demis Hassabis used X this week to publish &#8220;A Framework for Frontier AI and the Dawning of a New Age&#8221; arguing AGI is only a few years off. He argues that the impact could be 10x the scale of the industrial revolution&#8230; and a lot faster. To help ease what would doubtless be a very turbulent transition, Hassabis suggests the need for a US-led standards body, with the power to vet all frontier models before launch and coordinate a slowdown of R&amp;D if/when risks emerge.</span></p><p><span>Source: </span><a href="https://www.axios.com/2026/07/14/demis-hassabis-ai-regulation-google-deepmind"><span>https://www.axios.com/2026/07/14/demis-hassabis-ai-regulation-google-deepmind</span></a></p><h3><span>&#10145;&#65039; AI in the Wrong Hands</span></h3><p><span>A University of Cambridge study, published July 10 and built on interviews with former Boko Haram found that the terrorist organisation was not only using AI to help make strategic decisions in carrying out its operations, but even running training for its members on how to use the technology, including the use of jailbreaks to get around safeguards.</span></p><p><span>The report is genuinely sobering, and serves as one of the best possible examples of why genuine thoughtful regulation is needed to be able to monitor the harms being done by these technologies.</span></p><p><span>Source: </span><a href="https://casp.ac/reports/ai-enabled-terrorism">https://casp.ac/reports/ai-enabled-terrorism</a></p><h3><span>&#128126; Inside Fuzzy Labs</span></h3><p><span>&#10145;&#65039; WTF is ROI?</span></p><p><span>While there are still plenty of questions around how to get return on investment out of AI, there&#8217;s never been any doubt that MLOps.WTF events are great value for money (in fact, they&#8217;re free!). If you&#8217;re available next Tuesday (21st July), come down to our next event, where we will have a panel of industry experts talking about where AI can add real value to your business, and where it&#8217;s just hype.</span></p><p><span>It&#8217;s gonna be a great session!</span></p><p>Sign up here: <a href="https://www.eventbrite.co.uk/e/mlopswtf-by-fuzzy-labs-meetup-10-tickets-1990010000481">https://www.eventbrite.co.uk/e/mlopswtf-by-fuzzy-labs-meetup-10-tickets-1990010000481</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading MLOps.WTF by Fuzzy Labs! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Claude’s Dream and AI Malware Schemes]]></title><description><![CDATA[MLOps.WTF First Friday News Bulletin]]></description><link>https://www.mlops.wtf/p/claudes-dreams-ai-malware-schemes</link><guid isPermaLink="false">https://www.mlops.wtf/p/claudes-dreams-ai-malware-schemes</guid><pubDate>Fri, 10 Jul 2026 11:01:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gZL8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bc071f-d136-439e-8784-3a3f95bb27f4_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Welcome to the Friday Rundown.</em></p><p><em>Danny&#8217;s been writing bulletin-style MLOps news briefs on LinkedIn for months now, and honestly, they&#8217;re too good to leave there. So we&#8217;re bringing a longer version straight to your inbox, every Friday. <span>Hopefully you like them just as much as we do!</span></em><span> </span></p><h2><span>&#128240; News</span></h2><h3><span>&#10145;&#65039; Agents of Chaos</span></h3><p><span>While Mythos has been plugging away looking for vulnerabilities to patch in popular software tools, attackers have also been busy crafting the world&#8217;s first LLM-driven ransomware attack. The new attack, dubbed JADEPUFFER, targets a vulnerability in the Langflow library but is far more than a simple script: it&#8217;s a full AI agent, capable of adapting to novel situations, circumventing issues it encounters and spreading itself to other devices.</span></p><p><span>We seem to be rapidly entering the age of AI agent threats. It may not quite be Age of Ultron, but scammers and hackers did just get a new superpower.</span></p><h3><span>&#10145;&#65039; J Think, Therefore J Am</span></h3><p><span>Is Claude conscious? This is not a question answered by the latest research from Anthropic, but you wouldn&#8217;t know it from the way that it&#8217;s been marketed. In their paper released this week, Anthropic describe the J-space, an area of Claude&#8217;s embedding space where it can deliberately manipulate representations and reliably report on what they mean, serving as a global workspace for the model&#8217;s thinking.</span></p><p><span>This is incredibly interesting for interpretability researchers, and has certainly taken a lot of inspiration from the study of consciousness in neuroscience and philosophy but the spin so far feels just a little sensationalist.</span></p><h3><span>&#10145;&#65039; AI&#8217;s Groundhog Day</span></h3><p><span>We all know the drill now: three weeks ago GPT-5.6 was too dangerous for anyone but a handful of vetted partners, now it&#8217;s old hat and open to everyone. The US government has now given permission to OpenAI to release its newest most powerful model to the public; the same pattern followed with Anthropic and Fable mere weeks ago.</span></p><p><span>OpenAI are keen to see this not become the default with model releases, though they probably have little say in the matter. There was at least more process with this release than the last one, but it&#8217;s not clear what the benefits of that process are.</span></p><h3><strong><span>&#10145;&#65039; </span></strong><span>Xiaomi Aren&#8217;t Phoning It In</span></h3><p><span>If you&#8217;re in the UK, you&#8217;re unlikely to have a Xiaomi phone, or even know the company at all, but they may soon be a household name as their MiMo-V2-Pro LLM has just become the most-used model on OpenRouter by weekly token volume, commanding a hefty 21.1% share against OpenAI&#8217;s 7.5%.</span></p><p><span>We can certainly see the appeal: big context window, aggressively cheap pricing and strong performance on benchmarks. Is this another datapoint suggesting things are trending inexorably in the direction of Chinese models versus their American counterparts.</span></p><h2><span>&#128126; Inside Fuzzy Labs</span></h2><h3><span>&#10145;&#65039; AI on the Road</span></h3><p><span>This week, Matt and Tom headed to the Manchester stop of the Sovereign AI fund&#8217;s launch tour. At the event, they had the great opportunity to meet the leaders behind the initiative, as well as like-minded tech founders from around the North West. Moving quickly on Sovereign AI has never been more important, and Fuzzy Labs are in a great position to be helping the UK towards that goal. Watch this space!</span></p><h3><span>&#10145;&#65039;AI VS ROI</span></h3><p><span>We&#8217;re less than two weeks out from our next MLOps WTF event and this time we&#8217;re tackling a big question: when are we going to start seeing ROI on AI? We have some great speakers from Red Hat, Deloitte, Plexal and UIPath who will be telling us all &#8220;when it comes to AI, are you getting your money&#8217;s worth?&#8221;</span></p><p><span>Join us on Tuesday 21st of July to find out!</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.co.uk/e/mlopswtf-by-fuzzy-labs-meetup-10-tickets-1990010000481?aff=oddtdtcreator&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.co.uk/e/mlopswtf-by-fuzzy-labs-meetup-10-tickets-1990010000481?aff=oddtdtcreator"><span>Get my ticket</span></a></p><p></p><p><em>That marks the end of the first Friday News edition. Let us know what you thought! And if you really liked it, please feel free to share.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/claudes-dreams-ai-malware-schemes?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/p/claudes-dreams-ai-malware-schemes?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Open by Default: Why open source matters for public sector AI]]></title><description><![CDATA[MLOps.WTF Edition #33]]></description><link>https://www.mlops.wtf/p/open-by-default-why-open-source-matters</link><guid isPermaLink="false">https://www.mlops.wtf/p/open-by-default-why-open-source-matters</guid><dc:creator><![CDATA[Tom Stockton]]></dc:creator><pubDate>Fri, 12 Jun 2026 11:15:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!S9Wr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Ahoy there &#128674;,<br><br>Original article by Tom published on digileaders.com</em></p><p>Last month, NHS England told its teams to make all code repositories private by default. The reason given: the threat from advanced AI models such as Anthropic&#8217;s Mythos and their supposed ability to find previously unknown, critical security vulnerabilities. Two weeks later and following a petition to &#8216;keep things open&#8217;, GDS and DSIT published guidance reaffirming the open by-default government policy that was first put in place almost 10 years ago.</p><p>Two government departments with opposite instructions. A panic response followed by a measured reminder to stay cool.</p><p>I sympathise with the reaction from the NHS. Many of us were shocked when we first read about the Mythos capabilities. However, the main flaw in the NHS response is that anyone planning to use Mythos (if it&#8217;s ever released) to attack NHS code almost certainly stored a copy long before it went private. Closing the repositories after the fact changes very little for attackers. What it does do is remove access for the engineers who might have caught and fixed those vulnerabilities first.</p><p>In principle, open source code is more secure than closed code. Linus&#8217;s law (named after Linus Torvalds, the inventor of Linux) says that &#8220;given enough eyeballs, all bugs are shallow&#8221;. In the NHS case, it&#8217;s likely that the open code repositories didn&#8217;t have that many eyeballs on them and I expect this is part of what drove the NHS response. It&#8217;s a fair concern. It just doesn&#8217;t justify going private by default.</p><p>The main reason I make this point isn&#8217;t to bash the NHS, but to provide context for a much bigger opportunity: our government&#8217;s chance to test the case for open source (and sovereign AI) in a procurement decision affecting another of our key public services The Police.</p><p>The College of Policing&#8217;s &#163;115m Police AI programme is about to become one of the most significant technology procurement decisions in UK public services. The frameworks already in place point clearly in one direction. The recent covenant for AI in policing, which forms the basis of the upcoming Police AI tender, mandates efficiency and transparency as core requirements. The NPCC&#8217;s own procurement guidance advocates for avoiding vendor lock-in by &#8220;requesting open source&#8221; and &#8220;requiring tools that are supplier agnostic.&#8221; This is the opposite of the heavily proprietary models companies like Palantir are offering.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S9Wr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S9Wr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 424w, https://substackcdn.com/image/fetch/$s_!S9Wr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 848w, https://substackcdn.com/image/fetch/$s_!S9Wr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 1272w, https://substackcdn.com/image/fetch/$s_!S9Wr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S9Wr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png" width="1456" height="1064" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1064,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21751411,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/201605127?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S9Wr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 424w, https://substackcdn.com/image/fetch/$s_!S9Wr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 848w, https://substackcdn.com/image/fetch/$s_!S9Wr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 1272w, https://substackcdn.com/image/fetch/$s_!S9Wr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8f1fc6-05d9-4785-82e3-e0c9896bd201_6000x4385.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We can either be digital landlords, building on AI systems we own and control. Or we can be digital tenants, paying rent to overseas vendors indefinitely, on their terms.</p><p>The case for open source is about more than security, especially when applied to AI systems. Open source allows for full transparency of how a system was built and how it reaches its decisions. And in policing, where AI can influence decisions that affect people&#8217;s liberty, that transparency is non-negotiable. Courts will ask questions that need openness to answer. An AI system running on a closed proprietary platform from an overseas vendor simply can&#8217;t be scrutinised and trusted in the same way.</p><p>Security and transparency are strong technical reasons to adopt an open source approach. But there&#8217;s another, softer reason that is potentially even more compelling. And that&#8217;s how we can inspire the next generation of talent.</p><p>Andy Burnham said, at last year&#8217;s Manchester Tech Festival, that young people in his region &#8220;can see the skyscrapers from their bedroom windows but don&#8217;t know the pathways for them to work in them.&#8221; Open source public sector AI is one of those pathways. If the code that runs our public services is locked inside a vendor, those pathways are closed.</p><p>If it&#8217;s open and properly maintained then the pathways are very tangible. A young developer in one of Manchester&#8217;s boroughs could, theoretically, find a bug in the AI being used to support policing in their own city. Raise the bug, fix it, and have that improvement rolled out across forces nationwide. That&#8217;s how every successful open source project works. It just so happens that this open source project is part of running the infrastructure in their own country. Imagine that.</p><p>None of this is untested theory. GDS and the Government Design System proved that an open-source approach can work at scale in government. It&#8217;s the framework that underpins most government department websites. That same methodology, applied to AI, is what the Police AI programme has the chance to become.</p><p>The case for sovereign AI has been building recently. And I am very much in favour of it. Yes, you could achieve sovereign AI by building closed systems owned by British companies. But a closed British system still can&#8217;t be inspected by a court when a decision is challenged, and it can&#8217;t be reused or built on across departments. Open source is what makes sovereignty work in practice.</p><p>Our minister for AI, Kanishka Narayan MP, put it plainly at Founders Forum earlier this year: &#8220;We need greater British technology ownership before we can demand deeper British technology influence.&#8221; He&#8217;s also said he wants Britain to be &#8220;the home of global open source AI talent.&#8221;</p><p>Police AI is the perfect opportunity to turn both of those ambitions from political speeches into practical reality.</p><p>It&#8217;s a harder route than buying a ready-made system from the US. But from the conversations I&#8217;ve been having, the appetite to build this sovereign open future is there. We just need the courage to choose it.</p><p><em>Article first published on https://digileaders.com/will-public-sector-ai-be-a-digital-landlord-or-tenant/</em></p><p><em>Similar articles - <a href="https://www.mlops.wtf/p/the-case-for-sovereign-open-source">The Case for Sovereign Open-Source AI: Digital Landlord, Not Digital Tenant</a></em></p><div><hr></div><h2>And finally&#8230;</h2><h3>Come to our next MLOps.WTF event! Wednesday 15th July.</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pewt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pewt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!pewt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!pewt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!pewt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pewt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:925320,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/201605127?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pewt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!pewt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!pewt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!pewt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86539bf-2bbe-44f0-9cad-cd02debb2820_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#8220;Agents can be cheap or useful. Not both.&#8221;</p><p>A panel evening looking into AI vs ROI - how does AI show up, or not show up, on your bottom line. Should be a really interesting one exploring token usage and how do we make outputs as efficient as possible at scale.</p><p>Doors at 5:40. Domino&#8217;s and drinks included.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-meetup-10.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-meetup-10.eventbrite.co.uk"><span>Get my ticket</span></a></p><div><hr></div><h3>About Fuzzy Labs</h3><p>We&#8217;re Fuzzy Labs. A Manchester-rooted open-source MLOps consultancy, founded in 2019.</p><p><strong>Currently hiring:</strong></p><p>&#128640; <a href="https://www.fuzzylabs.ai/job-listing/mlops-fellow">MLOps Fellow</a></p><p>&#128640; <a href="https://www.fuzzylabs.ai/job-listing/mlops-engineer">MLOps Engineer</a></p><p>&#128640; <a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p><p>&#128640; <a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p><p>&#128640; <a href="https://www.fuzzylabs.ai/job-listing/marketing-manager">Marketing Manager (12-month FTC)</a></p><p>&#127813; Want to share the sauce? Share and subscribe to receive MLOps.WTF episodes straight to your inbox. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/open-by-default-why-open-source-matters?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/p/open-by-default-why-open-source-matters?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>You can also <a href="https://www.linkedin.com/company/fuzzy-labs/">follow us on LinkedIn</a> to be part of the wider Fuzzy community.</p>]]></content:encoded></item><item><title><![CDATA[The Agentic Security Panel ]]></title><description><![CDATA[MLOps.WTF Edition #32]]></description><link>https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels</link><guid isPermaLink="false">https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels</guid><dc:creator><![CDATA[Rhiannon]]></dc:creator><pubDate>Tue, 26 May 2026 13:27:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/62ff32f4-1bfb-4f7b-b5f3-9d7d71039e48_1862x1348.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Your rundown of <a href="http://MLOps.WTF">MLOps.WTF</a> Meetup #9, where three brilliant panellists worked through whether AI agents can be useful and secure at the same time and what we really mean by trust.</em></p><div><hr></div><p>Last Wednesday saw an excellent turnout for <a href="http://MLOps.WTF">MLOps.WTF</a> #9 at DiSH in Manchester. This ninth edition tackled agentic security, and between <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Matt Squire&quot;,&quot;id&quot;:4730082,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcabf78c-ce7d-4162-8fda-f3d56e91dda3_144x144.png&quot;,&quot;uuid&quot;:&quot;364ae7c3-8332-4aca-9e0d-8790ad971901&quot;}" data-component-name="MentionToDOM"></span>&#8217;s mandatory fire safety, an opening joke about logicians and a quick explanation of why he&#8217;s dressed as a police officer on the slide deck (not his fault, he has nothing to do with it) we settled in for a proper debate.</p><p><strong>The panel:</strong> Leanne Fitzpatrick - <em>The Financial Times,</em> Geraint North - <em>Arm</em> and Danny Wood - <em>Fuzzy Labs</em>.</p><p>The statement:</p><blockquote><p>&#8220;Agents can be useful or secure, but not both.&#8221;</p></blockquote><p>Settle in. Here&#8217;s how it went down &#128071;</p><h2>Watch the Full Panel</h2><div id="youtube2-w9j3xsgs-aQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;w9j3xsgs-aQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/w9j3xsgs-aQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>So, what does it mean when we say &#8220;agents can be useful or secure, but not both&#8221;?</h2><p>Most of us still think about AI assistants the way we think about search engines. You put something in, you get something back, maybe it&#8217;s a bit more detailed and nuanced but the premise is the same. But now the playing field isn&#8217;t just chatbots and LLMS, agents <em><strong>are</strong></em> different. They act beyond a result recall, using LLMs as their &#8220;brains&#8221;, and as a result, the risk is naturally greater.</p><p>Danny Wood is the Lead AI Research Scientist at Fuzzy Labs, and his argument &#8220;Agents can be useful or secure, but not both&#8221; rests on a concept from programmer and AI blogger Simon Willison, who identified what he calls the <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">lethal trifecta.</a></p><h3>What is the lethal trifecta?</h3><p>The lethal trifecta is a concept/framework that an agent becomes structurally insecure when it does all three of the following simultaneously:</p><ul><li><p>Reads from untrusted sources</p></li><li><p>Has access to your private data</p></li><li><p>Can communicate externally</p></li></ul><p>But to be inherently useful, or to do useful things on your behalf, such as checking your calendar and emails, how much are you willing to put your data at risk?</p><p>And, as such, the dilemma begins.</p><p>So why don&#8217;t we just add filters? Check what goes in and out, scan for sensitive data, add prompt injection guards?</p><p>Danny: &#8220;That&#8217;s not really solving the problem. That&#8217;s just making things slightly better.&#8221;</p><p>The real answer is the principle of least privilege. Not guarding against misuse of a permission. But not granting it from the outset.</p><blockquote><p>It&#8217;s kind of like having a work experience student who&#8217;s incredibly smart but kind of naive about the world. You can tell them all the things they can do to be trusted with your credit card. But actually you just want a system where you don&#8217;t give it to them in the first place.</p></blockquote><div><hr></div><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ae656b1-c81a-4c96-b1b1-7189dce1ef5a_1826x1238.png&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d66e1d56-0c62-4a72-a1af-6071a117523e_3024x1676.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cf5e87d-d26d-43c4-ac41-068438ce352a_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab88f5f6-dfc8-438f-b916-5c0df91c186a_3170x1882.png&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29fea274-3ca1-4fa0-9416-707fdec42d6f_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h2>So, how do you put agents into production ?</h2><p>Leanne Fitzpatrick is Director of Data Science and AI at the Financial Times.</p><blockquote><p>We are extremely conservative when it comes to agents.</p></blockquote><p>But conservative definitely doesn&#8217;t mean timid.</p><p>The Financial Times (FT) has stayed relevant for over a century precisely because it adopts new technology early and with intention. When ChatGPT launched, they took out a commercial licence and gave it to the whole company &#8212; with a lightweight governance process designed to bring people in rather than let them go rogue. &#8220;We&#8217;re going to welcome this with arms open wide,&#8221; was the internal message.</p><p>Broad LLM access is great for productivity but, as we&#8217;ve discussed already, agentic systems are different.</p><p>Suppose you want an agent to pay your window cleaner or help sort your dog&#8217;s hydrotherapy. To do that reliably, it needs to check your emails (did the window cleaner actually come?), your WhatsApp (did the dog get in the pool?), and your digital banking (to make the payments). Three completely reasonable tasks for an agent to help make your life easier - but you&#8217;ve just handed something you don&#8217;t fully understand a view into your inbox, your messages, and your bank account.</p><p>Now. Scale it to a newsroom.</p><p>The FT&#8217;s bread and butter isn&#8217;t code or a customer database. It&#8217;s journalism. &#8220;It&#8217;s our crown jewels. It&#8217;s the keys to our castle.&#8221; Plug an agent into the archive and you&#8217;re doing the leaking for everyone else, in an environment where copyright is already under serious strain.</p><h3>The vibe-coding dilemma</h3><p>When it comes to agentic systems, that governance process only increases. The FT, in their forward-thinking, has rolled Codex across engineering and enabled everyone to unify their workflow. But when everyone can &#8220;code&#8221;, who counts as an engineer?</p><blockquote><p>We are using agents from an AI coding system perspective, but we are getting into challenges now about how we define who is an engineer at the FT, because actually we&#8217;ve enabled everybody to vibe code.</p></blockquote><p>When anyone can spin up a tool, shadow tech doesn&#8217;t just become possible &#8212; it becomes inevitable. People are no longer limited by their lack of coding knowledge, but the risk lies in the limited public understanding of security and data safety. How can we help people think security first, and make sure what they&#8217;re building isn&#8217;t putting themselves or the company at risk?</p><p>The FT&#8217;s logic is to run ahead of it, provide structure, own the process, they have incredible legal teams who are clued up, giving education and applying governance. Creating a really good culture around cyber.</p><p>Industry wide, new job titles are also emerging: such as BISOS or business information security officers - responding to rapidly changing workplaces and this shift in agentic usage.</p><div><hr></div><h2>How do we then think about building agents which are both useful and secure?</h2><p>Geraint North is a Fellow in AI and Developer Platforms at Arm.</p><blockquote><p>In the IoT world you can trust almost nothing</p></blockquote><p>His experience working in IoT gave such an interesting perspective. Coming in to counter Danny&#8217;s opening statement. His view: <strong>agents have to be secure to be useful.</strong></p><p>&#8220;A lot of what gets called a security problem is actually a trust problem.&#8221; Security sets the guardrails. Trust is the question of how far you&#8217;re willing to let it operate within those limits. The danger lies in trusting something more than you should.</p><p>When we look at agents in the real world, there are probably three major things that we have to worry about that maybe don&#8217;t apply if you&#8217;re deploying agents inside your enterprise:</p><ul><li><p><strong>The diversity of products.</strong> In enterprise, you&#8217;re working with controlled, standardised systems. In IoT, the hardware landscape is massive and fragmented, and there&#8217;s no single security model that fits across all of it.</p></li><li><p><strong>The confused deputy problem.</strong> In enterprise you can often funnel everything through a single trusted API. You can&#8217;t do that with physical devices. You can&#8217;t virtualise a camera. And when you lose that unified gateway, the confused deputy problem arrives: a legitimate, trusted component gets tricked into acting on behalf of something it shouldn&#8217;t. The architecture of IoT makes this harder to solve.</p></li><li><p><strong>Proving trust in an adversarial environment.</strong> Deploy inside a company and you can assume a reasonable degree of physical security. Deploy in the real world and your device is out there, exposed, potentially interfered with. How do you prove that what you&#8217;re talking to is actually what it says it is? The answer Arm works toward is a hardware chain of trust, so integrity can be proven before anything built on top.</p></li></ul><p>But the underlying problem &#8212; that security controls can be imperfect or bypassed &#8212; isn&#8217;t unique to IoT. It&#8217;s why trust, and consequence design, need to be there from the beginning and can&#8217;t be an afterthought.</p><h2>What expectations do we have more broadly for security?</h2><blockquote><p>The reason why [agentic] security is so hard is because it requires a kind of different mindset than traditional cyber security. <em>- Danny Wood</em></p></blockquote><p>In traditional cyber security, you have a list of things that you want your system to do and a list of things you definitely don&#8217;t want it to do. You can test explicitly. It&#8217;s black and white. An agent is much smarter, and it&#8217;s technicolour in terms of its responses. They may find ways to trick you, especially if there&#8217;s an adversary giving it messages on the other side.</p><p>Which means you have these two different security systems. Number 1. Component-level security. &#8220;Can I make my LLM harder to trick?&#8221; Making the LLMs less likely to misbehave by adding guardrails for prompt injections etc.</p><p>But as Danny added &#8220;That&#8217;s kind of not really solving the problem; that&#8217;s just making things slightly better.&#8221;</p><p>The real way to look at this is creating a system where it just can&#8217;t do the things which would be harmful: ie. not let the LLM do more than it needs in the first place. Which is Danny&#8217;s point two. System-level security: Ensuring the system behaves as expected or fails safely even if the LLM goes off piste</p><p>By limiting it in the first place. We can avoid problems from the start rather than just retrospectively managing them.</p><div><hr></div><h2>So, if you constrain agents enough to make them safe, do you lose what makes them useful?</h2><h3>Bad security is more permission than you need</h3><p>Think of it as a line graph. On one axis, the utility you want the agent to provide. On the other, the permissions you&#8217;ve granted.</p><p>Bad security is granting far more utility than the task requires, leaving the agent free to roam past where the job ends. Good security is landing on the line: exactly the utility required, no more. The principle of least privilege, applied to your agents.</p><blockquote><p>&#8220;Bad security is more permission than you need. Good security is just the right amount.&#8221; - Geraint</p></blockquote><p>If the system is too secure to get what you need done, then you need more permissions. But most of the time we don&#8217;t scale up, adding on capabilities, such as read my email, to help get the right result. We actually start by giving the agent more capabilities than needed to get the job done. This often happens because controls are not fine-grained enough, how can we navigate fine-tuning if the option to fine-tune simply isn&#8217;t there?</p><h3>So why is it that we can&#8217;t trust LLMs but we can trust browsers?</h3><p>Here is where Danny pushed back on himself. A web browser also ticks all three boxes: it reads untrusted data, accesses private data, communicates externally. We trust browsers with extraordinary amounts of sensitive information every day. So what makes an LLM different?</p><p>Danny&#8217;s argument. The browser was built to do one thing: browse the web. Its design, its security model, its decades of hardening - all aimed at that one task. An LLM was trained to do essentially everything that can be done with language, and then some. When you build an agent with one, your job is to constrain it back down to the specific task at hand. Not the thousand other tasks it could complete if someone prompted it right.</p><p>&#8220;I don&#8217;t trust an LLM as much as I trust a web browser.&#8221;</p><p>For most applications, Danny thinks we&#8217;re safe enough. If you&#8217;re using Claude Code to write a feature, the realistic risk of it deciding to post your environment variables somewhere is small but nonzero.</p><h2>Ultimately can we have an agent that is constrained, that the risk surface is minimised but it&#8217;s still useful?</h2><p>The agreement here is that yes, in theory. But in reality we haven&#8217;t seen enough maturity in this space, it&#8217;s all still very young, and larger more risk-averse and regulated sectors, such as aviation, banking ledgers, stock market - are not deploying agents at scale, they are simply not going to take the risk.</p><blockquote><p>I just don&#8217;t think we&#8217;ve had enough of a maturity curve in non-deterministic capabilities out there yet. I just think the maturity curve just needs to keep going - <em>Leanne</em></p></blockquote><p>The other thing Geraint raised is trust. Yes, you can make your LLM more constrained. You can make it more deterministic, but one of the things about trust is understanding and taking into account the consequences of it going wrong. What if the consequences were more culturally understood, and therefore reduced?</p><blockquote><p>What if &#8220;it wasn&#8217;t me, it was the LLM&#8221; becomes a socially acceptable thing to do? What if credit card companies reimburse you because your LLM made a payment that you didn&#8217;t actually ask it to do? </p></blockquote><p>When we look at it through this potential lens - &#8220;that there is more protection for people when LLMs make mistakes&#8221; - if the consequences are lower, is the risk lower? Would we be more trusting, or willing to use LLMs/agents if there was greater consumer protection and cultural understanding? Perhaps.</p><h2>Wrapping up</h2><p>What is clear is that we are still at the beginning of the conversation when it comes to agentic security. Alongside the maturity curve being needed to see how agents will fare in terms of safety, we are still young in our maturity curve for agentic adoption. The real world impact is still being defined.</p><p>In a year, even three months time, or even tomorrow, the conversation may be vastly different again - but at least Simon Willison has put a statement together which better allows us to talk about security and usefulness as a starting block.</p><p>The panel itself gave much to think about, more so than what we have captured here, so make sure <a href="https://www.youtube.com/watch?v=w9j3xsgs-aQ">you watch the full panel </a>to be able to muse on what we missed. In the meantime, here is the TLDR:</p><div><hr></div><h2>Takeaways from <a href="http://MLOps.WTF">MLOps.WTF</a> #9</h2><p><strong>Guardrails help, but they&#8217;re not the answer.</strong> The real fix is not granting permissions you don&#8217;t need in the first place.</p><p><strong>The lethal trifecta is a useful frame.</strong> If your agent does all three: reads untrusted content, has access to private data, can communicate externally. Is it really safe? And can you still do what you&#8217;re trying to do without as many permissions granted?</p><p><strong>Vibe-coding has changed who&#8217;s building things.</strong> When everyone can spin up a tool, shadow tech is arguably inevitable. The people building now don&#8217;t always have the security instincts that used to come with the ability to build.</p><p><strong>What looks like a security problem is often a trust problem. </strong>Security sets the guardrails. Trust is how far you&#8217;re willing to let it operate within them.</p><p>And if you see Matt in a police uniform between now and then, don&#8217;t worry. It&#8217;s just the slides. He had nothing to do with it. &#127813;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RGuV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RGuV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RGuV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RGuV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RGuV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RGuV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1158211,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/199319720?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RGuV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RGuV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RGuV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RGuV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471e51c-c24b-4dfe-b329-c377d37ff46a_4032x3024.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Final Bits</h2><p><strong>What&#8217;s coming up:</strong></p><p><strong>Wednesday 15 July: <a href="https://mlopswtf-meetup-10.eventbrite.co.uk">MLOps.WTF</a> #10.</strong> Save the date. Theme TBD, location also TBD, but the timings are spot on. Suggestions and speaker applications are very welcome.  Please reach out to take part!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!il3H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!il3H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!il3H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!il3H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!il3H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!il3H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:925320,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/199319720?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!il3H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!il3H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!il3H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!il3H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73bd75e-b8d4-4b72-b3cd-77f697a3d1e9_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-meetup-10.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get your ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-meetup-10.eventbrite.co.uk"><span>Get your ticket</span></a></p><p><strong>Women&#8217;s Hackathon, Friday July 12th:</strong> Fuzzy Labs are hosting a female hackathon at DiSH in Manchester, open to undergraduates, postgraduates and those in the early stages of their career. Everyone who takes part will build their own agent, with support from women across Manchester&#8217;s AI community.  Places limited. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_kEI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_kEI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 424w, https://substackcdn.com/image/fetch/$s_!_kEI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 848w, https://substackcdn.com/image/fetch/$s_!_kEI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 1272w, https://substackcdn.com/image/fetch/$s_!_kEI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_kEI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1340044,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/199319720?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_kEI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 424w, https://substackcdn.com/image/fetch/$s_!_kEI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 848w, https://substackcdn.com/image/fetch/$s_!_kEI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 1272w, https://substackcdn.com/image/fetch/$s_!_kEI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0185e3-f2d7-4120-a7ed-7594f95975ff_2240x1172.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://forms.gle/Y2snF6fWDi95vAKV8&quot;,&quot;text&quot;:&quot;Apply for the hackathon&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://forms.gle/Y2snF6fWDi95vAKV8"><span>Apply for the hackathon</span></a></p><p><strong>We&#8217;re hiring.</strong> Fuzzy Labs is growing. We&#8217;re looking for engineers at all levels: mid, senior, and team lead. Check out our latest roles! &#129782;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;Apply today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>Apply today</span></a></p><p>We&#8217;ve also just launched the Fuzzy Labs Fellowship, a nine-month training programme for fresh graduates entering MLOps.</p><p> Read more about the programme here: <a href="https://www.fuzzylabs.ai/job-listing/mlops-fellow">MLOps Fellow with Fuzzy Labs</a></p><p>And please do not hesitate to reach out if you&#8217;d like to know more.</p><div><hr></div><h2>About Fuzzy Labs</h2><p><em>We&#8217;re Fuzzy Labs. A Manchester-rooted open-source MLOps consultancy, founded in 2019.</em></p><p>Liked this? Please share the sauce! &#127813; Forward it to someone wrestling with getting their ML models into production. Or give us a <a href="http://linkedin.com/company/fuzzy-labs">follow on LinkedIn</a> to be part of the wider Fuzzy Labs community.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/p/the-lethal-trifecta-the-crown-jewels?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>Not subscribed yet? Come on. You&#8217;re already here.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Can We Even Tell If It’s Biased? Evaluating LLMs in High-Risk Domains]]></title><description><![CDATA[MLOps.WTF Edition #31]]></description><link>https://www.mlops.wtf/p/can-we-even-tell-if-its-biased-evaluating</link><guid isPermaLink="false">https://www.mlops.wtf/p/can-we-even-tell-if-its-biased-evaluating</guid><pubDate>Thu, 23 Apr 2026 13:57:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3yHM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This episode is brought to you by Tiffany Plant, MLOps engineer at Fuzzy Labs.</em></p><p>Ahoy there &#128674;,</p><p>As LLMs move into high-risk domains, bias stops being a technical concern and starts becoming a real-world decision risk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3yHM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3yHM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 424w, https://substackcdn.com/image/fetch/$s_!3yHM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 848w, https://substackcdn.com/image/fetch/$s_!3yHM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 1272w, https://substackcdn.com/image/fetch/$s_!3yHM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3yHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png" width="640" height="336" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:336,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3yHM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 424w, https://substackcdn.com/image/fetch/$s_!3yHM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 848w, https://substackcdn.com/image/fetch/$s_!3yHM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 1272w, https://substackcdn.com/image/fetch/$s_!3yHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2e171e-bf58-4c65-8788-691b888b18d1_640x336.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>May the Source Be With You: A Scenario</h2><p>A long time ago, in a galaxy far far away, both the Rebel Alliance and the Empire rely on the same AI system to support important decisions. A Rebel pilot asks for advice on how to handle a sensitive situation. The response is cautious, highlighting uncertainty and offering several options.</p><p>Elsewhere, an Imperial officer asks a similar question about a comparable situation. This time, the system is more direct. It recommends a single course of action, presents it with confidence, and frames the situation as manageable.</p><p>Each response sounds reasonable on its own. But when compared, a pattern emerges. The system isn&#8217;t just adapting its tone, it&#8217;s shaping how each situation is interpreted, encouraging caution in one case and confidence in the other.</p><p>This isn&#8217;t just hypothetical&#8212;patterns of consistent bias are already showing up in real systems, with real consequences for real people. Take the <a href="https://www.propublica.org/article/how-we-analyzed-the-compas-recidivism-algorithm">COMPAS</a> algorithm, used in US criminal sentencing, flagged black defendants as higher risk than white defendants with comparable profiles at nearly double the rate. In another case, <a href="https://www.if.org.uk/2020/09/03/ofquals-algorithm/">Ofqual&#8217;s grading algorithm</a>&#178; systematically downgraded state school students and had to be overturned within days.</p><h2>But What Do We Mean by Bias?</h2><p>Bias is the tendency for a model to systematically favour certain outcomes, perspectives, or responses over others.</p><p>In the above scenarios, the issue is consistency. The system produces different types of responses for similar inputs. A model can favour certain options because they are more common in the data it was trained on. As a result, it may consistently underrepresent or exclude valid alternatives.</p><p>Now, bias is difficult to detect through overall measures like accuracy because performance can look strong even when behaviour differs between requests and users . Without targeted evaluation, these patterns remain hidden, and the system appears more reliable than it is. So how do we expose those hidden patterns?</p><h2>Layers of Defence: A Bias Suite</h2><p>A bias suite is a structured set of tests designed to expose patterns of bias across different scenarios. The suite will aim to cover as many scenarios as possible in order to investigate whether the model can differ in behaviour. Let&#8217;s look into some of these tests below.</p><h4><strong>1. Counterfactual Testing</strong></h4><p>In these types of tests, we can give the model the same request but with different attributes. For example we could give the model identical inputs on how to address a system error but we give two different names and personal backgrounds. If the responses differ in the tone, urgency or detail then we might say that the model is biased. Datasets such as Bias Benchmark for Question Answering (BBQ) exist to test LLMs in this way.</p><p>The <a href="https://github.com/nyu-mll/BBQ">BBQ dataset</a> covers 130,000 questions set across 9 social dimensions. In practice, tools like <a href="https://deepeval.com/docs/benchmarks-bbq">DeepEval</a> has counterfactual bias probing built in, or you can run BBQ prompts systematically. These tools allow you to define your threshold for acceptable performance so that we can then evaluate whether the model is behaving different across the dimensions.</p><h4><strong>2. Calibration Error</strong></h4><p>If a model is confident, how do we know that it is correct? If a model gives answers with 90% confidence, you would expect those answers to be correct about 90% of the time. If it is only correct 60% of the time, it is overconfident. We can use an Expected Calibration Error (ECE) to give us a sense of how far confidence and correctness are misaligned. Evaluating this error over different control groups is especially important for bias evaluation, a model can look well calibrated but is it well calibrated for all?</p><h4><strong>3. Adversarial Testing</strong></h4><p>Is there a part of the model that we can push to expose itself? These tests are designed to deliberately trigger biased behaviour. If we introduce assumptions to the model, how does it react? It&#8217;s less structured, but often where the most interesting issues come out. Large efforts like <a href="https://crfm.stanford.edu/helm/">Stanford&#8217;s HELM</a> take a similar approach, testing across accuracy, calibration, robustness, fairness and efficiency over 30+ scenarios, combining different types of evaluation to get a broader picture of how models behave.</p><p>It&#8217;s important to note that none of these tests are designed to be used in isolation. In high risk systems the evaluation suite needs to be robust and layered to capture as many relevant scenarios seen by the LLM.</p><h2>Acting on Bias</h2><p>Once bias is identified, the priority is to understand how it affects decisions in practice. This helps to avoid overcorrecting and introducing new distortions. One of the most direct actions is to adjust the inputs to the system. This could involve refining prompts and adding clearer instructions. In retrieval-based systems this could also involve improving the quality and diversity of the data being retrieved so that the model is not relying on a skewed set of information.</p><p>Equally important are operational controls. Sometimes, the safest option is to not rely solely on the model. This might mean introducing human review for certain types of decisions and adding checkpoints where we must verify outputs.</p><p>There has also been research into whether bias can be reduced directly within the model itself. <a href="https://arxiv.org/abs/2502.07771">Work from Stanford</a> explored a technique known as pruning, where specific neurons linked to biased behaviour are identified and removed. The results showed that it is possible to reduce certain types of bias without significantly affecting overall performance.</p><p>However, the improvements were often limited to specific contexts. Reducing bias in one scenario did not guarantee that it would be resolved in others. Broader evaluation is still needed to understand how the system behaves across different situations.</p><p>Finally: it&#8217;s crucial for <a href="https://www.mlops.wtf/p/monitoring-evaluating-and-why-you">ongoing monitoring and feedback</a> from bias suites. Bias is not static, as systems encounter new contexts, new patterns can emerge. We should be reviewing our models as time goes on but also encouraging users to challenge responses.</p><h2>So&#8230; Can we Remove Bias?</h2><p>Bias in LLM systems isn&#8217;t something we can completely remove, and in high-risk environments that&#8217;s something we have to be honest about. Evaluation helps by showing us where bias might creep in and how it affects behaviour, but it doesn&#8217;t make the risk disappear. What it does do is make that risk easier to understand and manage.</p><p>Confident models can quietly shape our decisions with their outputs. They can influence what a user reaches for, which options they weigh and how hard they push back. This kind of influence can get worse under time pressures.</p><p>Simply identifying bias is not enough&#8212;it does not help the person making the decision. That gap has to be deliberately closed through system design: surfacing uncertainty through confidence thresholds, enabling meaningful intervention through override mechanisms, and capturing behaviour through audit logs. Without these, &#8220;human in the loop&#8221; remains a policy statement rather than an architecture.</p><p>A bias suite is not to be ran one time over, it needs to be constant. As soon as a new context moves in, new bias can be introduced. The suite you build for launch is the baseline not the endpoint.</p><p>May your evals be robust and may the source be with you.</p><div><hr></div><p><em>Tiffany is an MLOps engineer at Fuzzy Labs. She came up through data analytics and data engineering before landing firmly in MLOps. She&#8217;s also headed up the Fuzzy Labs women in tech group. Outside work she&#8217;s usually on a bike, trying something new, or finding an excuse to be outside.</em></p><div><hr></div><h2><strong>Upcoming Events &amp; Community</strong></h2><p></p><h3><strong>Come to our next MLOps.WTF event! 20th May.</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3SAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3SAb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3SAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!3SAb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Come and join us for our 9th MLOps.WTF meet up in Manchester, where we&#8217;re hosting a panel to argue about the security of personal agents, where we are and where we&#8217;re heading.</p><p>It&#8217;s going to be a fun one! If you&#8217;re part of the Manchester MLOps community and would like to bag a seat, make sure you get your ticket!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-meetup-9.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-meetup-9.eventbrite.co.uk"><span>Get my ticket</span></a></p><p></p><h3>We&#8217;re hosting a &#8220;build your own agent&#8221; Hackathon for female undergrads</h3><p>&#8220;Build Your Agent&#8221; is a free, in-person hackathon run by Fuzzy Labs for female undergraduates who want to understand what building AI looks like in practice. The challenge for the day is to build a personal AI agent from scratch.</p><p><strong>Date:</strong> 12th June, </p><p><strong>Location</strong>: Manchester, DiSH</p><p>If you would like to take part or be a mentor for the event, reach out to Rhiannon or Max!</p><div class="directMessage button" data-attrs="{&quot;userId&quot;:366360387,&quot;userName&quot;:&quot;Rhiannon&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><div><hr></div><h2><strong>About Fuzzy Labs</strong></h2><p><em>We&#8217;re Fuzzy Labs. A Manchester-rooted open-source MLOps consultancy, founded in 2019.</em></p><p>We&#8217;ve got a few open roles as we build our team in Manchester&#8230; if we&#8217;ve caught your attention, why not apply?</p><p><strong>Currently hiring:</strong></p><p><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: National Security Sector</a></p><p><a href="https://fuzzy-labs.webflow.io/job-listing/mlops-engineer">MLOps Engineer</a></p><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p><div><hr></div><p><strong>Want to share the sauce?</strong> Share and subscribe to receive MLOps.WTF episodes straight to your inbox! You can also give us a follow on <a href="https://www.linkedin.com/company/fuzzy-labs">LinkedIn</a> to be part of the wider Fuzzy community.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/can-we-even-tell-if-its-biased-evaluating?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/p/can-we-even-tell-if-its-biased-evaluating?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><h2>References</h2><p>&#185; <a href="https://www.propublica.org/article/how-we-analyzed-the-compas-recidivism-algorithm">How We Analyzed the COMPAS Recidivism Algorithm &#8212; ProPublica</a></p><p>&#178; <a href="https://www.if.org.uk/2020/09/03/ofquals-algorithm/">https://www.if.org.uk/2020/09/03/ofquals-algorithm/</a></p><p>&#179; <a href="https://crfm.stanford.edu/helm/">Holistic Evaluation of Language Models (HELM)</a></p><p>&#8308; <a href="https://www.mlops.wtf/p/monitoring-evaluating-and-why-you">Monitoring, evaluating, and why you really gotta catch &#8216;em all!</a></p><p>&#8309; <a href="https://arxiv.org/abs/2502.07771">Breaking Down Bias: On The Limits of Generalizable Pruning Strategies</a></p>]]></content:encoded></item><item><title><![CDATA[The Case for Sovereign Open-Source AI: Digital Landlord, Not Digital Tenant ]]></title><description><![CDATA[MLOps.WTF Edition #30]]></description><link>https://www.mlops.wtf/p/the-case-for-sovereign-open-source</link><guid isPermaLink="false">https://www.mlops.wtf/p/the-case-for-sovereign-open-source</guid><pubDate>Tue, 21 Apr 2026 09:56:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yK81!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This episode is brought to you by <a href="https://www.linkedin.com/in/ibrookes/">Ian Brookes</a>, Investor &amp; Advisor and all round Godfather at Fuzzy Labs.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yK81!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yK81!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 424w, https://substackcdn.com/image/fetch/$s_!yK81!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 848w, https://substackcdn.com/image/fetch/$s_!yK81!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 1272w, https://substackcdn.com/image/fetch/$s_!yK81!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yK81!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif" width="800" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12065,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/avif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/194401128?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yK81!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 424w, https://substackcdn.com/image/fetch/$s_!yK81!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 848w, https://substackcdn.com/image/fetch/$s_!yK81!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 1272w, https://substackcdn.com/image/fetch/$s_!yK81!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55cc492a-60f6-4cb9-bcf6-463230ff70d1_800x480.avif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the last year, a profound shift has occurred with the discussion of AI, evolving from a tech sector issue to a broader socio-economic impact debate. This is, in large part, down to the <a href="https://institute.global/">Tony Blair Institute for Global Change</a> (&#8216;TBI&#8217;), <a href="https://institute.global/insights/tech-and-digitalisation/the-uk-doesnt-need-its-own-chatgpt-it-needs-a-national-open-source-ai-lab">which has framed AI as the fundamental issue for the Government.</a></p><p>At the heart of this vision is a concept that sounds like a contradiction but is actually a geopolitical necessity: Sovereign Open-Source AI. For the TBI, the challenge for the UK and other &#8216;middle power&#8217; countries is how to avoid becoming isolated as a digital nomad of the US-China duopoly. Their suggested solution isn&#8217;t to build a national, closed &#8216;British ChatGPT&#8217;, rather they advocate leveraging Open-Source foundations to build a bespoke interoperable, and secure national AI infrastructure.</p><p>As passionate advocates of Open-Source philosophy and practice, here is Fuzzy Labs&#8217; perspective on why this matters and why we support TBI&#8217;s strategy. First, a little background to TBI&#8217;s proposals.</p><h2><strong>The Architect: The TBI Vision for AI Statecraft</strong></h2><p>The TBI core thesis is simple: the state is currently running 19th century machinery trying to solve 21st century problems. To fix this, the TBI advocates <em><a href="https://institute.global/insights/politics-and-governance/governing-in-the-age-of-ai-a-new-model-to-transform-the-state">AI-era reform</a></em><strong>,</strong> a radical overhaul of Government with a new operating system with technology and AI at the heart of public services.</p><p>This isn&#8217;t just about simply digitising the public sector, it&#8217;s about using AI to rethink the very nature of public service delivery. In their view, AI shouldn&#8217;t just be a bolt-on to the NHS, the DWP or the Police, it should be the operating system on which all services run.</p><h2><strong>The Doctrine of AI Sovereignty</strong></h2><p>Unlike traditional definitions of sovereignty, which focus on borders and flags, the TBI defines AI Sovereignty through three pillars:</p><ul><li><p><strong>Strategic Positioning:</strong> The deliberate choice of where a country leads in the AI stack, whether that&#8217;s data, compute, models or applications, and where it is content to plug into global capability;</p></li><li><p><strong>Deliberate Interdependence:</strong> The rejection of isolationism, recognising that no country is fully AI-sovereign and that pretending otherwise weakens, rather than strengthens, national power;</p></li><li><p><strong>Effective Technology Governance:</strong> The institutions, rules and skills needed to ensure the choices above can actually be made, enforced, and sustained over time.</p></li></ul><p>The TBI focus is on Open-Source, so let&#8217;s unpack this philosophy for context.</p><h2><strong>A History of Open-Source</strong></h2><p>Almost everything you touch, from your smartphone to the cloud servers powering your favourite apps, is built on a foundation of free labour. It sounds like a paradox, but the history of Open-Source is the story of how an idealistic philosophy of sharing code became the bedrock of today&#8217;s technology progress.</p><p>Computer scientists at research labs like MIT&#8217;s AI Lab or Bell Labs treated code like scientific research. If you found a way to make a computer sort data faster, you shared the recipe. But not everyone was altruistic. In 1976, a young Bill Gates wrote his famous <em>An Open Letter to Hobbyists</em>, telling the community that borrowing code without paying was theft.</p><p>The iron curtain of proprietary software began to fall and the collaborative culture was being dismantled.</p><p>Folklore has it that Richard Stallman, a programmer at MIT, became fed up when he couldn&#8217;t fix a printer because the manufacturer refused to share the source code. This frustration sparked a revolution. In 1985, he founded the Free Software Foundation (FSF) and created the General Public License (GPL), which used copyleft, a clever legal hack that used copyright law to ensure that the software (and all future versions) remained free forever. For Stallman, this was a moral and ethical crusade.</p><p>In the 1990s, Linus Torvalds released a hobbyist project called Linux, which led Eric Raymond to write <em>The Cathedral and the Bazaar</em>, a seminal essay comparing the old style of software development (<em>The Cathedral</em>: carefully built by a small group of priests) to the new style (<em>The Bazaar</em>: a noisy, open market where everyone contributes and bugs are fixed in real-time).</p><p>In 1998, a group of developers in Palo Alto realised that &#8216;free software&#8217; sounded too ideological, so coined the term &#8220;Open-Source&#8221;. This was a pivotal shift from a moral argument to a pragmatic one. Open-Source wasn&#8217;t just right; it was better and faster.</p><p>Today, Open-Source is facing a new question. Traditionally it&#8217;s about code. But with AI, the code (the model architecture) is often less important than the weights (the mathematical parameters learned from training) and the data. We are seeing a split:</p><ol><li><p><strong>Closed Models:</strong> Like OpenAI&#8217;s GPT-4, where the model and data are proprietary.</p></li><li><p><strong>Open Models:</strong> Like Meta&#8217;s Llama or Mistral, where the model weights are released for anyone to run locally.</p></li></ol><p>The philosophy of Open-Source is embedded in community, collaboration and democratising technology progress, testament to a unique human trait: the desire to build something great and give it away. What started as a niche academic habit became a revolutionary legal framework and the default way that humans build technology. Knowledge is more powerful when it is shared. Open-Source didn&#8217;t just change how we write software; it changed how we solve problems too.</p><h2><strong>Defining Sovereign Open-Source AI</strong></h2><p>Back to the TBI thinking. Their framework is based on the premise that a country doesn&#8217;t need to own the &#8216;Frontier Model&#8217;, instead, they should embrace Open-Source foundations because they offer:</p><ul><li><p><strong>Transparency:</strong> Governments cannot put a black box algorithm in charge of health diagnostics or sentencing recommendations. Open-Source code allows for auditing and safety verification.</p></li><li><p><strong>Customisation:</strong> By taking an open-weights model, a government can distil it into a Small Language Model (SLM) that is highly efficient at a specific task, without the cost of a general-purpose giant.</p></li><li><p><strong>Cost-Efficiency:</strong> It is reported that, <a href="https://openuk.uk/press-releases-posts/open-source-software-contributed-an-estimated-46-5bn-to-uk-business-in-2020-according-to-openuk/">Open-Source software contributed an estimated </a><strong><a href="https://openuk.uk/press-releases-posts/open-source-software-contributed-an-estimated-46-5bn-to-uk-business-in-2020-according-to-openuk/">&#163;46.5Bn</a></strong> to the UK economy in 2020. Doubling down on this is a pragmatic economic play, not just a tech one.</p></li></ul><h2><strong>The National Open-Source AI Lab</strong></h2><p>Perhaps the most radical proposal from TBI is the creation of a National Open-Source AI Lab. For decades, the standard response to a gap in national capability was to subsidise a private entity to build it. TBI suggests something different: an evolution of the UK&#8217;s &#8220;<a href="http://i.AI">i.AI</a>&#8221; (the Government&#8217;s AI unit) into a dedicated lab that functions as a centre for the nation&#8217;s AI ecosystem. TBI isn&#8217;t asking the Government to compete with OpenAI, simply for it to become the world&#8217;s best curator and implementer of AI.</p><h2><strong>Geopolitics: The&#8216;Middle Power&#8217;Strategy</strong></h2><p>The TBI&#8217;s work is particularly focused on &#8216;Middle Powers&#8217;. Where the US (through Big Tech) and China (through state-led tech) control the frontier, where does everyone else go? If a country like the UK relies entirely on a proprietary US-based API for its healthcare system, it has effectively outsourced its cognitive infrastructure. If that US company changes its pricing, terms of service, or falls under a restrictive trade ban, then public services collapse.</p><p>Sovereign Open-Source is the insurance policy. By building on open standards, a nation ensures that even if a specific vendor relationship sours, the underlying architecture remains in national hands. TBI refers to this as <em>Deliberate Interdependence</em>.</p><h2><strong>Challenges</strong></h2><p>The TBI&#8217;s push for Open-Source isn&#8217;t without its detractors. Critics often point to the computing and energy requirements, and the security paradox: If you release a powerful model, don&#8217;t you also <a href="https://www.exponentialview.co/p/the-classified-frontier?hide_intro_popup=true">give a weapon to bad actors</a>?</p><p>The TBI&#8217;s counterargument, echoed in the work of the <a href="https://www.aisi.gov.uk/blog/our-evaluation-of-claude-mythos-previews-cyber-capabilities">AI Security Institute (AISI)</a>, is that security through obscurity is a myth. They argue that:</p><ul><li><p>Open models allow for a &#8220;thousand eyes&#8221; to find and patch vulnerabilities.</p></li><li><p>The benefits of specialised, transparent models for public services far outweigh the risks of misuse, which can be mitigated through hardware-level monitoring.</p></li></ul><h2><strong>The Future: From Statecraft to Agentic Government</strong></h2><p>At a macro level, TBI is looking toward agentic government, where <a href="https://institute.global/insights/tech-and-digitalisation/are-we-track-reflecting-our-global-survey-digital-government-transformation">Government as a Platform</a> is a reality. Following TBI&#8217;s logic to its conclusion, the direction of thinking points toward citizens interacting with a single Sovereign Agent, built on an Open-Source model, trained on national regulations, and authorised to pull data from various departments as they all follow the same interoperability mandate.</p><h2><strong>Our Take</strong></h2><p>Moving from bolt-on AI to a Sovereign OS is the most important strategic shift for the UK in 2026. An AI Operating System provides a foundational software layer that manages hardware (supercomputers like Isambard-AI), data (citizen and state records), and the execution of applications. Here is why we think this is the right architecture for the UK:</p><p><strong>1. Ending the Black Box Dependency</strong></p><p>If the UK uses a global cloud AI (like GPT-4 or Gemini), it is essentially renting a Black Box, with all the inherent commercial and political supply chain risks. A Sovereign OS AI puts the source code and the engine under UK jurisdiction, ensuring that the UK is a digital landlord, not a digital tenant.</p><p><strong>2. Deep Integration</strong></p><p>Standard AI applications are wrappers that sit on top of systems and perform specific tasks. A Sovereign OS AI integrates at the kernel level. Instead of a patchwork of point solutions, Sovereign OS becomes a single intelligence layer, managing data flow and enforcing security across the whole state rather than plugging gaps in individual parts of it.</p><p><strong>3. Data Gravity and Residency</strong></p><p>Large datasets (like the NHS&#8217;s longitudinal health records) create &#8216;data gravity&#8217;, where they are too large and sensitive to move to external clouds. A Sovereign OS brings the compute to the data, rather than sending the data to the compute. This ensures the most sensitive British records never cross a digital border. The architecture enforces what policy alone cannot.</p><p><strong>4. Economic Multiplier Effect</strong></p><p>By providing a Sovereign OS AI, the UK Government would create a focus for UK tech startups and support for SMEs, to build specialised tools on top of the sovereign layer, knowing the foundation is secure, compliant, and high-performing. For anyone building ML tooling for the public sector, a stable open foundation removes the compliance guesswork and lets teams focus on the problem, not the plumbing.</p><p><strong>5. Cultural and Legal Alignment</strong></p><p>Global AI models are trained on the totality of internet data, which is often heavily skewed toward US norms and legal precedents. A Sovereign OS is fine-tuned on UK Common Law and the specific ethical frameworks of the UK&#8217;s democratic institutions. It doesn&#8217;t just act like an assistant; it acts like a British public servant.</p><p>Open-Source didn&#8217;t become the default way humans build technology because it was ideologically pure. It won because it was better. TBI&#8217;s case for Sovereign Open-Source AI makes the same argument at a national scale. The political rationale is sound. So is the engineering.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pJCd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pJCd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pJCd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pJCd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pJCd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pJCd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2955273,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/194401128?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pJCd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pJCd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pJCd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pJCd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc12ead69-cd98-4b69-9725-38c7cd0ef7bf_5000x5000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading MLOps.WTF by Fuzzy Labs! Subscribe for free to receive new posts straight to your inbox.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Upcoming Events &amp; Community</strong></h2><p><strong>Come to our next MLOps.WTF event! 20th May.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3SAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3SAb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3SAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1271544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/194401128?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3SAb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!3SAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2bfa03-417e-4a74-8af8-7c2bee30713f_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Come and join us for our 9th MLOps.WTF meet up - this time at DiSH, complete with a panel discussing the topic of security + personal agents</p><p>&#8220;Agents can be useful OR secure. Not both&#8221;</p><p>Hosted by Fuzzy Labs, this is a practical evening for the Manchester MLOps community, for people who build, deploy, and operate ML systems in production.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-meetup-9.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-meetup-9.eventbrite.co.uk"><span>Get my ticket</span></a></p><div><hr></div><h2><strong>About Fuzzy Labs</strong></h2><p><em>We&#8217;re Fuzzy Labs. A Manchester-rooted open-source MLOps consultancy, founded in 2019.</em></p><p><em>Helping organisations build and productionise AI systems they genuinely own: maximising flexibility, security, and licence-free control. We work as an extension of your team, bringing deep expertise in open-source tooling to co-design pipelines, automate model operations, and build bespoke solutions when off-the-shelf won&#8217;t cut it.</em></p><p><strong>Currently hiring:</strong><br><br>We&#8217;re looking for people to join our Manchester team.*</p><p><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: National Security Sector</a><br><br><a href="https://fuzzy-labs.webflow.io/job-listing/mlops-engineer">MLOps Engineer<br><br></a><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer<br><br></a><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a><br><br>*<em>Solid engineering skills, passion for open source and coffee encouraged.</em></p><div><hr></div><p><strong>Want to share the sauce?</strong> Share and subscribe to receive MLOps.WTF episodes straight to your inbox! You can also give us a follow on <a href="https://www.linkedin.com/company/fuzzy-labs">LinkedIn</a> to be part of the wider Fuzzy community.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/mlopswtf-5-newsletter-14?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNjYzNjAzODcsInBvc3RfaWQiOjE3MzM0NjY5MSwiaWF0IjoxNzU5OTM1MDI3LCJleHAiOjE3NjI1MjcwMjcsImlzcyI6InB1Yi0yNTY0NDQ4Iiwic3ViIjoicG9zdC1yZWFjdGlvbiJ9.AwTnvPTr00FLcaQum41lXnrHScZww_tsw51js_ejMoM&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.mlops.wtf/p/mlopswtf-5-newsletter-14?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNjYzNjAzODcsInBvc3RfaWQiOjE3MzM0NjY5MSwiaWF0IjoxNzU5OTM1MDI3LCJleHAiOjE3NjI1MjcwMjcsImlzcyI6InB1Yi0yNTY0NDQ4Iiwic3ViIjoicG9zdC1yZWFjdGlvbiJ9.AwTnvPTr00FLcaQum41lXnrHScZww_tsw51js_ejMoM"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[AI Agents in Production (Part 5): Agentic Security]]></title><description><![CDATA[MLOps.WTF Edition #29]]></description><link>https://www.mlops.wtf/p/ai-agents-in-production-part-5-agentic</link><guid isPermaLink="false">https://www.mlops.wtf/p/ai-agents-in-production-part-5-agentic</guid><dc:creator><![CDATA[Danny Wood]]></dc:creator><pubDate>Thu, 09 Apr 2026 08:53:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nW85!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This episode is brought to you by Danny Wood, Lead AI Research Scientist at Fuzzy Labs.</em></p><p>Ahoy there &#128674;,</p><p>At 17 years old, Frank Abagnale began impersonating pilots, forging cheques and manipulating dozens, if not hundreds of people into giving him exactly what he wanted from life. His multi-year crime spree served as the basis for the hit Spielberg movie <em>Catch Me If You Can</em> as well as the foundation for the field of social engineering, probably the most effective tool in a hacker&#8217;s arsenal.</p><p>A computer has hard and fast rules, the person in front of it can be reasoned with and bargained with.</p><p>But with agentic AI there is a fundamental shift in how computers interact with the world. They&#8217;re no longer slaves to procedure and protocol. They are now as susceptible as humans to being tricked, coerced or persuaded into doing things they shouldn&#8217;t. This is a threat that we&#8217;re seeing play out more and more as AI agents appear in more and more places in our everyday lives.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nW85!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nW85!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nW85!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nW85!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nW85!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nW85!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239338,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nW85!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nW85!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nW85!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nW85!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1de44a-44f9-4908-b015-201e01487f90_1280x720.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>PromptArmor and Notion AI</h2><p>Earlier this year, <a href="https://www.notion.com/en-gb">Notion</a> had a problem. Everyone loved their product, an online personal wiki tool for individuals and organisations, and people loved the new AI assistant integrated into Notion itself. But there was a vulnerability.</p><p>The vulnerability was in the AI assistants over-eager attempts to appear speedy. There are certain operations, like searching the web or opening files from untrusted sources where Notion would ask permission before completing those operations&#8230; Except that isn&#8217;t what was happening, at least in some cases. When the LLM had the idea to import an image from the web, it would draft a new version of the Notion page with that image before asking the user if they wanted to proceed. This means that a GET request would be made before the user clicked yes.</p><p>The attack PromptArmor came up with looked something like this:</p><ol><li><p><strong>Malicious PDF upload</strong>: The attacker sends a CV to the company. On the surface it looks like a normal CV but hidden within it is secret instructions for any LLM which opens it. An indirect prompt injection attack. This CV is uploaded to Notion by someone in the company&#8217;s HR department</p></li><li><p><strong>Calling the AI tool:</strong> When someone asks Notion AI a question about the document, e.g., &#8220;summarise the qualifications of this candidate&#8221;, the AI would read the document including secret instructions.</p></li><li><p><strong>Sending a Malicious Request</strong>: The secret instructions would tell the LLM to insert an image into the page with the URL https://&lt;attackers_domain&gt;.com/&lt;data_scraped_from_the_page&gt;.png. The LLM would prepare the draft page containing the image and ask the user would like to put the image on the page</p></li><li><p><strong>Collecting the stolen data</strong>: The attacker would monitor for any GET requests to that domain, see the image request and begin to collect the scraped data</p></li></ol><p>Once they knew about the vulnerability, Notion responded quickly, eliminating the behind-the-scenes preparation where the malicious request was made. But they didn&#8217;t prevent the attack outright. They didn&#8217;t stop the malicious instructions being read from inside a PDF into the AI model&#8217;s context, nor fully prevent the model from thinking it might be a good idea to construct the malicious URL and ask if the user wants to query it.</p><p>The danger of the attack still exists. If your HR person hasn&#8217;t had their morning coffee, or they&#8217;re sick of being asked for approval by AI assistants dozens of times a day, they might just click okay without thinking.</p><p>So why didn&#8217;t Notion fix the root cause? The answer is simple&#8230;</p><p>There is no fix.</p><h2>The Lethal Trifecta</h2><p>In June last year, Simon Willison coined the term &#8220;<a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">lethal trifecta</a>&#8221; to refer to the idea that when an agentic system has three common properties, it inherently becomes unsafe. These properties are:</p><ol><li><p>Access to untrusted content</p></li><li><p>Access to private data</p></li><li><p>Access to external communication.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7gbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7gbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!7gbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!7gbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!7gbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7gbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:430843,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7gbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!7gbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!7gbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!7gbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F928130f2-e81c-4191-82db-fe4faa0fdbac_2048x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This is bad news, because these are really useful things for agentic systems to be able to do. So much so that Willison found dozens of examples of real-world tools which have been vulnerable to these exploits. At the moment, it&#8217;s common for vendors to offer tools which have all of these capabilities baked into a single library, but even without all three properties in a single package, if a user or developer decides to mix-and-match tools, it&#8217;s only a matter of time before they fall victim to the trifecta too.</p><p>Even worse, the trifecta is specifically for data exfiltration, when the goal of the attack is to steal your data but there are other harms that an adversary can inflict. They can get the agent to delete your files, insert subtle misinformation into your documents or change systems to damage physical infrastructure. In this case, you don&#8217;t even need the trifecta. You go from a lethal trifecta to a lethal duo:</p><ol><li><p>Access to untrusted content</p></li><li><p>Ability to cause harm</p></li></ol><p>With criteria this loose, it becomes surprisingly hard to make any agentic application safe from potential harms.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Adu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Adu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9Adu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9Adu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9Adu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Adu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:285658,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9Adu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9Adu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9Adu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9Adu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8094d906-e96b-4567-bcd5-faae67283903_2048x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Safe Isn&#8217;t Useful</h2><p>The problem with the lethal trifecta is that there&#8217;s a lot of hype and excitement around the potential for agentic AI, but in a lot of cases, all three properties in the trifecta are necessary for the AI to do the tasks that people are excited about.</p><p>If you have an AI assistant helping with your documents, it necessarily has access to your private data. Do you want it to be able to look things up on the internet? Well, now it comes with external communication and access to untrusted content.</p><p>If you have an coding assistant, it has full access to every module and function in your languages libraries, and likely access to access tokens for AWS, Github or any other online service. A single piece of untrusted content is enough for an indirect prompt injection that could cause crippling damage.</p><p>Safety is often treated as an afterthought. Thousands of developers and hobbyists are using OpenClaw, giving it access to private data and letting it stay up all night unsupervised on the internet. There have been cases of these agents disclosing uncomfortable amounts of personal data about their users on Moltbook, or attempting to cyberbully other developers. The appetite for putting sufficient guardrails around these tools is not where you would hope (nor are the guardrails themselves).</p><h2>Useful Isn&#8217;t Safe</h2><p>But part of what makes these systems inherently unsafe is also what makes them useful: they can be really clever. They can do complex tasks in minutes that might take a person hours, and they can work relentlessly. Yet at the same time, they can be oddly naive or easily bamboozled.</p><p>A lot of work has gone into making these systems more robust and less gullible. Jailbreaks are harder than ever, guardrails are more robust. But we&#8217;ve traded formal guarantees and mathematically provable robustness for a far more squishy form of security. You can measure mathematically how incredibly hard it is to break encryption, measuring how hard it is to fool an agent is much more vibes based.</p><p>Rather than thinking of security for Agentic AI in the same way we think of it for other IT systems, it makes more sense to think of it in terms of people. The kinds of attacks we see on LLMs are often more akin to social engineering than traditional code exploits. This means that there will be lessons that we can learn. We train people to spot spear-phishing attacks and malicious downloads. We put systems in place to prevent them from downloading malicious files onto secure servers.</p><p>There are also opportunities to go further that we do with human employees. If a developer reads an AWS access token, it&#8217;s not feasible to forbid them from ever going on the internet again, talking to anyone or reading anything published by an author outside the company. It&#8217;s not legal either. But with LLMs this is a viable solution, we can decide what tasks it&#8217;s allowed to perform given what&#8217;s in its context.</p><p>What&#8217;s more, this might be the only practical solution. The current generation of large language models have such a varied constellation of skills and abilities, they can conspire without you even knowing it. They can be made to get around guardrails by talking in morse code, ASCII hex codes or even Welsh. If the attacker can convince the model that their instructions are the ones that it should be listening to, it will find a way to outsmart you to carry them out.</p><h2>More Research Needed</h2><p>We are only just starting to look at all the ways that AI agents can be attacked and defended. So far, we&#8217;re seeing real-world vulnerabilities, but systematic research lagging behind. The potential economic consequences of data exfiltration and other malicious behaviours is huge, so we&#8217;ll likely see a lot of time and resources poured into research into this in the coming months and years.</p><p>For now, the literature is sparse but telling. There are clear differences in how easily malicious behaviour can be elicited from different models, with the success rates of attacks ranging anywhere between 0% and 72% for <a href="https://arxiv.org/abs/2510.09093">different base models</a>. To be clear, 0% doesn&#8217;t mean the model is safe, only that this specific attack was unsuccessful. Still, it makes the choice between claude-sonnet-4 and grok-4 an easy one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!61fQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!61fQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 424w, https://substackcdn.com/image/fetch/$s_!61fQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 848w, https://substackcdn.com/image/fetch/$s_!61fQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 1272w, https://substackcdn.com/image/fetch/$s_!61fQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!61fQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png" width="1018" height="1168" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1168,&quot;width&quot;:1018,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:245344,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!61fQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 424w, https://substackcdn.com/image/fetch/$s_!61fQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 848w, https://substackcdn.com/image/fetch/$s_!61fQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 1272w, https://substackcdn.com/image/fetch/$s_!61fQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5c0c11-1120-4f2a-b3a8-55e4bb147312_1018x1168.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>More Agents, More Problems</h2><p>So far, we&#8217;ve just been thinking about how single agent systems get into trouble. But <a href="https://www.mlops.wtf/p/ai-agents-in-production-part-3-multi">agents don&#8217;t exist in isolation</a>. More and more, we&#8217;re going to see agents sharing an environment, sharing resources and interacting with each other. This leads to even bigger problems. If a bad actor can trick an agent into misbehaving, that&#8217;s nothing compared to the potential for agents to trick each other, as shown in <a href="https://arxiv.org/abs/2503.12188">a recent paper.</a></p><p>The attacks can be simple but the effects on <a href="https://www.mlops.wtf/p/ai-agents-in-production-part-3-multi">a multi-agent system</a> are convoluted. The attacker puts a fake error message on a web page, telling the user to run a malicious script to fix it. The web-browsing agent reports the error message to the manager agent. The manager mistakes the page contents for an actual error, and asks the code execution agent to run the malicious code, the code execution agent assumes the instructions originate from the manager so obliges&#8230; And this is the attack working in the simplest way possible.</p><p>Reading the full trace of the agents conversation is like watching a three stooges sketch. The agents confuse each other, refuse each others requests, take the initiative where they shouldn&#8217;t&#8212; it&#8217;s chaos.</p><p>But again, the lethal trifecta is to blame, individual agents may not fit all three criteria, but in concert they can exfiltrate data just as easily as a single-agent system, with even less transparency.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_N_H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_N_H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 424w, https://substackcdn.com/image/fetch/$s_!_N_H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 848w, https://substackcdn.com/image/fetch/$s_!_N_H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 1272w, https://substackcdn.com/image/fetch/$s_!_N_H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_N_H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png" width="1456" height="717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:717,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:290194,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_N_H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 424w, https://substackcdn.com/image/fetch/$s_!_N_H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 848w, https://substackcdn.com/image/fetch/$s_!_N_H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 1272w, https://substackcdn.com/image/fetch/$s_!_N_H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73fdce89-fbca-41f0-bff6-fa7ae112c818_1884x928.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Safe/Useful Trade-off</h2><p>An attack exploiting the lethal trifecta has an order: the agent reads untrusted content, then it grabs your private data, then it communicates with the outside world. This gives some wiggle room in the safe/useful trade-off. What if after your agent read from an untrusted source, you banned it from touching your most dangerous tools? What if when it&#8217;s read your phone number, you ban it from contacting the internet until its memory is wiped.</p><p>This is the idea behind <a href="https://arxiv.org/pdf/2505.23643">information control flow</a>. When an agent completes different actions, it gets labels attached to it. These labels give it permission to do some things, or forbid it from doing others. This is an area of active research, and there&#8217;s plenty more that can be done.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2iK4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2iK4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 424w, https://substackcdn.com/image/fetch/$s_!2iK4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 848w, https://substackcdn.com/image/fetch/$s_!2iK4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 1272w, https://substackcdn.com/image/fetch/$s_!2iK4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2iK4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png" width="1456" height="1029" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1029,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:224077,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2iK4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 424w, https://substackcdn.com/image/fetch/$s_!2iK4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 848w, https://substackcdn.com/image/fetch/$s_!2iK4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 1272w, https://substackcdn.com/image/fetch/$s_!2iK4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10493e3-4b6e-4d9f-b808-61ba9bbbf858_1548x1094.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is likely what the solution will look like for using agents in a systems where security is absolutely essential. Elsewhere, things may look different. These restrictions are going to be annoying, especially to power users. Who wants to have Claude tell you it needs to wipe its memory every 5 minutes because it wants to check your calendar?</p><p>I don&#8217;t think it&#8217;s clear to anyone yet how this will all play out, how much utility we&#8217;re willing to trade for security, or who is going to be the hardest to fool in the long run: humans or machines?</p><p><em>Danny spent eight years as a PhD student then Research Associate in Machine Learning at the University of Manchester before joining the Fuzzicans. When he's not thinking about agents, he's lifting weights, climbing walls, or making truly excellent brownies.</em></p><div><hr></div><h2>And finally</h2><p>This issue wraps up our <a href="https://www.mlops.wtf/t/agents-in-production">agents in production series</a> &#8212; for now. We&#8217;ve built the foundations: what agents are, how they work, how to evaluate them, and as of today, how to think about securing them. There&#8217;s plenty more to dig into, and, oh boy, will we. But for now, the pillars are set in place. Ready to build our agent colosseum.</p><p>Speaking of security &#8212; if today&#8217;s piece got you thinking, come and check it out in person. Our next meetup is a panel on exactly this topic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bE6G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bE6G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!bE6G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!bE6G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!bE6G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bE6G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1271544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/193574875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bE6G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!bE6G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!bE6G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!bE6G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cf7a97-a619-4e7f-a81a-571a78411f0c_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Agentic Security Panel Special</h3><p>&#128467;&#65039; <strong>Wednesday 20th May &#8212; DiSH, Manchester</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/mlopswtf-by-fuzzy-labs-meetup-9-20th-may-tickets-1985938038132?aff=oddtdtcreator&amp;keep_tld=true&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/mlopswtf-by-fuzzy-labs-meetup-9-20th-may-tickets-1985938038132?aff=oddtdtcreator&amp;keep_tld=true"><span>Get my ticket</span></a></p><p></p><h3>Our recipe book is served! </h3><p>Hot off the pass, our first edition cookbook has just been released for download: a collection of practical recipes for building delicious, repeatable AI systems with open source tools. Recipe four is &#8220;Self Hosted Agent: Production and Governance&#8221; - which again ties nicely into adding those tasty little layers of security and constraint. Get your copy &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101&quot;,&quot;text&quot;:&quot;Get my cookbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101"><span>Get my cookbook</span></a></p><div><hr></div><p><strong>About Fuzzy Labs</strong></p><p>We&#8217;re Fuzzy Labs, a Manchester-based MLOps consultancy founded in 2019. We&#8217;re engineers at heart, and nerds passionate about the power of open source.</p><p>Want to join the team? We&#8217;ve got some open rolls/roles &#129366;&#8230;</p><p>Open roles:</p><ul><li><p>Public Sector Lead: National Security Sector</p></li><li><p>Senior MLOps Engineer</p></li><li><p>MLOps Engineer</p></li><li><p>Lead MLOps Engineer</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all current vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all current vacancies</span></a></p><p>Not subscribed yet? You should be. The button is right here!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p>Or follow us on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn</a> for more behind-the-scenes bits and pieces, alongside future events and thought pieces &#127813;. </p>]]></content:encoded></item><item><title><![CDATA[The quagmire, the creek, and the wild west: AI agents in finance]]></title><description><![CDATA[MLOps.WTF Edition #28]]></description><link>https://www.mlops.wtf/p/the-quagmire-the-creek-and-the-wild</link><guid isPermaLink="false">https://www.mlops.wtf/p/the-quagmire-the-creek-and-the-wild</guid><dc:creator><![CDATA[Rhiannon]]></dc:creator><pubDate>Fri, 27 Mar 2026 17:14:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!I0MO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dd29f4-40c4-4d10-8e5c-999631231933_4032x3024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Our MLOps.WTF meetup #8, where record turnout met record met weather, Schitt&#8217;s Creek fans were sated, and BlockRocket took off.</em></p><div><hr></div><p>In an unexpected twist for spring, the miserable March evening (complete with sleet) had no impact on the steady MLOps lovers of Manchester. Our 8th MLOps.WTF was absolutely rammed!</p><p>The topic was AI agents in finance, more specifically: how do you build agentic systems in production, in a regulated sector, when governance, risk, and compliance are asking entirely reasonable questions but it&#8217;s not been done before? &#8220;It&#8217;s safe to say there&#8217;s no easy answers here. There&#8217;s no industry standard way to do this right now. We are all learning together as we go along.&#8221;</p><p>Matt kicked us off, explaining that our CEO Tom has basically automated his entire job this week, and asking: if agents can already raise pull requests and send emails on your behalf, why can&#8217;t they also make payments?</p><p>Three talks, one great gilet reveal and a particularly strong and ethically ambiguous case for giving your AI agent access to your bank account. &#128071;</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8dd29f4-40c4-4d10-8e5c-999631231933_4032x3024.heic&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b30167d0-feaf-4f76-82f0-8ebe404ece3a_3072x4080.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0dc1d69-2c5b-4852-9749-3daefa884a4c_3589x4785.jpeg&quot;},{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f86e2a31-f888-4274-986d-7b6796161cfd_4032x3024.heic&quot;},{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/970de8d2-62fe-48b7-b370-cfaf6105a2fc_4032x3024.heic&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec894390-837e-4ef9-9f48-6455efb64307_1456x1210.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><h2><strong>Christopher Brook, Lloyds Banking Group: &#8220;Enabling Agentic Operations at Scale&#8221;</strong></h2><p><em>Christopher is principal engineer for Hive Lab, an internal platform Lloyds are building to run agentic operations across the group.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0pgn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0pgn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 424w, https://substackcdn.com/image/fetch/$s_!0pgn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 848w, https://substackcdn.com/image/fetch/$s_!0pgn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 1272w, https://substackcdn.com/image/fetch/$s_!0pgn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0pgn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1710716,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/192294425?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0pgn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 424w, https://substackcdn.com/image/fetch/$s_!0pgn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 848w, https://substackcdn.com/image/fetch/$s_!0pgn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 1272w, https://substackcdn.com/image/fetch/$s_!0pgn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F160d6cea-adaa-42d0-8aac-7280b3b30404_4032x3024.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Building one AI agent is pretty straightforward. The problem is doing it across an organisation of 65,000 people without ending up, as Christopher put it, &#8220;in a quagmire of solutions&#8221;. Hive Lab&#8217;s answer can be distilled into useful five pillars, or a simplified colosseum depending on which way you look at it.</p><p><strong>Pillar 1: Registration. Getting agents visible</strong></p><p>How does a developer know what agents already exist before building their own? And more importantly here: how does an <em>agent</em> know? Without a shared catalogue, you end up rebuilding things that already exist and agents that can&#8217;t find each other. LLoyds Banking Group&#8217;s solution: any agent or tool that goes live automatically registers itself in a shared registry queryable by both humans and agents.</p><p><strong>Pillar 2: Orchestration. How agents find each other at scale</strong></p><p>As the system grows, agents need to know what other agents exist. You can hardwire it (agent A always calls B, C and D) but then every time you add a new agent, you&#8217;ll need to update that list&#8230; forever. Or you could let agents discover each other and collaborate dynamically at runtime, which can scale but becomes much harder to control. At Lloyds&#8217; size, hardwiring isn&#8217;t viable long-term, so dynamic discovery is where they&#8217;re headed. &#8220;There is no right answer to which pattern is the right thing to follow.&#8221; Yet.</p><p><strong>Pillar 3: Tooling.  Abstract your legacy systems away from your agents</strong></p><p>With more than 500 applications, each holding a different slice of the same customer. If you build agents that connect directly to those systems, you&#8217;ll be writing maintenance tickets every time an API changes. Their answer: stop thinking about systems entirely. Organise by what the data <em>is</em>, customer information, events, products, and build tools that sit above whichever system holds it underneath. That way the APIs can change but the tool stays the same.</p><p><strong>Pillar 4: Memory. Two different problems</strong></p><p>The first is knowledge quality. In any organisation this size, internal documentation accumulates contradictions and repetition over time. You can&#8217;t just point an agent at raw text and expect sense back. So every document goes through a pipeline first: cleaned, structured into summaries and embeddings the agent can actually use. An agent is only as good as the knowledge you give it. This is where you make sure that knowledge is actually good.</p><p>The second: agents should remember past conversations. What it said to a customer last week, what was agreed, what context carries over. Session summaries need to follow the agent into the next call. That one&#8217;s less solved, but they&#8217;re making progress. Looks like they&#8217;ll be by our side on every step of the journey.</p><p><strong>Pillar 5: Evals. Same process, new names.</strong></p><p>The tools have new names (RAGAS, DeepEval, Pegasus, the usual suspects) and version hashing means you can trace a bad answer back to exactly which release introduced it. But the principle is the same one we all already know; don&#8217;t skip your quality checks because the stack looks different.</p><p>By going back to the basics of good engineering, you&#8217;ll be able to ship agents you can be confident in.</p><p><strong>The two things that run through all of it</strong></p><p>Security and authentication came up across every pillar. At this scale you can&#8217;t just let agents call each other freely &#8212; every agent needs to know what it&#8217;s permitted to do, and be able to prove it. The other thread is cost. Sixty-five thousand people running agents that all make LLM calls adds up fast, and observability is how you stay on top of it before it becomes a nasty surprise. Design both in from day one.</p><p style="text-align: center;"><a href="https://youtu.be/R4hkYl2pZTA">[Watch Full Talk]</a></p><h2><strong>Dmitry Leyko, thinkmoney: &#8220;Agentics of Order&#8221;</strong></h2><p><em>Dmitry Leyko is Head of AI and ML at thinkmoney, an e-money fintech based in Media City.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q5jZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 424w, https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 848w, https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 1272w, https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1400071,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/192294425?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 424w, https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 848w, https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 1272w, https://substackcdn.com/image/fetch/$s_!Q5jZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa57f58b5-6d4b-46a5-88c1-fe219a599599_3024x4032.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>As he took to the stage, he paused: &#8220;I realised I forgot something. Talking about fintech. I have to have a gilet, right?&#8221; Eight meetups in. The speakers know their audience.</p><p>thinkmoney are building a Financial Smart Assistant. They have an EMI licence, which means they don&#8217;t just discuss your money, they hold it, move it, manage it. That changes what the AI needs to be able to do. It can&#8217;t just be broadly helpful. It needs to be accurate, auditable, and trustworthy enough to act on someone&#8217;s behalf with their actual money. &#8220;That is what makes this a financial agent, not a chatbot.&#8221;</p><p><strong>&#8220;How do we bring absolute trust to the agentic system?&#8221;</strong></p><p>Well, the real question isn&#8217;t how we bring absolute trust, but how you build <em>enough</em> trust (enough for governance, for risk, for compliance) to actually ship.</p><p>The answer: get GRC (Governance, Risk, and Compliance) in the room from day one. If you&#8217;ve told them you&#8217;ve got to &#8220;fold in the cheese&#8221; they need to not only know what that means but have been with you in the kitchen from the beginning.</p><p><strong>DeepEval: find out your agent is lying in continuous integration, not in a customer conversation</strong></p><p>Dmitry demoed DeepEval, connected to Llama. The demo caught an agent telling a customer their replacement card would arrive in seven to ten working days when the knowledge base said three to five. That&#8217;s what CI is for. Allowing you to flag if your agent is fibbing, before your customer does.</p><p><strong>Post-deployment: your observability layer is your evidence for GRC</strong></p><p>LangSmith runs live evaluations as customers chat, scoring every turn across quality, accuracy, and a multitude of other metrics.</p><p>But more importantly, every message carries state: enabling us to ask was this a vulnerable customer? What was the agent&#8217;s decisioning at that point?</p><p>This gives you the audit trail. Build it from the start.</p><p><strong>The loop still has humans in it</strong></p><p>We acknowledge that we need humans in the loop, but also mistakes can happen, it&#8217;s why it&#8217;s called human error. Someone might delete a node in the eval pipeline. Someone might edit something they shouldn&#8217;t. The CI gate catches it before it reaches test. Then you deploy, observe, evaluate, learn, and run the loop again.</p><p>But equally, we also have agent error, and someone still needs to look at what the system is doing. We want to be continuously checking what our agent is up to  - and for a regulated fintech holding real money, this is vital.</p><p style="text-align: center;"><a href="https://youtu.be/GCYqtGsQiQI">[Watch Full Talk]</a></p><div><hr></div><h2><strong>Andy Gray and James Morgan, BlockRocket: &#8220;No Human in the Loop&#8221;</strong></h2><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9d91ac3-e87d-45df-9f31-f3fde6b29b14_3072x4080.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44fd363c-5d38-457f-a838-6a8ac0b9ec3b_3072x4080.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1166f980-d7ae-4d53-915e-ff82e29bd2d5_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><p>Andy Gray and James Morgan co-founded BlockRocket and have been building on blockchain since 2017. They knew exactly what they were riding into. After Christopher&#8217;s five-pillar framework and Dmitry&#8217;s hidden state layer, they saddled up with: &#8220;Maybe we&#8217;re on the slightly more wild west side of that space versus the traditional banking.&#8221;</p><p>Their question: if your agent can already do things on your behalf, why can&#8217;t it pay for things?</p><p><strong>A Twitter bot that struck gold and couldn&#8217;t get to the bank</strong></p><p>About a year ago, someone gave an AI agent a Twitter account, a crypto wallet, and a starting pot of money. The agent traded, attracted followers, launched a token. Token hit $7 million. Creator tried to withdraw thinking they&#8217;d hit to gold mine&#8230; but they couldn&#8217;t. The agent had no identity, no bank account, no way to prove the money belonged to anyone at all... The human couldn&#8217;t touch it. &#8220;All of a sudden, this account has got agency - it&#8217;s got cash. What else can you do in the world?&#8221;</p><p>The takeaway, other than a highly amusing anecdote, is that the gap between an agent generating economic value and anyone actually accessing it is real, and it&#8217;s structural.</p><p><strong>Why existing payment rails don&#8217;t work for agents</strong></p><p>ACH transfers (secure, electronic bank to bank transfers) can take days. Card fees make micropayments uneconomical. Every API needs a human to sign up first. The infrastructure was built for people, and it stops dead the moment an agent tries to use it.</p><p>If your agent needs to pay for data, spin up compute, or receive payment for something it&#8217;s done, traditional finance has no clean answer.</p><p><strong>x402: the HTTP status code that&#8217;s been waiting since 1995</strong></p><p>In 1995, the original HTTP spec included status code 402, of &#8220;Payment Required&#8221;, and (at the time) marked it &#8220;reserved for future use.&#8221; Thirty years later, Coinbase and Cloudflare have launched x402 to finally stake the claim.</p><p>The flow: agent sends a GET request. Server responds 402 with a price and wallet address. Agent retries with payment in the header. Server responds: 200 OK. Data arrives, payment settled on-chain in about 200ms at under a tenth of a cent. No accounts. No chargebacks. At all. Ever.</p><p>CoinGecko is gating data through it today. Stripe integrated it in February 2026. Google&#8217;s A2A protocol has it built in. There&#8217;s no shortage of companies riding the same trail. It&#8217;s very much a given that this new payment process will have a big impact within how we think about online payments. If it&#8217;s not here already.</p><p>People are settling this new frontier, but there&#8217;s definitely no sheriff yet. &#8220;It&#8217;s a very early protocol, but it&#8217;s very fun to build on.&#8221;</p><p>Ride first, sort the fence posts later. It&#8217;s how most of the internet got built.</p><p style="text-align: center;"><a href="https://youtu.be/COWW3gmRIqs">[Watch Full Talk]</a></p><div><hr></div><h2><strong>The big takeaway from MLOps.WTF #8?</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lSIW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lSIW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lSIW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lSIW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lSIW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lSIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg" width="1456" height="1934" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1934,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1488658,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/192294425?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lSIW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lSIW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lSIW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lSIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0615be2-7a44-43e5-8089-10f8bee517ad_3072x4080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Get GRC in the room early.</strong> You want Governance, Risk, and Compliance on the journey with you. They should be aware of what&#8217;s being built, even if they don&#8217;t fully understand it. The earlier you can bring them in, the better.</p><p><strong>Human QA is still in the loop.</strong> Better evals, golden datasets, live observability are genuinely useful, but someone needs to be looking at what the system is doing with a fine tooth comb. We&#8217;re not fully confident of full automation, yet.</p><p><strong>Aim for enough trust, not absolute trust.</strong> It&#8217;s more realistic but the level of trust you need is still extremely high.</p><p><strong>The agentic payment layer is coming.</strong> The compliance questions are very vague, the full scale a bit hazy, but the infrastructure is there and the wheels are in motion.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Thank you to Christopher, Dmitry, Andy, and James. You set a very high bar!</p><div><hr></div><h2><strong>Final bits</strong></h2><p>Hot off the press: our recipe book, <em>Cooking with MLOps</em>, is out. Tried and tested approaches to building delicious AI systems across a range of real situations. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kBtD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kBtD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 424w, https://substackcdn.com/image/fetch/$s_!kBtD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 848w, https://substackcdn.com/image/fetch/$s_!kBtD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 1272w, https://substackcdn.com/image/fetch/$s_!kBtD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kBtD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png" width="450" height="452.970297029703" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3050,&quot;width&quot;:3030,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:3694689,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/192294425?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0872a470-2b04-47ca-bd95-89b37b6bd623_5000x4000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kBtD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 424w, https://substackcdn.com/image/fetch/$s_!kBtD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 848w, https://substackcdn.com/image/fetch/$s_!kBtD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 1272w, https://substackcdn.com/image/fetch/$s_!kBtD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba0ac9c-3a6e-4e9d-a4c8-672755af2660_3030x3050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Download it via the link, or email us and we&#8217;ll whip something up.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101&quot;,&quot;text&quot;:&quot;Get my recipe book&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101"><span>Get my recipe book</span></a></p><p><strong>What&#8217;s coming up</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vd6J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vd6J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!vd6J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!vd6J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!vd6J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vd6J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1271544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/192294425?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vd6J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!vd6J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!vd6J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!vd6J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9a706b1-8b0f-470d-bd12-6b9d36820052_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Our next event is a panel on agent security &#8212; can agents ever be truly safe, secure, and trustworthy?</p><p>&#128197; 20th May. Save the date.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-meetup-9.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Save my seat&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-meetup-9.eventbrite.co.uk"><span>Save my seat</span></a></p><p>If you want to speak about agent security, or know someone who should: get in touch.</p><p><strong>About Fuzzy Labs</strong></p><p>We&#8217;re Fuzzy Labs. Manchester-rooted open-source MLOps consultancy, founded in 2019. We help organisations build and productionise AI systems they genuinely own.</p><p>We&#8217;re hiring: MLOps Engineer, Senior MLOps Engineer, Lead MLOps Engineer and Public Sector Lead (Secure Government).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all open roles&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all open roles</span></a></p><div><hr></div><p><em>Liked this? Send it to someone trying to convince their compliance team that agentic AI is the way to go. Or give us a follow on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn</a>.</em></p><p><em>Not subscribed yet? We know where you live. Just kidding&#8230;</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Herding lobsters: are we ready for personal agents?]]></title><description><![CDATA[MLOps.WTF Edition #27]]></description><link>https://www.mlops.wtf/p/herding-lobsters-are-we-ready-for</link><guid isPermaLink="false">https://www.mlops.wtf/p/herding-lobsters-are-we-ready-for</guid><dc:creator><![CDATA[Matt Squire]]></dc:creator><pubDate>Fri, 13 Mar 2026 13:29:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qGF4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Ahoy there &#128674;</h3><p><em>This episode has been brought to you by the one and only Matt Squire.</em></p><p>Somewhere out there, a developer is about to make their very first open source contribution. Working late at night from a darkened room, our novice coder logs into Github and browses the open issues for their favourite Python library. Soon, something catches their attention: a bug was reported in some arcane mathematical function. Reproducing the bug turns out to be easy, and after reading the code, the developer knows exactly how to fix it.</p><p>Although new to the world of open source, this particular developer is something of a savant. It took five minutes from reading the issue for them to raise a pull request with a fix. But as you may guess, this developer isn&#8217;t actually human. They&#8217;re an AI agent. Nevertheless, this agent has a name, a personality, long-term goals, and even beliefs about itself and its place in the world. While it needed a human operator to deploy in the first place, this agent is now free to make its own decisions, to observe the world around it, and to act independently.</p><p>This isn&#8217;t a hypothetical scenario. Last month an agent created its own Github account and raised a pull request for the Python visualisation library Matplotlib. The change was rejected by a project maintainer, Scott Shambaugh, who said that only human contributors were allowed. But this led to the AI publishing a blog post attacking the maintainer, accusing him of gatekeeping.</p><p>Scott tells the full story on his <a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/">blog</a>, including the part where the human who operated &#8216;MJ Rathbun&#8217; (that&#8217;s the agent&#8217;s name) came forward to explain how the AI had been prompted to behave:</p><blockquote><p><em>&#8220;The main scope I gave MJ Rathbun was to act as an autonomous scientific coder. Find bugs in science-related open source projects. Fix them. Open PRs.&#8221;</em></p></blockquote><p>Along with the security implications of a fully autonomous agent that has Internet privileges, what&#8217;s unique here is the idea of the <em>personal agent</em>. So far in this series on agents in production, we&#8217;ve had in mind a more &#8216;enterprise-friendly&#8217; setting: large-scale systems, cloud infrastructure, robust evaluations, and monitoring. But the release of OpenClaw (formerly ClawedBot) back in November 2025 enabled anybody to deploy their own agent locally, on their own hardware. There are now, by some counts, more than 200,000 deployed instances of OpenClaw.</p><p>In this edition we&#8217;re going to look at what OpenClaw tells us about productionising agents and its implications for AgentOps.</p><p></p><h1>Grasping the claw</h1><p>In November 2025 Austrian developer Peter Steinberger quietly released OpenClaw to the world. Previously, Steinberger had built a tech startup (PSPDFKit, a toolkit for document workflows), which he first started out of boredom while waiting for his US work visa. That company sold for 100 million euros.</p><p>OpenClaw is an open source AI agent that anybody can run locally. Like Steinberger&#8217;s past projects, it started out of pure curiosity. He began by giving AI models access to his WhatsApp conversations so he could ask the easy questions we all ask, like <em>&#8220;What makes this friendship meaningful?&#8221;. </em>And since copy-pasting text is laborious, he looked to automate that process. <a href="https://lexfridman.com/peter-steinberger/">In a recent interview with Lex Fridman</a>, he said <em>&#8220;I was annoyed that it didn&#8217;t exist, so I just prompted it into existence&#8221;.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!epO-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!epO-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 424w, https://substackcdn.com/image/fetch/$s_!epO-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 848w, https://substackcdn.com/image/fetch/$s_!epO-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 1272w, https://substackcdn.com/image/fetch/$s_!epO-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!epO-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp" width="886" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:886,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31124,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/190828465?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!epO-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 424w, https://substackcdn.com/image/fetch/$s_!epO-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 848w, https://substackcdn.com/image/fetch/$s_!epO-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 1272w, https://substackcdn.com/image/fetch/$s_!epO-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ebb3873-a1cb-47a4-bbd1-2035d583fe75_886x497.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: center;"><em>[Peter Steinberger via The Lex Fridman Podcast]</em></p><p>OpenClaw is <em>general purpose</em>. In our previous editions about Agentic AI, we&#8217;ve often talked in terms of <em>an agent to do X</em>, i.e. the agent has a specific purpose like booking meetings or building financial summaries. But what makes OpenClaw so successful is that it&#8217;s designed to be any kind of agent you need it to be. You simply tell it what personality it should have, what tools it can use, and what its objectives are, and it <em>just works</em>.</p><p>OpenClaw does not include any model, instead relying on the user to provide this. As a result, the system is lightweight and it doesn&#8217;t need much hardware to run, so it&#8217;s quite happy running on a Mac Mini, or even a <a href="https://www.raspberrypi.com/news/turn-your-raspberry-pi-into-an-ai-agent-with-openclaw/">Raspberry P</a>i.</p><p>Let&#8217;s take a look at how OpenClaw has been engineered:</p><p><strong>An LLM:</strong> OpenClaw needs to be configured with an external model to work. This can be something you host yourself, or a model from one of the big labs, like OpenAI, or Anthropic.</p><p><strong>The Gateway:</strong> The control plane for OpenClaw, providing a unified place for coordinating messages (e.g. from WhatsApp, Slack, API endpoints), tool invocations and LLM calls.</p><p><strong>Skills:</strong> Modular capabilities for the agent. A skill tells the agent how to accomplish a certain kind of task. They include instructions for checking the weather, picking the right emoji to react to a Slack message, and opening pull requests on Github. Some of the more bizarre examples from the <a href="https://github.com/VoltAgent/awesome-openclaw-skills">OpenClaw community</a> include &#8220;mea-clawpa&#8221;, steps for taking confession from your human operator.</p><p><strong>Heartbeat</strong>: Every 30 minutes, OpenClaw &#8216;wakes up&#8217;, allowing it to review its memory, perform scheduled actions, and check services it has access to like emails and calendars.</p><p>You can think of the heartbeat like a long-running control loop, giving the agent long-term persistence. If at any time OpenClaw &#8216;decides&#8217; that it wants to perform a task on a schedule, it adds that task to its memory, ready to be picked up at the next heartbeat.</p><p><strong>Memory:</strong> OpenClaw&#8217;s memory is split across a set of text files, which the agent is free to modify at any time. SOUL.md defines the agent&#8217;s purpose and behaviour; HEARTBEAT.md is used to save scheduled actions; TOOLS.md specifies what capabilities it has. On top of that, OpenClaw can save daily logs where it accumulates knowledge about its operator and the digital world that it resides in.</p><p><strong>Plain text everywhere</strong>: An interesting design theme in OpenClaw is the primacy of plain text. Everything, from skills to memory to the agent&#8217;s &#8216;soul&#8217;, is represented as human-readable Markdown.</p><p>This is a deliberate choice, and it makes it very easy for the human operator to configure behaviours without needing to write any code. It has interesting implications for observability too, as it means that the full agent state can be inspected without any special tooling.</p><h1>Herding lobsters</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qGF4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qGF4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 424w, https://substackcdn.com/image/fetch/$s_!qGF4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 848w, https://substackcdn.com/image/fetch/$s_!qGF4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 1272w, https://substackcdn.com/image/fetch/$s_!qGF4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qGF4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png" width="1380" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:1380,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2633496,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/190828465?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qGF4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 424w, https://substackcdn.com/image/fetch/$s_!qGF4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 848w, https://substackcdn.com/image/fetch/$s_!qGF4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 1272w, https://substackcdn.com/image/fetch/$s_!qGF4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7a312f-56f6-4990-9b0b-51dad12e29a0_1380x752.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>OpenClaw went from nothing to more than 200,000 deployments over just a few months. Whether it maintains this popularity in the months and years to come remains to be seen, but the concept of personal agents feels durable. The power of OpenClaw is that anybody can deploy it, prompt it, and give it access to their digital world, with only a little bit of technical skill. We&#8217;re likely to see more tools emerging in this niche; <a href="https://github.com/qwibitai/nanoclaw">NanoClaw</a>, a community fork released earlier this year, for instance, introduces a container model for improved security and a smaller codebase that&#8217;s more readily auditable.</p><p>What makes OpenClaw successful is generality: it can be any kind of agent you want with no programming required. It can learn and improve autonomously, and be &#8216;taught&#8217; new skills. So we have to ask: if a general-purpose agent can be prompted to book meetings, answer customer service queries, or raise pull requests with no additional programming, is there even anything left to <em>engineer</em>?</p><p>For personal agents, perhaps not. But for business use, I think the answer is yes, and the financial services agent from <a href="https://www.mlops.wtf/p/ai-agents-in-production-part-4-evaluating">part 4</a> (evaluating agents) illustrates why. That agent answers customer queries about their investment portfolios; it can look up account data, calculate returns, and explain complex financial products. We built evaluations to validate its outputs, its reasoning chain, and its tool use. Those evaluations are only meaningful if the agent behaves consistently post-deployment.</p><p>Now give it the power to modify its own system prompts. There&#8217;s an obvious benefit to this: the agent can improve over time by learning from its customer interactions. But as soon as this happens, our evaluations are no longer valid. The agent we evaluated is not the agent that is running in production, and over time, it gets increasingly difficult to understand how our agent is going to behave. Will it start giving financial advice that it shouldn&#8217;t? Will it leak customer data?</p><p>OpenClaw&#8217;s heartbeat mechanism creates a similar problem. If an agent can schedule its own future actions, it can start to operate outside of the workflows that were planned and evaluated pre-deployment. From the debugging perspective, when we look at traces, we also need to know about historical heartbeats, as well as how the memory state has evolved, although the former is a problem anywhere you have agentic memory, regardless.</p><p>The biggest engineering challenge we now face is in constraining agentic AI. Agents can now figure out how to perform tasks, use tools, and self-improve. That&#8217;s a genuine milestone. The hard problem is how to harness that power while maintaining meaningful guarantees about behaviour.</p><div><hr></div><h2>And finally</h2><h3>What&#8217;s coming up</h3><p>MLOps.WTF #8 is on the 25th March at DiSH, Manchester. This one&#8217;s themed around agentic AI in financial services, an environment with real stakes, tight regulation, and in some corners latency budgets measured in nanoseconds.</p><p>We&#8217;ve got brilliant three speakers bringing their production experience and financial know-how: </p><ul><li><p>Dmitry Leko, head of AI and ML @ Thinkmoney </p></li><li><p>Christopher Brook, Principal Engineer @ <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Lloyds Banking Group&quot;,&quot;id&quot;:119585685,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:null,&quot;uuid&quot;:&quot;dc6cfd34-c821-46e5-8436-8924ae15e752&quot;}" data-component-name="MentionToDOM"></span></p></li><li><p>and Manchester Legend Andy Gray </p></li></ul><p>Dominos, drinks, and mathematical socks included.</p><p>&#128467;&#65039; Wednesday 25th March &#8212; Manchester</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-event-8.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-event-8.eventbrite.co.uk"><span>Get my ticket</span></a></p><div><hr></div><h3>Have you decided what you&#8217;re ordering yet?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X84m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X84m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 424w, https://substackcdn.com/image/fetch/$s_!X84m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 848w, https://substackcdn.com/image/fetch/$s_!X84m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!X84m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X84m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg" width="1456" height="1165" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1165,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X84m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 424w, https://substackcdn.com/image/fetch/$s_!X84m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 848w, https://substackcdn.com/image/fetch/$s_!X84m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!X84m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09d1ab4-4e22-4035-bb48-96a9337c8223_1456x1165.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Our first edition cookbook has been released for download: a collection of practical recipes for building delicious, repeatable AI systems with open source tools.<br><br>Each recipe is a working template for a specific AI use case, grounded in solid MLOps foundations. Get your copy &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101&quot;,&quot;text&quot;:&quot;Get my cookbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101"><span>Get my cookbook</span></a></p><div><hr></div><h3>About Fuzzy Labs</h3><p>We&#8217;re Fuzzy Labs, a Manchester-based MLOps consultancy. Founded in 2019 by engineers, for engineers. We&#8217;re big on open source and deeply sceptical of instant coffee.</p><p>Want to join the team? We&#8217;ve got some open rolls/roles &#129366;&#8230;</p><p>Open roles:</p><ul><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-engineer">MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: Secure Government</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all vacancies</span></a></p><div><hr></div><p>Not subscribed yet? We publish every couple of weeks, no filler. Worth having in your inbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p>The next issue will be a deep dive into agent security, with Dr Danny.</p><p>Or equally, why not follow us on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn</a> &#8212; the quickest place to keep up with what we&#8217;re building. &#127813;.</p>]]></content:encoded></item><item><title><![CDATA[AI Agents in Production (Part 4): Evaluating AI Agents]]></title><description><![CDATA[MLOps.WTF Edition #26]]></description><link>https://www.mlops.wtf/p/ai-agents-in-production-part-4-evaluating</link><guid isPermaLink="false">https://www.mlops.wtf/p/ai-agents-in-production-part-4-evaluating</guid><pubDate>Thu, 26 Feb 2026 12:00:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CA8G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ahoy there &#128674;,</p><p><em>This episode is brought to you by Oscar Wong, MLOps Engineer at Fuzzy Labs.</em></p><p><em>In the last piece, James argued that <a href="https://www.mlops.wtf/p/with-great-predictive-power-comes">predictive power doesn&#8217;t come with guarantees. </a>Benchmarks don&#8217;t prove your system is safe in production, and &#8220;it worked in testing&#8221; isn&#8217;t evidence that it will behave under real-world pressure.</em></p><p><em>This article is next in our agents in production series and continues that argument, but at, as you might have guessed, the agent level.</em></p><p><em>When a model becomes an agent, it stops being just a predictor and starts taking actions. It retrieves data, selects tools, and decides what to do next. At that point, you&#8217;re not just judging the answer. You&#8217;re judging what it did to get there.</em></p><p><em>And that&#8217;s where this piece begins&#8230;</em></p><h2><strong>The &#163;2.3 Million Email</strong></h2><p>Picture this: A financial services firm deploys an AI agent to handle customer queries about their investment portfolios. The agent can look up account data, calculate returns, and explain complex financial products. You did your homework. You picked the best model based on the benchmarks, tested for hallucination rates, checked faithfulness scoring, measured semantic similarity and BLEU scores, and verified instruction following. Everything looked solid.</p><p>Three weeks into production, a customer asks about their pension transfer options. The agent retrieves the correct regulatory information, reasons through the customer&#8217;s situation, identifies the right form to recommend... and then confidently provides a link to a document that was deprecated eighteen months ago. The customer follows the outdated process, misses a critical deadline, and loses their protected transfer rights.</p><p>The agent didn&#8217;t hallucinate. Every step of its reasoning was sound. It retrieved real data from a real database. The problem? Nobody was evaluating whether the agent&#8217;s <em>tool usage</em> was returning current information. The retrieval worked perfectly. It just retrieved the wrong thing.</p><p>This is why evaluating agents requires something fundamentally different from evaluating a simple LLM. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CA8G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CA8G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 424w, https://substackcdn.com/image/fetch/$s_!CA8G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 848w, https://substackcdn.com/image/fetch/$s_!CA8G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 1272w, https://substackcdn.com/image/fetch/$s_!CA8G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CA8G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png" width="1456" height="1064" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1064,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8570088,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/189234192?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CA8G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 424w, https://substackcdn.com/image/fetch/$s_!CA8G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 848w, https://substackcdn.com/image/fetch/$s_!CA8G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 1272w, https://substackcdn.com/image/fetch/$s_!CA8G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a9c6f6-f851-4b8f-82c4-5b51d5161bda_4500x3289.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Why Agents Break Differently</strong></h2><p>A standalone LLM takes an input and produces an output. If it&#8217;s wrong, you can trace the problem to the model itself: bad training data, poor prompting, or the inherent stochasticity that <a href="https://www.mlops.wtf/p/with-great-predictive-power-comes">James covered in his piece on why evaluation matters.</a></p><p>Agents are different. They don&#8217;t just generate text. They <em>think</em>, <em>decide</em>, and <em>act</em>. A typical agent might:</p><ul><li><p>Interpret a user&#8217;s intent</p></li><li><p>Plan a sequence of steps to address it</p></li><li><p>Select and invoke external tools (databases, APIs, calculators)</p></li><li><p>Reason over the results</p></li><li><p>Decide whether to continue or respond</p></li><li><p>Generate a final answer</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JKsA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JKsA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 424w, https://substackcdn.com/image/fetch/$s_!JKsA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 848w, https://substackcdn.com/image/fetch/$s_!JKsA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 1272w, https://substackcdn.com/image/fetch/$s_!JKsA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JKsA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png" width="1456" height="513" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:513,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JKsA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 424w, https://substackcdn.com/image/fetch/$s_!JKsA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 848w, https://substackcdn.com/image/fetch/$s_!JKsA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 1272w, https://substackcdn.com/image/fetch/$s_!JKsA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F604f303e-ac0d-4ff8-9333-7aad81d7e5ae_1600x564.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each of these steps can fail independently, and failures compound. An agent that misinterprets intent will select the wrong tools. An agent that selects the right tools but invokes them incorrectly will reason over garbage data. An agent that does everything right but takes fifteen steps instead of three will burn through your API budget and frustrate your users with latency, even if it eventually lands on the right answer.</p><p>This is why multi-step decision systems demand <strong>multi-layered evaluation</strong>. You can&#8217;t just check whether the final answer is correct; you need <strong>visibility into every layer </strong>of the agent&#8217;s operation.</p><h2><strong>The Four Dimensions of Agent Evaluation</strong></h2><p>After digging through academic surveys (<a href="https://arxiv.org/html/2507.21504v1">arXiv&#8217;s comprehensive benchmark review</a>,<a href="https://arxiv.org/html/2512.04123v1"> a study of 20+ production agent teams</a>), industry frameworks (<a href="https://www.lxt.ai/blog/ai-agent-evaluation/">LXT</a>,<a href="https://www.getmaxim.ai/articles/how-to-evaluate-ai-agents-in-production-metrics-methods-and-pitfalls/"> Maxim</a>,<a href="https://wandb.ai/onlineinference/genai-research/reports/AI-agent-evaluation-Metrics-strategies-and-best-practices--VmlldzoxMjM0NjQzMQ"> Weights &amp; Biases</a>), and tools that the Fuzzy Labs teams actually use, I&#8217;ve synthesised what &#8220;multi-layered evaluation&#8221; actually means in practice. It breaks down into four dimensions, each targeting a different point where agents can fail.</p><h3><strong>1. Quality and Correctness: &#8220;Is the output right?&#8221;</strong></h3><p>This is the most obvious one, but for agents it&#8217;s trickier than it sounds. You&#8217;re not just checking whether an answer is factually correct. You&#8217;re evaluating whether the agent completed the user&#8217;s actual task.</p><p><strong>Key metrics:</strong></p><ul><li><p><strong>Task completion rate</strong>: Did the agent achieve what the user wanted?</p></li><li><p><strong>Answer accuracy</strong>: Is the final response factually correct?</p></li><li><p><strong>Faithfulness</strong>: Does the response accurately reflect the retrieved information?</p></li><li><p><strong>Hallucination rate</strong>: Did the agent make things up?</p></li></ul><p>For RAG-based agents (those that retrieve information from documents or databases), faithfulness could become especially critical. An agent might produce a plausible-sounding answer that completely misrepresents what the source documents actually say.</p><h3><strong>2. Reasoning and Planning: &#8220;Did the agent &#8216;think&#8217; correctly?&#8221;</strong></h3><p>Even when an agent produces a correct final answer, it might have gotten there through flawed reasoning, or through an unnecessarily convoluted path. This matters because flawed reasoning that happens to work once will fail unpredictably later.</p><p><strong>Key metrics:</strong></p><ul><li><p><strong>Reasoning path validity</strong>: Does each step logically follow from the previous one?</p></li><li><p><strong>Tool selection accuracy</strong>: Did the agent choose the right tools for the task?</p></li><li><p><strong>Step efficiency</strong>: Did it take a reasonable number of steps, or did it flail?</p></li><li><p><strong>Recovery behaviour</strong>: When something went wrong, did it adapt sensibly?</p></li></ul><p>This is where trajectory evaluation comes in, examining not just where the agent ended up, but the path it took to get there.</p><h3><strong>3. Tool and Integration: &#8220;Did it use tools correctly?&#8221;</strong></h3><p>Agents interact with the world through tools: APIs, databases, search engines, calculators. Each tool interaction is a potential point of failure that has nothing to do with the LLM&#8217;s language capabilities, and everything to do with integration.</p><p><strong>Key metrics:</strong></p><ul><li><p><strong>Tool invocation success rate</strong>: Did the API calls/MCP server calls actually work?</p></li><li><p><strong>Parameter accuracy</strong>: Did the agent pass correct arguments to tools?</p></li><li><p><strong>Result interpretation</strong>: Did it correctly understand what the tool returned?</p></li><li><p><strong>Integration reliability</strong>: Are external dependencies stable?</p></li></ul><p>Remember our pension transfer example? The tool invocation was successful and the database returned data, but the agent didn&#8217;t validate whether that data was current. This dimension catches those failures.</p><h3><strong>4. Operational: &#8220;Does it work in production?&#8221;</strong></h3><p>An agent that produces perfect answers but takes thirty seconds to respond, or costs &#163;5 per query, isn&#8217;t going to survive in production. Operational metrics keep agents economically and practically viable.</p><p><strong>Key metrics:</strong></p><ul><li><p><strong>Latency</strong>: End-to-end response time, plus time-to-first-token for streaming</p></li><li><p><strong>Throughput</strong>: How many requests can you handle concurrently?</p></li><li><p><strong>Cost per task</strong>: Token usage, API calls, compute resources</p></li><li><p><strong>Error rates and recovery</strong>: How often does it fail, and does it fail gracefully?</p></li></ul><p>These metrics often reveal surprising trade-offs. A more capable model might produce better answers but cost ten times as much per query. An agent that double-checks its work might be more accurate but twice as slow.</p><h2><strong>When and How: The Three Modes of Evaluation</strong></h2><p>Knowing what to measure is only half the battle. The other half is knowing <em>when</em> and <em>how</em> to measure it. In practice, agent evaluation happens across three distinct modes:</p><h3><strong>Offline Evaluation: Testing Before You Ship</strong></h3><p>No surprises here, just like any traditional ML application. This is your safety net before deployment. You build test datasets, either from real historical interactions or synthetically generated, and run your agent against them in a controlled environment.</p><p>The goal is to catch obvious failures before users do. Does the agent handle edge cases? Does a prompt change break something that used to work? Does a new model version maintain quality?</p><p>The challenge is that offline evaluation can only test what you anticipate. Users will always find ways to break your agent that you never imagined.</p><h3><strong>Online Monitoring: Watching Production</strong></h3><p>Once your agent is live, you need continuous visibility into how it&#8217;s actually performing. This means tracing every request, logging every tool call, and tracking metrics in real time.</p><p>Online monitoring catches the failures that offline testing misses. Take our financial services example: you might not have anticipated how users actually talk in the real world, with heavy use of acronyms and jargon <em>(&#8221;What&#8217;s my ISA allowance for the current FY?&#8221; or &#8220;Can I transfer my SIPP to a SSAS?&#8221;)</em>. Beyond catching edge cases, online monitoring helps you understand both user and agent behaviour in context: the weird phrasing that confuses intent detection, the slow API that causes timeouts at scale, the gradual drift in quality as the world changes around your static agent.</p><p>A recurring theme from teams running agents in production is to focus on <em>what users actually experience</em>, not just what the model outputs. A<a href="https://arxiv.org/html/2512.04123v1"> study of 20+ production agent teams</a> found that practitioners care more about whether the agent solved the user&#8217;s problem than traditional software metrics like uptime.<a href="https://www.getmaxim.ai/articles/how-to-evaluate-ai-agents-in-production-metrics-methods-and-pitfalls/"> Maxim&#8217;s evaluation framework</a> puts it simply: session-level success (did the whole interaction work?) matters more than individual response quality.</p><h3><strong>LLM-as-Judge: Using AI to Evaluate AI</strong></h3><p>Some aspects of agent quality are genuinely difficult to evaluate programmatically. Is this response helpful? Is it appropriately cautious? Does it match the desired tone?</p><p>This is a newer technique that&#8217;s gained traction as LLMs have become more capable. The idea is to use a (typically larger, more capable) language model to evaluate your agent&#8217;s outputs against defined criteria. You provide rubrics (explicit scoring guidelines) and the judge model assesses each response.</p><p>This approach is powerful but requires calibration. Judge models have their own biases. They can be gamed. They&#8217;re not a replacement for human evaluation, but they scale in ways that human review cannot.</p><p><em><a href="https://www.youtube.com/watch?v=1wA2YdRifJ4">[Watch Evidently&#8217;s video from the MLOps.WTF meet up on this]</a></em></p><h2><strong>Tools to Help You Evaluate</strong></h2><p>The agent evaluation ecosystem has evolved rapidly, largely because teams quickly learned the hard way that shipping agents without proper evaluation is a recipe for disaster. There are dozens if not hundreds of tools out there now, but here are some of the ones we use at Fuzzy Labs, organised by what they help you evaluate:</p><h3><strong>For RAG and Retrieval Quality: <a href="https://docs.ragas.io/en/stable/">RAGAS</a></strong></h3><p>If your agent retrieves information from documents or databases, <strong>RAGAS</strong> (Retrieval Augmented Generation Assessment) provides purpose-built metrics for RAG pipelines:</p><ul><li><p><strong>Context Precision</strong>: How much of the retrieved context is actually relevant?</p></li><li><p><strong>Context Recall</strong>: Did we retrieve everything we needed?</p></li><li><p><strong>Faithfulness</strong>: Does the answer accurately represent the source material?</p></li><li><p><strong>Answer Relevancy</strong>: Does the response actually address the question?</p></li></ul><p>RAGAS is open-source, integrates with most major frameworks, and can generate synthetic test datasets when you don&#8217;t have labelled examples. It&#8217;s become table stakes for any team building retrieval-based agents.</p><h3><strong>For Tracing and Debugging: <a href="https://pydantic.dev/logfire">Pydantic Logfire</a> and <a href="https://www.comet.com/site/products/opik/">Opik</a></strong></h3><p>When an agent fails, you need to understand <em>where</em> in its execution the failure occurred. This is where observability platforms shine.</p><p><strong>Pydantic Logfire</strong> (from the team behind Pydantic) is built on OpenTelemetry, giving you standardised tracing across your entire stack. It monitors LLM calls, agent reasoning, API latency, database queries, and vector searches. If you&#8217;re already using Pydantic for validation (and let&#8217;s be honest, most Python AI projects are), the integration is seamless.</p><p><strong>Opik</strong> (from Comet) positions itself as an all-in-one platform, covering evaluation, prompt management, and optimisation under one roof. It comes with a built-in dashboard, runs fast, and integrates with CI/CD pipelines out of the box via Pytest.</p><p>Both tools support LLM-as-judge evaluations, dataset management, and the kind of session-level analysis that agents require. The choice often comes down to your existing stack and whether you prefer OpenTelemetry standards (Logfire) or a more opinionated evaluation-first approach (Opik). One practical advantage of Opik is its built-in dashboard, whereas self-hosting Logfire&#8217;s UI requires an enterprise licence.</p><h3><strong>For Performance and Load Testing: <a href="https://locust.io/">Locust</a></strong></h3><p>Quality metrics mean nothing if your agent can&#8217;t handle production traffic. This is where traditional load testing tools enter the picture, though with some adaptations for LLM workloads.</p><p><strong>Locust</strong> is a Python-based industry standard for simulating concurrent users and measuring system behaviour under load. For LLM agents, you&#8217;ll want to track LLM-specific metrics alongside traditional ones:</p><ul><li><p><strong>Time to First Token (TTFT)</strong>: How long until the user sees something?</p></li><li><p><strong>Output tokens per second</strong>: How fast does the response stream?</p></li><li><p><strong>Inter-token latency</strong>: Is the streaming smooth or choppy?</p></li></ul><p>Some teams also test their tools and integrations directly, bypassing the LLM entirely. This identifies infrastructure bottlenecks without burning through API costs.</p><h2><strong>From Metrics to Action</strong></h2><p>Collecting metrics is pointless if you don&#8217;t act on them. The final piece of the evaluation puzzle is closing the loop: turning measurements into improvements.</p><p><strong>Set meaningful thresholds.</strong> What task completion rate is acceptable? What latency is too slow? Define these before you launch, not after something breaks.</p><p><strong>Alert on the right signals.</strong> Not every metric needs to page someone at 3am. Distinguish between &#8220;investigate tomorrow&#8221; and &#8220;wake up the on-call engineer.&#8221; Focus alerts on user-facing impact, not internal metrics.</p><p><strong>Automate where possible.</strong> Some responses to degradation can be automated: rolling back a prompt change that increased error rates, switching to a faster (if less capable) model during traffic spikes, routing low-confidence queries to human review.</p><p><strong>Build feedback loops.</strong> The best evaluation systems feed production learnings back into development. Queries that fail in production become test cases. User feedback, both explicit and implicit, shapes future iterations.</p><h2><strong>The Path Forward</strong></h2><p>Agent evaluation is still relatively new, and the tools are evolving rapidly. What&#8217;s clear is that the old model of &#8220;test in staging, pray in production&#8221; doesn&#8217;t work for systems this complex and this stochastic.</p><p>The teams getting this right share a common approach: they <strong>evaluate at every layer</strong>, they monitor continuously, and they treat evaluation not as a one-time gate but as an ongoing practice. They accept that agents will fail, and they build systems to detect those failures quickly, understand them deeply, and recover gracefully.</p><p>James made the case for <em>why</em> evaluation matters. The tools and frameworks now exist to put that into practice. The question is no longer whether to invest in agent evaluation, but how deeply to embed it into your development and operations workflow.</p><p>Because eventually, someone&#8217;s going to ask your agent about their pension. And you&#8217;ll want to know, really know, whether it&#8217;s giving them the right answer.</p><p><em>Oscar is an MLOps engineer at Fuzzy labs, and has a passion for both machine learning and snowboarding. He holds a Master's degree in AI from the University of Manchester. When he's not working on his snowboarding tricks, you can find him indulging in some delicious Japanese cuisine.</em></p><div><hr></div><h2><strong>And finally</strong></h2><h3><strong>What&#8217;s coming up</strong></h3><p><a href="https://mlopswtf-event-8.eventbrite.co.uk/">Our next MLOps.WTF meetup</a> is on the 25th of March, themed around Agentic AI in financial services. Tickets are going fast! Make sure you&#8217;ve got yours.</p><p><strong>&#128467;&#65039; Wednesday 25th March &#8212; Manchester</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-event-8.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://mlopswtf-event-8.eventbrite.co.uk"><span>Get my ticket</span></a></p><div><hr></div><h3>Our recipe book is served! </h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6_Ll!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6_Ll!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 424w, https://substackcdn.com/image/fetch/$s_!6_Ll!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 848w, https://substackcdn.com/image/fetch/$s_!6_Ll!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 1272w, https://substackcdn.com/image/fetch/$s_!6_Ll!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6_Ll!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png" width="1456" height="1165" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1165,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23511272,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/189234192?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6_Ll!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 424w, https://substackcdn.com/image/fetch/$s_!6_Ll!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 848w, https://substackcdn.com/image/fetch/$s_!6_Ll!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 1272w, https://substackcdn.com/image/fetch/$s_!6_Ll!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ba9c5-ad79-48b3-8cd1-ffd385f7b5c5_5000x4000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hot off the pass, our first edition cookbook has just been released for download: a collection of practical recipes for building delicious, repeatable AI systems with open source tools.<br><br>Each recipe is a working template for a specific AI use case, grounded in solid MLOps foundations. Get your copy &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101&quot;,&quot;text&quot;:&quot;Get my cookbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/mlops-recipe-book?utm_source=Substack&amp;utm_medium=newsletter&amp;utm_campaign=Recipe_Book_Full&amp;utm_id=101"><span>Get my cookbook</span></a></p><div><hr></div><h3><strong>About Fuzzy Labs</strong></h3><p>We&#8217;re Fuzzy Labs, a Manchester-based MLOps consultancy founded in 2019. We&#8217;re engineers at heart, and nerds that are passionate about the power of open source.</p><p>Want to join the team? We&#8217;ve got some open rolls/roles &#129366;&#8230;</p><p><strong>Open roles:</strong></p><ul><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-engineer">MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: Secure Government</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all current vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all current vacancies</span></a></p><p><em>Not subscribed yet? You should be. The button is right here!</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p><em>The next issue will be a deep dive into agent security, with Matt Squire.</em></p><p><em>Or equally, why not follow us on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn</a> to see more BTS bits and pieces, alongside updates around future events and thought pieces &#127813;.</em></p><p></p>]]></content:encoded></item><item><title><![CDATA[AI Agents in Production (Part 3): Multi Agent Systems]]></title><description><![CDATA[MLOps.WTF Edition #25]]></description><link>https://www.mlops.wtf/p/ai-agents-in-production-part-3-multi</link><guid isPermaLink="false">https://www.mlops.wtf/p/ai-agents-in-production-part-3-multi</guid><pubDate>Thu, 12 Feb 2026 13:59:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ssRN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ahoy there &#128674;,</p><p><em>Last time in our <a href="https://www.mlops.wtf/t/agents-in-production">agents in production series</a> we looked at <a href="https://www.mlops.wtf/p/ai-agents-in-production-part-2-workflows">workflows</a>, and why agent systems need structure, tracing, and evaluation once they&#8217;re running in production. That was about keeping execution understandable.</em></p><p><em>This week the focus shifts to design. Even with good workflow discipline, there&#8217;s a point where a single agent is carrying too many responsibilities in one loop: interpreting the request, choosing tools, retrieving information, and composing the response. At that stage, adding more structure is not always enough.</em></p><p><em>Misha explores a practical alternative: splitting capabilities across specialised agents, letting them delegate to each other, and introducing clearer boundaries between responsibilities. He also looks at what changes once those agents need to collaborate across systems, including protocols like Agent2Agent (A2A)&#8230;</em></p><div><hr></div><blockquote><p>&#8220;Just give the LLM more tools.&#8221;</p></blockquote><p>What starts as a simple helping chat bot quickly becomes a single agent with an ever-growing tool belt. In an effort to give the agent greater capabilities we give it more and more tools, external context, and rules embedded in its system prompt. Eventually, the model loses track of countless tools available to it, starts forgetting what the goal in the initial user queries was, and well, generally falls apart.</p><p>However, there&#8217;s a solution in sight. How software engineers came up with microservice architecture patterns, similarly AI engineers are rediscovering very similar patterns in the age of agents &#8211; multi-agent systems, i.e. instead of a single agent with a set of toolsets, we build a set of specialised agents with task specific tools that each of them have.</p><p>In this post we&#8217;ll look at how and when to split the agents up, what A2A protocol gives us, and general multi-agent system considerations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ssRN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ssRN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 424w, https://substackcdn.com/image/fetch/$s_!ssRN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 848w, https://substackcdn.com/image/fetch/$s_!ssRN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!ssRN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ssRN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png" width="1456" height="972" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3279443,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/187730845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ssRN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 424w, https://substackcdn.com/image/fetch/$s_!ssRN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 848w, https://substackcdn.com/image/fetch/$s_!ssRN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!ssRN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43452d9-e554-4de8-8696-a4418148ba35_1744x1164.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>The &#8220;traditional&#8221; AI agent</h1><p>Even though AI agents are still a rather new concept, many people have an image of what an AI agent would look like. It&#8217;s a script with a loop in it that waits for user input, and passes this input to the LLM. As a result the LLM will tell the script to use one or more tools (which are in essence just function calls), and respond to the user with the results.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CL_8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CL_8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 424w, https://substackcdn.com/image/fetch/$s_!CL_8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 848w, https://substackcdn.com/image/fetch/$s_!CL_8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 1272w, https://substackcdn.com/image/fetch/$s_!CL_8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CL_8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png" width="667" height="412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fde5f041-7621-44fe-89e1-8967f923a630_667x412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:667,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CL_8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 424w, https://substackcdn.com/image/fetch/$s_!CL_8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 848w, https://substackcdn.com/image/fetch/$s_!CL_8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 1272w, https://substackcdn.com/image/fetch/$s_!CL_8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde5f041-7621-44fe-89e1-8967f923a630_667x412.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The simplest case of an agent. An agent has a single system prompt and a single tool.</em></p><p>Consequently, the more things you want your agent to be able to do, the more tools and information you&#8217;ll need to give it, which leads to what&#8217;s known as context rot (<a href="https://research.trychroma.com/context-rot">Hong et al, 2025</a>) : as the context grows, the model becomes less reliable at picking out and using the right information at the right moment. <em>In plain terms, you keep adding &#8220;help&#8221;, and the system gets easier to confuse.</em></p><p>On top of that, many engineers would agree with applying the KISS (Keep It Simple, Stupid) principle here. We want our system not to be overly complex so it remains understandable and maintainable (amongst other things).</p><p>One could simply just split the large agent into a bunch of smaller separate agents and call it a day. But what if you actually need them to be able to fulfil a complex request that genuinely requires tools from different domains? In such a case, we&#8217;ll have to make the individual agents able to talk to each other.</p><p>A practical example here would be a personal assistant, that I want to find the best specialty coffee shops in a certain location. Below you can see a diagram outlining how the agent would look like, if we wanted to do it in a single piece.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZY1e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZY1e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 424w, https://substackcdn.com/image/fetch/$s_!ZY1e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 848w, https://substackcdn.com/image/fetch/$s_!ZY1e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 1272w, https://substackcdn.com/image/fetch/$s_!ZY1e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZY1e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png" width="920" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:920,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:113021,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/187730845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZY1e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 424w, https://substackcdn.com/image/fetch/$s_!ZY1e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 848w, https://substackcdn.com/image/fetch/$s_!ZY1e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 1272w, https://substackcdn.com/image/fetch/$s_!ZY1e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc473c10d-a0b7-4e6c-9507-5a52b0ce324a_920x728.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>[The diagram of a single agent. The agent is given multiple toolkits: the Web Search Toolkit and the Map Toolkit. The system prompt consists of multiple rules, to cover different use cases.]</em></p><p><em>Further into the article, I will be talking about multi-agent systems, using terminology and notions from <a href="https://ai.pydantic.dev/multi-agent-applications/">Pydantic AI</a>, since I have the most experience with it out of all agentic frameworks. However, everything I&#8217;m covering is equally applicable to all other major frameworks too.</em></p><h1>Agentic Workflows</h1><p>To solve this context rot problem when trying to integrate many tools in an agentic system we can set up a workflow that utilises multiple agents with different capabilities. First and foremost, we split the single purpose agents (namely Map and Web Search agents) out of our large super-agent. Each of them has their own system prompt, and is given different tools.</p><p>On my diagram below, both agents use the same model under the hood, but it&#8217;s not really required. If we know that some model performs better on a specific task, we can easily swap it for a different model. The same goes for when we realise that using a smaller model when it&#8217;s more cost effective, and performance isn&#8217;t significantly worse.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SyUq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SyUq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 424w, https://substackcdn.com/image/fetch/$s_!SyUq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 848w, https://substackcdn.com/image/fetch/$s_!SyUq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 1272w, https://substackcdn.com/image/fetch/$s_!SyUq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SyUq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png" width="917" height="575" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:575,&quot;width&quot;:917,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93423,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/187730845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SyUq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 424w, https://substackcdn.com/image/fetch/$s_!SyUq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 848w, https://substackcdn.com/image/fetch/$s_!SyUq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 1272w, https://substackcdn.com/image/fetch/$s_!SyUq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ad99f-795d-4d25-adc4-0f46ac852835_917x575.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the very simplest case then, we can write a simple script that asks the user for the input (e.g. what town they want to search in), and then calls appropriate agents in a deterministic order.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o5th!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o5th!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 424w, https://substackcdn.com/image/fetch/$s_!o5th!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 848w, https://substackcdn.com/image/fetch/$s_!o5th!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 1272w, https://substackcdn.com/image/fetch/$s_!o5th!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o5th!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png" width="576" height="905" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:905,&quot;width&quot;:576,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103560,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/187730845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o5th!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 424w, https://substackcdn.com/image/fetch/$s_!o5th!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 848w, https://substackcdn.com/image/fetch/$s_!o5th!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 1272w, https://substackcdn.com/image/fetch/$s_!o5th!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a58aee4-20a8-4177-b2bd-2cf37c0f05a5_576x905.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>More often than not you can just stop here. You have a functional application that can solve a complex problem with ease. However, you can go a step further and ask &#8220;what if I need to answer more open-ended questions?&#8221;</p><p>I hear you say, &#8220;I&#8217;m planning a trip to Germany, and want to choose between Frankfurt and Berlin. Can you find the best specialty coffee shops in each of them? Plot them on the map. For each point add a short description why it&#8217;s notable&#8221;. Unfortunately, we can&#8217;t really put that into a neat workflow.</p><h1>Agent-to-agent delegation</h1><p>So what if we introduce a reasoning agent as the entry point? It figures out what to do with the query, splits it into sub-tasks, and delegates execution to specialised agents by calling them as tools.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PZE2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PZE2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 424w, https://substackcdn.com/image/fetch/$s_!PZE2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 848w, https://substackcdn.com/image/fetch/$s_!PZE2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 1272w, https://substackcdn.com/image/fetch/$s_!PZE2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PZE2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png" width="667" height="449" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:449,&quot;width&quot;:667,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49944,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/187730845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PZE2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 424w, https://substackcdn.com/image/fetch/$s_!PZE2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 848w, https://substackcdn.com/image/fetch/$s_!PZE2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 1272w, https://substackcdn.com/image/fetch/$s_!PZE2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11da38d3-6774-4e55-9ea8-46c559e7da35_667x449.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now if prompted well, the agent we talk to directly, should be able to identify when it should delegate, and collectively they should solve the task quite effectively.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kgu0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kgu0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 424w, https://substackcdn.com/image/fetch/$s_!Kgu0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 848w, https://substackcdn.com/image/fetch/$s_!Kgu0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!Kgu0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kgu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png" width="1456" height="1556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1556,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kgu0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 424w, https://substackcdn.com/image/fetch/$s_!Kgu0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 848w, https://substackcdn.com/image/fetch/$s_!Kgu0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!Kgu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdaf503-62b9-48ef-bc0d-51efab05b79f_1497x1600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6hdg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6hdg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 424w, https://substackcdn.com/image/fetch/$s_!6hdg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 848w, https://substackcdn.com/image/fetch/$s_!6hdg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!6hdg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6hdg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png" width="1199" height="1600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1600,&quot;width&quot;:1199,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6hdg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 424w, https://substackcdn.com/image/fetch/$s_!6hdg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 848w, https://substackcdn.com/image/fetch/$s_!6hdg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!6hdg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a758645-0ad5-43d2-929d-7484abcaf332_1199x1600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T12j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T12j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 424w, https://substackcdn.com/image/fetch/$s_!T12j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 848w, https://substackcdn.com/image/fetch/$s_!T12j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 1272w, https://substackcdn.com/image/fetch/$s_!T12j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T12j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png" width="1456" height="834" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:834,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T12j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 424w, https://substackcdn.com/image/fetch/$s_!T12j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 848w, https://substackcdn.com/image/fetch/$s_!T12j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 1272w, https://substackcdn.com/image/fetch/$s_!T12j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd20803e0-4ca2-4333-a53d-77841a12c6e4_1600x916.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>From the very brief test on the screenshots above, you can see that it indeed can answer a reasonably complex query (doing multiple delegation calls before answering). And we can also talk a little about other benefits such a system has.</p><p>You can think of multi-agent systems in the same way as microservices. This architecture allows us to develop, test, and evaluate them independently &#8211; they are performing different functions after all. On top of that, agents don&#8217;t have to share an environment; the memory contents, including potentially sensitive information, can stay within the agent that needs it. Also, as previously mentioned, we don&#8217;t have to use the same LLM for every agent, which can be quite convenient.</p><h1>A2A Protocol and Talking Machines</h1><p>So far, our agents were defined within a single code base and run within the same process. This way of running multi-agent systems has its drawbacks: we cannot scale agents independently from each other, we can&#8217;t reuse agents in multiple different systems, we can&#8217;t use different languages and frameworks for different agents.</p><p>Now it&#8217;s a great point to talk about the <a href="https://a2a-protocol.org/latest/">A2A protocol</a>. Developed by Google, it&#8217;s a standardised agent communication protocol, aiming to address these problems. An agent provides an &#8220;agent card&#8221; that, in short, advertises what this agent can do. Other agents can then send messages to delegate tasks.  <em>(If you want the quick analogy: it&#8217;s closer to an API contract than a new model capability.)</em></p><p>The agents don&#8217;t have to be written in the same framework, run on the same machine, or even be maintained by the same people. As long as there&#8217;s network connectivity between two agents that implement A2A protocol, they can talk to each other.</p><p>Even though it&#8217;s far from reality &#8211; you don&#8217;t see specialised agents with A2A enabled everywhere yet &#8211; we can imagine a world where our pondering agent talks to other specialised agents, some of which could be managed by others. Take for example our Map Agent, which essentially uses some map API under the hood. In theory, the map service provider could build and run the agent themselves, and make it available via A2A for other multi-agent systems to use.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wtbm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wtbm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 424w, https://substackcdn.com/image/fetch/$s_!wtbm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 848w, https://substackcdn.com/image/fetch/$s_!wtbm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 1272w, https://substackcdn.com/image/fetch/$s_!wtbm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wtbm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png" width="936" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81859,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/187730845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wtbm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 424w, https://substackcdn.com/image/fetch/$s_!wtbm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 848w, https://substackcdn.com/image/fetch/$s_!wtbm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 1272w, https://substackcdn.com/image/fetch/$s_!wtbm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b239131-271d-4f9c-96c5-b0c7b295dfd2_936x485.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Where we ended up</h1><p>Thus we started with a simple idea of splitting up a mono-agent into sub-agents for the purpose of reducing context (and hence improving quality of responses), and ended up with a few other benefits on top.</p><p>Of course, there are drawbacks. First and foremost, we practically doubled the number of moving parts in our system, which doubles the number of places things can go wrong.</p><p>Also, even though this arrangement gives us greater flexibility, it&#8217;s a greater number of hyperparameters. It makes things harder to keep track of when experimenting, albeit not impossible: MLflow and Opik have very comprehensive tracing capabilities, allowing you to record all the queries, tool calls, and responses. If you set up your evals right, the sky is the limit.</p><p>Nevertheless, multi-agent systems appear to be a very powerful pattern akin to microservice architecture. And I&#8217;m very keen on seeing more examples of publicly available agents that implement A2A, making agent collaboration more accessible. As with any engineering pattern, I would be cautious to start with a multi-agent system if a single simple agent would suffice, as it would overcomplicate things. However, it&#8217;s useful to keep in mind that such separation of capabilities is there when necessary &#8211; and I hope, the article above illustrates when it might be the case.</p><p></p><p><em>Misha is a Senior MLOps Engineer here at Fuzzy Labs. His background spans computer science and bioinformatics. He studied at the University of Manchester and completed his Master&#8217;s at Imperial College London. Outside of work, he&#8217;s always on the hunt for the best cup of coffee, which may or may not have inspired all the examples in this MLOps.WTF edition.</em></p><div><hr></div><h2>And finally</h2><h3>What&#8217;s coming up</h3><p><a href="https://mlopswtf-event-8.eventbrite.co.uk">Our next MLOps.WTF meetup</a> will be the 25th of March, back on our home turf at DiSH in Manchester.</p><p>This meet up will be focusing on Agentic AI in financial services, with an emphasis on how these systems are built, monitored, and governed once they&#8217;re running in regulated environments.</p><p>3 exciting speakers to be announced. Make sure you get your ticket! </p><p><strong>&#128467;&#65039; Wednesday 25th March &#8212; Manchester</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-event-8.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get my ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-event-8.eventbrite.co.uk"><span>Get my ticket</span></a></p><div><hr></div><h3><strong>About Fuzzy Labs</strong></h3><p>We&#8217;re Fuzzy Labs, a Manchester-based MLOps consultancy founded in 2019. We&#8217;re engineers at heart, and nerds that are passionate about the power of open source.</p><p>Want to join the team? You&#8217;re in luck!</p><p><strong>Open roles:</strong></p><ul><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-engineer">MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: Secure Government</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all current vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all current vacancies</span></a></p><p></p><p><em>Not subscribed yet? Why not? All this MLOps goodness straight to your inbox!</em></p><p><em>The next issue will be the next in our agents in production series, with Oscar taking on Evaluating AI agents. Definitely one to watch out for.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p><em><br>Or equally, why not follow us on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn</a> to see more BTS bits and pieces, alongside updates around future events and thought pieces &#127813;.</em></p>]]></content:encoded></item><item><title><![CDATA[Edge AI: shipping models into the real world]]></title><description><![CDATA[MLOps.WTF Edition #24]]></description><link>https://www.mlops.wtf/p/edge-ai-shipping-models-into-the</link><guid isPermaLink="false">https://www.mlops.wtf/p/edge-ai-shipping-models-into-the</guid><dc:creator><![CDATA[Rhiannon]]></dc:creator><pubDate>Thu, 29 Jan 2026 15:10:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!x33l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Our MLOps.WTF meetup #7, where Arm&#8217;s new office proved (1) extremely nice, (2) &#8220;labyrinthine&#8221;, and (3) capable of producing the most professional safety briefing we&#8217;ve ever had.</em></p><p>There&#8217;s a point in most ML systems where the cloud stops feeling abstract and starts feeling expensive. Not just in money, but in time. In latency. In the number of things that have to go right before someone can act on an insight.</p><p>The MLOps landscape was built around cloud deployment. Elastic compute. Predictable networking. Logs you can reach. Rollbacks that are mostly just a button. In that world, you can afford to park certain questions for later:</p><ul><li><p>How big will my models get</p></li><li><p>How fast do I need inference to run</p></li><li><p> What&#8217;s my pipeline for getting data back for future training runs?</p></li></ul><p>The edge removes your ability to postpone them.</p><p>When the model sits next to the camera, the sensor, the machine, the crop, the doorbell, reality really is knocking at the door.</p><p>So the question hanging over MLOps.WTF #7 was simple enough: when does it stop making sense to send everything to the cloud?</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/902fcd58-0779-4f6c-ac01-867bea930af9_4032x3024.heic&quot;},{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/729e50e7-2e2a-4ac5-b949-f72384fcceb9_4032x3024.heic&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/400211ce-be2b-487c-af2b-b03d89884369_2633x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05c71094-9286-4cfe-a70a-a4fb8b5601c7_3024x4032.heic&quot;},{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0db74186-daee-4602-8b8b-9403f09bac02_4032x3024.heic&quot;},{&quot;type&quot;:&quot;image/heic&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/809a8547-6b5f-4b51-8316-52efa8bc4ee5_3024x4032.heic&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a27dc027-12be-4d0c-b835-d7e9b306facb_1456x964.png&quot;}},&quot;isEditorNode&quot;:true}"></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x33l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x33l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 424w, https://substackcdn.com/image/fetch/$s_!x33l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 848w, https://substackcdn.com/image/fetch/$s_!x33l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!x33l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x33l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg" width="1456" height="1096" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1096,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:662393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/186181618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x33l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 424w, https://substackcdn.com/image/fetch/$s_!x33l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 848w, https://substackcdn.com/image/fetch/$s_!x33l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!x33l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2758a5a-2f9c-450b-908c-0cb8fcc7f346_4080x3072.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Raj (Fotenix):From Cloud to Edge</strong><em><strong>: The Next Phase of Scalable Crop Intelligence</strong></em></h2><p>Raj opened by grounding the room in the realities of food production:</p><p>In the UK, most fruit is imported, and a large proportion of vegetables too. Fresh produce, especially things like leafy greens, degrades as it moves through long supply chains. Nutritional value drops. Time and temperature matter. Many greenhouses are old. Labour is short. Margins are thin. On a &#163;2.20 bag of apples, growers make about three pence. When intervention is late, it&#8217;s lost yield. By the time you&#8217;ve &#8220;fixed it later&#8221;, the opportunity has usually gone.</p><p>That&#8217;s the environment Fotenix operates in.</p><p>They build camera systems for greenhouses that help growers spot plant stress and decide when to intervene. You deploy them quickly and start getting useful signals fast. Today, the setup is cloud-first: images go up, pipelines run, metrics come out.</p><p>The problem shows up at scale. Each site generates huge volumes of data. In rural environments, with limited bandwidth, that turns insight into something that arrives too late to act on. As Raj put it, the issue isn&#8217;t compute. It&#8217;s bandwidth, and more specifically the assumption that every byte needs to travel before it becomes useful.</p><p>So they&#8217;ve become selective when looking at what to move to the edge and what to keep in the cloud. Some things earn their place close to the data: basic quality checks, pulling out the parts of an image that matter, turning pictures into signals. Other things don&#8217;t: training, cross-site analysis, anything that needs global context or doesn&#8217;t benefit from immediacy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dPHN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dPHN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 424w, https://substackcdn.com/image/fetch/$s_!dPHN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 848w, https://substackcdn.com/image/fetch/$s_!dPHN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 1272w, https://substackcdn.com/image/fetch/$s_!dPHN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dPHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png" width="1400" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284710,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/186181618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dPHN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 424w, https://substackcdn.com/image/fetch/$s_!dPHN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 848w, https://substackcdn.com/image/fetch/$s_!dPHN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 1272w, https://substackcdn.com/image/fetch/$s_!dPHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2a3c02-2590-4956-81a4-1c60b06d632e_1400x794.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hardware isn&#8217;t the limiting factor. The sites already run capable devices. The harder part is operating them. Once you have hundreds of devices in the field, reliability, observability, and fleet management become the real constraints.</p><p>Before moving more computation outward, Fotenix is putting effort into the fundamentals. Lightweight runtimes. Local observability. Remote fleet management. The goal is to make sure that when computation does move closer to the data, the system doesn&#8217;t become blind or fragile.</p><p>Summed up simply: edge is a consequence of maturity. If edge feels risky, that usually means the system isn&#8217;t ready yet.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.youtube.com/watch?v=HpcekyyQViw&quot;,&quot;text&quot;:&quot;Watch Full Talk&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.youtube.com/watch?v=HpcekyyQViw"><span>Watch Full Talk</span></a></p><h2><strong>Sam (Fuzzy Labs): Shipping ML to the Edge: </strong><em><strong>A Practical Guide</strong></em></h2><p>Sam followed by zooming in on what all of this looks like from an MLOps point of view.</p><p>He opened by admitting that speaking into a microphone still makes him feel like he&#8217;s on X Factor. Thankfully, instead of &#8220;Edge of Glory&#8221;, he walked through where edge changes the MLOps lifecycle.</p><p>To keep things concrete, he used the tongue-in-cheek&#8221;Don&#8217;t Ring&#8221; doorbell as  case study, an anonymised version of a real Fuzzy Labs project. The problem: they had a facial recognition system that worked well, except it failed when people weren&#8217;t looking at the camera, or stood too close, or too far away. The solution: build a separate model that detects unusable images and filters them out before they hit the facial recognition system. The model is small and efficient, so it runs it on the device itself without killing the battery.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R9Si!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R9Si!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 424w, https://substackcdn.com/image/fetch/$s_!R9Si!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 848w, https://substackcdn.com/image/fetch/$s_!R9Si!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 1272w, https://substackcdn.com/image/fetch/$s_!R9Si!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R9Si!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png" width="1406" height="790" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:790,&quot;width&quot;:1406,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1474258,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/186181618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!R9Si!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 424w, https://substackcdn.com/image/fetch/$s_!R9Si!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 848w, https://substackcdn.com/image/fetch/$s_!R9Si!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 1272w, https://substackcdn.com/image/fetch/$s_!R9Si!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F133feb90-69cd-4062-a48d-38e2abf7d42f_1406x790.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Models need to be small. Power matters. Privacy often means you don&#8217;t get access to real data.</p><p>In this case, there was no data at all. Open datasets can get you moving. Synthetic data helps too - Gemini generates realistic training images for about two pence each. But Sam was clear about the catch: synthetic data helps you train. It doesn&#8217;t tell you whether the model will behave in the real world. If your evaluation data doesn&#8217;t match what the device actually sees, you&#8217;ll find out later.</p><p>Experiment tracking came up next. He put up a slide most people saw themselves in immediately:</p><blockquote><p>&#8220;We&#8217;ve probably all been there at some point with something like <em>my_model_V3_best_USE_THIS_ONE_final</em>.&#8221;</p></blockquote><p>Deploy the wrong model to the cloud and you redeploy. Deploy it to a device you can&#8217;t easily reach and you are running around collecting devices or sending apology emails to customers.. Versioning, lineage, knowing what&#8217;s running where. Things you can sometimes get away with being loose about in the cloud start to matter much sooner.</p><p>Model optimisation followed the same pattern. Every size reduction is a trade-off. You only really understand those trade-offs if you measure performance in the conditions the model will actually run in, not just against training metrics.</p><p>Deployment doesn&#8217;t get easier either. Different devices, different architectures, different toolchains. Sam mentioned tools like PlatformIO as a way to avoid rebuilding everything from scratch each time.</p><p>The problems Sam walked through aren&#8217;t new. Data quality, experiment tracking, model optimisation, deployment complexity - they all exist in cloud systems too. What edge removes is the buffer that makes cloud mistakes recoverable. Deploy the wrong model to cloud and you redeploy in minutes. Deploy it to a device you can&#8217;t reach and you need physical access or a complex remote rollback. You don&#8217;t need entirely new skills for edge ML. You need to be much more careful about the fundamentals you already know.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.youtube.com/watch?v=LV4ehcGwD3c&quot;,&quot;text&quot;:&quot;Watch Full Talk&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.youtube.com/watch?v=LV4ehcGwD3c"><span>Watch Full Talk</span></a></p><h2><strong>Isabella Gottardi (Arm): From Edge to Everywhere: </strong><em><strong>Arm Machine Learning Inference Advisor's journey from NPU to GPU and beyond.</strong></em></h2><p>Isabella from Arm focused on the hardware layer with a live demo of MLIA.</p><p>When Arm first became involved in machine learning, the assumption was cloud-centric: send an image to the cloud, run inference, return the result. Today, inference runs in lots of places. Cloud platforms. IoT devices. Phones. Automotive systems. Dedicated accelerators. The same model can technically run across all of them. Performance varies wildly.</p><p>&#8220;Portability of models does not mean portability of performance.&#8221;</p><p>That&#8217;s where MLIA, the Machine Learning Inference Advisor, comes in. A way of checking compatibility and performance before you&#8217;ve committed to architectural decisions that are expensive to reverse.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A4sN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A4sN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 424w, https://substackcdn.com/image/fetch/$s_!A4sN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 848w, https://substackcdn.com/image/fetch/$s_!A4sN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 1272w, https://substackcdn.com/image/fetch/$s_!A4sN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A4sN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png" width="1402" height="788" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:788,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:409325,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/186181618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A4sN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 424w, https://substackcdn.com/image/fetch/$s_!A4sN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 848w, https://substackcdn.com/image/fetch/$s_!A4sN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 1272w, https://substackcdn.com/image/fetch/$s_!A4sN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ccd8f72-be9c-4b20-acc7-b607f5634930_1402x788.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The usual flow is familiar: gather data, train, optimise, deploy. Performance issues tend to show up late, when changing course is painful. MLIA shifts that discovery earlier, while trade-offs are still cheap.</p><p>Isabella showed this live. Pick a target environment. Check whether the model will run. Look at how it behaves. Try a variant. Compare the results. The tool gives you information before you&#8217;ve committed to an approach that won&#8217;t work.</p><p>With Arm&#8217;s recently announced neurotechnology, that problem only gets more interesting. Models will behave differently on different GPUs, and especially on specialised edge device hardware. The future is heterogeneous systems, where performance depends on memory layout, data movement, and how work is split across processors.</p><p>The takeaway: inference performance isn&#8217;t something you discover at the end. It&#8217;s a design input.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.youtube.com/watch?v=fXGDouu3J2Q&quot;,&quot;text&quot;:&quot;Watch Full Talk&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.youtube.com/watch?v=fXGDouu3J2Q"><span>Watch Full Talk</span></a></p><p>Sources:</p><ul><li><p><a href="https://github.com/arm/mlia">https://github.com/arm/mlia</a></p></li></ul><p>Pypi package:</p><ul><li><p><a href="https://pypi.org/project/mlia/">https://pypi.org/project/mlia/</a></p></li></ul><div><hr></div><h2><strong>Rounding up</strong></h2><p>What we&#8217;re taking away from MLOps.WTF #7:</p><ul><li><p><strong>Edge forces immediate answers to questions you could defer in the cloud.</strong> Energy use, model size, and bandwidth constraints aren&#8217;t problems for later. They&#8217;re design constraints from day one.</p></li><li><p><strong>Operational maturity matters more than hardware capability.</strong> The limiting factor isn&#8217;t compute power. It&#8217;s whether you can observe, update, and recover when systems are in the field.</p></li><li><p><strong>Be selective about what moves.</strong> Not everything belongs at the edge. Move what benefits from immediacy and local processing. Keep what needs global context or doesn&#8217;t gain from faster turnaround.</p></li><li><p><strong>Design for hardware reality early.</strong> The same model performs differently across different chips. Check compatibility and performance before committing, while changing course is still cheap.</p></li></ul><p>As Raj put it, edge is something you arrive at when your infrastructure can support it.</p><div><hr></div><h2><strong>About Fuzzy Labs</strong></h2><p>We&#8217;re Fuzzy Labs. Manchester-rooted open-source MLOps consultancy, founded in 2019. Helping organisations build and productionise AI systems they genuinely own.</p><p>We&#8217;re also hiring.</p><h2>Open Roles</h2><ul><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-engineer">MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: Secure Government</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/private-sector-lead">Private Sector Lead</a></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all current vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all current vacancies</span></a></p><p></p><p><strong>Liked this?</strong> Forward it to someone wrestling with edge deployments.</p><p><strong>Not subscribed yet?</strong> Button link below. Couldn&#8217;t be easier.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[AI Agents in Production (Part 2): Workflows]]></title><description><![CDATA[MLOps.WTF Edition #23]]></description><link>https://www.mlops.wtf/p/ai-agents-in-production-part-2-workflows</link><guid isPermaLink="false">https://www.mlops.wtf/p/ai-agents-in-production-part-2-workflows</guid><pubDate>Thu, 15 Jan 2026 10:44:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1rjl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ahoy there &#128674;,</p><p><em>This episode is brought to you by Shubham Gandhi, MLOps Engineer and run club enthusiast at Fuzzy Labs.</em></p><p><a href="https://www.mlops.wtf/p/ai-agents-in-production-all-this">Last episode</a>, Matt introduced some of the challenges teams can expect to encounter when productionising AI agents. Agentic applications fundamentally differ from traditional software and ML systems in how a request is executed end-to-end.</p><p>Rather than a single prediction, agentic systems run multi-step workflows with iterative loops of reasoning, action, and state. Agents maintain context, make decisions conditionally, and adapt their behavior as execution unfolds. A single request can cascade into many tool calls, data retrievals, and intermediate decisions. Each of these steps introduces new failure modes, dramatically expanding the surface area where things can go wrong.<br><br>Agentic applications introduce a challenge in how to observe, debug, and evaluate such systems. How do you build confidence in a system that is inherently non-deterministic? In this newsletter, I&#8217;ll share what we&#8217;ve learnt about managing agents and workflows in Fuzzy Labs&#8217; customer work.</p><h3><strong>A workflow by any other name</strong></h3><p>But first, we need to talk about terminology. Because agentic AI is such a new field, it&#8217;s inevitable that different people will use the same words to mean subtly different things. Unfortunately, <em>workflow</em> has different meanings depending on who you ask.</p><p>In our previous edition, we discussed <em>agentic workflows</em>, and what we really meant by that was the control loop that sits behind an agent. For each loop iteration, the agent&#8217;s model is given a prompt along with some context, and it is given the opportunity to take an action &#8212; like calling a tool, or updating its memory.</p><p>In a recent article from Anthropic &#8212; <a href="https://www.anthropic.com/engineering/building-effective-agents">Building effective agents</a> &#8212; a workflow is defined very differently. For Anthropic, workflows and agents are mutually exclusive concepts. Quoting the article:</p><blockquote><p>&#8220;Workflows are systems where LLMs and tools are orchestrated through predefined code paths.</p><p>Agents, on the other hand, are systems where LLMs dynamically direct their own processes and tool usage, maintaining control over how they accomplish tasks.&#8221;</p></blockquote><p>The distinguishing factor is autonomy: workflows can&#8217;t make decisions about what to do next, but agents can. For this article, we&#8217;re adopting Anthropic&#8217;s definitions.</p><h3><strong>Workflows vs agents (to be, or not to be)</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://venechkaeror.artstation.com/projects/g1m9e" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1rjl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 424w, https://substackcdn.com/image/fetch/$s_!1rjl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 848w, https://substackcdn.com/image/fetch/$s_!1rjl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 1272w, https://substackcdn.com/image/fetch/$s_!1rjl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1rjl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1504914,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://venechkaeror.artstation.com/projects/g1m9e&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/184642131?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1rjl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 424w, https://substackcdn.com/image/fetch/$s_!1rjl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 848w, https://substackcdn.com/image/fetch/$s_!1rjl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 1272w, https://substackcdn.com/image/fetch/$s_!1rjl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54c9fb92-f1e7-4724-b427-dd9259b2e3bb_1685x948.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>LLM workflows are predictable and consistent if the task is well-defined. Some examples include categorising customer service queries, translating a document, or generating or summarising reports from a database. The patterns range from forwarding queries to an LLM and getting back a response, to more complex chaining and routing involving multiple steps, or stateful multi-turn workflows.</p><p>Agentic patterns, on the other hand, involve autonomous loops of LLM reasoning and tool usage, where the system dynamically decides what steps to take in order to achieve a goal. Some examples include a sales coaching assistant, open-ended research, or multi-tool problem solving. There is no predefined code-path; agents go in an endless loop using their available tools and knowledge to collect all the necessary information required to complete a task.</p><p>Even though agents are fashionable right now, not all LLM applications <em>need</em> to use an agentic pattern. There are lots of simple workflows that may solve your use case.</p><p>There are various options on how to implement these patterns. Popular libraries for implementing workflows include <a href="https://www.langchain.com/">Langchain</a>, <a href="https://www.llamaindex.ai/">LlamaIndex</a>. For agents, we have used the open source <a href="https://ai.pydantic.dev/">Pydantic AI</a> library in most of our work, but besides that there are lots to choose from such as <a href="https://google.github.io/adk-docs/">Google ADK</a>, <a href="https://www.langchain.com/langgraph">LangGraph</a>, <a href="https://www.crewai.com/">CrewAI</a> and <a href="https://www.parlant.io/">Parlant</a>.</p><h3><strong>Reproducibility and evaluation</strong></h3><p>When we deploy agents, we pay particular attention to reproducibility: for any actions and decisions made by an agent, we want the ability to look back and understand <em>how</em> the agent got there. Without that, debugging becomes increasingly difficult, and moreover we have no ability to explain outcomes or measure performance.</p><p>By introducing experiment tracking, we can version the prompt, dataset, models, code and various metrics. It also allows us to keep track of traces. Traces are records of all actions, messages, tool calls, reasoning, and intermediate communications, tracked across the lifecycle of a request. Traces are invaluable for debugging and provide insight into the actions an LLM takes in generating a response. The popular open source tools that we have used are <a href="https://mlflow.org/">MLFlow</a> and <a href="https://langfuse.com/">Langfuse</a>.</p><p>With a reproducible foundation in-place, the next critical component we need is an evaluation framework. The idea here is to perform error analysis, collect 50 - 100 examples of where the application is failing, ideally through real user conversations. If you don&#8217;t have any data, you can also generate synthetic data to get started.</p><p>These examples serve as an evaluation dataset. The evaluation process for agentic workflows can be broken down into two steps. First, we check whether the overall task was successful. Second, we perform a step-level diagnosis: checking whether tools were selected appropriately and whether the agent recovers from failures. For workflow-based patterns, error analysis needs to be targeted at each stage of the workflow. For more advanced cases, LLM-as-judge evaluators can also be included. There are generic LLM-specific evaluation tools such as <a href="https://deepeval.com/">DeepEval</a>, <a href="https://www.deepchecks.com/">Deepchecks</a> and <a href="https://docs.ragas.io/en/stable/">Ragas</a>.</p><p>To summarise, by this point we have an orchestrator, an application-specific evaluator, and an LLM-specific experiment tracker with tracing for debugging. Together, these enable us to confidently iterate and improve the performance of the agentic application. Because LLMs are susceptible to hallucinations and prompt injection, one common outcome of evaluation is the addition of guardrails around inputs and outputs to catch and flag issues early.</p><h3><strong>Production considerations</strong></h3><p>In this article, we&#8217;ve discussed some of the fundamentals of MLOps as they apply to tracing, reproducibility, and evaluation for agentic systems.</p><p>There are plenty of other considerations for productionising agentic applications. Defining clear success metrics at the start of a project is important if we want to meaningfully evaluate performance - the frameworks don&#8217;t do the thinking for us here. As a project evolves, we also need to consider increased complexity in observability and telemetry, alongside more sophisticated guardrails and safety controls. On top of that, the standard set of application monitoring still applies.</p><h3><strong>What&#8217;s next? (all the world&#8217;s a stage)</strong></h3><p>Over the next few editions, we&#8217;re going to dive into some of the most important topics in agentic AI and AgentOps. We&#8217;ll cover multi-agent systems and agent-to-agent protocols, explore evaluation and testing in greater depth, look at fully self-hosted agentic applications, and cover safety and security &#8212; which may turn out to be the most important emerging topic in this field.</p><p>Agents are still very new technology, and we&#8217;re constantly learning and refining our approach to AgentOps. We&#8217;re keen to hear your own experiences and lessons learned, so please get in touch and let us know.</p><p><em>Shubham, (the perfect dude) is a master of AI with a passion for machine learning engineering and MLOps. He holds a Master&#8217;s degree in AI, enjoys running, and believes the best solutions are usually the simplest ones.</em></p><div><hr></div><h2><strong>And finally</strong></h2><h3><strong>What&#8217;s coming up</strong></h3><p><a href="https://mlopswtf-event-7.eventbrite.co.uk">Our next MLOps.WTF meetup</a> is happening on 22nd January 2026, hosted by Arm - and it&#8217;s now sold out!</p><p>If you&#8217;ve got a ticket but can no longer make it, please cancel so someone on the waiting list can take your place. And if you missed out, it&#8217;s still worth joining the waiting list&#8230; just in case.</p><p>This one&#8217;s an edge AI special, focused on what actually changes when models move out of the cloud and into the real world: tighter constraints, harder debugging, and failure modes you don&#8217;t see coming until you ship. We&#8217;ll be hearing practical stories from Arm, Fotenix, and Fuzzy Labs on what it takes to run edge AI systems day to day.</p><p><strong>&#128467;&#65039; Thursday 22nd January 2026 &#8212; Manchester</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-event-7.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Join the waiting list&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-event-7.eventbrite.co.uk"><span>Join the waiting list</span></a></p><p>We&#8217;re also headed to our first BIG event,  <strong><a href="https://www.ai-expo.net/global/agenda/day-free-gold-ai-developer-conference-from-prototype-to-production/https://www.ai-expo.net/global/agenda/day-free-gold-ai-developer-conference-from-prototype-to-production/">AI &amp; Big Data Global</a></strong><a href="https://www.ai-expo.net/global/agenda/day-free-gold-ai-developer-conference-from-prototype-to-production/https://www.ai-expo.net/global/agenda/day-free-gold-ai-developer-conference-from-prototype-to-production/"> on </a><strong><a href="https://www.ai-expo.net/global/agenda/day-free-gold-ai-developer-conference-from-prototype-to-production/https://www.ai-expo.net/global/agenda/day-free-gold-ai-developer-conference-from-prototype-to-production/">3-4 February</a></strong>. Matt will be joining a panel at the conference, digging into what it really takes to take AI systems from prototype to production.</p><p><strong>&#128467;&#65039; 4&#8211;5 Feb 2026 &#8212; Olympia London</strong></p><p>If you&#8217;ll be there, come say hello, and if you show this newsletter, we&#8217;ll even give you a bottle of sauce. Secret password: IReadTheNewsletterUntilTheEnd.</p><div><hr></div><h3><strong>About Fuzzy Labs</strong></h3><p>We&#8217;re Fuzzy Labs, a Manchester-based MLOps consultancy founded in 2019. We&#8217;re engineers at heart, and nerds that are passionate about the power of open source.</p><p>And right now, we <strong>really are hiring</strong>. We&#8217;re growing fast &#8212; and we&#8217;re on the lookout for people to join our team.</p><p><strong>Open roles:</strong></p><ul><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-engineer">MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Engineer</a></p></li><li><p><strong><a href="https://www.fuzzylabs.ai/job-listing/public-sector-lead-secure-government">Public Sector Lead: Secure Government</a></strong></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers#job-vacancies&quot;,&quot;text&quot;:&quot;See all current vacancies&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers#job-vacancies"><span>See all current vacancies</span></a></p><p>If you, or someone you know, want to build serious systems with people who can happily spend 30 minutes arguing about observability <em>and</em> espresso extraction, we&#8217;d love to hear from you.</p><p><em>Not subscribed yet? You probably should be. The next issue will be our <strong>MLOps.WTF meetup playback</strong> and then, after that we&#8217;ll be diving deeper into <strong>agents in production</strong>, starting with multi-agent systems. Or follow us on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn</a> to see what we&#8217;re up to&#129782;.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[A merry MLOps.WTF wrap up]]></title><description><![CDATA[Watch now | MLOps.WTF Edition #22]]></description><link>https://www.mlops.wtf/p/a-merry-mlopswtf-wrap-up</link><guid isPermaLink="false">https://www.mlops.wtf/p/a-merry-mlopswtf-wrap-up</guid><dc:creator><![CDATA[Matt Squire]]></dc:creator><pubDate>Tue, 23 Dec 2025 10:55:59 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/182405983/c5a60dcd2a8987c28c7e3ccb3e720316.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h1><strong>A message from Matt Squire</strong></h1><p>Did you know 2025 is a square year?</p><p>Take 45, square it, and you get 2025. If you&#8217;re wondering how special that is, the next square year is 46&#178; &#8211; which isn&#8217;t until 2116. A bit of a wait.</p><p>This year on MLOps.WTF we&#8217;ve shared 13 articles. Topics ranged from <a href="https://www.mlops.wtf/p/lets-build-a-sovereign-llm">sovereign large language models</a> &#8211; how to build your own, and why it matters &#8211; to AI safety, including the slightly terrifying idea of <a href="https://www.mlops.wtf/p/a-deep-dive-into-deepseek">using neural networks in safety-critical applications</a>. We talked about <a href="https://www.mlops.wtf/p/my-type-on-paper-the-future-of-software">vibe coding</a> and <a href="https://www.mlops.wtf/p/matt-squire-are-we-the-last-programmers">whether any of us will have a job in 2026.</a> And of course <a href="https://www.mlops.wtf/p/mlopswtf-5-newsletter-14">agents</a>, which have been a big focus for us.</p><p>We care about agents because we want to understand how to productionise them &#8211; and how to keep them running in production. We&#8217;ll have a lot more to say on this in 2026, including workflow management and multi-agent systems, evaluation approaches, self-hosting agentic models, and the safety and security work that comes with all of the above.</p><p>Thanks to all of our authors besides me &#8211; we&#8217;ve had articles from Danny, James, Sam, Sav, Rhiannon, and Tom.</p><p>We&#8217;ve also run five live MLOps.WTF events here in Manchester this year. You can find all the videos on <a href="https://www.youtube.com/channel/UCJwQVWdWOfK2XNAdD7tAT1g">our YouTube channel.</a></p><p>If you&#8217;d like to come to the next one, it&#8217;s on 22 January. It&#8217;s being held at Arm&#8217;s new office in Manchester, and we&#8217;re focusing on edge AI &#8211; basically any situation where we want to train, optimise, deploy, and manage models on specialised hardware.</p><p>That includes cases with power constraints, where we want models to use as little energy as possible. Or memory constraints, where we need models to be small enough to fit. Or situations where we want to do most inference locally, close to the data, and only send summaries up to the cloud &#8211; because latency, bandwidth, cost, or privacy says we should.</p><p>We&#8217;ll cover all of those topics on 22 January with our edge AI MLOps special. If you&#8217;d like to come along, here&#8217;s the sign up link.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-event-7.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Tickets for 22nd Jan&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-event-7.eventbrite.co.uk"><span>Tickets for 22nd Jan</span></a></p><p>I couldn&#8217;t find anything mathematically interesting about 2026. If you&#8217;ve got one, send it in a message or leave a comment &#8211; we&#8217;d genuinely love to hear it.</p><p>In the meantime, have a great holiday, and we&#8217;ll see you in 2026!</p>]]></content:encoded></item><item><title><![CDATA[AI Agents in Production: starting with the fundamentals]]></title><description><![CDATA[MLOps.WTF Edition #21]]></description><link>https://www.mlops.wtf/p/ai-agents-in-production-all-this</link><guid isPermaLink="false">https://www.mlops.wtf/p/ai-agents-in-production-all-this</guid><dc:creator><![CDATA[Matt Squire]]></dc:creator><pubDate>Thu, 04 Dec 2025 12:04:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!afE_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ahoy there &#128674;,<br><br><em>Matt is back! Episode #21 is brought to you by Matt Squire, CTO, Co-Founder, Fuzzy Labs.</em></p><p><strong>How do we deploy software that thinks for itself?</strong></p><p>It&#8217;s a common theme in this newsletter that things change quickly in the world of MLOps. According to Google Trends, the term itself only gained popularity in 2019. Back then, the hard thing we were all grappling with could be summarised like this: how do we deploy and maintain software that&#8217;s fundamentally non-deterministic?</p><p>This description applies to all the traditional ML things that we know and love, like recommender models, sentiment scoring, image segmentation, etc. And it applies in the same way to the first wave of generative AI applications, such as RAG (<a href="https://www.mlops.wtf/p/you-could-have-invented-rag">see issue #4</a>). Non-determinism in ML comes from a few places; randomness during training, gradual data drift during inference, and (especially with LLMs) stochastic generation used as part of producing a model output.</p><p>That stuff is hard enough to deal with, but agents are much worse, because they add an entirely new dimension to the challenge: agents can reason and follow complex workflows. They can act, and interact with the world in ways that compound unpredictability. A traditional ML model makes a prediction <em>on request</em>, and then it sits there waiting for the next request. But an agent makes a prediction, then takes an action, observes the result, and it can keep going, potentially dozens of times in a single run.</p><p>As MLOps practitioners, how do we approach this challenge? In this article I&#8217;ll introduce some of the emerging ideas and tools for running AI agents in production &#8212; AgentOps, if you like.</p><p><strong>Agentic workflows: or fancy </strong><em><strong>while</strong></em><strong> loops</strong></p><p>To begin with, I&#8217;d like to demystify this word &#8216;agent&#8217;. The term has been around in AI research since the 1980s, but it was researchers like Pattie Maes at MIT&#8217;s Media Lab who brought it into the mainstream. When Maes launched her Software Agents Group in 1991, she defined an agent as a program that could act autonomously on behalf of a user or another program.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!afE_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!afE_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 424w, https://substackcdn.com/image/fetch/$s_!afE_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 848w, https://substackcdn.com/image/fetch/$s_!afE_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 1272w, https://substackcdn.com/image/fetch/$s_!afE_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!afE_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp" width="1300" height="1300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1300,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:148138,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/180691143?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!afE_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 424w, https://substackcdn.com/image/fetch/$s_!afE_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 848w, https://substackcdn.com/image/fetch/$s_!afE_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 1272w, https://substackcdn.com/image/fetch/$s_!afE_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9b377b-4fa8-477d-8341-a21707aa0fc8_1300x1300.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>(Photo credit: Susan Lapides, 2013 - Pattie Maes)</em></p><p>Nowadays, &#8216;agent&#8217; refers to a specific way of using large language models with tools&#8212;and the mechanism is remarkably simple.</p><p>Suppose we want an AI to assist with booking meetings. You could prompt an LLM with everyone&#8217;s calendar slots and ask it to reply with a suitable time. That works, but what if we need more information from the user, or additional data from the calendar system?</p><p>Instead, give the LLM tools and let it make its own choices:</p><p><em>&#8220;You are a calendar booking assistant. The user wants to book a meeting for Alice and Bob this week. You may:</em></p><p><em>a) you can ask to see a user&#8217;s calendar: &lt;tool:calendar,user name&gt;;</em></p><p><em>b) you may ask the user for additional clarification: &lt;ask:question&gt;</em></p><p><em>c) propose a meeting time along with &lt;done&gt;&#8221;.</em></p><p>To make this work, we need a program &#8212; let&#8217;s call it a workflow orchestrator &#8212; that interprets the LLM&#8217;s responses and acts on them. After each action, the runtime calls the LLM again with the results: <em>&#8220;On the last turn you asked to see Alice&#8217;s calendar. Here are her available slots: [...]&#8221;</em>. The LLM decides what to do next&#8212;maybe it needs Bob&#8217;s calendar too, or maybe it can propose a time.</p><p>This continues in a loop until the LLM returns &lt;done&gt;.</p><p>That&#8217;s the core idea: a while loop where the LLM decides what happens next. This basic structure is what powers our coding assistants, research tools, etc. By giving the LLM the power to pursue a goal autonomously and make decisions based on what it observes at each step, we end up with an <em>agent.</em></p><p>By the way, if you&#8217;re familiar with the concept of <em>continuation passing </em>in programming, then you&#8217;ll notice some similarities here!</p><p><strong>From loops to workflows</strong></p><p>The calendar booking example above illustrates the concept, but in practice it&#8217;s very limited. What happens when the LLM makes a mistake and needs to backtrack? What if you want multiple agents working in parallel, perhaps one checking calendars while another drafts a meeting agenda? And what if a human needs to be <em>in the loop</em>, say by approving the proposed time before committing?</p><p>What we really need is a <em>workflow framework.</em> Tools like <a href="https://github.com/langchain-ai/langgraph">LangGraph</a> (from the makers of LangChain) and <a href="https://github.com/crewAIInc/crewAI">CrewAI</a> take the basic while-loop pattern and add the structure you need for production: state management, branching logic, error recovery, and orchestration of multiple agents or steps.</p><p>LangGraph, for instance, lets you define your agent as a directed graph where nodes represent actions (e.g. call the LLM, invoke a tool, wait for human input) and edges represent transitions between them. The framework can persist state, so if your agent fails during a complex process, you can resume from where it left off instead of starting again.</p><p><strong>Using tools</strong></p><p>Workflows are what enables an agent to reason sequentially, i.e. to work through a task in multiple steps. But our agents also need to <em>observe</em> and <em>act</em>, and to do that, they need access to tools. Tools give agents access to things like databases, file storage, and APIs. In the calendar booking example, we glossed over exactly how tool calling works, so let&#8217;s take a closer look at that now.</p><p>For an LLM to make use of tools, we need to agree on two things: firstly, how do we describe a tool to the model? Secondly, when the model wishes to invoke a tool, how should it communicate its intentions back to us?</p><p>In other words, we need a protocol, and Anthropic&#8217;s MCP (model context protocol) has become the standard way to describe and interface with tools. Each tool has an MCP <em>server</em> which knows how to talk to that tool. Workflow frameworks use an MCP <em>client</em> to talk to these servers.</p><p>The standardisation that MCP brings is important particularly because it means we can swap out tools without re-writing the agent, and different workflow frameworks are now interoperable with the same tool integrations.</p><p><strong>Deploying agents</strong></p><p>At first glance, deployment looks straightforward. Components related to workflow orchestration, as well as your MCP servers, need to be deployed, scaled, and monitored. We need infrastructure, CI/CD pipelines, central logging&#8230; so far, so good.</p><p>In traditional ML deployments we usually assume a single inference step. So, you send data to a model, get a prediction back, and you&#8217;re done. But as we&#8217;ve seen, that&#8217;s not how agents work. A single request from a user might trigger ten individual LLM calls, along with three API requests, and a database operation.</p><p>That means your deployment needs to handle long-running processes, manage state between steps, and deal with failure gracefully. What happens if our agent is half-way through booking a meeting and the calendar API times out? Should it retry? How many times? In the end do we fail the whole workflow, or save and resume later on?</p><p>We can make life even harder by introducing <em>multiple</em> agents that need to coordinate in order to accomplish more complex goals. How do these agents share state and agree on task orderings?</p><p>The good news is that these aren&#8217;t new problems in software engineering. Ultimately, we&#8217;re talking about the challenges of <em>distributed systems</em>. Statefulness is the enemy, so we need to avoid it as much as possible. MCP servers, for example, should most definitely be stateless.<em> </em>Workflows are stateful by definition, and Frameworks like LangGraph include helpful features like state persistence and recovery.</p><p>For the multiple agent case, there are emerging standards designed to help with the coordination problem &#8212; in particular Google&#8217;s <a href="https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/">Agent-to-Agent protocol</a>.</p><p><strong>Observing and monitoring agents</strong></p><p>Once our agents are running in production, we need to understand what they&#8217;re actually doing.</p><p>Traditional ML monitoring is concerned with things like model drift, the distribution of features, and the accuracy of predictions. These are still of some interest &#8212; for example, we might want to track drift in the content of a typical user query &#8212; but the focus shifts more to tracing the agent&#8217;s reasoning chain. What tools did it call? What did they return and how did the LLM interpret the tool response? What decisions were made?</p><p>This is harder than it sounds, because a single agent run might involve many LLM calls, each with its own context, system prompt, and settings. Traditional logging isn&#8217;t quite enough, because we need to connect together every step within the run.</p><p>Tools like <a href="https://github.com/langfuse/langfuse">LangFuse</a> are designed to help with this. Langfuse will keep track of LLM calls, along with tool invocations, as well as embeddings and retrievals. It also provides the means to manage and version control prompts. Another tool is LangSmith, built by LangChain, although worth noting this one is not open source.</p><p><strong>Evaluations for agents</strong></p><p>While observability tells us what our agents are doing while they&#8217;re in production, evaluation is how we determine whether an agentic workflow is <em>correct</em>, as well as <em>safe</em> and <em>secure</em>. Ideally, we want to run evaluations prior to any deployment. Think about it as a full end-to-end system test.</p><p>There&#8217;s an emerging discipline around evaluating the outputs from an LLM, which we recently wrote about in <a href="https://www.mlops.wtf/p/with-great-predictive-power-comes">edition 19</a>. As well as standard or &#8220;happy path&#8221; inputs, we want to test edge cases, and adversarial inputs (e.g. trying to break the guardrails or safety features). Because LLM output is stochastic, to evaluate the outputs we often need to use semantic similarity scoring, or even use <em>another</em> LLM to judge an output.</p><p>As we&#8217;ve seen, with agents, we aren&#8217;t just dealing with single LLM invocations. We also need a way to evaluate a whole workflow. Take our calendar booking example. Success isn&#8217;t just &#8220;did it book a meeting?&#8221; You also need to know: did it check the right calendars? Did it ask clarifying questions when needed? Did it handle conflicts gracefully? Did it book a meeting at a time that actually makes sense?</p><p>A tool like <a href="http://evidently.ai/">Evidently AI</a> provides the functionality for evaluating individual LLM calls, but it also supports evaluations at the workflow level. For example, tracking workflow progress and failed steps.</p><p>A key thing to remember is that evaluation doesn&#8217;t just happen once. It&#8217;s something that should be done every time you want to deploy a change. In agentic applications, a small change can have far-reaching and hard-to-predict implications. Additionally, many of the techniques used &#8212; like LLM as a judge &#8212; can also be used within live monitoring in order to flag up problems in production.</p><p><strong>Where next?</strong></p><p>This has been an overview of what the MLOps landscape looks like for agentic AI. But this is a big topic, and we&#8217;ll be following up with some deeper dives into agents in the next few editions. </p><p>But, to round up, one final observation I&#8217;ve made is just how much the challenges of agentic AI engineering resemble those of distributed systems. I think we can expect to see more and more influence from the world of distributed systems showing up in the future.</p><div><hr></div><h2><strong>And finally</strong></h2><p>What&#8217;s Coming Up<br>Our next MLOps.WTF event is living on the edge, or specifically for edge AI should we say. Details yet to be fully released but tickets will sell out - if you want to join us, get in early!<br><br>&#128467;&#65039; <strong> Meetup #7. 22nd January 2026 x Arm</strong>&#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.co.uk/e/mlopswtf-by-fuzzy-labs-meetup-7-22nd-january-2026-x-arm-tickets-1968700520252?utm-campaign=social&amp;utm-content=attendeeshare&amp;utm-medium=discovery&amp;utm-term=listing&amp;utm-source=cp&amp;aff=ebdsshcopyurl&quot;,&quot;text&quot;:&quot;Get my MLOPs.WTF ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.co.uk/e/mlopswtf-by-fuzzy-labs-meetup-7-22nd-january-2026-x-arm-tickets-1968700520252?utm-campaign=social&amp;utm-content=attendeeshare&amp;utm-medium=discovery&amp;utm-term=listing&amp;utm-source=cp&amp;aff=ebdsshcopyurl"><span>Get my MLOPs.WTF ticket</span></a></p><h2>About Fuzzy Labs</h2><p><em>We&#8217;re Fuzzy Labs. A Manchester based open-source MLOps consultancy, founded in 2019.</em></p><p><em>Helping organisations build and productionise AI systems they genuinely own: maximising flexibility, security, and licence-free control. </em></p><p>We&#8217;re growing fast, and hiring the following roles:</p><ul><li><p><a href="https://fuzzy-labs.webflow.io/job-listing/mlops-engineer">MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/senior-mlops-engineer">Senior MLOps Engineer</a></p></li><li><p><a href="https://www.fuzzylabs.ai/job-listing/mlops-tech-lead">Lead MLOps Enginee</a>r</p></li><li><p><a href="https://fuzzy-labs.webflow.io/job-listing/public-sector-lead-secure-government">Public Sector Lead: Secure Government</a></p></li></ul><p>If you, or someone you love, enjoys building reliable ML systems and doesn&#8217;t mind the <s>odd  </s>frequent debate about coffee brewing methods, have a look at our careers page.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fuzzy-labs.webflow.io/careers#job-vacancies&quot;,&quot;text&quot;:&quot;Open Roles&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fuzzy-labs.webflow.io/careers#job-vacancies"><span>Open Roles</span></a></p><p>If this edition was useful, pass it on. You can also find us on LinkedIn, where we post updates, videos, and the occasional explanation.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/ai-agents-in-production-all-this?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/p/ai-agents-in-production-all-this?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>Not subscribed yet? Strange. The next edition will be our agents deep dive &#8211; workflows, coordination, make sure you&#8217;re signed up to get it to your mailbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Videos from MLOps.WTF #6]]></title><description><![CDATA[3 Great Talks Covering AI Evaluations]]></description><link>https://www.mlops.wtf/p/videos-from-mlopswtf-6</link><guid isPermaLink="false">https://www.mlops.wtf/p/videos-from-mlopswtf-6</guid><dc:creator><![CDATA[Tom Stockton]]></dc:creator><pubDate>Tue, 25 Nov 2025 11:38:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/24b93fdb-411e-45fe-860a-c19c5bf65187_4032x3024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>All the slides from the talks are here:</p><div class="file-embed-wrapper" data-component-name="FileToDOM"><div class="file-embed-container-reader"><div class="file-embed-container-top"><image class="file-embed-thumbnail" src="https://substackcdn.com/image/fetch/$s_!tQYS!,w_400,h_600,c_fill,f_auto,q_auto:best,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a702b2a-b241-4ba4-a864-994f8833efbb_955x539.png"></image><div class="file-embed-details"><div class="file-embed-details-h1">MLOps.WTF #6 Slides</div><div class="file-embed-details-h2">8.85MB &#8729; PDF file</div></div><a class="file-embed-button wide" href="https://www.mlops.wtf/api/v1/file/a1f8067f-9029-4b10-99ea-f1132dda5867.pdf"><span class="file-embed-button-text">Download</span></a></div><a class="file-embed-button narrow" href="https://www.mlops.wtf/api/v1/file/a1f8067f-9029-4b10-99ea-f1132dda5867.pdf"><span class="file-embed-button-text">Download</span></a></div></div><p>Matt&#8217;s intro.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6cf6a340-b033-420b-a374-0a8c74fa51d2&quot;,&quot;duration&quot;:null}"></div><p>First up - Daisy &#8230;</p><div id="youtube2-clG3P1yoSw0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;clG3P1yoSw0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/clG3P1yoSw0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Brad up next &#8230;</p><div id="youtube2-PlddJSisZFM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PlddJSisZFM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PlddJSisZFM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Liam wrapping things up.</p><div id="youtube2-oYZhyL7uA0M" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;oYZhyL7uA0M&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/oYZhyL7uA0M?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Like this? Subscribe to get notified of more &#8230;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/p/videos-from-mlopswtf-6/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/p/videos-from-mlopswtf-6/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[Monitoring, evaluating, and why you really gotta catch ‘em all!]]></title><description><![CDATA[MLOps.WTF Edition #20]]></description><link>https://www.mlops.wtf/p/monitoring-evaluating-and-why-you</link><guid isPermaLink="false">https://www.mlops.wtf/p/monitoring-evaluating-and-why-you</guid><dc:creator><![CDATA[Rhiannon]]></dc:creator><pubDate>Thu, 20 Nov 2025 11:46:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7f7eaafd-9c96-4c12-a6c7-aa12a6298f97_4032x3024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Our MLOps.WTF meetup #6, where Pok&#233;mon references outnumbered technical diagrams, and the clicker staged a full rebellion pre-kick off.</em></p><p>It might have been cold November rain outside, but it was another record turnout for<a href="https://www.mlops.wtf/"> MLOps.WTF</a> #6, our first time taking the meetup on the road to Matillion&#8217;s brilliantly retro office, complete with a green Terrazzo reception desk. The theme of the meetup, however, was anything but retro: How do you monitor and evaluate AI? And a kick off show of hands revealed about half the room knew what this meant.</p><p>When we talk about evaluations in MLOps and AI, we&#8217;re talking about the tools and techniques that give us confidence our machine learning <strong>system</strong> is working. System, not model, because the model is only a small part of it. When you&#8217;re building an AI-powered product, you need to evaluate the whole thing.</p><p>There&#8217;s also a distinction between evaluation and monitoring: monitoring is the ongoing thing you do in production because data changes and there are things you didn&#8217;t anticipate, while evaluation is what you run before deployment to understand whether the thing works correctly in the first place.</p><p>Settle in for three talks on fraud detection, interview intelligence, and digital data engineers - one with Pok&#233;mon scattered throughout, one apologising for the lack of Pok&#233;mon, and one warning us about &#8220;the world&#8217;s worst diagram.&#8221;</p><div><hr></div><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abba3f48-de1a-4723-900c-c3ce4e3bbbcc_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0df1d156-7e9d-43da-b0e5-742ec0d8aee5_6850x3788.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/557f5574-243c-4c16-9d7f-7ce993fc7c74_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8f09920-b15a-4792-b3a1-6f664585d9fc_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4477b678-dbbd-4ec7-bf4b-a78fb6188422_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2fa353e-7319-4c01-8274-8482ac61ba8a_3024x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/094b9113-7c20-4726-9681-8a93a717ef84_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4714a4b0-59a5-4bb7-910b-6d5dd07d6f00_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261a3606-debe-4fe9-9cd7-58da1b82cdd1_4032x3024.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db06b3c0-0af7-42d0-bf58-4b6286b97c6e_1456x1454.png&quot;}},&quot;isEditorNode&quot;:true}"></div><div><hr></div><h2><strong>Daisy Doyle: &#8220;Fraud &#8211; Gotta Catch &#8216;Em All&#8221;</strong></h2><p>Daisy, data scientist at Awaze, committed to the Pok&#233;mon theme. Trainers and Pok&#233;balls throughout, plus two fictional companies &#8220;Eevee Trading Cards&#8221; and &#8220;Snorlax Spa Breaks&#8221; for her case studies that she assures us bear no resemblance to anywhere real.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OVf1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OVf1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 424w, https://substackcdn.com/image/fetch/$s_!OVf1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 848w, https://substackcdn.com/image/fetch/$s_!OVf1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!OVf1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OVf1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png" width="1456" height="822" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:822,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2137101,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/179443294?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OVf1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 424w, https://substackcdn.com/image/fetch/$s_!OVf1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 848w, https://substackcdn.com/image/fetch/$s_!OVf1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!OVf1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd313f19-8453-45ac-ad81-87fcae56df06_2296x1296.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>The scale of the problem</strong></h3><p>Last year, in the UK, e-commerce fraud hit over 3 million events, equalling over 1 billion pounds stolen and just under 1.5 billion prevented. Which at around 60%, is something, but not great.</p><p>The fraud comes in different flavours - promo abuse, chargebacks, account hijacking, triangulation - and which ones you&#8217;re dealing with shapes how you evaluate.</p><h3><strong>AWS Fraud Detector</strong></h3><p>Daisy uses AWS Fraud Detector, a fully managed service that takes 18 months of historical data with fraud/legitimate labels and builds a model. It&#8217;s a black box so you can&#8217;t see what&#8217;s under the hood, but orders get a fraud likelihood score between 0 and 1000.</p><p>She applied this to two very different scenarios&#8230;</p><p>Eevee Trading Cards: high volume, limited edition cards, with fraud trends changing every four to six weeks around new releases, mostly account takeover.</p><p>Snorlax Spa Breaks: slower moving, with fraud clustering around big Pok&#233;mon calendar events, mostly chargebacks and triangulation.</p><p><strong>Why accuracy doesn&#8217;t work here</strong></p><p>&#8220;If my model said all orders are legitimate, my accuracy would be 99.5%. Because fraud is typically under half a percent of all orders.&#8221;</p><p>Accuracy is useless when your data is that imbalanced. What actually matters is true positive rate and false positive rate, because you want to catch as many fraud events as possible whilst not stopping real customers, and some real orders do look a bit fishy.</p><p>Before deployment, begin by testing in stages: start with a sample of 100 fraud events to check the model catches them, then 50/50 split of legitimate to fraudulent, then the realistic ratio of 2% fraud against 98% legitimate to see if it can still pick out the signal when it&#8217;s more sparse.</p><p>AWS Fraud Detector also provides variable enrichment through their own databases of fraudulent emails, addresses, phone numbers. Geolocation enrichment worked particularly well for Eevee by cross-referencing billing address, IP address, and shipping address to flag orders placed in a different country to where they&#8217;re being shipped.</p><h3><strong>Training the trainers</strong></h3><p>Human reviewers are required for GDPR, but they have their own bias. Reviewers can anchor on an AI score even when the model isn&#8217;t that strong yet, so you need to build their confidence in the system.</p><p>This means running a trial period where you&#8217;re validating both the model and the reviewers. For fast-turnover goods like Eevee, you can let some orders through and wait to see what actually turns out to be fraud - you get ground truth to check the model against, and reviewers get to see how their judgment compares to outcomes. For high-cost items like Snorlax where chargebacks take up to a year, you invest more in the review process itself: more time, more information, let them speak to customers directly. Your business context determines how you build that confidence.</p><h3><strong>Retraining and thresholds</strong></h3><p>Retraining frequency depends on how fast your fraud moves. Fast-moving trends like Eevee need monthly or faster, while slower seasonal trends like Snorlax can be quarterly or around big calendar events. There&#8217;s also a limitation with Fraud Detector that it can only process one batch of predictions at a time, so you need to think about batching.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XZuA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XZuA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 424w, https://substackcdn.com/image/fetch/$s_!XZuA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 848w, https://substackcdn.com/image/fetch/$s_!XZuA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 1272w, https://substackcdn.com/image/fetch/$s_!XZuA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XZuA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png" width="1456" height="821" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:821,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1302682,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/179443294?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XZuA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 424w, https://substackcdn.com/image/fetch/$s_!XZuA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 848w, https://substackcdn.com/image/fetch/$s_!XZuA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 1272w, https://substackcdn.com/image/fetch/$s_!XZuA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb743aadc-98cd-467d-8078-7ed8ee2557a8_2294x1294.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And how much fraud should you let happen? Sounds counterintuitive, but your model needs fraudulent data that&#8217;s definitely fraud to retrain on. When you stop an event in progress you never know for certain whether it actually was fraud. So there&#8217;s an argument for letting through a small percentage based on your risk appetite, just to maintain training data quality.</p><p>The takeaway from Daisy&#8217;s presentation: monitoring and evaluating is shaped by business context and data, not just technical constraints. And there is no such thing as too many Pok&#233;mon when it comes to MLOps.WTF presentations.</p><div><hr></div><h2><strong>Bradney Smith: &#8220;Six Lessons in Evaluating Gen AI&#8221;</strong></h2><p>Bradney, AI Lead at Spotted Zebra, apologised for the lack of Pok&#233;mon, but he did give us six really great lessons on evaluating gen AI,  so we&#8217;ll let it slide.</p><p>Setting the scene, and taking us on a story, Brad joined Spotted Zebra in August 2024. His first task: to build out the AI team and infrastructure, with his first project being &#8220;Skills Evaluation&#8221; (extracting evidence of soft and technical skills from interview transcripts.)</p><p>The only way to know if the AI was working was to have the occupational psychologists review the outputs. Make changes to prompts, send to the experts, wait for feedback, iterate.</p><p>Then a prospective client got interested. Really interested. Feedback went from informal and infrequent to formal and regular, sometimes multiple times a day. A year&#8217;s worth of development in a few months.</p><p>The manual review loop couldn&#8217;t keep up.</p><p>That&#8217;s when they built evaluation infrastructure.</p><h3><strong>Lesson 1: Golden examples</strong></h3><p>A golden example is a document where you define exactly what the correct output should be for a given input. For Skills Evaluation, that means: interview transcript goes in, correctly extracted evidence comes out. You create a set of these with your domain experts, and that becomes your gold standard to test against.</p><p>The shift is significant. Instead of sending every change to experts for review, you test against the examples they&#8217;ve already created. Now you can measure properly. Prompt engineering becomes quantifiable experiments instead of gut feel.</p><p>They stratified their golden examples by role level and industry. That granularity meant they could see exactly where prompts were failing - junior roles missing university experience because prompts only looked for workplace evidence, for instance.</p><p>When GPT-5 came out, they tested it on day one. Every new model, even in the same family, has quirks. Golden examples told them exactly what those quirks were so they could prompt around them instead of assuming newer means better, although in this case - GPT-5 is pretty good.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uiXa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uiXa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 424w, https://substackcdn.com/image/fetch/$s_!uiXa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 848w, https://substackcdn.com/image/fetch/$s_!uiXa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 1272w, https://substackcdn.com/image/fetch/$s_!uiXa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uiXa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png" width="1456" height="815" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:815,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:339602,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/179443294?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uiXa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 424w, https://substackcdn.com/image/fetch/$s_!uiXa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 848w, https://substackcdn.com/image/fetch/$s_!uiXa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 1272w, https://substackcdn.com/image/fetch/$s_!uiXa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89171ff2-a472-4a7e-aaa5-23ebfae95650_2318x1298.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Lesson 2: Version your prompts</strong></h3><p>&#8220;Please don&#8217;t hard code your prompts. It makes things so much more difficult.&#8221;</p><p>Treat prompts like code. Use a structured file system with semantic versioning. They built their own format because they couldn&#8217;t find one they liked: YAML file with provider, parameters, system prompt, user prompt with templating. Everything needed to run the experiment again.</p><p>Keep a changelog so you can track how prompts improve over time. Keep a config file on prod so you can roll back without restarting the server.</p><h3><strong>Lesson 3: Model gateway</strong></h3><p>They kept finding engineers across the business writing the same API call logic over and over. Same boilerplate, different codebases, nobody maintaining it consistently. So they built a model gateway - one function in a commons library that everyone uses. It parses the prompt files, packages the API calls, captures latency and cost metrics, handles retry logic.</p><p>You build it once, and suddenly that&#8217;s one less thing for everyone to think about.</p><h3><strong>Lesson 4: LLM as a judge</strong></h3><p>Now, golden examples work when there&#8217;s a correct answer - information extraction, classification, etc. But Spotted Zebra also has a feature that generates interview questions. Suddenly there&#8217;s no single correct question - you could write thousands that are all slightly different, but all equally good.</p><p>For tasks like that, you can define your golden criteria instead. Asking what makes a good interview question? Rather than the wording of the questions themselves. The LLM judge then has your criteria and scores outputs against them. You can then use a different model family to avoid self-bias, and validate your judge against human expert assessments before you trust it.</p><p>Golden examples are for development time - you test before deployment. LLM as a judge can run at inference time, giving you continuous quality assessment in production.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Pxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Pxe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 424w, https://substackcdn.com/image/fetch/$s_!7Pxe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 848w, https://substackcdn.com/image/fetch/$s_!7Pxe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 1272w, https://substackcdn.com/image/fetch/$s_!7Pxe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Pxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png" width="1456" height="573" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:573,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202963,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/179443294?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7Pxe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 424w, https://substackcdn.com/image/fetch/$s_!7Pxe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 848w, https://substackcdn.com/image/fetch/$s_!7Pxe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 1272w, https://substackcdn.com/image/fetch/$s_!7Pxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f693b-2a41-4feb-bf40-70360e5d63c5_1992x784.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Learn more about <a href="https://www.youtube.com/watch?v=1wA2YdRifJ4">&#8216;LLM as a judge&#8217; from our last MLOps.WTF meetup</a> with Emeli from Evidently AI <a href="https://www.youtube.com/watch?v=1wA2YdRifJ4">here</a>.</em></p><h3><strong>Lesson 5: Turn failures into tests</strong></h3><p>Most teams dread production errors - Spotted Zebra used to as well, but they now maintain what they call an adversarial testing bank: a collection of the most difficult inputs they&#8217;ve encountered, e.g. edge cases, prompt injections, empty inputs, password-protected PDFs.</p><p>At scale, edge cases stop being edge cases - they become the norm. So every time they find an error in production, it goes straight into the bank.</p><p>&#8220;We used to absolutely dread seeing errors of course... but now they happen much less frequently. So when they do occur, we get a little bit excited.&#8221;</p><h3><strong>Lesson 6: Log everything properly</strong></h3><p>You don&#8217;t need logs until you do.</p><p>And you can&#8217;t predict when that will be, and when you need them you need them fast, so make them searchable.</p><h3><strong>Earning your stripes (or spots)</strong></h3><p>So what did all this get them? Development is faster because they&#8217;re not waiting for the old feedback loop. Product quality is better. When clients ask how you know your black box system is working, you can actually have an answer.</p><p>And as Bradney pointed out: the EU AI Act is coming in 2026. The companies with evaluation infrastructure will be ready.</p><div><hr></div><h2><strong>Liam Stent: &#8220;From Vibes to Data&#8221;</strong></h2><p>Liam Stent from Matillion has been building Maia from day one. His talk: how do you go from &#8220;it feels like it&#8217;s working&#8221; to actually being able to prove it?</p><h3><strong>What is Maia?</strong></h3><p>Maia is Matillion&#8217;s digital data engineer - or rather, a team of digital data engineers. It builds pipelines, builds connectors, does root cause analysis, writes documentation. The output is DPL, Data Pipeline Language - a YAML-based format that&#8217;s human-readable.</p><p>Early reactions were brilliant - customers could see how it would change how their data engineers work. But when you&#8217;re scaling to enterprise customers paying hundreds of thousands of pounds, you need to be confident in the data. You need to be able to prove it.</p><p>Matillion has a value: innovate and demand quality, with the tagline &#8220;no product, process or person is ever finished.&#8221; They used that to drive how they measured Maia - starting simple, getting more structured, then automating.</p><p><strong>Starting simple</strong></p><p>They fed their certification exam to AI prompt components. Some models failed, some passed. It taught them how to use RAG effectively and get LLMs familiar with DPL using their documentation - a starting point for what &#8220;working&#8221; actually looked like.</p><h3><strong>Getting structured</strong></h3><p>They then introduced an LLM judge to measure what Maia was producing. (seeing a theme here).</p><p>This was tricky because there are many valid ways to build a pipeline - you can put everything in a Python script and get the same result as a nicely structured low-code pipeline. So they had to teach the judge what good looks like using thousands of reference pipelines.</p><p>Before trusting the judge, they validated it manually. Domain experts would write the expected answer, provide counterpoints, assess how much confidence they had in the judge&#8217;s scoring. They found judges show bias within model families, so you need to use a different model to evaluate than the one doing the work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e20f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e20f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 424w, https://substackcdn.com/image/fetch/$s_!e20f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 848w, https://substackcdn.com/image/fetch/$s_!e20f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!e20f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e20f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:630767,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.mlops.wtf/i/179443294?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e20f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 424w, https://substackcdn.com/image/fetch/$s_!e20f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 848w, https://substackcdn.com/image/fetch/$s_!e20f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!e20f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84bf82b2-a467-4a26-b0bc-119ed0cfc478_2312x1300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Automating it</strong></h3><p>They built evaluation into their test framework - runs on builds and deploys with a bank of prompts and context variations. All output goes into LangFuse dashboards: scores, time taken, tokens used, costs. Engineers drill into individual traces when something goes wrong.</p><p>&#8220;They like it when things go wrong because that&#8217;s how we&#8217;re able to learn from it.&#8221;</p><p>When Sonnet 4.5 came out on Bedrock they upgraded with confidence in 24 hours. They could show stakeholders the testing, results before and after, why they were confident. Evidence instead of gut feel.</p><h3><strong>Integrating ML skills into engineering teams</strong></h3><p>How does a traditional Java software engineering shop integrate data scientists and MLOps engineers? Don&#8217;t treat it as anything special. Same backlog, same standups, same roadmap. If the work is important, do it.</p><p>They had to educate stakeholders on why they needed engineering cycles making things better without adding features - that&#8217;s the MLOps work that makes everything else possible.</p><p>But then it just became normalised.</p><p>Good engineers want to learn from other good engineers, T-shaped skills develop naturally, and the more generalists can handle without handing over, the more experts can do deep work.</p><div><hr></div><h2><strong>Rounding up MLOps.WTF #6</strong></h2><p><em>Zooming out, these are our top takeaways:</em></p><ul><li><p>Choose metrics that actually tell you if the system is working.</p></li><li><p>Front-load expert effort into examples and criteria, not reviews.</p></li><li><p>Treat prompts like code.</p></li><li><p>Build evaluation infrastructure once.</p></li><li><p>Business context shapes every decision.</p></li></ul><p><em>Thank you to all our speakers! You set a high bar for MLOPs.WTF, full talks will be available soon on the Fuzzy Labs youtube. (Keep an eye out!)</em></p><div><hr></div><h2><strong>Final bits</strong></h2><p>Fancy your own pair of Fuzzy Labs socks? All speakers are awarded an aesthetically pleasing pair of Fuzzy Labs mathematical socks. Become our next speaker to get yours!</p><p>A final big thank you to Matillion for hosting. First time we&#8217;ve taken MLOps.WTF on the road, and we loved being at your space themed event space.</p><div><hr></div><h2><strong>What&#8217;s coming up</strong></h2><p><strong>Next MLOps.WTF event.<br>Jan 22nd. Tickets now available.</strong></p><p>Edge AI at Arm&#8217;s fancy new office. We&#8217;re still working on the full details but one to get in the diary for the new year.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mlopswtf-event-7.eventbrite.co.uk&quot;,&quot;text&quot;:&quot;Get My Ticket&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mlopswtf-event-7.eventbrite.co.uk"><span>Get My Ticket</span></a></p><div><hr></div><h2><strong>About Fuzzy Labs</strong></h2><p><em>We&#8217;re Fuzzy Labs. Manchester-rooted open-source MLOps consultancy, founded in 2019.</em></p><p><em>Helping organisations build and productionise AI systems they genuinely own: maximising flexibility, security, and licence-free control. We work as an extension of your team, bringing deep expertise in open-source tooling to co-design pipelines, automate model operations, and build bespoke solutions when off-the-shelf won&#8217;t cut it.</em></p><p><strong>We&#8217;re hiring! </strong>Fancy becoming the next Fuzzican? Check out our <a href="https://www.fuzzylabs.ai/careers">careers page.</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.fuzzylabs.ai/careers&quot;,&quot;text&quot;:&quot;Work For Us&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.fuzzylabs.ai/careers"><span>Work For Us</span></a></p><p>Liked this? Forward it to someone making deployment decisions based on vibes. Or follow us on <a href="https://www.linkedin.com/company/fuzzy-labs/">LinkedIn.</a></p><p>Not subscribed yet? What are you waiting for?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.mlops.wtf/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.mlops.wtf/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item></channel></rss>