<?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[Agentic Engineering]]></title><description><![CDATA[Latest news and resources on how to do more, with less resources using automated AI agents. ]]></description><link>https://martinschroder.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!xEtd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ecadc48-1f17-4784-8d32-49b3d23838df_500x500.png</url><title>Agentic Engineering</title><link>https://martinschroder.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 04 Nov 2026 16:46:37 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Martin]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[martinschroder@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[martinschroder@substack.com]]></itunes:email><itunes:name><![CDATA[Martin]]></itunes:name></itunes:owner><itunes:author><![CDATA[Martin]]></itunes:author><googleplay:owner><![CDATA[martinschroder@substack.com]]></googleplay:owner><googleplay:email><![CDATA[martinschroder@substack.com]]></googleplay:email><googleplay:author><![CDATA[Martin]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I learned how Jev works and went several steps further]]></title><description><![CDATA[A story of how I was able to replicate Jev model locally and what I learned from the experience.]]></description><link>https://martinschroder.substack.com/p/i-learned-how-jev-works-and-went</link><guid isPermaLink="false">https://martinschroder.substack.com/p/i-learned-how-jev-works-and-went</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Mon, 28 Sep 2026 13:57:39 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QjJD%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Jev has been all the hype lately, and within a week of its release I already had a working Jev-style implementation in Brain: context and questions in JSON, decisions and probabilities back in JSON, running locally. <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fbrain%2Ftree%2Fmain%2Fsamples%2Fdecision%2Fjson">The sample is here.</a></strong></p><p>The interesting part was what happened on the way there. I started with two earlier papers, implemented and tested their ideas on the publicly released sales-conversation data, added support for Laya, and followed the machinery all the way down: tokenization, attention, probability heads, training objectives, calibration, synthetic data, and the code that turns a probability into an action.</p><p>That last distinction changed how I thought about the whole system.</p><p>Before going further, let me define what I mean. I built an open implementation of the <strong>decision-model approach and interface</strong>, and ported an inspectable open model. I did not have access to Jev&#8217;s private weights, recover its exact architecture, or establish benchmark equivalence. Jev&#8217;s public behavior does not uniquely identify its internals. Several architectures can implement that behavior.</p><p>What I can show you is how to build one, why it works, where it fails, and how to go beyond a JSON classifier into a system that can price uncertainty, acquire evidence, and audit the decisions it makes.</p><p>The source trail below is pinned to <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fbrain%2Ftree%2F180a8890c6b8450af2936c7739aa8cdaaab631c1">Brain revision </a></strong><code>180a8890</code>. The performance numbers are experiments I ran locally. You results may differ. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QjJD%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QjJD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 424w, https://substackcdn.com/image/fetch/$s_!QjJD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 848w, https://substackcdn.com/image/fetch/$s_!QjJD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 1272w, https://substackcdn.com/image/fetch/$s_!QjJD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QjJD%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png" width="431" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:431,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:268571,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.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_!QjJD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 424w, https://substackcdn.com/image/fetch/$s_!QjJD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 848w, https://substackcdn.com/image/fetch/$s_!QjJD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.png 1272w, https://substackcdn.com/image/fetch/$s_!QjJD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a497ca-1f50-411f-9b32-2ed53dd318be_431x752.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>It started with a Reddit comment</strong></h3><p>It all started when I found <strong><a href="iframe.php?url=https%3A%2F%2Fwww.reddit.com%2Fr%2FLocalLLaMA%2Fcomments%2F1wijo3e%2Fcomment%2Fpaxs68p%2F">this LocalLLaMA discussion</a></strong>. The author, Nandakishor M, pointed to earlier work on fast probability prediction and confidence-aware routing. The comment&#8217;s frustration was understandable: ideas can exist in an open paper long before a polished product makes them visible.</p><p>But chronology and similarity do not prove that the open soulution works. I had to see it working for myself. I treated the comment as a research lead, then went to the primary sources.</p><p>The first paper was <strong><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2503.23303">SalesRLAgent, submitted March 30, 2025</a></strong>. It describes estimating sales-conversion probability over a conversation using embeddings, a policy/value architecture, synthetic conversations, and a supervised warm start followed by reinforcement learning. Its reported 96.7% accuracy is the paper&#8217;s result, not a result that I was able to reproduce. </p><p>The second paper was <strong><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2510.01237">Confidence-Aware Routing, submitted September 23, 2025</a></strong>. It combines representation alignment, variation across internal layers, and a learned confidence estimator to choose between local generation, retrieval, a larger model, and human review. That is a routing proposal around language-model reliability, not a specification of Jev&#8217;s architecture.</p><p>Those papers gave me two useful questions: <strong>can a compact model emit a useful probability directly, and can software decide when that probability is sufficient to act?</strong></p><p>I implemented the papers in <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fbrain%2Ftree%2F180a8890c6b8450af2936c7739aa8cdaaab631c1%2Fsamples%2Fdecision%2Fsalesagent">Brain&#8217;s salesagent sample</a></strong>. This is an adaptation and a fully local one at that. I used local MiniLM representations instead of Azure embeddings, changed parts of the confidence estimator, and did not recreate the paper&#8217;s complete original training environment.</p><p>Then I added <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FNandhaKishorM%2Flaya">Laya</a></strong>, the independent open-weight model from Convai Innovations. Laya provided something the Jev announcement could not: executable architecture and training code that I could inspect and experiment with.</p><p>Here is the actual timeline in Brain:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21GaJy%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GaJy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 424w, https://substackcdn.com/image/fetch/$s_!GaJy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 848w, https://substackcdn.com/image/fetch/$s_!GaJy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 1272w, https://substackcdn.com/image/fetch/$s_!GaJy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21GaJy%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png" width="1070" height="398" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:1070,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87641,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.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_!GaJy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 424w, https://substackcdn.com/image/fetch/$s_!GaJy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 848w, https://substackcdn.com/image/fetch/$s_!GaJy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 1272w, https://substackcdn.com/image/fetch/$s_!GaJy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6295447c-52a8-4e5b-994f-dadf9354e4a5_1070x398.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><strong><a href="iframe.php?url=https%3A%2F%2Ftypesafe.ai%2Fblog%2Fintroducing-system-one-models-and-jev">TypeSafe announced Jev on September 15</a></strong>. The JSON end to end decision reproduction landed September 22. Within a few days I had a working system. A few days later I had a working solution. </p><h3><strong>The conceptual switch: stop generating the answer&#8217;s spelling</strong></h3><p>A typical autoregressive language model predicts the next token repeatedly:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MvI2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 424w, https://substackcdn.com/image/fetch/$s_!MvI2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 848w, https://substackcdn.com/image/fetch/$s_!MvI2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 1272w, https://substackcdn.com/image/fetch/$s_!MvI2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21MvI2%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png" width="349" height="74" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:74,&quot;width&quot;:349,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5773,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.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_!MvI2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 424w, https://substackcdn.com/image/fetch/$s_!MvI2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 848w, https://substackcdn.com/image/fetch/$s_!MvI2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 1272w, https://substackcdn.com/image/fetch/$s_!MvI2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49e69c29-8b5c-4d3c-9baa-4f1ceef6684f_349x74.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The useful distinction is between generating an answer as a token sequence and computing a decision directly from a representation. An autoregressive model can generate a JSON answer, but that is only one way to use it. We can instead attach a classifier to its hidden states or, for suitable single-token labels, compare selected next-token logits. A decoder backbone does not force us to generate braces, label strings, or decimal probabilities.</p><p>A <strong>decision model</strong> instead computes numerical scores for an answer space supplied by the application:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WBX0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 424w, https://substackcdn.com/image/fetch/$s_!WBX0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 848w, https://substackcdn.com/image/fetch/$s_!WBX0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 1272w, https://substackcdn.com/image/fetch/$s_!WBX0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WBX0%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png" width="359" height="38" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:38,&quot;width&quot;:359,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4706,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.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_!WBX0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 424w, https://substackcdn.com/image/fetch/$s_!WBX0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 848w, https://substackcdn.com/image/fetch/$s_!WBX0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 1272w, https://substackcdn.com/image/fetch/$s_!WBX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67171994-72cd-4e93-b7d5-317dedbc82af_359x38.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Here, x is the state, q is the question, and O is the current option set. The ordinary software around the network serializes the resulting numbers as JSON.</p><p>In the architectures explored here, the application supplies the answer space and the network computes one scalar logit per candidate. A softmax converts those logits into a normalized vector, and ordinary software serializes the result. Avoiding output-token generation removes that decoding loop; it does not remove transformer computation. Any speed comparison must also account for backbone size, context length, number of candidates, batching, hardware, and the particular generative or classification baseline being compared.</p><p>The model does not have to learn where the closing brace belongs.</p><p>This also means the final layer need not be a fixed 77-class classifier. One scorer can be applied to three supplied options today and twelve different options tomorrow. The learned object is a compatibility function between evidence, a question, and a candidate answer.</p><p>TypeSafe describes Jev as returning probabilities in parallel and calls its training approach Reinforcement Learning for Calibrated Decisions, or RLCD. That public description motivates the interface. </p><p>There are three independent engineering choices here:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oWEo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 424w, https://substackcdn.com/image/fetch/$s_!oWEo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 848w, https://substackcdn.com/image/fetch/$s_!oWEo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 1272w, https://substackcdn.com/image/fetch/$s_!oWEo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21oWEo%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png" width="1071" height="202" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:202,&quot;width&quot;:1071,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27655,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.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_!oWEo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 424w, https://substackcdn.com/image/fetch/$s_!oWEo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 848w, https://substackcdn.com/image/fetch/$s_!oWEo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 1272w, https://substackcdn.com/image/fetch/$s_!oWEo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a7d5b4-0d2c-4add-977a-2e9f259c3111_1071x202.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>You can combine an encoder with supervised training. You can train an encoder with a policy gradient. You can attach a decision head to a decoder&#8217;s hidden states. None of these choices are obvious from just knowing that training uses &#8220;RL&#8221;. </p><p>And schema correctness is not factual correctness either. Restricting a model to <code>approve</code>, <code>reject</code>, and <code>review</code> prevents it from inventing a fourth string. It can still approve the wrong thing.</p><h3><strong>What the JSON actually means</strong></h3><p>Here is an illustrative Brain request:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TTVo%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TTVo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 424w, https://substackcdn.com/image/fetch/$s_!TTVo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 848w, https://substackcdn.com/image/fetch/$s_!TTVo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 1272w, https://substackcdn.com/image/fetch/$s_!TTVo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TTVo%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png" width="899" height="657" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:657,&quot;width&quot;:899,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96338,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.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_!TTVo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 424w, https://substackcdn.com/image/fetch/$s_!TTVo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 848w, https://substackcdn.com/image/fetch/$s_!TTVo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 1272w, https://substackcdn.com/image/fetch/$s_!TTVo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a189ae7-81ce-432e-ac34-51aba2906005_899x657.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 three primitives have different interpretations:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ImIW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 424w, https://substackcdn.com/image/fetch/$s_!ImIW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 848w, https://substackcdn.com/image/fetch/$s_!ImIW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 1272w, https://substackcdn.com/image/fetch/$s_!ImIW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ImIW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png" width="1064" height="201" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:201,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29966,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.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_!ImIW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 424w, https://substackcdn.com/image/fetch/$s_!ImIW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 848w, https://substackcdn.com/image/fetch/$s_!ImIW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 1272w, https://substackcdn.com/image/fetch/$s_!ImIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a7ccf-c2fa-4a72-bb27-7f54d751c8b0_1064x201.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>For a score question, the application assigns consecutive numerical indices to the supplied levels, starting at zero. Here, &#8220;no urgency&#8221; has index 0, &#8220;prompt response&#8221; has index 1, and &#8220;immediate action&#8221; has index 2. If the model returns probabilities [0.1, 0.6, 0.3], the expected index is 0 &#215; 0.1 + 1 &#215; 0.6 + 2 &#215; 0.3 = 1.2. This is an average of the assigned indices. <br><br>The returned score is:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9ZeR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 424w, https://substackcdn.com/image/fetch/$s_!9ZeR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 848w, https://substackcdn.com/image/fetch/$s_!9ZeR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 1272w, https://substackcdn.com/image/fetch/$s_!9ZeR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%219ZeR%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png" width="274" height="34" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:34,&quot;width&quot;:274,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4686,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.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_!9ZeR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 424w, https://substackcdn.com/image/fetch/$s_!9ZeR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 848w, https://substackcdn.com/image/fetch/$s_!9ZeR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 1272w, https://substackcdn.com/image/fetch/$s_!9ZeR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbe75adb-de00-4c21-a11d-39278fc78da0_274x34.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Yes, we are multiplying the first probability by zero. This is  because we have assigned the first category a numerical score of zero. The result is not a 0&#8211;1 confidence, and it does not mean &#8220;120% urgent.&#8221; It is a location on the supplied three-level scale. If the levels are only ordinal, interpreting fractional distances as meaningful is an application convention. </p><p>Likewise, <code>noul = 0.5</code> means equal probability of true and false. It does not mean &#8220;medium severity.&#8221; Severity needs a rubric.</p><h3><strong>Architecture one: encode the state once, let the options query it</strong></h3><p>My first implementation was in <code>crates/decide</code>.</p><p>It starts with the BERT-family encoder from <code>sentence-transformers/all-MiniLM-L6-v2</code>: six layers, hidden width 384, twelve attention heads, feed-forward width 1536, and about 22.7 million parameters. Brain implements its forward and backward computation locally.</p><p>MiniLM and Sentence-BERT are related parts of this checkpoint&#8217;s background, but they are not interchangeable names: <strong><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2002.10957">MiniLM</a></strong> concerns transformer distillation, while <strong><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F1908.10084">Sentence-BERT</a></strong> concerns learning useful sentence representations.</p><p>The crucial design is <strong>late interaction</strong>. State text and question-option text are encoded separately with shared encoder weights. <strong>They meet in a small trainable attention head.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21N7X2%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N7X2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 424w, https://substackcdn.com/image/fetch/$s_!N7X2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 848w, https://substackcdn.com/image/fetch/$s_!N7X2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 1272w, https://substackcdn.com/image/fetch/$s_!N7X2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21N7X2%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png" width="1019" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1019,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:330940,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.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_!N7X2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 424w, https://substackcdn.com/image/fetch/$s_!N7X2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 848w, https://substackcdn.com/image/fetch/$s_!N7X2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 1272w, https://substackcdn.com/image/fetch/$s_!N7X2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0348d734-b936-4455-a0c5-7a53393dc7f1_1019x567.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><h4><strong>Tokenize and pack</strong></h4><p>The state passes through WordPiece tokenization. Long states are divided into overlapping windows. The current default is 256 tokens per span with 32 tokens of overlap, within the encoder&#8217;s 512-position table; these are configuration limits, not a promise that arbitrary-length input is free.</p><p>Each option becomes a slot carrying the question instructions, option name, and optional description. The implementation inserts real separator tokens. State tokens use segment ID 0 and slot tokens use segment ID 1.</p><p>All spans can be packed into one token buffer, but attention inside the encoder is restricted to each span. Packing is a throughput optimization; it must not let unrelated examples exchange information.</p><h4><strong>Preserve token representations</strong></h4><p>Let the encoded state have <em>R</em> token rows:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OYnQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 424w, https://substackcdn.com/image/fetch/$s_!OYnQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 848w, https://substackcdn.com/image/fetch/$s_!OYnQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 1272w, https://substackcdn.com/image/fetch/$s_!OYnQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OYnQ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png" width="242" height="51" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:51,&quot;width&quot;:242,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3600,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.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_!OYnQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 424w, https://substackcdn.com/image/fetch/$s_!OYnQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 848w, https://substackcdn.com/image/fetch/$s_!OYnQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 1272w, https://substackcdn.com/image/fetch/$s_!OYnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc616697d-da57-4ca5-a6a7-a15bda81d901_242x51.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>For <em>S</em> candidate slots, take the encoded <code>[CLS]</code> row of each:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cp5x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 424w, https://substackcdn.com/image/fetch/$s_!cp5x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 848w, https://substackcdn.com/image/fetch/$s_!cp5x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 1272w, https://substackcdn.com/image/fetch/$s_!cp5x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21cp5x%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png" width="132" height="37" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:37,&quot;width&quot;:132,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1908,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.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_!cp5x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 424w, https://substackcdn.com/image/fetch/$s_!cp5x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 848w, https://substackcdn.com/image/fetch/$s_!cp5x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 1272w, https://substackcdn.com/image/fetch/$s_!cp5x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb10b99a5-bdbf-4375-a05e-879d49605b75_132x37.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>This is an important implementation detail. The current head uses <code>[CLS]</code>, even though this sentence-transformer checkpoint&#8217;s published pooling convention is mean pooling. </p><h4><strong>Compute queries, keys, and values</strong></h4><p>The head learns projections:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K6hG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 424w, https://substackcdn.com/image/fetch/$s_!K6hG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 848w, https://substackcdn.com/image/fetch/$s_!K6hG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 1272w, https://substackcdn.com/image/fetch/$s_!K6hG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21K6hG%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png" width="407" height="47" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:47,&quot;width&quot;:407,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6857,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.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_!K6hG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 424w, https://substackcdn.com/image/fetch/$s_!K6hG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 848w, https://substackcdn.com/image/fetch/$s_!K6hG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 1272w, https://substackcdn.com/image/fetch/$s_!K6hG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f5dd5e-1d33-4dcc-9af3-5a4c39f7e137_407x47.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>For each attention head, split the 384 features into 32-dimensional vectors. Candidate <em>i</em> then attends to state token <em>j</em> with</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SpR_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 424w, https://substackcdn.com/image/fetch/$s_!SpR_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 848w, https://substackcdn.com/image/fetch/$s_!SpR_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 1272w, https://substackcdn.com/image/fetch/$s_!SpR_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SpR_%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F98032dec-d95e-47ca-ab09-93366228893b_433x90.png" width="433" height="90" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98032dec-d95e-47ca-ab09-93366228893b_433x90.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:90,&quot;width&quot;:433,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9273,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.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_!SpR_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 424w, https://substackcdn.com/image/fetch/$s_!SpR_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 848w, https://substackcdn.com/image/fetch/$s_!SpR_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 1272w, https://substackcdn.com/image/fetch/$s_!SpR_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98032dec-d95e-47ca-ab09-93366228893b_433x90.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>After concatenating the attention-head outputs, Brain computes</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G9va!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 424w, https://substackcdn.com/image/fetch/$s_!G9va!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 848w, https://substackcdn.com/image/fetch/$s_!G9va!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 1272w, https://substackcdn.com/image/fetch/$s_!G9va!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21G9va%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png" width="420" height="49" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:49,&quot;width&quot;:420,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6221,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.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_!G9va!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 424w, https://substackcdn.com/image/fetch/$s_!G9va!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 848w, https://substackcdn.com/image/fetch/$s_!G9va!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 1272w, https://substackcdn.com/image/fetch/$s_!G9va!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe7c4148-48fb-4a56-aaf0-38a96fdd4561_420x49.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>These equations follow <code>head.rs</code>, including its residual and shared linear scorer. There is no additional invented MLP in this head.</p><p>This is a dot-product. A query-key dot product produces a scalar attention score. Softmax turns the scores into weights. Weighted value vectors summarize the evidence relevant to that candidate, and a learned readout produces its logit.</p><p>The attention weights are useful diagnostics, but they are not automatically a faithful explanation of causality inside the model.</p><h4><strong>Normalize within each question</strong></h4><p>For a choice with <em>K</em> options:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BQ8a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 424w, https://substackcdn.com/image/fetch/$s_!BQ8a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 848w, https://substackcdn.com/image/fetch/$s_!BQ8a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 1272w, https://substackcdn.com/image/fetch/$s_!BQ8a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21BQ8a%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png" width="388" height="76" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:76,&quot;width&quot;:388,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8034,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.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_!BQ8a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 424w, https://substackcdn.com/image/fetch/$s_!BQ8a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 848w, https://substackcdn.com/image/fetch/$s_!BQ8a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 1272w, https://substackcdn.com/image/fetch/$s_!BQ8a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab6d4072-3012-4190-b9c3-84b92ded9e24_388x76.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Subtracting <em>m</em> avoids overflow and does not change the result. </p><p>The scorer is shared across candidates. It has no output row permanently assigned to &#8220;billing.&#8221; That is why new options can arrive at runtime.</p><p>For width 384, the head contains 3d2+6d+1=444,6733<em>d</em>2+6<em>d</em>+1=444,673 parameters: query projection, combined key/value projection, normalization, and scalar scorer. That small head is trainable independently when the encoder is frozen.</p><h4><strong>What state sharing gives us</strong></h4><p>Multiple questions reuse the state representation. Question-specific instructions stay with the slots, so adding a question does not require changing the state encoding.</p><p>But &#8220;no new state encode&#8221; does not mean zero extra work. New candidate text still needs encoding, head computation still costs something, and the current head calls have their own projection and dispatch overhead.</p><p>Windowing makes the encoder&#8217;s attention cost roughly linear in total state length for fixed window size: approximately <em>O</em>(<em>Nwd</em>) instead of <em>O</em>(<em>N</em>2<em>d</em>), ignoring projection costs and overlap constants. Candidate-to-state attention adds roughly <em>O</em>(<em>SNd</em>).</p><p>The tradeoff is real. Tokens in different windows do not contextualize one another inside the encoder. The head sees all their representations later, but that is not equivalent to deep, full-document attention. Window positions restart; the present head does not automatically recover global chronology. Overlap also duplicates tokens, which can alter their effective weighting.</p><p>One further property follows from the architecture: another candidate does not change candidate <em>i</em>&#8217;s raw score. It changes the denominator of the softmax. That makes option permutation straightforward, but it also means overlapping or duplicated candidates can distort probabilities. The caller must define a meaningful answer space.</p><h3><strong>The binary decision bug</strong></h3><p>The initial binary formulation used two slots: &#8220;the deal closes&#8221; and &#8220;the deal is lost.&#8221; The model returned approximately 0.5 for almost everything.</p><p>The obvious reaction would have been to train longer.</p><p>The actual issue was common-mode cancellation. In the recorded probe, the two slot representations had cosine similarity 0.989. Their queries read the state almost identically. The raw scores changed between conversations, but changed together.</p><p>A two-way softmax depends only on the difference:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SW0s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 424w, https://substackcdn.com/image/fetch/$s_!SW0s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 848w, https://substackcdn.com/image/fetch/$s_!SW0s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 1272w, https://substackcdn.com/image/fetch/$s_!SW0s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SW0s%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png" width="226" height="53" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:53,&quot;width&quot;:226,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3827,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.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_!SW0s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 424w, https://substackcdn.com/image/fetch/$s_!SW0s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 848w, https://substackcdn.com/image/fetch/$s_!SW0s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 1272w, https://substackcdn.com/image/fetch/$s_!SW0s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F949e2323-ba57-4a34-bf0d-12b4a9794a91_226x53.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>If both logits contain the same useful state signal, subtracting them removes it. The probe recorded an absolute-score spread of 0.2895 but a difference spread of only 0.0066.</p><p>The repair was to score the proposition once:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x_tH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 424w, https://substackcdn.com/image/fetch/$s_!x_tH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 848w, https://substackcdn.com/image/fetch/$s_!x_tH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 1272w, https://substackcdn.com/image/fetch/$s_!x_tH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21x_tH%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png" width="323" height="69" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:69,&quot;width&quot;:323,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4665,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.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_!x_tH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 424w, https://substackcdn.com/image/fetch/$s_!x_tH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 848w, https://substackcdn.com/image/fetch/$s_!x_tH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 1272w, https://substackcdn.com/image/fetch/$s_!x_tH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fee1639-cd91-41b7-b1fa-b848a25c1bc3_323x69.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>That is the current <code>noul</code> path in Brain&#8217;s own <code>Decide</code> backend. It uses the proposition and optional true-description; the false-description is not separately encoded there. Laya uses a different two-option formulation, so this distinction matters when porting criteria between backends.</p><p>This is not a proof that binary softmax is defective. A sigmoid and a two-logit softmax have equivalent expressive power when parameterized appropriately. The failure was in this particular initialization, candidate representation, and training setup.</p><p>The <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fbrain%2Fcommit%2F57e98292">fix commit</a></strong> records the change from 0.502 to 0.707 accuracy, and Brier score from 0.251 to 0.202. It is an unusually useful failure because it shows why a plausible architecture diagram does not mean that the output preserves the signal you care about.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21oqbn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oqbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 424w, https://substackcdn.com/image/fetch/$s_!oqbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 848w, https://substackcdn.com/image/fetch/$s_!oqbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 1272w, https://substackcdn.com/image/fetch/$s_!oqbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21oqbn%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png" width="1018" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:1018,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:471460,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.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_!oqbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 424w, https://substackcdn.com/image/fetch/$s_!oqbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 848w, https://substackcdn.com/image/fetch/$s_!oqbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 1272w, https://substackcdn.com/image/fetch/$s_!oqbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c470cc-1889-47dc-b503-0d17bd4f182e_1018x554.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>What Laya actually implements</strong></h3><p>Laya takes a different route. Rather than encoding the state separately from each candidate, it packs the question, options, and state into a joint sequence</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XOlB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 424w, https://substackcdn.com/image/fetch/$s_!XOlB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 848w, https://substackcdn.com/image/fetch/$s_!XOlB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 1272w, https://substackcdn.com/image/fetch/$s_!XOlB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21XOlB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png" width="423" height="90" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cde85176-7916-4e3a-b649-7ef7429cd064_423x90.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:90,&quot;width&quot;:423,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15446,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.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_!XOlB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 424w, https://substackcdn.com/image/fetch/$s_!XOlB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 848w, https://substackcdn.com/image/fetch/$s_!XOlB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 1272w, https://substackcdn.com/image/fetch/$s_!XOlB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde85176-7916-4e3a-b649-7ef7429cd064_423x90.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Those <code>[MASK]</code> positions are readout markers. This is not an autoregressive model filling missing words one token at a time.</p><p>The English root checkpoint that Brain ports uses ModernBERT-large. Its backbone has 28 layers and width 1024, alternating local and global attention. The <strong><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2412.13663">ModernBERT paper</a></strong> describes the encoder family; the decision-specific head comes from Laya.</p><p>After the backbone, Laya:</p><ol><li><p>Adds a learned question-type embedding to every token row.</p></li><li><p>Applies two extra pre-normalized transformer layers over the sequence.</p></li><li><p>Gathers one hidden vector per option at its <code>[MASK]</code> position.</p></li><li><p>Scores each gathered vector with LayerNorm, a linear layer, GELU, and a final scalar linear layer.</p></li><li><p>Applies temperature scaling and softmax over valid options.</p></li></ol><p>The extra transformer layers use <strong>ReLU</strong> in their feed-forward blocks; the scorer uses <strong>GELU</strong>. The head&#8217;s normalization and linear layers have biases. Those details are easy to miss when reimplementing the model, and enough to break numerical parity.</p><p>Laya also has an act/escalate head. It combines the head&#8217;s <code>[CLS]</code> representation with four features: largest option probability, top-two margin, normalized entropy, and option count divided by 255. This is a separate learned output, not the API&#8217;s entropy-derived <code>confidence</code> field.</p><p>Brain implements the path in <code>modernbert/src/laya.rs</code>. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21XgNV%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XgNV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 424w, https://substackcdn.com/image/fetch/$s_!XgNV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 848w, https://substackcdn.com/image/fetch/$s_!XgNV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 1272w, https://substackcdn.com/image/fetch/$s_!XgNV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21XgNV%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png" width="423" height="763" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:763,&quot;width&quot;:423,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:342604,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.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_!XgNV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 424w, https://substackcdn.com/image/fetch/$s_!XgNV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 848w, https://substackcdn.com/image/fetch/$s_!XgNV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 1272w, https://substackcdn.com/image/fetch/$s_!XgNV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd861ee21-59eb-4ff6-ab24-0c5a883b4abe_423x763.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>There are several practical consequences:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21EH7z%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EH7z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 424w, https://substackcdn.com/image/fetch/$s_!EH7z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 848w, https://substackcdn.com/image/fetch/$s_!EH7z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 1272w, https://substackcdn.com/image/fetch/$s_!EH7z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21EH7z%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png" width="1065" height="451" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:451,&quot;width&quot;:1065,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76160,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.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_!EH7z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 424w, https://substackcdn.com/image/fetch/$s_!EH7z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 848w, https://substackcdn.com/image/fetch/$s_!EH7z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 1272w, https://substackcdn.com/image/fetch/$s_!EH7z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5050b031-19f2-4fc2-953e-17a7cb75b481_1065x451.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 English root Laya configuration used by Brain limits the packed sequence to 512 tokens, despite the backbone&#8217;s larger architectural context capacity. Question text and options consume part of that budget. The multilingual and typed-decisions checkpoints are not automatically covered by parity results for the root checkpoint.</p><p>Serialization also belongs to the model contract. Sorting JSON keys can change token order. Different spacing can change tokenization. Option truncation can erase the words that distinguish two choices. Brain preserves ordered JSON and reproduces the relevant sequence-building behavior rather than assuming semantically equivalent JSON is numerically equivalent input.</p><h3><strong>The sales experiment: useful results, and limitations</strong></h3><p>The public <strong><a href="iframe.php?url=https%3A%2F%2Fhuggingface.co%2Fdatasets%2FDeepMostInnovations%2Fsaas-sales-conversations">sales-conversation dataset</a></strong> contains synthetic conversations and annotations. Brain trains on prefixes: at turn <em>t</em>, it sees only turns up to <em>t</em>. Giving it the entire completed conversation would answer a different, much easier question.</p><p>The sample uses trajectory probabilities as training targets, not as input features. Its local representation also replaces the released cloud-embedding columns.</p><p>The <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fbrain%2Fblob%2F180a8890c6b8450af2936c7739aa8cdaaab631c1%2Fsamples%2Fdecision%2Fsalesagent%2FREADME.md">recorded comparison</a></strong> is worth showing without embellishment:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!esMU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 424w, https://substackcdn.com/image/fetch/$s_!esMU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 848w, https://substackcdn.com/image/fetch/$s_!esMU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 1272w, https://substackcdn.com/image/fetch/$s_!esMU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21esMU%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png" width="1062" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:1062,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22986,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.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_!esMU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 424w, https://substackcdn.com/image/fetch/$s_!esMU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 848w, https://substackcdn.com/image/fetch/$s_!esMU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 1272w, https://substackcdn.com/image/fetch/$s_!esMU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef096289-66fe-44d0-993a-a2b124fff4ec_1062x200.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The learned model lost on accuracy and had a better probability score. Brier combines reliability, discrimination, and outcome uncertainty; a lower Brier score alone does <strong>not</strong> establish that every probability is well calibrated. It is stronger evidence than accuracy alone, but reliability plots and subgroup checks are still needed.</p><p>The baseline investigations were revealing as well:</p><ul><li><p>A linear probe on frozen MiniLM representations reached 0.601 accuracy.</p></li><li><p>A larger bge-base representation reached 0.581 in that experiment.</p></li><li><p>A probe on the released Azure embeddings reached 0.798 on a separately stated 3,000/1,000 train/evaluation setup.</p></li><li><p>Thresholding the final supplied trajectory annotation reached 0.982.</p></li></ul><p>That last number is a warning about leakage. If an annotation that nearly reveals the outcome is admitted as an input feature, the benchmark can look spectacular without learning the intended prediction task.</p><p>It is not proof that the original paper leaked labels. And the Azure linear probe is not a proven information-theoretic ceiling. A better model, representation, split, or training procedure could change the result. The evidence supports the narrower conclusion that a bigger encoder did not solve this experiment, and simple controls were necessary to understand the gap.</p><p>The router had limits too: 92% of evaluated conversations fell in one routing band. A confidence-routing system that sends almost everything down the same path has not yet demonstrated much operational value.</p><p>For me, this was the first step beyond the hype: the outcome of an experiment can be valuable even when the result is &#8220;this part does not work well enough yet.&#8221;</p><h4><strong>What the paper-inspired sales pipeline in brain trains</strong></h4><p>There are three phases in <code>ConversionPipeline</code>:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lGZJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 424w, https://substackcdn.com/image/fetch/$s_!lGZJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 848w, https://substackcdn.com/image/fetch/$s_!lGZJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 1272w, https://substackcdn.com/image/fetch/$s_!lGZJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21lGZJ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png" width="1067" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:1067,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36154,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.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_!lGZJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 424w, https://substackcdn.com/image/fetch/$s_!lGZJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 848w, https://substackcdn.com/image/fetch/$s_!lGZJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 1272w, https://substackcdn.com/image/fetch/$s_!lGZJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed728ea-88a1-4620-81ed-49ccb60ea509_1067x225.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The first two phases do not necessarily target the same distribution: a synthetic intermediate annotation and an eventual observed label can disagree. The recipe uses shorter conversations earlier, balances outcomes during sampling, and emphasizes later turns. These choices change the effective training distribution and need to be reflected in evaluation.</p><p>The policy module&#8217;s defaults include discount 0.92, clipping parameter 0.2, and entropy weight 0.01. Its actual update gates the reward gradient according to the ratio of the new committed probability to the stored probability. This is a custom conservative update, not a reproduction of a conventional stochastic actor-critic PPO loop. It has no learned value network. The entropy term also changes the optimum of the unregularized proper score, so I would not claim that this whole composite objective has an exact honesty guarantee.</p><p>For routing, Brain uses three signals:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ljDz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 424w, https://substackcdn.com/image/fetch/$s_!ljDz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 848w, https://substackcdn.com/image/fetch/$s_!ljDz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 1272w, https://substackcdn.com/image/fetch/$s_!ljDz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ljDz%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png" width="548" height="110" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:110,&quot;width&quot;:548,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16896,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.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_!ljDz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 424w, https://substackcdn.com/image/fetch/$s_!ljDz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 848w, https://substackcdn.com/image/fetch/$s_!ljDz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 1272w, https://substackcdn.com/image/fetch/$s_!ljDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc119e075-0168-4a10-b9a4-2dca3bec1a95_548x110.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Here <em>estate</em>&#8203; is the mean-pooled local state representation. The executable calibration path fits the learned confidence network on that reference representation; it is not simply a copy of the paper&#8217;s generator-side final-state predictor. The projection <em>P</em> is fitted by ridge regression, and <em>&#981;</em> is a small two-layer network fitted against whether the model&#8217;s thresholded decision was correct.</p><p>Nonnegative fitted weights, normalized to sum to one, combine these signals. Thresholds at 0.75, 0.55, and 0.35 select act, retrieve, escalate, or human review. The variance ratio is squashed because the unsquashed ratio is not bounded like the other signals.</p><h3><strong>Why reward for correctness does not teach honest probabilities</strong></h3><p>Suppose a state leads to success 70% of the time. What should a probability model report?</p><p>The answer is 0.7. But an action policy rewarded for choosing the winning label has a different optimum.</p><p>Let <em>r</em> be the true success rate and let the policy choose &#8220;success&#8221; with probability <em>p</em>. Its expected correctness reward is</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yLN8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 424w, https://substackcdn.com/image/fetch/$s_!yLN8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 848w, https://substackcdn.com/image/fetch/$s_!yLN8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 1272w, https://substackcdn.com/image/fetch/$s_!yLN8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21yLN8%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png" width="274" height="50" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:50,&quot;width&quot;:274,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3465,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.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_!yLN8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 424w, https://substackcdn.com/image/fetch/$s_!yLN8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 848w, https://substackcdn.com/image/fetch/$s_!yLN8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 1272w, https://substackcdn.com/image/fetch/$s_!yLN8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e191b3-ec90-47b9-a7cd-f4e0a228b739_274x50.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Differentiating with respect to p<em>p</em> gives 2<em>r</em>&#8722;1. If <em>r</em>&gt;0.5, maximizing this reward pushes p<em>p</em> to 1. The policy learns to choose the more likely action, not to report how likely the event is.</p><p>This is the central distinction between <strong>a probability report</strong> and <strong>a stochastic action policy</strong>.</p><p>For probability estimation, use a proper scoring rule. With a binary Brier loss,</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!udfj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 424w, https://substackcdn.com/image/fetch/$s_!udfj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 848w, https://substackcdn.com/image/fetch/$s_!udfj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 1272w, https://substackcdn.com/image/fetch/$s_!udfj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21udfj%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F17e06809-3b35-4913-b85b-3e812414a993_199x40.png" width="199" height="40" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17e06809-3b35-4913-b85b-3e812414a993_199x40.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:40,&quot;width&quot;:199,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3376,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.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_!udfj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 424w, https://substackcdn.com/image/fetch/$s_!udfj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 848w, https://substackcdn.com/image/fetch/$s_!udfj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 1272w, https://substackcdn.com/image/fetch/$s_!udfj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17e06809-3b35-4913-b85b-3e812414a993_199x40.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>and <em>Y</em>&#8764;Bernoulli(<em>r</em>),</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ti-Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 424w, https://substackcdn.com/image/fetch/$s_!ti-Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 848w, https://substackcdn.com/image/fetch/$s_!ti-Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 1272w, https://substackcdn.com/image/fetch/$s_!ti-Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ti-Z%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png" width="251" height="39" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:39,&quot;width&quot;:251,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3410,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.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_!ti-Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 424w, https://substackcdn.com/image/fetch/$s_!ti-Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 848w, https://substackcdn.com/image/fetch/$s_!ti-Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 1272w, https://substackcdn.com/image/fetch/$s_!ti-Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50b9f5e-e53a-47f5-80bc-f69fb02801c1_251x39.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The second term is irreducible uncertainty. The first is minimized at <em>p</em>=<em>r</em>.</p><p>Cross-entropy gives the same target:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!clcX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 424w, https://substackcdn.com/image/fetch/$s_!clcX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 848w, https://substackcdn.com/image/fetch/$s_!clcX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 1272w, https://substackcdn.com/image/fetch/$s_!clcX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21clcX%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png" width="433" height="58" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:58,&quot;width&quot;:433,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7378,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.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_!clcX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 424w, https://substackcdn.com/image/fetch/$s_!clcX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 848w, https://substackcdn.com/image/fetch/$s_!clcX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 1272w, https://substackcdn.com/image/fetch/$s_!clcX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f6f748-5f6d-4ead-9408-ef95dc3332fa_433x58.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>When the target <em>t</em> is the true conditional distribution, its unique optimum is to report that distribution.  <strong><a href="iframe.php?url=https%3A%2F%2Fdoi.org%2F10.1198%2F016214506000001437">Gneiting and Raftery</a></strong> provide the classic treatment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21G6Cn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G6Cn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 424w, https://substackcdn.com/image/fetch/$s_!G6Cn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 848w, https://substackcdn.com/image/fetch/$s_!G6Cn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 1272w, https://substackcdn.com/image/fetch/$s_!G6Cn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21G6Cn%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png" width="1024" height="571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:571,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:367810,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.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_!G6Cn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 424w, https://substackcdn.com/image/fetch/$s_!G6Cn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 848w, https://substackcdn.com/image/fetch/$s_!G6Cn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 1272w, https://substackcdn.com/image/fetch/$s_!G6Cn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae926daa-9366-49e6-88b9-1f06a07851e9_1024x571.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Three training procedures</strong></h3><p>There is more than one training algorithm in this story. Calling all of them &#8220;RLCD&#8221; hides the differences an implementation needs.</p><h4><strong>A. Direct supervised probability fitting</strong></h4><p>Brain&#8217;s <code>Decide</code> backend supports</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6GZ6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 424w, https://substackcdn.com/image/fetch/$s_!6GZ6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 848w, https://substackcdn.com/image/fetch/$s_!6GZ6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 1272w, https://substackcdn.com/image/fetch/$s_!6GZ6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%216GZ6%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png" width="358" height="56" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:56,&quot;width&quot;:358,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5896,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.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_!6GZ6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 424w, https://substackcdn.com/image/fetch/$s_!6GZ6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 848w, https://substackcdn.com/image/fetch/$s_!6GZ6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 1272w, https://substackcdn.com/image/fetch/$s_!6GZ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4f72174-4a9c-4f94-afb3-71845727f81c_358x56.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>where</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nQeQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 424w, https://substackcdn.com/image/fetch/$s_!nQeQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 848w, https://substackcdn.com/image/fetch/$s_!nQeQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 1272w, https://substackcdn.com/image/fetch/$s_!nQeQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21nQeQ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png" width="346" height="68" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:68,&quot;width&quot;:346,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5431,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.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_!nQeQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 424w, https://substackcdn.com/image/fetch/$s_!nQeQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 848w, https://substackcdn.com/image/fetch/$s_!nQeQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 1272w, https://substackcdn.com/image/fetch/$s_!nQeQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F459c1f7c-ed03-4adc-8576-e26e0052f700_346x68.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>At <em>&#947;</em>=0, this is cross-entropy. At <em>&#947;</em>=0,<em>&#955;</em>=0, it is plain cross-entropy exactly. The SDK&#8217;s <code>train_choices</code> currently uses that plain-CE setting.</p><p>Focal loss with a positive exponent is generally not a proper probability scoring rule. It may improve an empirical calibration metric in a particular experiment, but that is something to measure. If preserving the probability optimum is the goal, start with CE, Brier, or their proper mixture rather than assuming focal is a calibration guarantee.</p><p>With softmax logits, the soft-target CE derivative is particularly simple:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mh9J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 424w, https://substackcdn.com/image/fetch/$s_!Mh9J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 848w, https://substackcdn.com/image/fetch/$s_!Mh9J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 1272w, https://substackcdn.com/image/fetch/$s_!Mh9J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Mh9J%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png" width="171" height="67" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:67,&quot;width&quot;:171,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2834,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.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_!Mh9J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 424w, https://substackcdn.com/image/fetch/$s_!Mh9J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 848w, https://substackcdn.com/image/fetch/$s_!Mh9J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 1272w, https://substackcdn.com/image/fetch/$s_!Mh9J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8c8eb1-7821-42c1-b4df-1fea771e5088_171x67.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Compute log probabilities with log-sum-exp. Do not construct them by flooring probabilities and then blindly differentiate the floor. Brain had a <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fbrain%2Fcommit%2F1bd342f7">real saturated-gradient bug</a></strong>: the confidently wrong examples that most needed a corrective gradient were losing it.</p><p>For an exact oracle or a labeled static dataset, direct differentiation is the baseline. No environment rollout or critic is required.</p><h4><strong>B. The Laya-style sampled probability-report update</strong></h4><p>The public <strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FNandhaKishorM%2Flaya%2Fblob%2F9d955671415fc19f069b9cc998928075c1f255ec%2Fnotebooks%2Flaya_finetune_typed_decisions_2xT4_kaggle.ipynb">Laya fine-tuning notebook</a></strong> implements a different procedure, reproduced in Brain&#8217;s <code>reinforce.rs</code>.</p><p>First, run the network once to obtain logits z<em>z</em>. Then draw G<em>G</em> noisy variants:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uu8c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 424w, https://substackcdn.com/image/fetch/$s_!uu8c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 848w, https://substackcdn.com/image/fetch/$s_!uu8c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 1272w, https://substackcdn.com/image/fetch/$s_!uu8c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21uu8c%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png" width="448" height="91" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:91,&quot;width&quot;:448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11927,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.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_!uu8c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 424w, https://substackcdn.com/image/fetch/$s_!uu8c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 848w, https://substackcdn.com/image/fetch/$s_!uu8c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 1272w, https://substackcdn.com/image/fetch/$s_!uu8c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046ea4a-7681-45cd-abe4-5caa76900add_448x91.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The projection removes noise in the all-ones direction, because adding the same constant to every logit cannot change a softmax distribution. In padded batches, compute that mean over valid options only.</p><p>Each sampled <strong>distribution</strong> receives a reward. We are not sampling a long token response or an environment action at this stage.</p><p>The implementation&#8217;s reward is</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cz42!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 424w, https://substackcdn.com/image/fetch/$s_!cz42!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 848w, https://substackcdn.com/image/fetch/$s_!cz42!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cz42!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21cz42%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png" width="706" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:706,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14388,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.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_!cz42!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 424w, https://substackcdn.com/image/fetch/$s_!cz42!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 848w, https://substackcdn.com/image/fetch/$s_!cz42!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cz42!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc500a52e-c4c4-459e-8ceb-07bf3866e3ae_706x64.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The components are a floored logarithmic score, a spherical score, and an ordinal cumulative-distribution penalty. The last term makes placing probability two levels away more costly than placing it one level away. It belongs on ordered score questions, not an arbitrary list of department names.</p><p>Rewards become relative advantages:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bhGU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 424w, https://substackcdn.com/image/fetch/$s_!bhGU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 848w, https://substackcdn.com/image/fetch/$s_!bhGU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 1272w, https://substackcdn.com/image/fetch/$s_!bhGU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21bhGU%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png" width="172" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:172,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3478,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.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_!bhGU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 424w, https://substackcdn.com/image/fetch/$s_!bhGU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 848w, https://substackcdn.com/image/fetch/$s_!bhGU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 1272w, https://substackcdn.com/image/fetch/$s_!bhGU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087aa3b8-cb04-4528-ad82-6051a2ecdcc7_172x72.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Then the detached sampled logits are scored under a Gaussian centered on the current logits:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MVoi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 424w, https://substackcdn.com/image/fetch/$s_!MVoi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 848w, https://substackcdn.com/image/fetch/$s_!MVoi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 1272w, https://substackcdn.com/image/fetch/$s_!MVoi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21MVoi%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png" width="290" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d987481-da50-4910-a840-d5d913b54a4f_290x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:290,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5099,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.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_!MVoi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 424w, https://substackcdn.com/image/fetch/$s_!MVoi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 848w, https://substackcdn.com/image/fetch/$s_!MVoi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 1272w, https://substackcdn.com/image/fetch/$s_!MVoi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d987481-da50-4910-a840-d5d913b54a4f_290x72.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The training loss is</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2pvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 424w, https://substackcdn.com/image/fetch/$s_!2pvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 848w, https://substackcdn.com/image/fetch/$s_!2pvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 1272w, https://substackcdn.com/image/fetch/$s_!2pvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212pvT%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png" width="541" height="66" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:66,&quot;width&quot;:541,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9938,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.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_!2pvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 424w, https://substackcdn.com/image/fetch/$s_!2pvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 848w, https://substackcdn.com/image/fetch/$s_!2pvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 1272w, https://substackcdn.com/image/fetch/$s_!2pvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e034ba0-6257-4756-99ed-19d3892e2fc6_541x66.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The omitted normalizing constant does not depend on the logits. The projected noise lives in the zero-sum subspace; the squared-distance expression supplies the corresponding mean-direction gradient.</p><p>The public fine-tuning defaults use four samples, noise annealed from 0.4 to 0.1, spherical weight 0.75, ordinal weight 1.0, and auxiliary CE weight 1.0. That is <strong>not pure reinforcement learning without supervised probability fitting</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21uq6c%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uq6c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 424w, https://substackcdn.com/image/fetch/$s_!uq6c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 848w, https://substackcdn.com/image/fetch/$s_!uq6c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 1272w, https://substackcdn.com/image/fetch/$s_!uq6c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21uq6c%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png" width="1017" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1017,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:434650,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.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_!uq6c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 424w, https://substackcdn.com/image/fetch/$s_!uq6c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 848w, https://substackcdn.com/image/fetch/$s_!uq6c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 1272w, https://substackcdn.com/image/fetch/$s_!uq6c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97e48fc6-d757-40ee-91bd-0e292635e11d_1017x556.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Brain distinguishes those inspectable fine-tuning settings from the original pretraining settings described by the model card. The original full pretraining script is not what Brain does right now. Brain also standardizes advantages per question, while the notebook&#8217;s micro-batch standardization spans a larger group. This affects update scaling.</p><p>There is another mathematical caveat worth stating: the unfloored component scores have proper-scoring guarantees, but flooring the logarithmic term changes the objective in the extreme tails. The source calls the implemented reward strictly proper - this is not a global theorem for the clipped mixture. At a target component below the floor, the log term stops penalizing decreases in that component, while other components can still reward reallocating its mass. Sampling noise and finite-sample advantage normalization add further differences from direct minimization of a proper loss.</p><p>For a concrete counterexample, take a binary target with rare-event probability 10&#8722;6 and spherical weight 0.75. The implemented non-ordinal reward is about 0.749989040 at the truthful report, but about 0.749989540 when the rare-event report is halved. A non-truthful report scores higher. This does not make the method useless; it makes the global properness claim too strong. Calibration remains an empirical property to test, including on rare events.</p><h4><strong>Reinforcement learning for actions that affect future evidence</strong></h4><p>If the model decides whether to inspect a device, request a document, or move a robot, its action can affect what happens next. That is where a sequential environment and an action policy become relevant.</p><p>PPO is an action-policy optimization algorithm with a probability ratio and clipped surrogate; <strong><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F1707.06347">the original paper</a></strong> is a good starting point if you want to learn more about it. </p><p>Brain&#8217;s tiny evidence-acquisition demo samples one action and immediately updates from the same policy. Its ratio is therefore 1 when consumed, so clipping does not bind. This is currently not a full repeated-epoch PPO rollout loop (yet). </p><p>A sales transcript replay is different again: changing a reported conversion probability does not alter the already-recorded next customer message. Much of that task reduces to supervised or reward-based prediction over prefixes. If I want to learn which sales action changes the outcome, I need an environment or intervention data that actually connects actions to outcomes.</p><h3><strong>&#8220;Confidence&#8221; can be three different things unless you define it</strong></h3><p>Brain&#8217;s public choice/score confidence is</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bzY0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 424w, https://substackcdn.com/image/fetch/$s_!bzY0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 848w, https://substackcdn.com/image/fetch/$s_!bzY0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 1272w, https://substackcdn.com/image/fetch/$s_!bzY0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21bzY0%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png" width="435" height="71" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:71,&quot;width&quot;:435,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6787,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.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_!bzY0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 424w, https://substackcdn.com/image/fetch/$s_!bzY0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 848w, https://substackcdn.com/image/fetch/$s_!bzY0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 1272w, https://substackcdn.com/image/fetch/$s_!bzY0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3deac760-3bdc-4727-848c-f21ef7d00a3e_435x71.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>It is 0 for a uniform distribution and 1 for a point mass. It measures concentration relative to the available option count.</p><p>It is <strong>not</strong> the probability that the chosen answer is correct.</p><p>For <em>p</em>=[0.8,0.2], this confidence is about 0.278, not 0.8. A model can also be confidently wrong, and normalized entropy does not turn into an out-of-distribution detector simply because it is bounded by 0 and 1. Adding options can change it; normalization equalizes endpoints, not all semantics across option sets.</p><p>Keep these quantities distinct:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3QeT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 424w, https://substackcdn.com/image/fetch/$s_!3QeT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 848w, https://substackcdn.com/image/fetch/$s_!3QeT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 1272w, https://substackcdn.com/image/fetch/$s_!3QeT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%213QeT%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png" width="1063" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:1063,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:34101,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.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_!3QeT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 424w, https://substackcdn.com/image/fetch/$s_!3QeT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 848w, https://substackcdn.com/image/fetch/$s_!3QeT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 1272w, https://substackcdn.com/image/fetch/$s_!3QeT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a45c84-6ada-4b82-819e-a24609d8dbb2_1063x240.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>TypeSafe&#8217;s <strong><a href="iframe.php?url=https%3A%2F%2Fdocs.typesafe.ai%2Fconfidence">confidence documentation</a></strong> likewise describes confidence as derived from distribution shape, but does not establish that Brain&#8217;s exact formula is Jev&#8217;s internal implementation.</p><p>Calibration asks whether reported probabilities agree with observed frequencies under a specified evaluation distribution. In top-label calibration, predictions whose maximum probability is about 0.8 should be correct about 80% of the time.</p><p>That uses maximum probability, not normalized entropy, on the probability axis.</p><h3><strong>Synthetic data: decide what is true before deciding how to say it</strong></h3><p>A request to a large model such as &#8220;generate 100,000 decisions with confidence scores&#8221; can produce an impressive-looking dataset quickly. But most likely it will produce 100,000 examples of the generator agreeing with itself.</p><p>For a decision model, the data contract should come first:</p><ol><li><p><strong>Event:</strong> exactly what proposition or class is predicted?</p></li><li><p><strong>Observation:</strong> what information is available at the decision time?</p></li><li><p><strong>Horizon:</strong> by when will an outcome count as having happened?</p></li><li><p><strong>Population:</strong> from which distribution are examples drawn?</p></li><li><p><strong>Oracle:</strong> who or what determines the target, and with what uncertainty?</p></li><li><p><strong>Options:</strong> are they mutually exclusive, exhaustive, and stable in meaning?</p></li><li><p><strong>Action costs:</strong> which mistakes matter, and by how much?</p></li></ol><p>&#8220;Will this device fail?&#8221; is incomplete. &#8220;Will this unit fail its next acceptance test under the specified operating conditions, given the measurements currently visible?&#8221; is a target you can start to label.</p><p>There are several legitimate data sources:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21yAt1%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yAt1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 424w, https://substackcdn.com/image/fetch/$s_!yAt1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 848w, https://substackcdn.com/image/fetch/$s_!yAt1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 1272w, https://substackcdn.com/image/fetch/$s_!yAt1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21yAt1%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png" width="1063" height="328" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:328,&quot;width&quot;:1063,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56976,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.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_!yAt1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 424w, https://substackcdn.com/image/fetch/$s_!yAt1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 848w, https://substackcdn.com/image/fetch/$s_!yAt1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 1272w, https://substackcdn.com/image/fetch/$s_!yAt1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ec21d2-a813-4ea5-b8fe-92dae94dec79_1063x328.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>All are useful in the right setting. They are not equivalent evidence of real-world correctness.</p><p>For simulation, a useful distinction is between drawing a latent outcome and conditioning on evidence. If I sample a hidden fault, I may train on the sampled binary outcome. But the expected optimal forecast over identical observations is still their conditional event rate. If I can compute that conditional rate exactly, a soft target removes avoidable label noise.</p><p>The oracle must not reveal hidden state through the target distribution while pretending that distribution was determined by the learner&#8217;s observation. Nor should it label every ambiguous case 0.5: missing evidence implies a prior, and the prior may be 0.01 or 0.9</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RdM4%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RdM4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 424w, https://substackcdn.com/image/fetch/$s_!RdM4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 848w, https://substackcdn.com/image/fetch/$s_!RdM4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 1272w, https://substackcdn.com/image/fetch/$s_!RdM4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RdM4%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png" width="1019" height="552" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:1019,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:516083,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.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_!RdM4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 424w, https://substackcdn.com/image/fetch/$s_!RdM4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 848w, https://substackcdn.com/image/fetch/$s_!RdM4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 1272w, https://substackcdn.com/image/fetch/$s_!RdM4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b938b2a-9038-46c6-9a3d-d82dbfded84d_1019x552.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><h3><strong>A complete small world with probabilities we can verify</strong></h3><p>Brain&#8217;s <code>samples/learning/rlcd</code> uses a deliberately small device-diagnosis world:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_F6C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 424w, https://substackcdn.com/image/fetch/$s_!_F6C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 848w, https://substackcdn.com/image/fetch/$s_!_F6C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 1272w, https://substackcdn.com/image/fetch/$s_!_F6C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_F6C%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png" width="501" height="39" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:39,&quot;width&quot;:501,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6303,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.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_!_F6C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 424w, https://substackcdn.com/image/fetch/$s_!_F6C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 848w, https://substackcdn.com/image/fetch/$s_!_F6C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 1272w, https://substackcdn.com/image/fetch/$s_!_F6C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f35350e-fc1b-4c86-866c-c831cffc2c12_501x39.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Here F<em>F</em> means faulty. The positive test rate is</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fTpY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 424w, https://substackcdn.com/image/fetch/$s_!fTpY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 848w, https://substackcdn.com/image/fetch/$s_!fTpY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 1272w, https://substackcdn.com/image/fetch/$s_!fTpY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fTpY%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png" width="328" height="47" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0af6345-16ab-4775-b00a-1ab74c893723_328x47.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:47,&quot;width&quot;:328,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4902,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.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_!fTpY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 424w, https://substackcdn.com/image/fetch/$s_!fTpY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 848w, https://substackcdn.com/image/fetch/$s_!fTpY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 1272w, https://substackcdn.com/image/fetch/$s_!fTpY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0af6345-16ab-4775-b00a-1ab74c893723_328x47.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Bayes&#8217; rule gives</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HxxW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 424w, https://substackcdn.com/image/fetch/$s_!HxxW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 848w, https://substackcdn.com/image/fetch/$s_!HxxW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 1272w, https://substackcdn.com/image/fetch/$s_!HxxW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21HxxW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png" width="462" height="68" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:68,&quot;width&quot;:462,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6837,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.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_!HxxW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 424w, https://substackcdn.com/image/fetch/$s_!HxxW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 848w, https://substackcdn.com/image/fetch/$s_!HxxW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 1272w, https://substackcdn.com/image/fetch/$s_!HxxW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d6ea4b6-56d5-4454-9bac-f9d4f1333880_462x68.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The full training targets, ordered as <code>[healthy, faulty]</code>, are:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VHLE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 424w, https://substackcdn.com/image/fetch/$s_!VHLE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 848w, https://substackcdn.com/image/fetch/$s_!VHLE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 1272w, https://substackcdn.com/image/fetch/$s_!VHLE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21VHLE%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png" width="1074" height="202" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:202,&quot;width&quot;:1074,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15598,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.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_!VHLE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 424w, https://substackcdn.com/image/fetch/$s_!VHLE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 848w, https://substackcdn.com/image/fetch/$s_!VHLE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 1272w, https://substackcdn.com/image/fetch/$s_!VHLE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a28936a-7589-4059-9638-8e4ecc1c6503_1074x202.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Note: positive means FAULTY here! </p><p>The posterior must average back to the prior:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UMYI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 424w, https://substackcdn.com/image/fetch/$s_!UMYI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 848w, https://substackcdn.com/image/fetch/$s_!UMYI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 1272w, https://substackcdn.com/image/fetch/$s_!UMYI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21UMYI%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png" width="286" height="75" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:75,&quot;width&quot;:286,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5494,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.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_!UMYI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 424w, https://substackcdn.com/image/fetch/$s_!UMYI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 848w, https://substackcdn.com/image/fetch/$s_!UMYI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 1272w, https://substackcdn.com/image/fetch/$s_!UMYI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5857acaa-4ac4-4252-9a4a-7bc81d36faa0_286x75.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Brain checks this information-refinement identity before training. It is a necessary consistency check, not a complete proof of an oracle: swapping posteriors or adding other mistakes can sometimes preserve the average. A stronger generator also checks its likelihood model, evidence partitions, and rendering semantics independently.</p><p>The existing sample trains the probability head with an equal-weight mixture of soft cross-entropy and squared posterior error (<code>gamma=0</code>, <code>lambda=0.5</code>). It supplies eight phrasings per evidence state, holds out two from each, and trains on the remaining eighteen strings. It demonstrates generalization to unseen wording of three known evidence classes. It does not establish general Bayesian reasoning over unseen priors, sensors, or domains.</p><p>A broader version should vary the prior, sensitivity, false-positive rate, and evidence pattern across entire held-out world families. If the model is expected to adapt to those parameters, make them visible in its input or make the deployment&#8217;s fixed world contract explicit. Otherwise you are changing the correct answer without giving the model a way to know.</p><p>For structured numerical evidence, exact Bayes computation in ordinary code is often preferable to teaching a text encoder arithmetic. The neural model can identify what evidence the text expresses; deterministic code can perform the calculation. Training the whole tiny world is useful here because it gives us an auditable learning experiment.</p><h3><strong>Generating a serious decision dataset</strong></h3><p>The following is the recipe I would build around the existing mechanisms. The current diagnosis sample is its smallest executable illustration, not an implementation of every stage below.</p><h4><strong>Start with semantic cases</strong></h4><p>Generate a structured case containing the world parameters, visible evidence, and permitted question. Compute the target from that case before rendering any prose.</p><p>For a deterministic workflow, the oracle may be a policy engine. For probabilistic diagnosis, it may be Bayes&#8217; rule. For a game, it may be validated rollouts from restored states. When using a teacher model, label the oracle as a teacher and preserve its version and prompt.</p><p>For Monte Carlo targets, store the rollout count and uncertainty. A frequency of 0.7 from ten rollouts is not interchangeable with 0.7 from ten thousand. If using smoothing or a Bayesian posterior over rates, record the prior too.</p><h4><strong>Split before expanding into paraphrases</strong></h4><p>Partition by the underlying semantic family, conversation, customer, document, or world - not merely by rendered row. Then generate surface variations inside each partition.</p><p>Otherwise &#8220;the test was positive&#8221; can land in training while &#8220;the diagnostic result was positive&#8221; lands in test, and a million-row benchmark may contain only a few genuinely distinct cases.</p><p>Use separate training, model-selection validation, calibration, and final test sets. A small exploratory sample can use fewer partitions, but then the claims must be smaller too.</p><h4><strong>Use a renderer with restricted authority</strong></h4><p>A language model can help make cases linguistically varied. Give it visible evidence and stylistic instructions, not the hidden answer, and ask it to preserve the evidence exactly.</p><p>For example, a renderer instruction might be:</p><blockquote><p><em>Rewrite the visible observations as a technician&#8217;s note. Preserve the test result, whether a test was performed, and every stated measurement. Add no diagnosis, cause, probability, or new observation. Return the note and a structured extraction of the observations you expressed.</em></p></blockquote><p>Then validate the extraction against the original case. For high-assurance examples, templates or a controlled grammar are easier to verify than unrestricted paraphrasing. A second model is a useful reviewer, but two models can share the same misconception.</p><p>Generate irrelevant details independently of labels. If all faulty cases happen to mention a red enclosure, the model may learn enclosure color instead of diagnosis.</p><h4><strong>Design candidate sets deliberately</strong></h4><p>A dynamic-option model should see different option counts, permutations, and plausible distractors. Brain&#8217;s Banking77 sampler draws subsets that include the correct label and randomizes its position.</p><p>For one-hot targets, remapping the correct label is straightforward. For soft targets, dropping options changes the semantics:</p><ul><li><p>If the question explicitly conditions on the outcome being inside the subset, renormalize the retained probability mass.</p></li><li><p>If the question asks for the actual outcome, preserve omitted mass with an <code>other</code> option or keep the full outcome set.</p></li><li><p>If candidates overlap, a categorical softmax may be the wrong model. Use independent binary probabilities or redefine mutually exclusive outcomes.</p></li></ul><p>Do not casually renormalize away the probability that none of the offered options is correct.</p><p>Also distinguish semantic labels from opaque IDs. A model receiving <code>option_7</code> cannot infer an unseen meaning from that identifier. Give it descriptions, and hold out descriptions or ontology branches when testing genuine semantic transfer.</p><h4><strong>Add cases that expose shortcuts</strong></h4><p>Useful paired examples include:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kkIg%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kkIg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 424w, https://substackcdn.com/image/fetch/$s_!kkIg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 848w, https://substackcdn.com/image/fetch/$s_!kkIg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 1272w, https://substackcdn.com/image/fetch/$s_!kkIg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kkIg%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png" width="1066" height="420" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:420,&quot;width&quot;:1066,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60281,&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://martinschroder.substack.com/i/217808320?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.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_!kkIg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 424w, https://substackcdn.com/image/fetch/$s_!kkIg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 848w, https://substackcdn.com/image/fetch/$s_!kkIg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 1272w, https://substackcdn.com/image/fetch/$s_!kkIg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05b29755-3d22-4be0-96b6-c01d1cdadc78_1066x420.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>A malicious instruction embedded in a document is another useful robustness case: the document is evidence to classify, not an authority allowed to redefine the classification task.</p><h4><strong>Validate at the boundary</strong></h4><p>Reject malformed examples before optimization: non-finite values, negative probabilities, sums outside tolerance, mismatched option counts, duplicate IDs, invalid score ordering, missing evidence, and targets indexed in the wrong option order.</p><p>Log why an example was rejected. Do not silently convert a broken target into a uniform distribution and call the dataset clean.</p><p>Finally, retain a representative evaluation distribution. Boundary-heavy and rare-event oversampling can help training, but reported risk must still be measured under the population weights relevant to deployment. If hard-label sampling changes class priors, account for that change rather than assuming the resulting probabilities remain calibrated.</p><h4><strong>What to freeze, and what to save</strong></h4><p>Start with a pretrained encoder. For a small domain dataset, train the head first. If the representation cannot separate the necessary distinctions, cautiously unfreeze encoder layers with a smaller learning rate.</p><p>Brain&#8217;s <code>Decide</code> choice-training rates are 2&#215;10^&#8722;5 for the encoder and 10^&#8722;3 for the head. Its current Laya path freezes the backbone and uses a head schedule starting at 10^&#8722;3. These are implementation settings, not universal recommendations. </p><p>For a new domain, sweep learning rate and batch size together, select on validation data, and track probability metrics as well as classification. Check actual changed parameter norms. A decreasing loss is not proof that the intended tensors moved.</p><p>Frozen encoder outputs can be cached only while all relevant inputs, weights, tokenization, and stochastic behavior stay fixed. For joint-sequence Laya, changing option order changes the encoder input. For a training-mode encoder with dropout, casually caching one realization changes the training procedure.</p><h2>Conclusion</h2><p>I hope this was a good introduction to the decision model architecture that has been superhot in the past week. There is a lot more to it and a lot more experiments to do when it comes to applying it to new domains and new problems. <br><br>I&#8217;m continuously building out brain platform to support a steadily increasing set of building blocks that can be used to construct completely novel and fully local model architectures. <br><br><strong><span data-color="#ff0000" style="color: rgb(255, 0, 0);">Join my Skool group to support the development of autonomous learning systems and stay up to date with latest work: </span><a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Fai-software-engineering-1814"><span data-color="#4a86e8" style="color: rgb(74, 134, 232);">https://www.skool.com/ai-software-engineering-1814</span></a></strong></p>]]></content:encoded></item><item><title><![CDATA[You Can't Review What an Agent Writes. So Stop Trying To]]></title><description><![CDATA[Agents don&#8217;t write bugs.]]></description><link>https://martinschroder.substack.com/p/you-cant-review-what-an-agent-writes</link><guid isPermaLink="false">https://martinschroder.substack.com/p/you-cant-review-what-an-agent-writes</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Mon, 17 Aug 2026 12:18:58 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mtkl%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Agents don&#8217;t write bugs. They write plausible code - and plausibility is exactly what conventional code review is worst at catching. After a month of letting agents write more than 300,000 lines across three unrelated domains - a machine-learning engine, a CPU emulator, and a quant research stack - here is the discipline I use that kept it correct. It is not &#8220;review harder.&#8221; It is &#8220;stop reviewing the output and start building the machine that judges it.&#8221;</em></p><div><hr></div><p>Last month I shipped over three hundred thousand lines of added code across thirteen repositories. I did not read most of it. If that sentence makes you uncomfortable, good - it should, and the discomfort is the whole subject of this article.</p><p>Here is the situation every serious user of AI agents is now in, whether they admit it or not. You point an agent at a task. Ninety seconds later it hands you back four hundred lines that compile, that are formatted correctly, that have plausible variable names and reasonable-looking structure, and that <em>might be completely wrong</em>. Not wrong in a way that jumps out. Wrong in a way that reads as right. The function that looks like it handles the edge case but inverts the condition. The inference backward pass that looks like calculus but is off by a transpose. The optimization that is genuinely faster and also silently changes the answer on one input in ten thousand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ZdJm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZdJm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 424w, https://substackcdn.com/image/fetch/$s_!ZdJm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 848w, https://substackcdn.com/image/fetch/$s_!ZdJm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 1272w, https://substackcdn.com/image/fetch/$s_!ZdJm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ZdJm%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png" width="1263" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:1263,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1205569,&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://martinschroder.substack.com/i/211546648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.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_!ZdJm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 424w, https://substackcdn.com/image/fetch/$s_!ZdJm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 848w, https://substackcdn.com/image/fetch/$s_!ZdJm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.png 1272w, https://substackcdn.com/image/fetch/$s_!ZdJm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a97431-6a6a-4712-a06a-f8c9825590bb_1263x844.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><br>You have two honest options, and both of them are traps.</p><p>The first trap is to <strong>read it all.</strong> Review every line the way you&#8217;d review a junior&#8217;s pull request. This feels responsible. It is also mathematically hopeless: the agent generates faster than you can read, so the instant you adopt this policy you have thrown away the entire reason you&#8217;re using an agent. You&#8217;ve hired a race car and you&#8217;re pushing it. Worse, human review is <em>terrible</em> at catching exactly the failures agents produce. We are good at spotting code that <em>looks</em> wrong. We are almost blind to code that looks right and isn&#8217;t - and &#8220;looks right and isn&#8217;t&#8221; is the agent&#8217;s native output.</p><p>The second trap is to <strong>rubber-stamp it.</strong> Skim the diff, note that it compiles and the happy-path test passes, and ship. This is what many people actually end up doing, and it is how you accumulate a codebase full of plausible landmines - bugs that each individually survived because nobody could see them, and that collectively detonate in production three weeks later when you no longer remember which of the ten thousand agent commits introduced them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mtkl%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mtkl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 424w, https://substackcdn.com/image/fetch/$s_!mtkl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 848w, https://substackcdn.com/image/fetch/$s_!mtkl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 1272w, https://substackcdn.com/image/fetch/$s_!mtkl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mtkl%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png" width="1264" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:536790,&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;:false,&quot;internalRedirect&quot;:&quot;https://martinschroder.substack.com/i/211546648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.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_!mtkl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 424w, https://substackcdn.com/image/fetch/$s_!mtkl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 848w, https://substackcdn.com/image/fetch/$s_!mtkl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 1272w, https://substackcdn.com/image/fetch/$s_!mtkl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec660340-271f-4ba7-8df8-5f09d69ed9b9_1264x840.png 1456w" sizes="100vw"></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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><br></p><p>Both traps share one buried assumption: <strong>that the human&#8217;s job is to inspect the agent&#8217;s output.</strong> That assumption was fine when you wrote the code yourself and review was a second pair of eyes on a volume of code a human produced at human speed. It breaks completely at agent speed. The output is now too fast, too voluminous, and too plausible for eyeball inspection to be your correctness strategy. If inspecting the output is your plan, you don&#8217;t have a plan.</p><p>Put this on your fridge:</p><blockquote><p>When an agent can write more correct-<em>looking</em> code in an hour than you can review in a week, your job stops being to review the code. Your job becomes to <strong>build the machine that decides whether the code is correct</strong> - a mechanical, unforgiving oracle that the agent&#8217;s output has to pass before you ever look at it - and to pin that oracle to an authority outside your own judgment. You stop reviewing outputs. You start authoring gates.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DfNW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DfNW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 424w, https://substackcdn.com/image/fetch/$s_!DfNW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 848w, https://substackcdn.com/image/fetch/$s_!DfNW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 1272w, https://substackcdn.com/image/fetch/$s_!DfNW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DfNW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png" width="1263" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1263,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1280684,&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://martinschroder.substack.com/i/211546648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.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_!DfNW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 424w, https://substackcdn.com/image/fetch/$s_!DfNW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 848w, https://substackcdn.com/image/fetch/$s_!DfNW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 1272w, https://substackcdn.com/image/fetch/$s_!DfNW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8a8217e-77f2-4946-9d33-d43c880a574c_1263x840.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>It is the only thing that works. I watched the same discipline independently save three completely unrelated projects in the same month - projects that do not share a single line of code. Without this bugs would have gone completely undetected even with human review (in fact human review would take an insanely long time and it would be impossible to find the bugs because they were very subtle).</p><h2><strong>Why &#8220;review harder&#8221; is the wrong instinct</strong></h2><p>The reason this is counterintuitive is that verification feels like a tax. Every hour spent building a test harness and the tooling you need is an hour not spent building the feature. It&#8217;s the same story as in the old days when it came to writing tests. People would not write tests because it costs extra but then anything that is untested is full of bugs developers simply missed because they did not write the tests.</p><p>In the old days bugs ended up in production because you did not think about writing tests that would have caught them - in the new days of AI bugs end up in production because of exactly the same reason but now it&#8217;s not just about writing tests - it is about writing complete validation harnesses so that agents can be protected against leaving bugs in the code. This is the whole new level of abstraction and a whole new discipline that supercedes writing tests (your agent should always have unit and integration tests - that&#8217;s non-negotiable. The question is what you have to develop in addition to that).</p><p>Agents remove the careful hands. What&#8217;s left writing the code is a system that is fluent, fast, tireless, and <em>has no idea whether it is right</em>. It will produce a beautiful implementation of the wrong algorithm with exactly the same confidence as the right one, and it will never once feel the difference, because without validation it simply has no feedback on whether it is doing things right or not. The careful-hands safeguard is gone, and the thing that replaced it cannot be trusted to self-assess.</p><p>That inverts the economics of verification completely. The harness is no longer a tax on building - it is the <em>only remaining thing standing between the agent and your production system.</em> It is not overhead. It is the load-bearing wall.</p><p>And once you see it that way, the highest-leverage work you can do stops being &#8220;write features&#8221; and becomes &#8220;<strong>build the oracle that lets the agent check its own features, so it comes back right by construction.</strong>&#8220; You are not slowing the agent down. You are building the guardrail that lets you finally take your hands off it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DbCV%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DbCV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 424w, https://substackcdn.com/image/fetch/$s_!DbCV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 848w, https://substackcdn.com/image/fetch/$s_!DbCV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 1272w, https://substackcdn.com/image/fetch/$s_!DbCV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DbCV%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png" width="1262" height="841" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:841,&quot;width&quot;:1262,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1269726,&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://martinschroder.substack.com/i/211546648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.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_!DbCV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 424w, https://substackcdn.com/image/fetch/$s_!DbCV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 848w, https://substackcdn.com/image/fetch/$s_!DbCV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 1272w, https://substackcdn.com/image/fetch/$s_!DbCV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a9d3c0-57e7-4982-8acf-b75c1238df6b_1262x841.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><h2><strong>What you&#8217;ll get in the rest of this article</strong></h2><p>Next we will dive into the actual discipline, with the real examples from three domains that have nothing in common except that agents did most of the typing and the work is still correct:</p><ul><li><p><strong>The one principle underneath all of it</strong> - the oracle is the bottleneck - and why it relocates your expertise from the diff into the gate.</p></li><li><p><strong>Pin to an external authority, never your own eyeballing</strong> - the parity harness, with real code that gates a from-scratch neural network against a reference implementation to six decimal places, and a CPU emulator that pins its behavior to the ARM manual by section number.</p></li><li><p><strong>The gradient-check principle</strong> - how to build a mechanical judge for the class of correctness you <em>cannot see by reading</em>, with the actual finite-difference checker that catches a wrong backward pass.</p></li><li><p><strong>The smallest possible proof</strong> - the overfit-one-batch gate, and why proving the trivial thing first is the cheapest bug-catch in existence.</p></li><li><p><strong>Two implementations, one oracle</strong> - differential testing, with the real harness that runs a program through an interpreter and a JIT and catches the compiler lying, plus the &#8220;miscompile detector&#8221; that turns one divergence into a precise single-instruction bug report.</p></li><li><p><strong>Fidelity gates on optimization</strong> - the rule that you don&#8217;t get to keep a speedup that changes the answer, with the code that enforces it.</p></li><li><p><strong>Pre-registration and honest grading</strong> - how to stop yourself (and the agent) from rationalizing a bad result into a good one, with a real committed-in- advance validation contract and the code that refuses to claim an edge that isn&#8217;t there.</p></li><li><p><strong>The ledger</strong> - how verified truth survives across agent sessions that each start from amnesia.</p></li><li><p><strong>The honest turn</strong> - why all of this is <em>more</em> work, not less, and why that&#8217;s exactly the point.</p></li></ul><p></p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Fyou-cant-review-what-an-agent-writes">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Tokenomics: Understanding The Economics Of Token Usage]]></title><description><![CDATA[How to think about AI cost in professional software engineering - with real numbers.]]></description><link>https://martinschroder.substack.com/p/tokenomics-understanding-the-economics</link><guid isPermaLink="false">https://martinschroder.substack.com/p/tokenomics-understanding-the-economics</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Tue, 05 May 2026 12:33:30 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21AgfR%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21AgfR%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AgfR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!AgfR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!AgfR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!AgfR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21AgfR%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.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;:2059531,&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://martinschroder.substack.com/i/196528982?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.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_!AgfR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!AgfR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!AgfR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!AgfR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd848450e-5458-4671-84dc-20c0d19e6ca3_1672x941.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><p>Most engineering teams that have adopted AI-assisted development are asking the wrong question. They ask: <strong>&#8220;How much does this cost?&#8221;</strong> The question they should be asking is: <strong>&#8220;How much does this cost per unit of work delivered?&#8221;</strong></p><p>Those are very different questions, and the answer to the second one changes everything about how you should think about AI tooling budgets.</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Ftokenomics-understanding-the-economics">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Building Sven: 19 Days, 110K Lines of Rust, and an AI Agent That Works]]></title><description><![CDATA[A developer&#8217;s journey of building a keyboard-driven AI coding agent from the ground up - design decisions, architecture patterns, and the hard lessons from shipping 13 releases in three weeks.]]></description><link>https://martinschroder.substack.com/p/building-sven-19-days-110k-lines</link><guid isPermaLink="false">https://martinschroder.substack.com/p/building-sven-19-days-110k-lines</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Tue, 10 Mar 2026 23:31:50 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21wq1j%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I started Sven on February 20, 2026. By March 10 - nineteen days later - it had grown to 110,000 lines of Rust across 16 crates, 285 commits, 13 versioned releases, and a feature set that includes a full-screen TUI, headless CI mode, native GDB hardware debugging, P2P agent networking, WebAuthn-gated browser terminals, IDE integration via two open protocols, and a multi-agent team orchestration system.</p><p>This is the story of how that happened: the technical decisions, the design patterns, the things I got right, and the things I had to rip out and rebuild.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21wq1j%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wq1j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 424w, https://substackcdn.com/image/fetch/$s_!wq1j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 848w, https://substackcdn.com/image/fetch/$s_!wq1j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 1272w, https://substackcdn.com/image/fetch/$s_!wq1j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21wq1j%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png" width="1190" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:1190,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:191398,&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://martinschroder.substack.com/i/190560313?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.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_!wq1j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 424w, https://substackcdn.com/image/fetch/$s_!wq1j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 848w, https://substackcdn.com/image/fetch/$s_!wq1j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.png 1272w, https://substackcdn.com/image/fetch/$s_!wq1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76434b2-632c-4c60-b0ea-8c18226ca193_1190x554.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Sven is a terminal-native AI coding agent. You give it a task in plain English and it works: it reads your files, runs your commands, writes code, and reports back. The core design constraint I set on day one was that it must ship as a single binary with zero runtime dependencies. No Python. No Node. No Docker required. You download one executable and it runs.</p><p>That constraint shaped everything.</p><p>Sven is at <a href="iframe.php?url=https%3A%2F%2Fagentsven.com%2F">agentsven.com</a>. Install it with:</p><pre><code><code>curl -fsSL https://agentsven.com/install.sh | sh</code></code></pre>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Fbuilding-sven-19-days-110k-lines">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Practical Local AI - From Ground Up!]]></title><description><![CDATA[From bare metal to standalone AI: GPU setup, quantized models, OpenAI-compatible API, and agent workflows - all on your own hardware.]]></description><link>https://martinschroder.substack.com/p/practical-local-ai-from-ground-up</link><guid isPermaLink="false">https://martinschroder.substack.com/p/practical-local-ai-from-ground-up</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Wed, 25 Feb 2026 06:41:17 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ycU4%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Own your AI. In this post I&#8217;ll show you how to setup AI processing rig from ground up and run agent against your own API - not OpenAI, not Anthropic. Your own API on your own local GPUs.</p><p>This process is straightforward: <strong>GPU rig -&gt; Conda + PyTorch -&gt; llama.cpp -&gt; download and quantize Qwen -&gt; run on multi-GPU -&gt; expose an OpenAI-compatible API -&gt; run agent workflows against your local stack.</strong> We run this on dual Tesla P40 - the baseline. The bare minimum. If it works here, it will generally work on more modern hardware too - though newer cards may require newer drivers and framework builds (always run a smoke test). At the end you have a machine that runs real models, serves an API your tools already understand, and executes markdown workflows with a local CI agent. No SaaS. No mystery. Just silicon and your stack.</p><p>We will use <code>sven</code> as our agent - this is an CI-first agent that I&#8217;m developing entirely in Rust. It runs markdown scripts. It has a TUI and also has an initial embedded neovim support for editing the conversation.</p><p>Let&#8217;s build it</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ycU4%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ycU4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ycU4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ycU4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ycU4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ycU4%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3294599,&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://martinschroder.substack.com/i/189065371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.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_!ycU4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ycU4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ycU4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ycU4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F450939f9-cc4b-4fec-8a65-e6b9d3e02f45_1536x1024.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Fpractical-local-ai-from-ground-up">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Language Scripting: The Modern Way To Automate Ways Of Working]]></title><description><![CDATA[Everyone thinks building &#8220;AI agents&#8221; requires knowing frameworks like langchain, agno, crew AI or some other agent toolkit - and to a degree that&#8217;s true - but one thing is very much overlooked: generic agents that can execute language programs.]]></description><link>https://martinschroder.substack.com/p/language-scripting-the-modern-way</link><guid isPermaLink="false">https://martinschroder.substack.com/p/language-scripting-the-modern-way</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Mon, 08 Dec 2025 21:15:11 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%217K_C%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%217K_C%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7K_C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!7K_C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!7K_C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!7K_C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%217K_C%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1500652,&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://martinschroder.substack.com/i/181083858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.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_!7K_C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!7K_C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!7K_C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!7K_C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776213f5-b5e6-45eb-921e-1d0c81429ebb_1536x1024.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Everyone thinks building &#8220;AI agents&#8221; requires knowing frameworks like langchain, agno, crew AI or some other agent toolkit - and to a degree that&#8217;s true - but one thing is very much overlooked: generic agents that can execute language programs.</p><p>But the truth is much simpler:</p><p><strong>All you need is a general purpose agent.</strong></p><p>No need for agno. </p><p>No need for 500 lines of Python. </p><p>No need to build MCP tools.</p><p>At least not for getting every day programming work done.</p><p>All you need is just <strong>markdown files</strong>, instructions, and a generic agent with basic tools that can execute them.</p><p>And once you understand this, you start using language programs to automate everything you do, and you start seeing general purpose LLM agents as <strong>the world&#8217;s most flexible runtime environment</strong>.</p><p>Let&#8217;s unpack this.</p><h2><strong>Natural Language Is The New Universal Glue</strong></h2><p>Programming languages are great at solving problems predictably.</p><p>Existing cli tools are excellent at doing everyday tasks.</p><p>All cli tools come with built in help.</p><p>LLMs are trained on massive amounts of open source documentation that explains to them how to use pretty much any open tool out there.</p><p>But we humans all think in natural language, not shell scripts.</p><p>Until now, those worlds were separate.</p><p>We had to transform our thoughts into shell script to orchestrate things.</p><p>These shell scripts were rigid - created carefully for a specific set of tasks.</p><p>Today - these the world of rigid tools and the world of natural langauge are <strong>stackable</strong>.</p><p>Here&#8217;s the model:</p><ul><li><p><strong>Python</strong> is how you glue low level libraries together.</p></li><li><p><strong>Rust/C/C++</strong> is how you code real programming stuff.</p></li><li><p><strong>Language Scripting</strong> is how you orchestrate everything else from the top - like a commander issuing mission plans to a team of specialists.</p></li></ul><p>This is not a replacement for coders.</p><p>It&#8217;s <strong>a layer above</strong>.</p><p>A glue layer.</p><p>A process layer.</p><p>A coordination layer.</p><p>A &#8220;ask user these questions and then based on the answers orchestrate all the tools you have to produce this result. Here is how.&#8221; layer.</p><p>It&#8217;s stupidly simple:</p><p>&#128073; You create a folder of markdown files</p><p>You organize your language program just like a normal program - the idea is that the agent will only load instructions that it needs for the task.</p><p>Each part of the process is a &#8220;module,&#8221; a &#8220;library,&#8221; a &#8220;playbook,&#8221; a &#8220;skill.&#8221;</p><p>&#128073; You write your orchestration logic in plain language</p><p>Not as prompts</p><p>but as <strong>programs</strong> with instructions on what should be done and how.</p><p>What tools to call.</p><p>What outputs to produce.</p><p>What to use as inputs to the process.</p><p>What stuff to ask user to provide.</p><p>&#128073; The agent loads whichever markdown files make sense for the task</p><p>That&#8217;s it.</p><p>Just <strong>hierarchical natural language</strong> + tools that the general purpose agent already has.</p><p>And suddenly, you&#8217;re programming at a level of abstraction that never existed before.</p><h2><strong>Why It&#8217;s So Overlooked</strong></h2><p>Everyone overcomplicates &#8220;agents&#8221; because they think in traditional engineering mental models.</p><p>They think they need to code it in agno, have system prompts in a database and all other kinds of additional comlexity.</p><p>But all you really have to do is get a general purpose agent that can:</p><ul><li><p>Read files: so you can tell it what to read.</p></li><li><p>Write files: so you can tell it where to save intermediate stuff.</p></li><li><p>Call shell commands: so you can tell it how to process stuff.</p></li></ul><p>The model can figure out how to drill down and get the right instructions if you just give it a few basic tools to do so.</p><p>All currently available general purpose agents already have these tools and more.</p><p>You can of course also implement additional cli tools that you need and explain to the agent how to use them in plain english. Most of the time you don&#8217;t even need to write them - agent will just apt-get install the tools it needs.</p><p>All you do is explain the process of how to think about a task and how to do it step by step. This is where models often lack insight. You have to explain how you want something done.</p><p>The model figures out the rest.</p><p>It&#8217;s a mindset shift:</p><p><strong>Old programming</strong>: Tell the computer <em>exactly how</em> to do something.</p><p><strong>Language scripting</strong>: Tell the model <em>how to think about the task</em> and <em>where further instructions live</em>.</p><p>The LLM handles the flow. You structure the knowledge into a hierarchy of folders and markdown files.</p><p>Your &#8220;program&#8221; becomes a directory of meaning - not a single monolithic system prompt</p><p>The agent decides:</p><ul><li><p>which instruction files to load</p></li><li><p>which rules apply</p></li><li><p>which tools to use</p></li><li><p>which sequence of actions fits the goal</p></li></ul><p>You write the logic of how to do that - in plain language.</p><p>The model executes it like a chef navigating a kitchen full of labeled ingredients.</p><p>This is why building agents is suddenly easy.</p><p>The &#8220;intelligence&#8221; isn&#8217;t in custom code.</p><p>It&#8217;s in <strong>how you structure hierarchical instructions</strong>.</p><div><hr></div><h2><strong>What a Language Program Looks Like</strong></h2><p>Imagine a folder like this:</p><pre><code><code>.cursro/commands/
    bot.md
    /bot
        plan.md
        implement.md
        review.md
        test.md
</code></code></pre><p><strong>bot.md</strong> tells the agent:</p><ul><li><p>what abilities it has</p></li><li><p>where detailed instructions live</p></li><li><p>how to reason about tasks</p></li><li><p>when to load which files</p></li></ul><p>User just runs <code>/bot analyze code in folder and write output report to report.pdf</code> and the language scripts already cover instructions on how to go about doing the analysis and how to produce a beautiful pdf.</p><p>Each markdown file is a reusable semantic unit - a modular idea.</p><p>This ensures that it scales: the model doesn&#8217;t need to load all instructions into context at once.</p><p>This is why it&#8217;s simple.</p><p>This is why it works across ANY model with tools: Codex, Cursor, Claude Code, GPT Agents.. you name it. Even agno or crew ai - but really just by you coding a general purpose agent in these tools. Everything else can be scripted in natural language.</p><p>You write one universal language program.</p><p>Every model understands it.</p><p>It&#8217;s the first time we&#8217;ve had a <em>portable brain runtime</em>.</p><p>This isn&#8217;t about replacing developers. This isn&#8217;t about no-code fantasy land. This isn&#8217;t about &#8220;AI takes over programming.&#8221;</p><p>It&#8217;s about introducing the first <strong>universal command layer</strong> for computers.</p><p>For 60 years, we told computers what to do in rigorously structured languages. For the first time ever...</p><p><strong>We can instruct computers in any language.</strong></p><p>Not chaotically. Not conversationally. But systematically.</p><p>With structure. </p><p>With modularity. </p><p>With hierarchy. </p><p>Writing documentation that <em>executes</em>.</p><h2><strong>&#128293; Language scripting is the new daily normal</strong></h2><p>A way to orchestrate tools, logic, context, and workflows using the medium humans think in: natural language.</p><p>Before LLMs there was never a <strong>semantic runtime</strong>.</p><p>A system that could interpret instructions and adopt along the way.</p><p>And now this is where we are.</p><p>Once you see this, you can&#8217;t unsee it.</p>]]></content:encoded></item><item><title><![CDATA[AI Filmmaking: Want to learn how? ]]></title><description><![CDATA[Curious how I made this video for &#8220;Cursor Control&#8221;?]]></description><link>https://martinschroder.substack.com/p/ai-filmmaking-want-to-learn-how</link><guid isPermaLink="false">https://martinschroder.substack.com/p/ai-filmmaking-want-to-learn-how</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Tue, 18 Nov 2025 19:30:42 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Fyoutube%2Fw_728%2Cc_limit%2FM3ffrQqxD2g" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Curious how I made this video for &#8220;Cursor Control&#8221;?</p><div id="youtube2-M3ffrQqxD2g" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;M3ffrQqxD2g&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="iframe.php?url=https%3A%2F%2Fwww.youtube-nocookie.com%2Fembed%2FM3ffrQqxD2g%3Frel%3D0%26amp%3Bautoplay%3D0%26amp%3Bshowinfo%3D0%26amp%3Benablejsapi%3D0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>I made it in two afternoons by learning from Jamie Heinrich and his absolutely fantastic group called <a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Ffilmmaking%2Fabout%3Fref%3D78b99f12863a4ce596ba13a62653b439">AI Filmmaking</a> on Skool. <br><br>Jamie uses AI like a pro: he is an educated filmmaker who has been struggling to get his ideas out (not surprisingly, considering how very hard it is to make videos) - but that all changed with AI. Key point though: he knows filmmaking. That&#8217;s his most valuable skill. He then uses the proven filmmaking process and accelerates the details using AI. Which is exactly how it should work!<br><br>Honestly, when it comes to abstract stuff like the idea I wanted to communicate in Cursor Control - it would be bonecrushingly hard to create a video like that without help from AI. Not just the whole filming, actors, clips that communicate - the hardest part is communicating an abstract idea in concrete terms in the first place - it would be crazy hard to do and cost a fortune too. But not anymore! By integrating AI into the process it becomes a lot easier. <br><br>Don&#8217;t get me wrong. It still takes work. Every single sentence needs to be passed through TTS more than once to get it to flow. AI is not creating the video - you are. AI is just there to remove all the ridiculously hard crap like filming and voiceover. You still write the script, you still develop a scene progression, you still generate clips (sometimes multiple times), you still stitch it all together (I used Kdenlive). You still make the music (also generated but carefully chosen to match the emotion of the video). It&#8217;s still a lot of work. But it&#8217;s not nearly as much work as it would have been without the AI tools. <br><br>Jamie&#8217;s group is amazing. If you want to learn the state of the art AI video creation then Jamie is the top goto guy right now. Knowing the video creation process and then automating the details with AI makes the whole process so much fun!<br><br>Join his <a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Ffilmmaking%2Fabout%3Fref%3D78b99f12863a4ce596ba13a62653b439">AI Filmmaking</a> community on Skool and make a video yourself.</p>]]></content:encoded></item><item><title><![CDATA[My new course is out: Cursor Control]]></title><description><![CDATA[Master the Process of Perfect AI Code Generation]]></description><link>https://martinschroder.substack.com/p/my-new-course-is-out-cursor-control</link><guid isPermaLink="false">https://martinschroder.substack.com/p/my-new-course-is-out-cursor-control</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Sun, 16 Nov 2025 18:52:01 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fapi.substack.com%2Ffeed%2Fpodcast%2F179070742%2F205b5967992e796d5080e366d64a6391.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Get access to Cursor Control for just $5 here: <a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Fai-software-engineering-1814%2Fabout%3Fref%3D78b99f12863a4ce596ba13a62653b439">https://www.skool.com/ai-software-engineering-1814/about</a>. This is the same content as I have in my Udemy course, but you get lifetime access to it <a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Fai-software-engineering-1814%2Fabout%3Fref%3D78b99f12863a4ce596ba13a62653b439">on Skool</a> for just $5 instead of $65! </p><p>It&#8217;s about time that I share this with you. </p><p>These tools have been around for a while - but never have they become so good that it was possible to close the loop on the process completely. </p><p>This is not like another &#8220;Vibe Coding&#8221; tutorial because I base it on a solid foundation of years of software development experience. I&#8217;m not interested in saying &#8220;build me an app&#8221; and having AI produce an app. I&#8217;m interested in using AI to automate parts of the process so that I can then stitch the results together into something that resembles the idea that I had in mind when I started. This is where AI tools truly shine!</p><p>I don&#8217;t believe that AI can produce good software all by itself. I do however believe that AI is an invaluable tool that fills in the gaps in any existing development process - or any process in fact that involves media (text, images, video etc)</p><p>The correct way to look at AI is it having a similar function to professional engineering tools like &#8220;Matlab&#8221; or &#8220;Altium Designer&#8221; or &#8220;VSCode&#8221; or even &#8220;Vim&#8221; and &#8220;Emacs&#8221;. These tools came at a time when development processes were manual an inefficient. These tools multiplied efficiency for developers who already knew the process.</p><p>The same thing is true for AI tools. They don&#8217;t replace the process - they replace the manual, tedious editing work that just takes time away from thinking about how things should fit together in the project.</p><p>In <a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Fai-software-engineering-1814%2Fabout%3Fref%3D78b99f12863a4ce596ba13a62653b439">my new group that I have just set up on Skool</a> I will share with you my process for using AI tools to produce top quality merge requests at a fraction of the time it takes to do it manually.</p><p>I will cover the process and show you hands on demonstrations of the process - but you have to understand that understanding the process - from planning to finished MR - is what matters the most. You can use the same process then for any kind of software development task that you are working on and you will reap the benefits.</p><p>I have seen in my own experience over and over again that AI can produce 99.99% correct code if only it is given all the details. The correct input (context) matters - A LOT - for a good output. In this course I will show you how to assemble the correct input - every step of the way.</p><p>It&#8217;s not about &#8220;Vibe Coding&#8221; - it&#8217;s about following a process that takes you from idea to finished merge request that matters. The sum total of all merge requests is your product. It is my belief that if you can master the process of creating one MR, you can master the process of creating a product.</p><p>Most technical debt comes from slop in individual merge requests summed up over time. We want to remove the slop and focus on implementing features - FAST!</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.skool.com%2Fai-software-engineering-1814%2Fabout%3Fref%3D78b99f12863a4ce596ba13a62653b439">Join my AI Software Engineering group</a> for just $5 and be part of this community with me. To access the course, you can then click &#8220;Classroom&#8221; and you will find it there!</p>]]></content:encoded></item><item><title><![CDATA[Understanding the transformer: A Deep Dive into GPT]]></title><description><![CDATA[Training three GPT models from scratch on specific language objectives.]]></description><link>https://martinschroder.substack.com/p/understanding-the-transformer-a-deep</link><guid isPermaLink="false">https://martinschroder.substack.com/p/understanding-the-transformer-a-deep</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Fri, 07 Nov 2025 17:02:50 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214_b6%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg" 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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214_b6%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4_b6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4_b6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4_b6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4_b6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214_b6%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.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;:null,&quot;alt&quot;:&quot;PopGPT&quot;,&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="PopGPT" title="PopGPT" srcset="https://substackcdn.com/image/fetch/$s_!4_b6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4_b6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4_b6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4_b6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01f1ccaa-accd-4597-9fd5-6ee049adceef_2048x1536.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 transformer architecture has become the foundation of modern language models. In this post, we&#8217;ll walk through the transformer implementation, explaining each component step-by-step with concrete code examples and tensor shapes.</p><p>I will first guide you through the implementation of the transformer and then we will create small models that can learn to do cool stuff. The models I will show you in this article are:</p><ul><li><p>0.1M parameter model that can reverse strings (and how to train it)</p></li><li><p>~28M parameter model that can evaluate mathematical expressions</p></li><li><p>3.15M parameter model that translates word expressions to symbolic math</p></li></ul><p>We will train all these models from scratch very quickly.</p><p><strong>Reverser model:</strong></p><p>We will be training the model from scratch and the results we are going to get will look progressively better like this:</p><pre><code><code>the quick brown fox=xof ,mtohxmrfu (at first partially correct)
....
the quick brown fox=xof nworb kciuq eht (finally fully correct)
</code></code></pre><p>Note that none of these examples are present in the training data. The training data are just random strings.</p><p>Training data:</p><pre><code><code>gowmkugwhttut=tutthwgukmwog
ImfxVciDdVvp=pvVdDicVxfmI
pGA=AGp
rbgyxsbob=bobsxygbr
</code></code></pre><p><strong>Math interpreter:</strong></p><p>The results of the model trained to do math will look like this:</p><pre><code><code>100-50+25=75 &#10003;
2+4-8*10=-78 &#10007; (correct answer -74)
7*8+12=68 &#10003;
99/3-11=23 &#10007; (correct answer 22)
10.5*4.2-8.75=35.65 &#10007; (corret answer 35.65)
100/4+12.5=37.5 &#10003;
100/4+12.5=36.5 &#10007;
</code></code></pre><p>Here the training data are random expressions with correct answers:</p><pre><code><code>25/-27=-0.9259
-5.3*-662=3508.6
9.99-53=-43.01
-45-5=-50
10.4579+-119.3=-108.8421
</code></code></pre><p><strong>Math translator:</strong></p><p>The third model we will train is going to translate word phrases to math expressions:</p><pre><code><code>seventyone divided by six plus threehundredfive=71/6+305
one divided by eight plus six times ninetyseven=1/8+6*97
eight times seventyone=8*71
negativetwelve times fifteen divided by seventeen=-12*15/17
negativetwentyone plus eight times nine minus three=-21+8*9-3
seventeen plus fortythree divided by sixtyfour=17+43/64
</code></code></pre><p>This training objective is important because it is very easy to then extend this model with an additional step that evaluates the expression using a python function. Thus giving us a system that can take word expressions as input and produce correct mathematical answers.</p><p>It&#8217;s not going to be perfect with the tiny models we will be training today, but the point is to learn how the modelhe architecture works and behaves and to learn how to train a model from scratch.</p><p>The model learns to infer the answers solely based on prediction of next token - yet it guesses answers that are surprisingly close to the correct answer even with as few as 80M parameters.</p><p>What we are doing essentially is system identification for a system that has in input signal before the <code>=</code> and we want to have a model of that signal that allows us to predict values after the <code>=</code>.</p><p>If you understand this concept, you will be able to train any model for any domain from scratch and get good results eventually. A more complex system obviously requires more complex model and more compute to train it - but the core principles scale really well.</p><p>What you will notice is that the last model will converge very quickly - this is because there is a lot of important structured information encoded in the tokens before the <code>=</code> sign which can then be used to compute only a few output tokens. Thus the training data is very saturated in important information that can be learned.</p><p>The purpose of this post is to give you a really good understanding of how the transformer works, how to train it on a dataset of examples and how to handle the correct training objective during training so that you don&#8217;t include irrelevant information in your calculation of error between desired result and actual result.</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Funderstanding-the-transformer-a-deep">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How you can get 99% correct results from Cursor AI each time: but only if you do this first.. ]]></title><description><![CDATA[I had AI interview me on how to be effective with cursor and in this video I quickly guide you through the process.]]></description><link>https://martinschroder.substack.com/p/how-you-can-get-99-correct-results</link><guid isPermaLink="false">https://martinschroder.substack.com/p/how-you-can-get-99-correct-results</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Wed, 08 Oct 2025 05:01:26 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Fyoutube%2Fw_728%2Cc_limit%2FzoeViZsqZ1Q" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-zoeViZsqZ1Q" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zoeViZsqZ1Q&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="iframe.php?url=https%3A%2F%2Fwww.youtube-nocookie.com%2Fembed%2FzoeViZsqZ1Q%3Frel%3D0%26amp%3Bautoplay%3D0%26amp%3Bshowinfo%3D0%26amp%3Benablejsapi%3D0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Subscribe: <a href="iframe.php?url=https%3A%2F%2Fm.youtube.com%2F%40mkschreder%3Fsub_confirmation%3D1">Click Here</a></p><p>Key takeaways:</p><ul><li><p>Context is (nearly) everything: if you can provide all information needed to implement a coding task, AI can implement it. </p></li><li><p>A good plan saves a lot of back and forth chitchatting</p></li><li><p>Sometimes switching model solves a problem quicker - but providing context is just as important. </p></li><li><p>Tests constrain the generation to produce desired behaviors - and maintain them over time. </p></li><li><p>MCP tools bridge the gap between AI and your services (almost) entirely. </p></li><li><p>Onboarding new developers into your team should take days in 2025, not months. </p></li><li><p>Recording a podcast with an agent as host is pretty decent (except for tone fluctuations) </p></li></ul><p>When you don&#8217;t get correct results from AI it usually means:</p><ul><li><p>There is so much complexity in your code even ai wouldn&#8217;t get it. </p></li><li><p>You did not provide context</p></li><li><p>You did not explain what the end result should look like. </p></li><li><p>You forgot to write tests. </p></li><li><p>You have not refined the plan </p></li></ul>]]></content:encoded></item><item><title><![CDATA[Building Secure MCP Severs in 2025: OAuth Authentication]]></title><description><![CDATA[Production ready patterns for securing FastAPI-based MCP servers with enterprise identity providers]]></description><link>https://martinschroder.substack.com/p/building-secure-mcp-severs-in-2025</link><guid isPermaLink="false">https://martinschroder.substack.com/p/building-secure-mcp-severs-in-2025</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Wed, 24 Sep 2025 17:08:35 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21X4VI%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21X4VI%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X4VI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!X4VI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!X4VI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!X4VI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21X4VI%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2558003,&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://martinschroder.substack.com/i/174457462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.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_!X4VI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!X4VI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!X4VI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!X4VI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea01230d-f73b-4ec8-950f-48a8def268a4_1536x1024.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Modern MCP (Model Context Protocol) servers require robust authentication that balances security with developer experience. As organizations increasingly adopt AI-assisted development tools, securing these servers becomes critical for protecting sensitive data and ensuring compliance.</p><p>In this issue of Agentic Engineering Newsletter, I will show you how to implement enterprise-grade OIDC authentication for MCP servers using Keycloak, FastAPI, and FastMCP. You&#8217;ll learn production-validated patterns from a real-world implementation, complete with examples, code samples and explanations of how this works.</p><p>If you are a platform engineer, backend developer, or DevOps implementing secure MCP servers in enterprise environments, I think you will find this guide very useful.</p><p>We will use Keycloak as our IDP (Identity provider), simply because it is very feature rich and very easy to setup. The principles however are the same for any IDP that you choose to use. One huge benefit of setting up your own is that you have full control over all of its functionality and it is easier to learn how IDP works when you can tweak many settings and observe the results.</p><p>Using an IDP allows you to completely offload user management and authentication from your MCP server (the server is referred to as having the role of &#8220;resource server&#8221;) and focus on the features that you want to develop while having top grade granular access control available to you.</p><p>The access control is handled through tokens that are signed by the IDP and which contain claims which you can then use in your MCP server to decide what the user has access to. Your MCP server can easily verify that the token has been issued by the IDP by verifying its signature against the IDP provided public keys.</p><h2><strong>Table of Contents</strong></h2><ul><li><p>1&#65039;&#8419; Architecture Overview: Modern OAuth 2.1 + OIDC for MCP</p></li><li><p>2&#65039;&#8419; OAuth 2.1 &amp; RFC 9700 Security Standards (2025)</p></li><li><p>3&#65039;&#8419; Keycloak realm and client setup</p></li><li><p>4&#65039;&#8419; OIDC flow in the server (authorization, token, validation)</p></li><li><p>5&#65039;&#8419; Token validation and claims usage</p></li><li><p>6&#65039;&#8419; Role-based authorization in MCP tools</p></li><li><p>7&#65039;&#8419; Local development and testing</p></li><li><p>8&#65039;&#8419; MCP Server: with OAuth integration towards IDP</p></li><li><p>9&#65039;&#8419; MCP Client: to test our MCP server</p></li><li><p>&#128287; Further resources</p></li></ul><p>Let&#8217;s jump right into it!</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Fbuilding-secure-mcp-severs-in-2025">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[From Planning to Production: A Comprehensive AI-Assisted Development Workflow for Software Teams]]></title><description><![CDATA[This guide provides a comprehensive framework for integrating AI assistance throughout your development workflow, with particular focus on embedded systems development using both C (for firmware) and Python (for integration and testing) but also applicable to any software development task if you tweak the provided prompts to your context.]]></description><link>https://martinschroder.substack.com/p/from-planning-to-production-a-comprehensive</link><guid isPermaLink="false">https://martinschroder.substack.com/p/from-planning-to-production-a-comprehensive</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Mon, 07 Jul 2025 20:45:18 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21e-OF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This guide provides a comprehensive framework for integrating AI assistance throughout your development workflow, with particular focus on embedded systems development using both C (for firmware) and Python (for integration and testing) but also applicable to any software development task if you tweak the provided prompts to your context.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21e-OF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e-OF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!e-OF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!e-OF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!e-OF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21e-OF%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Generated image&quot;,&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="Generated image" title="Generated image" srcset="https://substackcdn.com/image/fetch/$s_!e-OF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!e-OF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!e-OF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!e-OF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d731a0-fba6-4989-81bf-3f5ff074f50e_1024x1024.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 will cover the following areas of software development process and how AI can be used to increase productivity in each step of the way:</p><ol><li><p>Before Coding: Requirements and Planning with AI: Learn how AI can help analyze requirements, break down tasks, and design solutions before writing any code.</p></li><li><p>Test-Driven Development with AI: Discover how AI can assist in generating test cases and guiding you through the TDD cycle of red, green, and refactor phases.</p></li><li><p>Writing Code with AI: Explore effective prompting techniques for generating high-quality code and using AI for code reviews and refactoring.</p></li><li><p>After Coding: Quality Assurance with AI: Understand how AI can help design testing strategies, perform security analysis, and optimize performance post-coding.</p></li><li><p>Code Review Preparation with AI: See how AI can assist in creating detailed pull request descriptions and updating documentation for code reviews.</p></li><li><p>Collaboration &amp; Review with AI: Find out how AI can enhance the code review process and help resolve conflicts during collaboration.</p></li><li><p>CI/CD and Release Readiness with AI: Learn to use AI for generating release notes and optimizing CI/CD pipelines for smoother deployments.</p></li><li><p>Post-Merge: Monitoring and Maintenance with AI: Discover AI's role in log analysis and incident response after code is merged into production.</p></li><li><p>Continuous Improvement with AI: Explore how AI can assist in analyzing technical debt and facilitating team retrospectives for ongoing improvement.</p></li></ol>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Ffrom-planning-to-production-a-comprehensive">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[10 Ways to Be Insanely Effective at Coding With Cursor AI]]></title><description><![CDATA[Transform your development workflow with these battle-tested strategies for being superefficient with agentic AI tools for coding.]]></description><link>https://martinschroder.substack.com/p/10-ways-to-be-insanely-effective</link><guid isPermaLink="false">https://martinschroder.substack.com/p/10-ways-to-be-insanely-effective</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Tue, 17 Jun 2025 18:59:59 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dnoX%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dnoX%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dnoX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!dnoX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!dnoX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!dnoX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dnoX%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&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_!dnoX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!dnoX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!dnoX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!dnoX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43fea12b-4623-4cfb-98fe-6fe286db3e3b_1024x1024.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 going to be a long one&#8230; 1500+ lines.. </p><p>I have been using cursor daily in my development work and it is by far the most versatile agent out there. For us developers, everything is text. So we don&#8217;t care about UI. Server clusters are text, apps are text, automation is text, everything we do on the computer is text. And AI models are great with text. And cursor is the best tool yet to work with text. So there you have it. This deep dive will be a deep dive into cursor and how we can truly get the most value out of it! </p><p>Cursor is absolutely INSANE!</p><h2>The AI-Powered Development Revolution</h2><p>Year 2025 marks the age when AI-assisted software development has truly arrived, and it&#8217;s transforming how we write, debug, and optimize code. Tools like Cursor, GitHub Copilot, and other AI agents aren&#8217;t just fancy autocomplete - they have become true coding partners that dramatically accelerate development while maintaining (and often improving) code quality.</p><p>Recent McKinsey research shows that developers can complete coding tasks <strong>up to twice as fast</strong> with generative AI tools, with documenting code functionality taking half the time, writing new code in nearly half the time, and code refactoring in two-thirds the time. But here&#8217;s the crucial insight: <strong>the tools are only as good as the skills of the engineers using them</strong>.</p><blockquote><p><em>&#128161; <strong>Pro Tip from the Trenches</strong>: As one experienced developer put it, &#8220;I&#8217;ve been Vibe coding like crazy lately&#8230; you&#8217;re using this agent based coding in cursor or Windsurf&#8230; I am literally trying to get AI to write the entire application end to end.&#8221; However, the key to success isn&#8217;t just letting AI run wild - it&#8217;s having a structured approach with clear rules and boundaries where you direct its output every step of the way and make sure that it is on track.</em></p></blockquote><p>This guide distills insights from sources including GitHub&#8217;s official documentation, McKinsey&#8217;s research studies, industry best practices repositories, and analysis of the most valuable YouTube tutorials on this topic to give you a comprehensive roadmap for maximizing your effectiveness with AI based coding tools.</p><div><hr></div><h2>1. Master the Art of Strategic Prompting</h2><h3>The Foundation of Effective AI Collaboration</h3><p>The difference between getting mediocre and really good results with AI coding agents often comes down to one critical skill: <strong>prompt engineering</strong>. It&#8217;s about structuring your requests so the AI can understand context, requirements, and constraints. A good prompt is just like a clear command to a human developer. If the command is clear and easy to understand, the developer will be able to produce the requested result.</p><p>The level of understanding comes down to information density of the prompt.</p><h3>Best Practices for Prompting:</h3><p><strong>Be Specific and Detailed</strong> Instead of: &#8220;Fix this function&#8221; Try: &#8220;Refactor this function to use a <code>for...of</code> loop, add proper error handling for null values, and ensure it follows TypeScript best practices with appropriate type annotations.&#8221;</p><p><strong>Provide Rich Context</strong> - Clearly state the problem you&#8217;re solving - Include relevant code snippets or file references: this will allow the model to request to read the files to get more information. - Specify programming language, frameworks, and libraries you want to use - Outline constraints like performance requirements or design patterns or coding standards. - Mention your target environment (browser, Node.js, mobile, resource constrained embedded etc.)</p><p><strong>Use the &#8220;Problem-Solution-Validation&#8221; Framework</strong> 1. <strong>Problem Statement</strong>: &#8220;I need to create a user authentication system&#8221; 2. <strong>Solution Requirements</strong>: &#8220;Using JWT tokens, Express.js middleware, bcrypt for password hashing, with rate limiting&#8221; 3. <strong>Validation Criteria</strong>: &#8220;Include unit tests and handle edge cases like expired tokens and invalid credentials&#8221;</p><p><strong>Example of Effective Prompting:</strong></p><pre><code><code>Create a React hook for managing API calls with the following requirements:

- Handle loading, success, and error states
- Support for request cancellation to prevent memory leaks
- TypeScript with proper generic typing
- Include retry logic with exponential backoff
- Return cleanup function for component unmounting
- Add JSDoc comments for documentation in docs folder

Write the output files to directory src/hooks</code></code></pre><h3>Advanced Prompting Techniques:</h3><p><strong>Sequential Thinking Approach</strong> Break complex tasks into logical steps and have the AI work through them methodically:</p><pre><code><code>Let's build a complete user management system. Please work through this step by step:
1. First, design the database schema for users with proper relationships. Use prisma.
2. Create the backend API endpoints with Next JS
3. Implement the frontend components using ShadcnUI
4. Add comprehensive error handling
5. Write unit and integration tests in tests subdirectory
6. Create API documentation</code></code></pre><blockquote><p><em>&#128250; <strong>Insight</strong>: The most successful developers use what&#8217;s called &#8220;sequential thinking&#8221; - breaking down complex problems into manageable steps and having the AI work through them methodically. This approach dramatically improves code quality and reduces debugging time.</em></p></blockquote><p><strong>Persona-Based Prompting</strong> Frame the AI as a specific expert:</p><p>&#8220;Act as a senior TypeScript developer who prioritizes code maintainability, performance, and follows clean architecture principles. Review this code and suggest improvements.&#8221;</p><h3>The &#8220;One Thing at a Time&#8221; Rule</h3><p>One of the most valuable insights from experienced developers is the importance of asking for <strong>only one change at a time</strong>. As one expert explains: &#8220;I usually find that it&#8217;s best to just ask it to do one new feature or implement one new thing per prompt that I give it. Much better results.&#8221;</p><p>This prevents the AI from: - Getting overwhelmed and making mistakes - Touching unrelated code - Breaking existing functionality - Creating debugging nightmares</p><p>It is also easier to focus context around the one task at hand making it easier to produce much better results quicker.</p><div><hr></div><h2>2. Leverage Context Like a Pro</h2><h3>Understanding Context Windows and Limitations</h3><p>AI coding agents have context windows - limits on how much information they can process as input at once. Since every response and every new input from the user adds to this context, it is important to be aware of what goes into it. Understanding and working within these constraints is crucial for maintaining coherent, project-aware assistance.</p><p>Cursor has a lot of built in tools that automatically optimize context usage and include only relevant text fragments and files into the context. However, you can still help it do its job better.</p><h3>Strategies for Maximum Context Effectiveness:</h3><p><strong>File Management for Context in Cursor</strong> - Keep relevant files open in your editor - Close irrelevant files that might confuse the AI - Use specific file references with <code>@filename</code> syntax in Cursor - Organize your project structure logically and use locality principle to keep related functionality close in the file system.</p><p>Just like with human developers, having a coherent file structure helps AI tools as well.</p><p><strong>Project-Wide Understanding</strong> Start sessions by asking the AI to analyze your project: &#8220;Can you analyze my project structure and give me an overview of the architecture? I&#8217;m working on a Node.js API with React frontend, using PostgreSQL and Redis.&#8221;</p><p>You can save the analyzis into a file and then reference that file in the context in subsequent requests.</p><h3>The Critical Context Window Management Strategy</h3><blockquote><p><em>&#127919; <strong>Expert Insight</strong>: &#8220;You want to keep all of your code files under 500 lines. You want to start fresh conversations often because longer conversations can really bog down an LLM.&#8221;</em></p></blockquote><p><strong>Context Layering Technique</strong> Build context progressively: 1. Start with high-level architecture overview 2. Include specific modules or components 3. Focus on a single immediate task with full context at a time</p><h3>Advanced Context Management with Cursor Rules</h3><p>One of the most powerful features that experienced developers leverage is <strong>Cursor Rules</strong>. These are essentially system prompts that provide persistent context across all your AI interactions.</p><p><strong>Essential Cursor Rules Setup:</strong></p><pre><code><code>You are an expert software developer.
Write concise, efficient code.
Always comment your code.
Never erase old comments if they are still useful.

# Structure
- Sources are in src/ subdirectory
- Tests are in tests/ subdirectory
- Makefile targets should be organized and separated by / for grouping. 
- Makefile is used as shortcuts both for local convenience and for consistency between local and ci.

# Tech Stack
- Framework: Next.js
- Language: TypeScript
- UI Library: Chakra UI
- State Management: Zustand
- Database: Supabase
- Testing: Jest

# Project Structure Guidelines
- React components: src/components/
- API endpoints: src/pages/api/
- Utility functions: src/services/
- Types and schemas: src/types/

# Golden Rules
- Keep files under 1000 lines. Split long files when it makes sense architecturally.
- Write tests for all new features. 
- Use JSDoc for documentation</code></code></pre><h3>Cross-File Operations Strategy:</h3><p>When working across multiple files, use this approach:</p><pre><code><code>I'm refactoring authentication across these files:
@auth/middleware.js - Current JWT middleware
@routes/user.js - User routes that need updating  
@models/User.js - User model
@tests/auth.test.js - Tests that need updating

Please help me update the JWT middleware to handle the new user fields without maintaining backward compatibility.</code></code></pre><div><hr></div><h2>3. Implement Smart Workflow Automation</h2><h3>Auto Run Mode</h3><p>Cursor&#8217;s &#8220;Auto run mode&#8221; used to be dangerous but today (specially with claude sonnet 4 models) the number of times the model is wrong is minimal. You would save a lot of time if you enable auto run mode in cursor settings. You can still configure command allow and deny lists and enable removal protection.</p><p>The biggest piece of advice is to simply always use git and to commit often. This way you can always reset when and if cursor does something you are not happy with.</p><h3>Setting Up Safe Automation:</h3><p><strong>Define Allow/Deny Lists</strong></p><pre><code><code>// Allowed commands for YOLO mode
- npm test
- npm run build
- npm run lint
- git add . &amp;&amp; git commit -m "AI-generated changes"

// Forbidden commands
- rm -rf
- npm publish
- git push origin main
- sudo commands</code></code></pre><p>Use targeted instructions to automate common repetetive tasks.</p><ol><li><p><strong>Tests</strong>: &#8220;Run tests and fix failures until all pass&#8221;</p></li><li><p><strong>Set Boundaries</strong>: &#8220;Only modify test files and implementation, don&#8217;t change package.json&#8221;</p></li><li><p><strong>Establish Success Criteria</strong>: &#8220;Stop when build passes and test coverage is above 80%&#8221;</p></li></ol><h3>Real-World Automation Success Stories</h3><p><em>Comprehensive workflow covering rules setup, context management, sequential thinking, and auto mode best practices</em></p><p>One expert developer shares: &#8220;I really became pretty darn dependent on the agents to do things for me I would even say Okay Commit This code right write a good description and deploy it to Heroku and it would do that and it really didn&#8217;t have any problems.&#8221;</p><h3>Advanced Automation Patterns:</h3><p><strong>Test-Driven Development Loop</strong></p><pre><code><code>Use these instructions:

1. Run existing tests to understand current failures
2. Implement features to make tests pass
3. Run tests after each change to get feedback
4. Refactor code while maintaining test success
5. Stop when all tests pass and code coverage target of above 80% is met</code></code></pre><p><strong>Build-Fix Iteration</strong></p><pre><code><code>Run TypeScript compiler and automatically fix type errors:
1. Execute `npm run type-check`
2. Read compiler errors
3. Fix type issues in the reported files
4. Re-run type-check
5. Repeat until clean compilation</code></code></pre><p>Normally modern models understand what to do even with less verbose instructions - but the more precise you are the more exact results you will get. With AI you get what you ask for.</p><h3>The Critical Safety Net: Frequent Commits</h3><blockquote><p><em>&#128221; <strong>Pro Tip</strong>: &#8220;Commit often commit often I cannot suggest that enough make sure that every single change you make you are committing because you can always roll back if it gets to a state that is just unfixable.&#8221;</em></p></blockquote><p>This becomes even more critical when using automation features, as you need rollback points when things go wrong.</p><h3>Workflow Integration Best Practices:</h3><p><strong>Pre-commit Automation</strong> Set up AI agents to help with pre-commit checks: - Instruct AI to configure pre-commit hooks - Automatic linting and formatting - Test execution and fixing - Documentation updates - Security vulnerability scanning</p><p><strong>Code Review Preparation</strong> Use AI to prepare code for review: - Generate comprehensive PR descriptions - Use merge request templates to get formatting right - Identify potential issues or edge cases - Suggest additional test cases - Create documentation for complex changes</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2F10-ways-to-be-insanely-effective">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#018: Stripe Pay-As-You-Go: it's easier than you think]]></title><description><![CDATA[Stripe is a fantastic service and it has certainly made payment collection uneversal and easy.]]></description><link>https://martinschroder.substack.com/p/018-stripe-pay-as-you-go-its-easier</link><guid isPermaLink="false">https://martinschroder.substack.com/p/018-stripe-pay-as-you-go-its-easier</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Mon, 05 May 2025 22:34:39 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21p1WF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21p1WF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p1WF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 424w, https://substackcdn.com/image/fetch/$s_!p1WF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 848w, https://substackcdn.com/image/fetch/$s_!p1WF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 1272w, https://substackcdn.com/image/fetch/$s_!p1WF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21p1WF%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png" width="1456" height="808" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:808,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1928542,&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://martinschroder.substack.com/i/162928068?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.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_!p1WF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 424w, https://substackcdn.com/image/fetch/$s_!p1WF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 848w, https://substackcdn.com/image/fetch/$s_!p1WF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.png 1272w, https://substackcdn.com/image/fetch/$s_!p1WF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097fde98-d912-4e7f-a67c-c3e4ba5af269_1536x852.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Stripe is a fantastic service and it has certainly made payment collection uneversal and easy.</p><p>However, it now has so many functions that it is easy to get confused not quite knowing how to create a robust and simple integration.</p><p>Today I'm going to cover a very straightforward implementation of the Pay as you go scheme that works very well with agentic services where the user "TopsUp" their account and then you keep track of usage on an ongoing basis and refuse service when the usage exceeds what the user has paid.</p><p>In this article we are goin to look at:</p><ul><li><p>Implementing pay as you go strategy in python</p></li><li><p>Keeping track of user balance</p></li><li><p>Handling stripe webhooks to ensure our view of user balance is consistent</p></li></ul><p>Let's jump right into it!</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2F018-stripe-pay-as-you-go-its-easier">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#017: Unlock the Power of AI Debugging: How To Seamlessly Connect Any Language Model With GDB]]></title><description><![CDATA[Imagine this: You need to debug a complex issue.]]></description><link>https://martinschroder.substack.com/p/unlock-the-power-of-ai-debugging</link><guid isPermaLink="false">https://martinschroder.substack.com/p/unlock-the-power-of-ai-debugging</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Thu, 24 Apr 2025 22:20:23 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21s0f0%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21s0f0%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s0f0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!s0f0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!s0f0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!s0f0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21s0f0%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&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;: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_!s0f0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!s0f0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!s0f0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!s0f0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ac9ca5-e29d-45b0-87de-d6d43d718088_1536x1024.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Imagine this: You need to debug a complex issue. You don't know where to start. You don't want to manually have to step through the program and inspect variables yourself. You go grab a coffee and prepare for a long debugging session.</p><p>What if you could simply say, in plain English: "Figure out why this program is crashing and suggest a solution" and receive not just an answer, but a comprehensive breakdown of how to reproduce the issue?</p><p>Welcome to the future of debugging - where AI makes it possible to build a debugging assistant.</p><p>In this post we are going to implement exactly this. I'll share with you all the code and all the details of this implementation. We will connect GDB to Claude Sonnet and let it do its magic!</p><h2><strong>What You'll Discover in This Guide</strong></h2><p>I'm about to show you how to build an agent that will:</p><ol><li><p>Start and control GDB sessions autonomously</p></li><li><p>Execute complex GDB commands and interpret their outputs&#8212;without you having to remember the syntax</p></li><li><p>Reason about program state and potential bugs like an experienced developer</p></li><li><p>Adapt to observed behavior in real-time and adjust its debugging approach.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TKJH%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TKJH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 424w, https://substackcdn.com/image/fetch/$s_!TKJH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 848w, https://substackcdn.com/image/fetch/$s_!TKJH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 1272w, https://substackcdn.com/image/fetch/$s_!TKJH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TKJH%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png" width="1047" height="584" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:584,&quot;width&quot;:1047,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65661,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://martinschroder.substack.com/i/162081846?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!TKJH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 424w, https://substackcdn.com/image/fetch/$s_!TKJH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 848w, https://substackcdn.com/image/fetch/$s_!TKJH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 1272w, https://substackcdn.com/image/fetch/$s_!TKJH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1a2706b-e422-43ad-a33f-ebda53aef95b_1047x584.png 1456w" sizes="100vw"></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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Best of all? It scales to any individual use case. The LLM will adopt it&#8217;s process until it finds a solution - and you can follow along in real time and view what it is doing.</p><p>Let&#8217;s get started!</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Funlock-the-power-of-ai-debugging">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#016: Latest Trends in AI Agents: April 17th 2025 Research Report]]></title><description><![CDATA[This report examines the current landscape and emerging trends in AI agents as of April 2025, highlighting key developments, frameworks, and applications that are shaping this rapidly evolving field.]]></description><link>https://martinschroder.substack.com/p/latest-trends-in-ai-agents-april</link><guid isPermaLink="false">https://martinschroder.substack.com/p/latest-trends-in-ai-agents-april</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Wed, 16 Apr 2025 23:14:13 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21tBRe%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F71d83984-c9c2-4bb0-ad81-c7cbe22c0f0f_480x360.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Table of Contents</strong></h2><p>In this issue we will cover:</p><ol><li><p>Introduction to AI Agents</p></li><li><p>Key Trends in AI Agents for 2025</p></li><li><p>Popular AI Agent Frameworks</p></li><li><p>Multimodal AI Agents</p></li><li><p>Autonomous Agent Capabilities</p></li><li><p>AI Agent Architectures</p></li><li><p>Real-World Applications</p></li><li><p>Future Outlook</p></li><li><p>References</p></li></ol><h2><strong>Subscribe to This Newsletter</strong></h2><p>Stay updated with the latest developments in AI agents and other cutting-edge technologies by subscribing to our newsletter:</p><p><a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2F">Subscribe to Martin Schr&#246;der Agentic AI newsletter</a>: the only newsletter that you need to stay up to date with latest trends in AI and beyond.</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Flatest-trends-in-ai-agents-april">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#015: Developing Open Agent API: The Standardized Communication Solution For Agents And Agent Teams]]></title><description><![CDATA[Introduction]]></description><link>https://martinschroder.substack.com/p/developing-open-agent-api-the-standardized</link><guid isPermaLink="false">https://martinschroder.substack.com/p/developing-open-agent-api-the-standardized</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Tue, 15 Apr 2025 21:07:57 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2Ff_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5ecadc48-1f17-4784-8d32-49b3d23838df_500x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Introduction</strong></h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fopen-agent-api">Github Repository - open-agent-api</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fopen-agent-api%2Fblob%2Fmain%2Fopen-agent-api.yaml">Schema Definition - open-agent-api</a></p></li></ul><p>The Open Agent API is a comprehensive communication solution for connecting agents together in a standardized way. As AI capabilities continue to evolve, there's a growing need for standardized interfaces that allow developers to harness these capabilities across various applications. The Open Agent API addresses this need by providing a robust, extensible framework for building agent-based systems.</p><p>This post explores the problems the Open Agent API aims to solve, its design principles, and how developers can leverage its capabilities for building intelligent applications that can all work together. We'll examine how the API defines the protocol for the creation of individual agents, teams of agents, and the tools they can use to accomplish tasks.</p><h2><strong>Problems Addressed by Open Agent API</strong></h2><p>Before diving into the technical details, let's consider the challenges that the Open Agent API seeks to address:</p><ol><li><p><strong>Standardization</strong>: With multiple AI providers and agent frameworks, there's a need for standardizing how we interact with agents across the internet.</p></li><li><p><strong>Composability</strong>: Building complex AI systems requires the ability to interconnect systems in standardized ways. Many types of agents need to connect together.</p></li><li><p><strong>Authentication and Access Control</strong>: Since it is important to build multi-user systems that make agents available to the public, it must define standard ways of authenticating and gaining access to resources.</p></li><li><p><strong>Tool Integration</strong>: Enabling agents to use tools and services that are both on the server, on the client and on other servers.</p></li><li><p><strong>Team Collaboration</strong>: Allowing multiple agents to work together on complex tasks.</p></li><li><p><strong>Billing and Resource Management</strong>: Since agents almost always incur costs, there must be an efficient way to handle subscriptions.</p></li></ol><p>The Open Agent API provides solutions for these challenges through a well-structured and well-defined REST API specification.</p><h2><strong>Purpose of the Specification</strong></h2><p>The Open Agent API specification is designed for services that aim to provide AI agents to a wide audience. Similar to how companies like OpenAI and Anthropic offer APIs to access their language models, this specification creates a standardized interface for agent interactions.</p><h2><strong>API Overview</strong></h2><p>The Open Agent API is divided into several core components:</p><ul><li><p><strong>Authentication</strong>: Secure user authentication via magic links, OAuth, and API keys</p></li><li><p><strong>Agents</strong>: Creation and management of individual AI agents</p></li><li><p><strong>Teams</strong>: Formation and operation of agent teams</p></li><li><p><strong>Chat</strong>: Low-level chat completions (compatible with OpenAI)</p></li><li><p><strong>Knowledge</strong>: Semantic knowledge base search</p></li><li><p><strong>MCP (Model Context Protocol)</strong>: Tool sharing mechanism between agents</p></li><li><p><strong>Billing</strong>: Optional integration with payment systems</p></li></ul><p>Let's explore each of these components in detail.</p><h2><strong>Authentication</strong></h2><p>The authentication system is the gateway to the Open Agent API. It supports multiple authentication methods to accommodate different use cases:</p><h3><strong>JWT Token</strong></h3><p>JWT (JSON Web Token) serves as the primary account-level authentication mechanism. When a user logs in through magic links or OAuth, they receive a JWT token that:</p><ul><li><p>Provides full access to account management features</p></li><li><p>Allows creating, modifying, and deleting resources</p></li><li><p>Enables subscription management and billing operations</p></li><li><p>Has a limited lifespan and requires periodic renewal</p></li></ul><p>Using the JWT token the user is then able to generate multiple API keys for different applications. JWT token acts like the main "login" token.</p><h3><strong>Magic Link Authentication</strong></h3><p>For simple email-based authentication:</p><pre><code><code>POST /auth/link
{
  "email": "user@email.com",
  "base_url": "http://url"
}
</code></code></pre><p>This endpoint accepts an email address and sends a magic link for passwordless authentication.</p><p>This returns a JWT token as part of the <code>AuthResponse</code> message. This token is unverified so it can not yet be used until the user verifies their identity.</p><p>After clicking the link, users can verify their identity:</p><pre><code><code>GET /auth/link/verify/{token}
</code></code></pre><p>At his point the token becomes usable and can be used with account API calls.</p><h3><strong>OAuth Authentication</strong></h3><p>For integrating with existing identity providers:</p><pre><code><code>GET /auth/oauth/{provider}
</code></code></pre><p>This initiates an OAuth flow with providers like Google or GitHub. After successful authentication, the API returns a JWT token via:</p><pre><code><code>GET /auth/oauth/{provider}/callback
</code></code></pre><p>For console applications, a device flow is also supported, allowing authentication without a web browser:</p><pre><code><code>POST /auth/oauth/device/token
</code></code></pre><h3><strong>API Key Management</strong></h3><p>API keys are tokens that only have permissions to access agent API. They are meant to be created for each application that needs to access the agent api.</p><pre><code><code>POST /auth/keys
GET /auth/keys
GET /auth/keys/{key_id}
DELETE /auth/keys/{key_id}
</code></code></pre><p>These endpoints allow creating, listing, and revoking API keys. Each key can have customized permissions and metadata.</p><h2><strong>Creating and Managing Agents</strong></h2><p>The Agents component is at the heart of the Open Agent API. It allows creating, configuring, and interacting with AI agents.</p><h3><strong>Creating an Agent</strong></h3><pre><code><code>POST /agents
</code></code></pre><p>When creating an agent, developers specify:</p><ul><li><p>A <strong>name</strong> and <strong>description</strong> for the agent</p></li><li><p>The <strong>base model</strong> (e.g., "claude-3-7-sonnet-latest")</p></li><li><p><strong>Instructions</strong> as (additional) instructions for the agent's behavior</p></li><li><p><strong>Tools</strong> that the agent can use</p></li></ul><p>Example agent creation request:</p><pre><code><code>{
  "name": "Research Assistant",
  "model": "claude-3-7-sonnet-latest",
  "description": "An agent that helps with research tasks",
  "instructions": "You are a research assistant that helps users find and summarize information.",
  "tools": [
    {
      "name": "web_search",
      "instructions": "Search the web for information",
      "functions": [
        {
          "name": "search",
          "description": "Search the web for information",
          "parameters": {
            "type": "object",
            "properties": {
              "query": {
                "type": "string",
                "description": "The search query"
              }
            },
            "required": ["query"]
          }
        }
      ]
    }
  ]
}
</code></code></pre><h3><strong>Managing Agents</strong></h3><p>List all your agents:</p><pre><code><code>GET /agents
</code></code></pre><p>Get details for a specific agent:</p><pre><code><code>GET /agents/{agentId}
</code></code></pre><p>Update an agent's configuration:</p><pre><code><code>PUT /agents/{agentId}
</code></code></pre><p>Delete an agent:</p><pre><code><code>DELETE /agents/{agentId}
</code></code></pre><h3><strong>Interacting with Agents</strong></h3><p>The API provides a powerful interface for interacting with agents:</p><pre><code><code>POST /agents/{agentId}/run
</code></code></pre><p>This endpoint accepts a series of messages and optional tools, and returns the agent's response. For example:</p><pre><code><code>{
  "messages": [
    {"role": "user", "content": "Can you research the latest developments in quantum computing?"}
  ],
  "tools": [
    {
      "name": "web_search",
      "functions": [
        {
          "name": "search",
          "description": "Search the web for information",
          "parameters": {
            "type": "object",
            "properties": {
              "query": {
                "type": "string",
                "description": "The search query"
              }
            },
            "required": ["query"]
          }
        }
      ]
    }
  ]
}
</code></code></pre><p>The API supports both synchronous responses and streaming via Server-Sent Events (SSE), allowing real-time updates as the agent thinks and uses tools.</p><h2><strong>Team Collaboration</strong></h2><p>This collection of interfaces gitve user the ability to create teams of agents that can collaborate on tasks.</p><h3><strong>Creating a Team</strong></h3><pre><code><code>POST /teams
</code></code></pre><p>When creating a team, developers specify:</p><ul><li><p>A <strong>name</strong> for the team</p></li><li><p>The <strong>member agents</strong> and their roles</p></li><li><p><strong>Tools</strong> available to the team manager</p></li></ul><p>Example team creation:</p><pre><code><code>{
  "name": "Research Team",
  "members": [
    {
      "agent_id": "agent1",
      "role": "Researcher"
    },
    {
      "agent_id": "agent2",
      "role": "Writer"
    }
  ],
  "tools": [
    {
      "name": "knowledge_base",
      "instructions": "Search the knowledge base",
      "functions": [
        {
          "name": "search",
          "description": "Search the knowledge base",
          "parameters": {
            "type": "object",
            "properties": {
              "query": {
                "type": "string",
                "description": "The search query"
              }
            },
            "required": ["query"]
          }
        }
      ]
    }
  ]
}
</code></code></pre><h3><strong>Managing Teams</strong></h3><p>List all your teams:</p><pre><code><code>GET /teams
</code></code></pre><p>Get details for a specific team:</p><pre><code><code>GET /teams/{teamId}
</code></code></pre><h3><strong>Running Team Interactions</strong></h3><pre><code><code>POST /teams/{teamId}/run
</code></code></pre><p>This endpoint accepts messages and coordinates responses among team members. For complex tasks, the team leader agent routes subtasks to appropriate member agents based on their roles and capabilities.</p><h2><strong>Model Context Protocol (MCP)</strong></h2><p>The MCP component enables tools to be shared between agents using a standardized protocol. This allows agents to expose capabilities as tools that other agents can use. This also allows any tooling provided by the agent service to be easily integrated with desktop agents like cursor.</p><pre><code><code>GET /mcp/
POST /mcp/messages
GET /mcp/sse
</code></code></pre><p>MCP provides a way for agents to communicate with external tools and interface with third party services.</p><h2><strong>Tools Integration</strong></h2><p>The Tools component allows registering, discovering, and using tools with agents.</p><h3><strong>Discovering Tools</strong></h3><pre><code><code>GET /tools
</code></code></pre><p>This endpoint returns a list of available toolkits that can be used by agents.</p><h3><strong>Getting Tool Details</strong></h3><pre><code><code>GET /tools/{tool_id}
</code></code></pre><p>Returns detailed information about a specific tool, including its parameters and usage instructions.</p><pre><code><code>POST /tools
</code></code></pre><p>Creates a new tool definition that can be used by agents. For example, this allows the user to expose an external MCP service to their agent or team and to be able to configure it in one place without having to pass all tool parameters with every request to the agent.</p><h2><strong>Knowledge Base Integration</strong></h2><p>The Knowledge component provides semantic search capabilities for agents:</p><pre><code><code>POST /knowledge/search
</code></code></pre><p>This allows agents to query a knowledge base for relevant information, enhancing their ability to provide accurate and contextual responses.</p><h2><strong>Subscription and Billing</strong></h2><p>For commercial implementations, the API includes subscription management:</p><pre><code><code>GET /subscription/plans
POST /subscription/subscribe
GET /subscription/current
POST /subscription/cancel
</code></code></pre><p>These endpoints allow users to manage their subscriptions, including viewing available plans, subscribing to a plan, and canceling subscriptions.</p><h2><strong>API Key Usage Analytics</strong></h2><p>For monitoring and billing purposes, the API provides detailed usage analytics:</p><pre><code><code>GET /auth/keys/{key_id}/usage
</code></code></pre><p>This returns information about API key usage, including request counts, token usage, and billing information.</p><h2><strong>Practical Applications</strong></h2><p>The Open Agent API enables a wide range of applications:</p><ol><li><p><strong>Enterprise Assistant Systems</strong>: Create specialized agents for different departments that can collaborate on complex tasks.</p></li><li><p><strong>Research Tools</strong>: Build agents that can search, summarize, and analyze information from various sources.</p></li><li><p><strong>Customer Service</strong>: Deploy teams of agents to handle customer inquiries, with specialists for different types of questions.</p></li><li><p><strong>Development Assistants</strong>: Create agents that can write code, debug issues, and collaborate on software development.</p></li><li><p><strong>Educational Platforms</strong>: Build tutoring systems with agents specialized in different subjects.</p></li></ol><h2><strong>Closing thoughts</strong></h2><p>The Open Agent API provides a comprehensive framework for building agent-based systems. By standardizing the interfaces for authentication, agent creation, team collaboration, and tool integration, it enables developers to build powerful AI applications that can solve complex problems.</p><p>Let's build this interface together and define exactly what we need and how we want it to work to facilitate simple and easy collaboration between agents. Whether you're interested in implementing new features, improving documentation, or sharing your use cases, your input is valuable.</p><p>This specification is going to evolve. You have the chance to influence the future! Create a discussion on the github project page:</p><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fswedishembedded%2Fopen-agent-api">Open Agents API - Github</a></p>]]></content:encoded></item><item><title><![CDATA[#014: From Human to AI Agent: The Breathtaking Evolution Reshaping Our World]]></title><description><![CDATA[A journey through the most mind-blowing AI capabilities of our time and how they're converging to create something greater than the sum of their parts.]]></description><link>https://martinschroder.substack.com/p/from-human-to-ai-agent-the-breathtaking</link><guid isPermaLink="false">https://martinschroder.substack.com/p/from-human-to-ai-agent-the-breathtaking</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Thu, 10 Apr 2025 00:45:11 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fimages.unsplash.com%2Fphoto-1589254065878-42c9da997008%3Fixlib%3Drb-1.2.1%26amp%3Bauto%3Dformat%26amp%3Bfit%3Dcrop%26amp%3Bw%3D1350%26amp%3Bq%3D80" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>A journey through the most mind-blowing AI capabilities of our time and how they're converging to create something greater than the sum of their parts.</em></p><p><strong>(the images are clickable. Click on them to go to additional content!)</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fimages.unsplash.com%2Fphoto-1589254065878-42c9da997008%3Fixlib%3Drb-1.2.1%26amp%3Bauto%3Dformat%26amp%3Bfit%3Dcrop%26amp%3Bw%3D1350%26amp%3Bq%3D80" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 424w, https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 848w, https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 1272w, https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fimages.unsplash.com%2Fphoto-1589254065878-42c9da997008%3Fixlib%3Drb-1.2.1%26amp%3Bauto%3Dformat%26amp%3Bfit%3Dcrop%26amp%3Bw%3D1350%26amp%3Bq%3D80" width="1350" height="900" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1350,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;AI Evolution&quot;,&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="AI Evolution" title="AI Evolution" srcset="https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 424w, https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 848w, https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 1272w, https://images.unsplash.com/photo-1589254065878-42c9da997008?ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1350&amp;q=80 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>The Dawn of a New Intelligence</strong></h2><p>Imagine waking up five years ago and describing today's AI landscape to your past self. You'd likely be met with disbelief, perhaps even laughter. Yet here we are, witnessing artificial intelligence evolve at a pace that continues to defy expectations. What began as narrow, task-specific algorithms has blossomed into something far more profound&#8212;a technological renaissance that's redefining the boundaries between human and machine capabilities.</p><p>This isn't just another technology story. It's the beginning of a new chapter in human history.</p><h2><strong>Language: The First Breakthrough</strong></h2><p>Our journey begins with language&#8212;the fundamental medium of human thought and expression. When OpenAI unveiled GPT-4, it marked a watershed moment in artificial intelligence. These systems don't just string together grammatically correct sentences; they understand context, generate creative content, and reason through complex problems in ways that feel remarkably human.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qUJz%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qUJz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qUJz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qUJz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qUJz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qUJz%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70fe93ce-d3a3-44bf-bb27-6a06389b34f5_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;:null,&quot;alt&quot;:&quot;GPT-4o Capabilities Live Demo&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="GPT-4o Capabilities Live Demo" title="GPT-4o Capabilities Live Demo" srcset="https://substackcdn.com/image/fetch/$s_!qUJz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qUJz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qUJz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qUJz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70fe93ce-d3a3-44bf-bb27-6a06389b34f5_1280x720.jpeg 1456w" sizes="100vw"></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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: OpenAI's live demonstration of GPT-4o vision capabilities</em></p><p>The scale of AI-generated content is already staggering&#8212;an estimated 100 billion words per day. That's equivalent to publishing the entire works of Shakespeare approximately 1,300 times every 24 hours.</p><p>Yet quantity isn't the real story here. What's truly remarkable is the quality and versatility of this content. From crafting marketing copy to coding complex applications to writing poetry that stirs genuine emotion, these systems have transformed from tools into creative partners.</p><p>But this was just the beginning.</p><h2><strong>Vision: AI Learns to See Our World</strong></h2><p>As language models were revolutionizing text, another breakthrough was unfolding in the visual domain. DALL-E and similar image generation models demonstrated an uncanny ability to transform text descriptions into vivid, detailed images that never existed before.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21LeUM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LeUM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LeUM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LeUM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LeUM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21LeUM%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_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;:null,&quot;alt&quot;:&quot;DALL-E 3 Best Results Guide&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="DALL-E 3 Best Results Guide" title="DALL-E 3 Best Results Guide" srcset="https://substackcdn.com/image/fetch/$s_!LeUM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LeUM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LeUM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LeUM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bbc03e1-fcbb-4fbc-a436-292383c6cf6e_1280x720.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: How to get the best results with DALL-E 3</em></p><p>Consider for a moment what this means: AI can now visualize concepts it has never directly observed. It can blend styles, imagine fantastical scenes, and create visual content that would take human artists hours or days to produce&#8212;all in seconds.</p><p>The implications ripple across industries. Designers can rapidly prototype concepts. Filmmakers can visualize scenes before shooting. Architects can generate multiple renderings of spaces that don't yet exist.</p><p>But the story of AI's evolution was about to take an even more fascinating turn.</p><h2><strong>Meta-Intelligence: AI That Creates AI</strong></h2><p>If language and vision represent the fundamental input/output channels for human intelligence, what followed next ventures into territory without clear human parallels: AI systems that can create and improve other AI systems.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F4Em%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F4Em!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F4Em!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F4Em!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F4Em!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F4Em%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c20e5c13-f77a-4e84-ba6d-f0901fd8452b_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;:null,&quot;alt&quot;:&quot;AI Agents Explained&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="AI Agents Explained" title="AI Agents Explained" srcset="https://substackcdn.com/image/fetch/$s_!F4Em!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F4Em!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F4Em!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F4Em!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20e5c13-f77a-4e84-ba6d-f0901fd8452b_1280x720.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: How AI agents are changing everything</em></p><p>Emergence AI demonstrated a capability that sounds like science fiction: creating its own AI agents. Meanwhile, Amazon's AGI Lab has developed advanced AI systems with decision-making capabilities inspired by robotics, allowing them to interact with the digital world much as physical robots navigate the physical one.</p><p>This represents a profound shift in the AI landscape. When artificial intelligence can improve itself&#8212;potentially at an accelerating pace&#8212;we enter uncharted territory in terms of capabilities and applications.</p><p>The implications are both exhilarating and challenging to comprehend. As philosopher Nick Bostrom noted, "Machine intelligence is the last invention that humanity will ever need to make."</p><h2><strong>Science: AI as a Research Partner</strong></h2><p>While these developments were capturing public imagination, AI was quietly transforming scientific research in ways that could prove even more consequential over time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WrMu%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WrMu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WrMu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WrMu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WrMu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WrMu%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75cd8104-d2e2-402a-a4b4-edd9fdf9621a_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;:null,&quot;alt&quot;:&quot;How AI is Revolutionizing Science&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="How AI is Revolutionizing Science" title="How AI is Revolutionizing Science" srcset="https://substackcdn.com/image/fetch/$s_!WrMu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WrMu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WrMu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WrMu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75cd8104-d2e2-402a-a4b4-edd9fdf9621a_1280x720.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: The Economist explores how AI is transforming scientific discovery</em></p><p>Berkeley's Evo 2 model represents a breakthrough in genetic research, accurately predicting the effects of genetic mutations across all domains of life. Google has highlighted AI's role in solving previously intractable scientific problems, from protein structure prediction to flood forecasting.</p><p>In each case, AI isn't simply automating rote tasks&#8212;it's enabling discoveries that would be difficult or impossible for humans working alone. The scientific method itself is being augmented and accelerated.</p><p>As one researcher put it: "We're not just using AI to do science faster. We're using it to do science differently."</p><h2><strong>Infrastructure: Building for an AI-Native World</strong></h2><p>These leaps in capability have driven corresponding advances in the infrastructure that powers AI systems. Google's Ironwood TPU is a prime example&#8212;a specialized processor designed to handle the unique computational demands of advanced AI.</p><p>These developments aren't merely technical footnotes. They represent the physical foundation that makes the AI revolution possible&#8212;and affordable. As computing power becomes more efficient and accessible, we're witnessing a democratization of AI capabilities that were once limited to tech giants with massive resources.</p><h2><strong>Collaboration: When AIs Talk to Each Other</strong></h2><p>If individual AI capabilities represent the building blocks of this new era, the next logical step is enabling these systems to work together. Google's Agent2Agent (A2A) protocol is designed precisely for this purpose&#8212;creating a standard way for AI systems to communicate and collaborate.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QPDY%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QPDY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QPDY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QPDY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QPDY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QPDY%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/552daf41-f148-431e-a925-4439751b16dd_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;:null,&quot;alt&quot;:&quot;The Next Breakthrough in AI Agents&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="The Next Breakthrough in AI Agents" title="The Next Breakthrough in AI Agents" srcset="https://substackcdn.com/image/fetch/$s_!QPDY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QPDY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QPDY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QPDY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552daf41-f148-431e-a925-4439751b16dd_1280x720.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: Y Combinator's take on the next breakthrough in AI agents</em></p><p>This development solves a fundamental challenge: how do we harness the specialized capabilities of different AI systems to tackle complex problems that require multiple forms of intelligence?</p><p>The A2A protocol enables a new paradigm where AI systems can seamlessly coordinate, share information, and leverage each other's unique strengths&#8212;much as human specialists collaborate on complex projects.</p><h2><strong>Education and Accessibility: AI for Everyone</strong></h2><p>As AI capabilities have expanded, they've also become more accessible to ordinary people in meaningful ways. Anthropic's Claude has found significant application in universities, helping students learn more efficiently and innovatively.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Qwv0%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qwv0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qwv0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qwv0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qwv0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Qwv0%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_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;:null,&quot;alt&quot;:&quot;Claude for Education&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="Claude for Education" title="Claude for Education" srcset="https://substackcdn.com/image/fetch/$s_!Qwv0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qwv0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qwv0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qwv0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065cde6f-abb0-4d5f-a7a3-fb290f5dc7a0_1280x720.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: Anthropic's introduction to Claude for Education</em></p><p>Voice-based tools like Aqua Voice 2 are improving accessibility for people with disabilities. Custom AI agents are enabling businesses to create specialized solutions without deep technical expertise.</p><p>In each case, we're seeing AI capabilities extended to new users and use cases&#8212;creating value not just through raw technical advancement but through thoughtful application to human needs.</p><h2><strong>The Human Element: Teams Transformed</strong></h2><p>Perhaps most intriguingly, research is beginning to reveal how AI transforms human collaboration. Studies show that AI-assisted teams significantly outperform traditional teams, suggesting that AI can effectively replace or enhance certain team functions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21YbIB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YbIB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YbIB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YbIB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YbIB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21YbIB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e0ff34a-e969-479f-9a0e-9f27f17329ea_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;:null,&quot;alt&quot;:&quot;AI Transforming Teamwork&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="AI Transforming Teamwork" title="AI Transforming Teamwork" srcset="https://substackcdn.com/image/fetch/$s_!YbIB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YbIB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YbIB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YbIB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e0ff34a-e969-479f-9a0e-9f27f17329ea_1280x720.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Watch: Atlassian's perspective on AI agents and the future of teamwork</em></p><p>This isn't about replacing humans with machines. Rather, it's about creating new collaborative structures that leverage the unique strengths of both human and artificial intelligence. The most successful organizations of the future will be those that master this human-AI symbiosis.</p><h2><strong>The Convergence: From Tools to Agents</strong></h2><p>As we step back and observe these developments collectively, a profound pattern emerges. What began as separate technological advances in language, vision, scientific research, and other domains is converging toward something qualitatively different&#8212;a transition from AI as tools to AI as agents.</p><p>This is the heart of our story: we are witnessing the birth of AI systems that don't just perform isolated tasks but act with increasing autonomy in complex environments. They observe, decide, act, and learn in ways that increasingly resemble agency rather than automation.</p><p>The distinction is crucial. Tools extend human capabilities but require constant direction. Agents understand goals and independently determine how to achieve them.</p><h2><strong>The Future Belongs to Those Who Understand This Shift</strong></h2><p>This evolution from AI tools to AI agents represents the central inflection point in modern technology&#8212;and perhaps in human history. As we stand at this crossroads, three truths become evident:</p><ol><li><p><strong>The pace of change will continue to accelerate</strong>. What seems remarkable today will be commonplace tomorrow.</p></li><li><p><strong>The most valuable skills will be those that complement AI rather than compete with it</strong>. Human creativity, ethical judgment, and interpersonal connection will become even more precious.</p></li><li><p><strong>The greatest opportunities will come from reimagining rather than merely automating</strong>. Organizations that simply use AI to do the same things faster will be outpaced by those who envision entirely new possibilities.</p></li></ol><p>The future doesn't belong to AI. It belongs to the humans who best understand how to partner with it.</p><p>As we face this unprecedented future, we should approach it neither with blind optimism nor paralyzing fear, but with clear-eyed wonder and responsibility. We are the first generation to witness the birth of a new form of intelligence&#8212;and that carries both extraordinary privilege and profound obligation.</p><p>The tools of creation have never been more powerful. The question now is what we will create with them.</p><div><hr></div><p><em>What's your perspective on these AI developments? Which capability most excites or concerns you? Share your thoughts in the comments below.</em></p>]]></content:encoded></item><item><title><![CDATA[#013: Building Reasoning Agents with Agno: A Comprehensive Tutorial]]></title><description><![CDATA[The code examples that you are going to get in this post are going to be absolutely mindblowing!]]></description><link>https://martinschroder.substack.com/p/building-reasoning-agents-with-agno</link><guid isPermaLink="false">https://martinschroder.substack.com/p/building-reasoning-agents-with-agno</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Mon, 07 Apr 2025 06:01:21 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2Ff_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The code examples that you are going to get in this post are going to be absolutely mindblowing! </p><p>Imagine an AI agent that doesn't just respond with the first solution it finds or based on first tool it uses, but methodically works through complex problems&#8212;step by step, validating its work, and catching errors before they happen and calling more tools when needed. </p><p>Reasoning agents represent a significant advancement in AI capabilities, using simple tweaks and tool use to make models to work through complex problems methodically before producing final outputs. This tutorial explores how to build reasoning agents using the Agno framework, drawing inspiration from Anthropic's <a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fengineering%2Fclaude-think-tool">"think" tool approach</a>.</p><p>First a friendly reminder&#8230; </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://martinschroder.substack.com/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">Agentic Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>Also, connect with me on LinkedIn professionally, if you maintain a LinkedIn account: <a href="iframe.php?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fmartinschroder%2F">https://www.linkedin.com/in/martinschroder/</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fmartinschroder%2F" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ra2s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 424w, https://substackcdn.com/image/fetch/$s_!ra2s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 848w, https://substackcdn.com/image/fetch/$s_!ra2s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 1272w, https://substackcdn.com/image/fetch/$s_!ra2s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ra2s%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png" width="792" height="502" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:792,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:207325,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/in/martinschroder/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://martinschroder.substack.com/i/160740910?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.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_!ra2s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 424w, https://substackcdn.com/image/fetch/$s_!ra2s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 848w, https://substackcdn.com/image/fetch/$s_!ra2s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.png 1272w, https://substackcdn.com/image/fetch/$s_!ra2s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bc803d3-2077-4140-9031-8fcf64db86d5_792x502.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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>What Are Reasoning Agents?</strong></h2><p>According to Agno's documentation, reasoning is the ability to <strong>think and validate</strong> before responding or taking action. Reasoning agents are AI systems designed to:</p><ul><li><p>Break down complex problems into logical steps</p></li><li><p>Think through problems systematically before responding</p></li><li><p>Employ tools when necessary to gather information</p></li><li><p>Backtrack, correct, and validate reasoning steps</p></li><li><p>Make consistent decisions across multiple attempts</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kg-K%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kg-K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 424w, https://substackcdn.com/image/fetch/$s_!kg-K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 848w, https://substackcdn.com/image/fetch/$s_!kg-K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 1272w, https://substackcdn.com/image/fetch/$s_!kg-K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kg-K%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png" width="969" height="672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de63a109-5c37-4746-9e90-98897f70eb19_969x672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:969,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:59539,&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://martinschroder.substack.com/i/160740910?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.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_!kg-K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 424w, https://substackcdn.com/image/fetch/$s_!kg-K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 848w, https://substackcdn.com/image/fetch/$s_!kg-K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 1272w, https://substackcdn.com/image/fetch/$s_!kg-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde63a109-5c37-4746-9e90-98897f70eb19_969x672.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><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" class="icon-noB79L"><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>As described by Ashre Puri, creator of Agno, reasoning agents implement a form of "agentic reasoning" where the agent "works through a problem step by step before presenting a response to the user." This approach combines Chain of Thought reasoning with tool use and adds the ability to backtrack, correct, and validate reasoning steps as needed.</p><p>Agno supports three approaches to reasoning:</p><ol><li><p>Reasoning Models</p></li><li><p>Reasoning Tools</p></li><li><p>Reasoning Agents</p></li></ol><h2><strong>The "Think" Tool Concept</strong></h2><p>Anthropic's research on the <a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fengineering%2Fclaude-think-tool">"think" tool</a> provides valuable insights for implementing reasoning agents. The "think" tool creates dedicated space for structured thinking during complex tasks, allowing models to:</p><ol><li><p>Stop and consider whether they have all necessary information</p></li><li><p>Process external information gathered from tools</p></li><li><p>Perform focused reasoning on new information</p></li><li><p>Navigate policy-heavy environments with detailed guidelines</p></li><li><p>Make sequential decisions where each step builds on previous ones</p></li></ol><p>The core idea is to provide a dedicated space for the model to think through problems before taking actions or responding to users.</p><p>Ready to transform your AI assistant from a fast-but-flawed responder into a careful, methodical thinker that rivals human experts? Let's dive in.</p>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Fbuilding-reasoning-agents-with-agno">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#012: Meet Agno AI: The Lightning-Fast Framework Making AI Agents Actually Usable]]></title><description><![CDATA[In this post I'm going to show you 8 levels of building AI agents using Agno framework from beginner to more advanced (they're all simple!)]]></description><link>https://martinschroder.substack.com/p/meet-agno-ai-the-lightning-fast-framework</link><guid isPermaLink="false">https://martinschroder.substack.com/p/meet-agno-ai-the-lightning-fast-framework</guid><dc:creator><![CDATA[Martin]]></dc:creator><pubDate>Fri, 04 Apr 2025 21:23:51 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21C6Ad%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F648b153c-3f3e-4af5-b9cf-e007c9be6131_1017x330.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this post I'm going to show you 8 levels of building AI agents using Agno framework from beginner to more advanced (they're all simple!)</p><p>If you're building AI agents with frameworks like LangChain or LangGraph, you're probably all too familiar with the frustration: bloated dependencies, and agonizingly slow response times and pure spaghetti code. What should be a seamless experience turns into a resource-hungry monster that is also hard to debug.</p><p><strong>That's where Agno AI comes in.</strong></p><p>Imagine building sophisticated AI agents that respond instantly, require minimal boilerplate code, and have all the features you need. A framework that handles everything from basic text responses to complex multi-modal teams of agents collaborating on your most challenging problems.</p><p>In this post, I'll show you how Agno AI is revolutionizing agent development with a framework that's:</p><ul><li><p><strong>Much simpler</strong> than competing frameworks</p></li><li><p><strong>Extremely well organized</strong> code base that is easy to comprehend.</p></li><li><p><strong>Lightning fast</strong> agent creation and response times</p></li><li><p><strong>Multi-modal by design</strong> - handling text, images, audio and video seamlessly</p></li><li><p><strong>Model agnostic</strong> - no vendor lock-in, use any AI provider you want</p></li></ul><h2><strong>Agno AI</strong></h2><p>Agno AI (formerly known as Phidata) is an open-source framework designed for building advanced, multi-modal AI agents. Here's what I've discovered about it:</p><ol><li><p><strong>Performance</strong></p><ul><li><p>Exceptionally fast with agent creation being much faster than competing frameworks like LangGraph</p></li><li><p>Highly memory efficient (50x less memory usage than LangGraph - LangGraph is soo bloated)</p></li><li><p>Designed for high-performance agentic systems at scale. It really does work anywhere.</p></li></ul></li><li><p><strong>Model Flexibility</strong></p><ul><li><p>Model agnostic - works with any AI model or provider without vendor lock-in</p></li><li><p>No dependency on specific LLM providers</p></li></ul></li><li><p><strong>Multi-Modal Support</strong></p><ul><li><p>Native support for text, image, audio, and video processing</p></li><li><p>Can handle various media types in both input and output</p></li></ul></li><li><p><strong>Tool Integration</strong></p><ul><li><p>Supports a wide range of tools like web search (DuckDuckGo), financial data (YFinance), etc.</p></li><li><p>Easy tool integration for extending agent capabilities</p></li><li><p>Most tools are very simple themselves - great starting point for custom development.</p></li></ul></li><li><p><strong>Agent Architecture</strong></p><ul><li><p>Build individual agents or teams of specialized agents</p></li><li><p>Multi-agent teams that can collaborate on complex workflows</p></li><li><p>Different levels of agent complexity from basic to advanced multi-agent systems</p></li><li><p>Incredible number of really simple samples and examples</p></li></ul></li><li><p><strong>Knowledge Management</strong></p><ul><li><p>RAG (Retrieval-Augmented Generation) capabilities via "Agentic RAG"</p></li><li><p>Integration with vector databases for knowledge storage</p></li><li><p>Support for various knowledge sources including PDFs, directories of text files etc.</p></li></ul></li><li><p><strong>Memory Capabilities</strong></p><ul><li><p>Can store and manage agent state in databases</p></li><li><p>Persistent memory across multiple interactions</p></li></ul></li><li><p><strong>Developer Experience</strong></p><ul><li><p>Simple API for creating agents</p></li><li><p>Structured output support (JSON, Pydantic models)</p></li></ul></li></ol><p>And more..</p><ul><li><p>Active GitHub repository with 23.9k stars and 3k forks</p></li><li><p>Growing community with forum and Discord support</p></li><li><p>Open-source with MPL-2.0 license</p></li><li><p>Recently hosting an AI Agent Hackathon with prizes up to $20,000</p></li></ul><h3><strong>Let's dive in!</strong></h3>
      <p>
          <a href="iframe.php?url=https%3A%2F%2Fmartinschroder.substack.com%2Fp%2Fmeet-agno-ai-the-lightning-fast-framework">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>