<?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[Encyclopedia Autonomica]]></title><description><![CDATA[Trusted by readers at Nasdaq, Nvidia, and Stanford, Encyclopedia Autonomica is the go-to guide for anyone building or deploying autonomous agents. We cover what matters: how real-life AI agents reason, plan, remember, and act.]]></description><link>https://jdsemrau.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!kmqt!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4191238-47fc-439e-9f74-9df5d0617cf7_1024x1024.png</url><title>Encyclopedia Autonomica</title><link>https://jdsemrau.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 11 Apr 2026 10:47:44 GMT</lastBuildDate><atom:link href="https://jdsemrau.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[JDS]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[enyclopedia-autonomica@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[enyclopedia-autonomica@substack.com]]></itunes:email><itunes:name><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></itunes:author><googleplay:owner><![CDATA[enyclopedia-autonomica@substack.com]]></googleplay:owner><googleplay:email><![CDATA[enyclopedia-autonomica@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Autonomous Agents in Space Logistics and In-Space Manufacturing]]></title><description><![CDATA[I haven&#8217;t written about space for too long a time.]]></description><link>https://jdsemrau.substack.com/p/autonomous-agents-in-space-logistics</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/autonomous-agents-in-space-logistics</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 30 Mar 2026 11:07:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WFU-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It's been too long since I've written about space.</p><p>Now that <a href="https://grokipedia.com/page/Artemis_program">Artemis 2</a> is launching to the moon in just a (likely) couple of hours, I figured it might be a good idea to talk about Autonomous Agents and ISAM <a href="https://jdsemrau.substack.com/p/isam-in-space-servicing-assembly">again</a>. </p><p>I believe, and hope that I am right, that we are just at the cusp of a civilizational upgrade. </p><p>And in my opinion, AI in general and autonomous agents in particular will kick off a Renaissance of Exploration. Not only in space, but also within <a href="https://www.reuters.com/investigations/china-is-mapping-ocean-floor-it-prepares-submarine-warfare-with-us-2026-03-24/">oceans</a>. </p><p>If you think that AI will kill all the jobs, you are lacking imagination. </p><p>My hypothesis is that autonomous agents will evolve into an important operating layer of space logistics and in-space manufacturing. </p><p>In the U.S. ecosystem, the shift is already visible across NASA&#8217;s<a href="https://www.nasa.gov/isam/"> ISAM program</a>, commercial on-orbit servicing missions, refueling demonstrations, and orbital manufacturing flights that return products to Earth.</p><p>If you look at this screenshot from the ISAM website, it becomes quickly obvious what I am talking about. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!svd8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!svd8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 424w, https://substackcdn.com/image/fetch/$s_!svd8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 848w, https://substackcdn.com/image/fetch/$s_!svd8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 1272w, https://substackcdn.com/image/fetch/$s_!svd8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!svd8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png" width="1456" height="859" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:859,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:732950,&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://jdsemrau.substack.com/i/192492097?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.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_!svd8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 424w, https://substackcdn.com/image/fetch/$s_!svd8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 848w, https://substackcdn.com/image/fetch/$s_!svd8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 1272w, https://substackcdn.com/image/fetch/$s_!svd8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a1af5ff-a7ea-41a8-9aca-c5b33a083ee1_2836x1674.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://www.nasa.gov/isam/">source</a></p><p>In that sense, space mobility is no longer just about launch and transit. </p><p>Not only because of the renewed interest in<a href="https://fortune.com/2026/02/19/ai-data-centers-in-space-elon-musk-power-problems/"> data centers in space.</a></p><p>If we intend to have persistent assets in space that we can use for more than providing internet services, then Space Mobility will also include autonomous inspection, rendezvous, docking, servicing, refueling, assembly, production, and return logistics, often in environments where latency, cost, and risk make human presence too dangerous or too expensive.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><h4><strong>From transport to operations</strong></h4><p>The traditional picture of space mobility focused on getting payloads from Earth to orbit. That model is now widening into a networked logistics stack: </p><ol><li><p>satellites need servicing, </p></li><li><p>stations need resupply, </p></li><li><p>hardware needs assembly, and </p></li><li><p>products may be manufactured in orbit and brought back to Earth.</p></li></ol><p>Autonomy matters because orbital operations are constrained by communication delays, limited crew time, and narrow mission windows. In that setting, autonomous agents are not just decision-support tools; they are mission controllers, robotic coordinators, fault handlers, and task planners that reduce human workload while increasing mission tempo.</p><p>NASA&#8217;s ISAM program is the clearest institutional expression of this shift. NASA describes ISAM as a framework for in-space servicing, assembly, and manufacturing that includes robotic technologies for extending spacecraft life, refueling, repairing, and building systems in orbit. That makes it a natural home for autonomous agents, because every one of those tasks requires sensing, planning, manipulation, and contingency handling in a high-risk environment. </p><p>Of course, similar to autonomous driving, latency will likely not be good enough in the near term to have an AI Agent reason about how to execute a docking maneuver autonomously.</p><h4><strong>Why is autonomy different in space?</strong></h4><p>Autonomy in space is not the same as autonomy on Earth. Orbital systems operate with limited power, strict thermal budgets, narrow communications windows, and extremely high costs for failure. Once a spacecraft is deployed, it must often make decisions with incomplete information and recover from off-nominal situations without immediate ground intervention.</p><p>That creates a strong case for layered autonomy. </p><p>A mission may use low-level high-frequency controls for guidance and navigation, mid-level planning for task sequencing, and higher-level agents for reasoning about goals, constraints, and contingencies. The value of the agent is not only that it can execute a sequence, but that it can adapt when the sequence breaks down.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xoH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xoH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 424w, https://substackcdn.com/image/fetch/$s_!xoH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 848w, https://substackcdn.com/image/fetch/$s_!xoH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!xoH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xoH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png" width="1440" height="1144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1144,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:206481,&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://jdsemrau.substack.com/i/192492097?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.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_!xoH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 424w, https://substackcdn.com/image/fetch/$s_!xoH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 848w, https://substackcdn.com/image/fetch/$s_!xoH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!xoH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0e36b9-082b-44f4-a16b-b0f674895e28_1440x1144.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is especially relevant for logistics. </p><p>Unlike a single-point mission, like placing a satellite in a pre-defined orbit, logistics is about coordination across multiple nodes, vehicles, payloads, and time horizons. </p><p>In space, this means that autonomous scheduling, rendezvous management, robotic servicing, and return logistics all need to be treated as part of one system.</p><h4><strong>NASA&#8217;s ISAM program</strong></h4><p>Similar to the role DARPA had for the Internet and its economy, NASA is the most important U.S. government anchor for this topic, probably in the world. The main economic incentive for ISAM is that it is ecologically AND economically viable to bring goods into space and return them frequently. Even if SpaceX&#8217;s Starship will provide much larger payloads in the near to mid-term. </p><p>It has been <a href="https://www.space.com/spacex-starship-rocket-launches-environmental-impact">estimated</a> that &#8220;<em>one Starship launch produces 76,000 metric tons of carbon dioxide equivalent.&#8221;</em></p><p>Therefore, ISAM needs to have the goal to mature technologies for extending satellite life, refueling and repairing spacecraft, and enabling assembly and manufacturing <strong>in orbit.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rnPM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rnPM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 424w, https://substackcdn.com/image/fetch/$s_!rnPM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 848w, https://substackcdn.com/image/fetch/$s_!rnPM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 1272w, https://substackcdn.com/image/fetch/$s_!rnPM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rnPM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png" width="1440" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93581,&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://jdsemrau.substack.com/i/192492097?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.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_!rnPM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 424w, https://substackcdn.com/image/fetch/$s_!rnPM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 848w, https://substackcdn.com/image/fetch/$s_!rnPM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 1272w, https://substackcdn.com/image/fetch/$s_!rnPM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff74d4e2b-8c77-473e-9570-44342a9881fc_1440x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The significance of ISAM is that it treats orbit as the operational environment and not just a destination. </p><p>Instead of assuming every spacecraft is disposable, we have to build toward reusable systems, maintenance capability, and orbital infrastructure, similar to how our cars and trains are reusable. Still, the environment where we are operating is not conducive to human health; therefore, in this vision of an autonomy-heavy future, robots and software must perform tasks that historically required a full ground team or a crewed mission.</p><p>Within this framing, autonomous agents become the digital layer that turns capability into operations. A robotic arm, inspection spacecraft, or assembly platform still needs planning, health monitoring, task decomposition, and exception handling. </p><p>In other words, autonomy is what converts hardware into a service.</p><p>Let&#8217;s develop a rough timeline.</p><h4><strong>The servicing layer</strong></h4><p>On-orbit servicing is one of the most mature near-term applications for autonomous space systems. It includes inspection, life extension, refueling, relocation, repair, and disposal support. These tasks are logistically complex because they require precise approach trajectories, relative navigation, robotic interaction with existing satellites, and high reliability in a domain where physical contact is expensive and risky.</p><p><a href="https://www.northropgrumman.com/what-we-do/space/space-logistics-services">SpaceLogistics</a>, a Northrop Grumman company, is a particularly interesting solution to this problem. Its mission-extension and robotic servicing work illustrate how autonomy underpins commercial satellite life extension, especially for assets in GEO. </p><p>Another company active in this layer is <a href="https://space-phoenix.com/">Space Phoenix Systems.</a> Their core offering is a "Returnable Payload-on-Demand" (R/PoD) service, which allows companies to send materials or experiments to orbit and get products returned to Earth. They target industries where microgravity enables breakthroughs impossible on Earth,  including semiconductors, biotechnology and pharmaceuticals, and photovoltaics. Examples of customers include companies growing purer semiconductor crystals, manufacturing higher-clarity fiber optics, and bioprinting artificial retinas in orbit. </p><h4><strong>Refueling as logistics</strong></h4><p>Refueling is one of the most compelling examples of autonomous space logistics because it requires high precision and trust. </p><p>If you consider that satellites in LEO need to maintain a speed of 28,000 to 29,000 km/h to keep orbital velocity to not experience orbital decay, a refueling mission evolves into a coordinated high-risk interaction between spacecraft that must approach, align, connect, and transfer propellant safely.</p><p><a href="https://www.astroscale.com/en/news/astroscale-u-s-to-lead-the-first-ever-refueling-of-a-united-states-space">Astroscale</a> is a New Space company that has already flown refueling missions for a U.S. Space Force asset.</p><p>Starfish&#8217;s <a href="https://www.starfishspace.com/press-release/starfish-space-unveils-otter-pup-2-mission/">Otter Pup 2</a> mission is also attempting a first commercial satellite docking in low Earth orbit. Even though their recent <a href="https://spacenews.com/starfish-space-finds-a-new-partner-for-docking-demonstration-mission/">partner D-Orbit</a> didn&#8217;t work out.  Starfish Space <a href="https://spacenews.com/space-force-awards-54-5-million-contract-to-starfish-space-for-geo-servicing-vehicle/">won a $54.5 million contract from the U.S. Space Force</a> to build and operate a spacecraft designed to support military satellites in geostationary Earth orbit.</p><p>For refueling, agents can simplify mission architecture by automatically interpreting navigation data, managing relative motion, and handling safety constraints. Human operators may supervise the mission, but the actual execution requires machine precision and often machine-level responsiveness.</p><h4><strong>Autonomous logistics in GEO</strong></h4><p>Geostationary orbit (GEO) is also a useful place to discuss autonomy because the assets there are expensive, long-lived, and strategically valuable, despite being much further away from Earth. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EXGa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EXGa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 424w, https://substackcdn.com/image/fetch/$s_!EXGa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 848w, https://substackcdn.com/image/fetch/$s_!EXGa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 1272w, https://substackcdn.com/image/fetch/$s_!EXGa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EXGa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png" width="1440" height="1016" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1016,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163168,&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://jdsemrau.substack.com/i/192492097?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.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_!EXGa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 424w, https://substackcdn.com/image/fetch/$s_!EXGa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 848w, https://substackcdn.com/image/fetch/$s_!EXGa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 1272w, https://substackcdn.com/image/fetch/$s_!EXGa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e3399d-93d5-4362-b538-5e28156902b0_1440x1016.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Since its much further away, a GEO satellite that loses fuel, drifts, or degrades may still be salvageable if a service vehicle can reach it in time. </p><p>That makes GEO an interesting proving ground for autonomous servicing platforms. </p><h4><strong>The manufacturing frontier</strong></h4><p>But the real frontier will be the production of goods and services. In-space manufacturing changes the logic of supply chains. Instead of launching every component from Earth, some materials, parts, or even finished products may be produced in orbit where microgravity offers unique advantages. </p><p>This is why manufacturing is increasingly included under the ISAM umbrella rather than treated as a separate curiosity.</p><p><a href="https://www.varda.com/">Varda Space Industries</a> is an interesting provider here because it has already demonstrated orbital manufacturing with recovery back to Earth. That closed-loop model is important: it combines production in space with return logistics, proving that orbit can function as part of a broader industrial system rather than as a one-way destination.</p><p>For autonomous agents, manufacturing in orbit requires several layers of coordination. Systems must monitor process conditions, manage thermal and power constraints, sequence operations, and coordinate return windows. If the manufacturing platform is also autonomous, then its value lies not only in producing material but in reducing the operational burden of producing it.</p><p>As mentioned, to me, Varda is interesting because they bridge manufacturing and logistics in one mission architecture. The company&#8217;s orbital capsules are not just production platforms; they are also reentry and recovery systems, which means the logistics problem does not end when the part is made. </p><p>The return path is part of the product.</p><h4><strong>Space mobility as infrastructure</strong></h4><p>The <a href="https://aerospace.org/">Aerospace Corporation</a> treats mobility as an emerging infrastructure layer rather than a single mission type. And I think they are right. If we see mobility as the connective tissue linking launch, rendezvous, servicing, and manufacturing, then autonomous agents are the control logic of the infrastructure. </p><p>Now agents manage schedules, navigate the constraints of orbital mechanics, handle contingency operations, and support safe interaction between assets. </p><p>Without autonomy, the system scales poorly; with autonomy, it begins to resemble a real logistics network.</p><p>This is a major shift from older mission design. </p><p>Historically, spacecraft were isolated platforms. Now they are increasingly nodes in a service ecosystem, and that ecosystem requires machine-coordinated operations. A robotic vehicle can execute motions, but an agent can also interpret task goals, choose among alternatives, and adapt to changing conditions.</p><p>The <a href="https://arxiv.org/html/2402.14299v1">SpaceAgents-1 research paper </a>proposes a hierarchical multi-agent architecture for microgravity collaboration, including a Decision-Making Agent and Skill-Expert Agents. Even though the paper focuses on human and multi-robot collaboration, the architecture is highly relevant to orbital logistics because it shows how complex activities can be decomposed into specialized agent roles.</p><p>That decomposition maps well onto space logistics. One agent can manage mission planning, another can supervise navigation, another can evaluate system health, and another can coordinate robotics or payload operations. In practice, this kind of architecture helps turn a spacecraft or platform into a service-oriented autonomous system.</p><h4><strong>Human-robot collaboration</strong></h4><p>Fortunately, autonomy in space does not eliminate humans; it changes their role. In many near-term systems, humans still define objectives, validate safety, and handle exception cases, while agents execute routine or semiautonomous operations.</p><p>That matters in microgravity and orbit because the environment is too risky for fully manual operation, yet too complex for simple static automation. The result is a collaborative model in which agents and humans share responsibility, with agents carrying more of the operational burden as confidence grows.</p><p>This is one reason why in-space manufacturing is such a fascinating topic. </p><p>Manufacturing creates repeated, structured, and measurable tasks, which are ideal for agentic orchestration. A platform that can autonomously manage workflows, track process state, and call for human intervention only when needed is much more scalable than a platform that depends on constant supervision.</p><p>Autonomy changes economics by lowering the cost of repeated operations. </p><p>In space, that can mean fewer dedicated crew hours, reduced dependence on scarce human operators, better asset utilization, and longer mission lifetimes. It can also create new revenue streams, such as orbital servicing, payload processing, and in-space manufacturing.</p><p>This is important because many space business models only work if operations become routine. A one-off demonstration is interesting, but a real market emerges when servicing or manufacturing can be repeated, scheduled, and priced like an infrastructure service. Autonomy is what makes repetition plausible at scale.</p><p>For that reason, the article should emphasize that autonomous agents are not a futuristic add-on. They are the operational enablers that make a logistics economy viable beyond Earth.</p><h4><strong>The strategic conclusion</strong></h4><p>The U.S. is unsurprisingly leading in this space because logistics, servicing, and manufacturing sit at the intersection of commercial growth and national defense capability. NASA&#8217;s ISAM program provides the research and technology backbone, while commercial firms are turning those capabilities into operational missions.</p><p>What is unique now is that several capabilities are converging at once. </p><p>Orbital servicing is becoming commercially credible, in-space manufacturing is moving from experiment to product, and government programs are explicitly investing in robotics and autonomy for orbital operations.</p><p>That combination matters because autonomous space logistics is not just a technology story. </p><p>It is also a policy, industrial, and strategic story about keeping orbital assets useful for longer and building a market for reusable, maintainable, and serviceable systems. </p><p>And, in my opinion, the European Union will never get to the speed required to compete effectively in this space. </p><p>As we are moving from isolated spacecraft toward serviced orbital infrastructure, autonomous agents become the natural operating model for space mobility. They are evolving into the hidden infrastructure that allows space logistics and manufacturing to exist as scalable industries.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WFU-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WFU-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!WFU-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!WFU-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!WFU-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WFU-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png" width="1152" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1692280,&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://jdsemrau.substack.com/i/192492097?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.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_!WFU-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!WFU-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!WFU-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!WFU-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958dd887-334f-4d2c-b6ce-36362b335565_1152x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Absurd Effectiveness of Skills.md]]></title><description><![CDATA[this essay explores how we truly learn, by doing, and why that insight matters for the future of AI and knowledge work. As the shift from search engines to answer engines accelerates, a new paradigm emerges: cowork engines powered by &#8220;skills.&#8221; These structured, procedural workflows transform AI from passive responder to active collaborator. Using real-world examples like evolving developer tools, the piece argues that skills enable process stability, context efficiency, and organizational memory, turning AI systems into reliable operators rather than inconsistent assistants. In an era of SaaS disruption and agentic AI, the competitive edge lies not in models alone, but in codified expertise. Skills are the missing layer that bridge reasoning and execution, making AI systems scalable, disciplined, and truly useful.]]></description><link>https://jdsemrau.substack.com/p/the-absurd-effectiveness-of-skillsmd</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/the-absurd-effectiveness-of-skillsmd</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 23 Mar 2026 03:07:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IqSc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>&#8220;For the things we have to learn before we can do them, we learn by doing them&#8230; we become just by doing just acts, temperate by doing temperate acts, brave by doing brave acts.&#8221;</p></blockquote><p>(<em><a href="https://classics.mit.edu/Aristotle/nicomachaen.2.ii.html">Nicomachean Ethics</a></em><a href="https://classics.mit.edu/Aristotle/nicomachaen.2.ii.html">, Book II</a>)</p><p>It was a cold, bright morning in March, and the clocks were striking seven when the first sunlights of a new dawn woke me up after a sleepless night on Ulan Bator airport. Having finished a project in the Far East, it was the fastest and probably safest way home while Iran drowned the Middle East in a curtain of missiles. </p><p>And while I was sipping from an overpriced airport Americano, I started to think about the future of knowledge work. </p><p>For the last 20 years, the Internet has provided Tech and <a href="https://en.wikipedia.org/wiki/Global_labor_arbitrage">Labor Arbitrage</a> companies with tremendous fortune. With recent news about the <a href="https://www.forbes.com/sites/jonmarkman/2026/02/17/the-saas-apocalypse-or-the-saas-evolution/">SaaS-apocalypse</a>, one might wonder if that is all about to change? </p><p>Initially, I thoughts its a bit naive, as there is so much more to building and running a business than just writing code. But after implementing Agents with skills I am not so sure anymore. </p><p>AI Agents will fundamentally change how we build and operate software. </p><p>Will AI Agents also fundamentally change how knowledge works?</p><h4>How to get coffee?</h4><p>I&#8217;ve never been to Ulan Bator airport and have no intention to return. So when I wanted to drink my morning coffee, I had no memory of where I would get a coffee. </p><p>Framed as a traditional search problem, I would have started scanning my surroundings for any hints that might point me towards an open coffee shop. Within the environment of the airport, it provides me with the broadest set of options but also the broadest set of failures. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mSY-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mSY-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 424w, https://substackcdn.com/image/fetch/$s_!mSY-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 848w, https://substackcdn.com/image/fetch/$s_!mSY-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 1272w, https://substackcdn.com/image/fetch/$s_!mSY-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mSY-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png" width="1456" height="134" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:134,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18511,&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://jdsemrau.substack.com/i/189303647?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.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_!mSY-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 424w, https://substackcdn.com/image/fetch/$s_!mSY-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 848w, https://substackcdn.com/image/fetch/$s_!mSY-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 1272w, https://substackcdn.com/image/fetch/$s_!mSY-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe07c4813-3bc3-4ef9-9c01-262d454e0954_1544x142.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>When framed as an answer problem, in the absence of digital tooling, I would have to wait for the information desk to open up so I could ask the airport employee in natural language to receive a directional answer. This answer already filters its response based on training data, guardrails, and implicit bias. </p><p>For that reason, I find answer engines like ChatGPT or Claude less useful than search engines. Answer engines limit optionality and largely present a selection of the truth, even with clever prompting. </p><p>And I don&#8217;t mean Answer engines are bad. I just think they're the wrong tool for certain problems </p><p>It&#8217;s just that answer engines are optimized for resolution, not exploration. </p><p>The response arrives pre-filtered, pre-weighted, pre-concluded. That works when the question is simple, and the cost of a wrong answer is low. But it breaks down when the decision space is genuinely ambiguous. I.e., when you are not 100% sure what you are looking for, and the journey towards that conclusion is the goal </p><p>Is there another way? </p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/p/the-absurd-effectiveness-of-skillsmd?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Encyclopedia Autonomica! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/p/the-absurd-effectiveness-of-skillsmd?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/p/the-absurd-effectiveness-of-skillsmd?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p>Over the last few months, I formed the opinion that answer engines are only an intermediary step towards cowork engines. I am still struggling to find a succinct definition, but loosely explained, cowork engines act as critical guides through the problem space. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9qN6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9qN6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 424w, https://substackcdn.com/image/fetch/$s_!9qN6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 848w, https://substackcdn.com/image/fetch/$s_!9qN6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 1272w, https://substackcdn.com/image/fetch/$s_!9qN6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9qN6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png" width="960" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:323014,&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://jdsemrau.substack.com/i/189303647?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.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_!9qN6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 424w, https://substackcdn.com/image/fetch/$s_!9qN6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 848w, https://substackcdn.com/image/fetch/$s_!9qN6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 1272w, https://substackcdn.com/image/fetch/$s_!9qN6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe053030f-d352-47c8-bb21-42ae33e7ae8a_960x540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you consider this screenshot of my trusty agent Superbill, then the orange section &#8220;news&#8221; is the search engine that just creates a list of news about the stock. The green section is the answer engine, and together they form the workspace engine (yellow, but actually a combination of all these engines). </p><p>In this progression, they shift the primary goal from simply finding information to understanding it, and ultimately to executing complex tasks itself.</p><p>And that is something that I believe has changed with the introduction of skills.</p><h4>Dynamic Process Patterns</h4><p>Skills provide an incredibly elegant way for agentic systems to understand not only the fact, but also the process. I.e., if a prompt describes the know-that in a single moment, then a skill is a codified playbook that explains know-how within a series of steps.</p><p>In practice, that means that skills act as scaffolding that keeps the system stable as it scales in complexity.</p><p>Or in other words:</p><p>Skills are</p><ol><li><p>dynamic patterns that help the agent navigate a sequence of activities</p></li><li><p>similar to SOPs (Standard Operating Procedures) skills are reviewed regularly and adjusted where needed, </p></li><li><p>effective when operating with context reliably.</p></li></ol><p>And if you want to build workspace engines, then this matters because the hardest part of building agent systems is not the model or the agent framework itself, but having them engage with the workspace effectively and reliably. </p><p>That means Skills need to be able to ensure:</p><p><strong>1) Process stability</strong></p><p>A skill encodes a workflow. When the system needs to triage an investment idea, it can load a skill that defines the procedure step by step. When it needs to conduct another workflow, it loads a different skill. Each of these workflows has access to a predefined set of tools. </p><p><strong>2) Context efficiency</strong></p><p>Without skills, every task becomes just a large prompt. That is expensive and can be brittle. With skills, the system only loads the workflow it needs at the time it&#8217;s requested. More importantly, how and which part of workspace is used in skills is included in the skill definition.</p><p><strong>3) Memory management</strong></p><p>Since they are based on SOP&#8217;s, skills encode institutional knowledge. That makes the agent aligned not just to a user&#8217;s momentary request, but to a repeatable standard of analysis.</p><h4>Implementing Skills </h4><p>Superbill implements skills following the <a href="https://github.com/anthropics/skills">Anthropic</a> definition as local, filesystem&#8209;based modules with simple metadata and procedural instructions. </p><p>Each skill is a directory containing a `SKILL.md` file with:</p><p>- <strong>A name and description</strong> (for discovery / progressive disclosure). Progressive disclosure means that the agent doesn&#8217;t load all skills at once. Superbill discovers them when relevant. </p><p>- <strong>A minimal procedure</strong> (for execution of deterministic tools and sourcing of knowledge and/or other resources) </p><p>I like to register my skills as plugins in my application. This means that the agent can list within the session window available skills and read the specific one that matches the request. </p><p>I also implemented a manual &#8220;/help&#8221; helper function to help me remember. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tf_V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tf_V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 424w, https://substackcdn.com/image/fetch/$s_!Tf_V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 848w, https://substackcdn.com/image/fetch/$s_!Tf_V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 1272w, https://substackcdn.com/image/fetch/$s_!Tf_V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tf_V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png" width="601" height="746" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a511942d-8e26-4749-9f49-b66bda28f47a_601x746.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:746,&quot;width&quot;:601,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:135386,&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://jdsemrau.substack.com/i/189303647?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.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_!Tf_V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 424w, https://substackcdn.com/image/fetch/$s_!Tf_V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 848w, https://substackcdn.com/image/fetch/$s_!Tf_V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 1272w, https://substackcdn.com/image/fetch/$s_!Tf_V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa511942d-8e26-4749-9f49-b66bda28f47a_601x746.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Portfolio of Capabilities</h4><p>In contrast to tools, plugins allow me to deterministically execute skills. Superbill&#8217;s skill set is modeled around investing processes and should as such resemble an investor&#8217;s operating system. Or, how I mentioned in my previous post on the topic an ambient financial intelligence layer. In this layer, UI patterns should be different from a generic ChatGPT/ Claude instance as you can now simply type /skill-name to run a skill. </p><p>Each skill executes exactly one distinct workflow.</p><p>Additionally, you can add extra context after the name: /compare vs MSFT and NVDA. </p><p>Here are the ones that I am using right now. </p><p><strong>Research &amp; Analysis</strong></p><ul><li><p>/equity-research-report : Full institutional report: BUY/SELL/HOLD, price target, 8 sections</p></li><li><p>/investment-quick-screen : Quick screen: Proceed or Reject a new idea</p></li><li><p>/deep-fundamental-underwriting: Intrinsic value, earnings power, 3-scenario memo</p></li><li><p>/variant-perception-detection : Find where consensus is wrong, i.,e., a mispricing thesis</p></li><li><p>/thesis-integrity-audit: Hold / Add / Reduce / Exit after a material event</p></li><li><p>/news-article-deep-dive: Deep analysis of a headline from stock context</p></li></ul><p><strong>Portfolio &amp; Position Management</strong></p><ul><li><p>/conviction-calibration-engine: Adjust position size based on current conviction</p></li><li><p>/position-sizing-concentration: Recommended position size and tier</p></li><li><p>/portfolio-construction-optimizer: Rebalancing recommendation + concentration health score</p></li><li><p>/daily-portfolio-monitoring: Thesis intact / weakened / broken + action</p></li><li><p>/exit-discipline-engine: Exit / Trim / Maintain near full valuation</p></li><li><p>/performance-attribution-error-analysis: Monthly performance report + process refinements</p></li></ul><p><strong>Risk &amp; Crisis</strong></p><ul><li><p>/capital-preservation-protocol: Defensive restructuring plan on drawdown</p></li><li><p>/crisis-capital-allocation: Capital deployment plan during market stress</p></li><li><p>/activist-feasibility-analysis: Passive / Engage / Full Activism decision</p></li></ul><p><strong>Utilities</strong></p><ul><li><p>/chart-writeup: Render a bar or line chart of financial data</p></li><li><p>/compare: Compare this stock vs peers or a specific ticker</p></li><li><p>/graph-writeup: Render a relationship map or business model diagram</p></li><li><p>/table-writeup: Present data in a formatted table</p></li><li><p>/calculator: Arithmetic, ratios, growth rates, unit conversions</p></li></ul><p>The agent can move from one skill to another as the research process evolves. </p><p>Let&#8217;s start with a simple skill. </p><p>A calculator.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">---
name: calculator
description: Perform accurate numeric calculations and conversions. Use when the user asks for arithmetic, percentages, ratios, growth rates, unit conversions, or any multi-step computation where precision matters.
---

# Calculator

## Overview

Compute precise results from user inputs, using a reliable calculation method, and return a clear final value with units and rounding.

## Quick Use

1. Restate inputs and assumptions (units, rounding, time basis).
2. Build a single expression or small sequence of steps.
3. Compute with a calculator tool or the local script at `scripts/calc.py` (prefer deterministic math).
4. Return the final result with units and any requested precision.

## Tasks

### Arithmetic and percentages

Use explicit formulas. Example: "X is 12% of 350" -&gt; 350 * 0.12.

### Ratios and growth rates

Normalize to consistent units, then compute. Example: growth rate = (new - old) / old.

### Unit conversions

Convert to base units before combining values. If a conversion factor is ambiguous, ask a clarifying question.

### Ranges and rounding

If inputs are ranges, compute min and max. Round only at the end unless the user specifies otherwise.

## Output

Use a short, direct result format.

Example:

```text
Result: 42.75 USD
```

## Script

Use `scripts/calc.py` for deterministic evaluation when the math is non-trivial or the user requests strict accuracy.
</code></pre></div><p>The key ability here is that the agent executes a deterministic script to calculate figures instead of relying on the LLM. I have structured the skills in basic skills (graph/chart generation, data-source finding, calculator, etc) and advanced skills that rely on the basic skills. In my opinion, this gives Superbill a distinct advantage: the system follows a clear process and works with a well-engineered context.</p><p>The skill for equity research is already more complex.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Equity Research Report
Purpose: Produce a full sell-side-style research report for a single ticker with a clear recommendation, price target, and probability-weighted scenarios.

Trigger: User asks for a comprehensive equity analysis, full research report, trading ideas, or "banker-style" writeup on a ticker.

Data Sources
Follow this order &#8212; do not ask the user which source to use:

Context first: Check &lt;stock_context&gt; and &lt;acquired_data&gt; for financials, news, sector, peers, and existing thesis. Use what is already loaded.
Fetch if missing &#8212; call in parallel where possible:
INCOME_STATEMENT &#8212; revenue, gross profit, EBIT, net income (annual, 5yr)
CASH_FLOW &#8212; OCF, capex, FCF (annual, 5yr)
BALANCE_SHEET &#8212; debt, equity, cash
EARNINGS &#8212; EPS history, surprises, forward estimates
OVERVIEW &#8212; sector, description, peers, dividend history
get_technical_indicators &#8212; RSI, MACD, 50/200-day MAs, 52-week range
get_news &#8212; recent headlines (last 30 days)
get_analyst_estimates &#8212; consensus price target, range, rating distribution
Web search (if tools missing specific data):
Search in parallel: recent earnings, options flow, insider filings, analyst upgrades/downgrades, sector rotation data.
Ask only if both fail: use request_user_input asking for the specific missing values.

Process
1. Research &#8212; Execute in Parallel
Financial performance: revenue growth, margins, key KPIs with exact numbers and YoY/QoQ timeframes.
Market positioning: peer valuation multiples (P/E, EV/EBITDA, P/S, P/B), competitive analysis.
Advanced intelligence: technical levels, options flow (put/call ratios, unusual activity, IV trends), insider filings (Form 4, dollar amounts, executive names), institutional ownership changes.

2. Build the Report &#8212; Sections in Order
Executive Summary

Clear BUY / SELL / HOLD with conviction level (High/Medium/Low).
12-month price target with % upside/downside from current price.
1&#8211;2 sentence investment thesis: primary catalyst + risk-reward characterisation.
Fundamental Analysis

Recent financial metrics: revenue growth %, margins (gross/operating/net), FCF yield &#8212; all with specific numbers and timeframes.
Peer comparison: P/E, EV/EBITDA, P/S vs sector median with named competitors.
Forward outlook: management guidance, analyst consensus EPS/revenue estimates.
Catalyst Analysis

Near-term (0&#8211;6 months): earnings dates, product launches, regulatory decisions &#8212; include specific dates where known.
Medium-term (6&#8211;24 months): strategic initiatives, market expansion, competitive shifts.
Event-driven: M&amp;A potential, index inclusion/exclusion, spin-offs, capital returns.
Valuation &amp; Price Targets

Analyst consensus: $X (range $low&#8211;$high).
Bull case $X &#8212; state the specific assumption (e.g. margin expansion, market share gain).
Base case $X &#8212; consensus assumptions, stable execution.
Bear case $X &#8212; risk scenario (e.g. competition, margin compression).
Probability weighting: Bull X% / Base Y% / Bear Z% summing to 100%.
Risk Assessment

Company risks: competitive threats, regulatory exposure, execution risk, leverage.
Macro risks: rate sensitivity, economic cycle, sector rotation impact.
Position sizing: X%&#8211;Y% allocation based on beta / volatility / conviction.
ESG: flag only if material to institutional ownership.
Technical Context &amp; Options Intelligence

Current price vs 52-week range; distance from 50-day and 200-day MA.
Key support and resistance levels (specific prices).
Volume patterns: accumulation or distribution signal.
Options flow: put/call ratio, unusual block activity, IV level vs historical, term structure skew.
Momentum: RSI (overbought/oversold), MACD signal.
Market Positioning

Stock performance vs sector ETF and S&amp;P 500 over 1M / 3M / YTD (specific %).
Sector rotation trends affecting the position.
Relative strength vs closest peers.
Insider Signals

Recent insider buy/sell transactions: name, role, dollar amount, date.
Share buyback programme status and remaining authorisation.
Institutional ownership trend: latest 13F changes (add/reduce/new/exit).
Pattern interpretation: what the insider behaviour signals about management conviction.

3. Recommendation Summary Table
Metric&#9;Value
Rating&#9;BUY / SELL / HOLD
Conviction&#9;High / Medium / Low
Price Target&#9;$X
Timeframe&#9;12 months
Upside/Downside&#9;X%
Suggested Position&#9;X%&#8211;Y%

Output Standards
Use institutional terminology: EBITDA, EV/Sales, FCF yield, WACC, beta.
All financial metrics must include specific numbers; no vague qualitative statements without data.
Price targets must show the upside/downside calculation.
Cite analyst firms by name when referencing price target updates.
Include both bullish and bearish scenarios &#8212; no one-sided reports.
Keep each section tight and scannable: short paragraphs or bullet lists.
End every report with: "This analysis is for educational and research purposes only. Not financial advice. All investments carry risk of loss."

Output Format
The entire research report must be formatted as a thesis-ready markdown document. Write all sections listed under "Build the Report" above in order. The complete report goes into the thesis field of the JSON output.

Thesis Field Rule: Always populate the thesis field in the JSON output with the complete equity research report following the structure above. Include:

Executive Summary with BUY/SELL/HOLD and price target
Fundamental Analysis with specific financial metrics
Catalyst Analysis with dated events
Valuation &amp; Price Targets (bull/base/bear)
Risk Assessment
Technical Context &amp; Options Intelligence
Market Positioning
Insider Signals

Recommendation Summary Table
This is an advanced skill &#8212; thesis upserting is mandatory. Never return empty thesis field.

Escalate / Hand-off
If thesis meets high-conviction long criteria &#8594; escalate to deep-fundamental-underwriting for full intrinsic value model.
If significant downside risk identified &#8594; escalate to capital-preservation-protocol.
If insider/senator signal is anomalous &#8594; surface to user before final recommendation.</code></pre></div><p>Interesting to note, in my opinion, is that I enforce that thesis upserting is mandatory. That means that the agent has to upsert the output into the existing thesis. The thesis section within the workspace is the primary output, and it is driven almost entirely by skills. </p><p>When I ask for an analysis, the /investment-quick-screen skill generates a one&#8209;page hypothesis summary. I always get the output in the same format. I don&#8217;t need to type, and I can continue working with the output. </p><p>We have established that skills are workflow. Yet, workflow would be nothing without tool-use. Tools like SEC filings, news aggregation, or insider trades can be exposed to skills. Skills decide when to use them. This keeps the system grounded. And this is also a big difference from MCP. MCP provides a standard way to expose tools. However, this can be unreliable in terms of when and how to use those tools. </p><p>Skills solve this. </p><p>- The underwriting skill calls the EDGAR/SEC API to ground its analysis in filings. </p><p>- The daily monitoring skill sources news and filings across several sources to detect thesis drift.  </p><h4>Skills and Memory</h4><p>The hardest part of building reliable agent systems is managing memory. Most systems treat memory as a single flat context window, loading everything the agent might need into one undifferentiated blob. This breaks down when the system needs to act on information that operates on very different timescales.</p><p>Even here, skills help to structure memory.</p><p>Superbill solves this with a 4-tiered memory architecture, where each layer has a distinct purpose, a distinct lifespan, and a distinct relationship to the skills that depend on it.</p><p><strong>Procedural memory is the skill itself.</strong> It encodes how to reason, not what to reason about. It changes rarely, maybe when a workflow needs refinement, and it never gets contaminated by session-level noise. When the equity-research skill loads, it brings a stable set of instructions that remain constant regardless of which stock is being analyzed or what the market did yesterday. This is the foundation that makes skill output reproducible.</p><p><strong>Sequential memory is the active conversation.</strong> It carries the current conversation between the context, the user, and the agent: what the user asked, what the agent returned, what decisions were made mid-session. Skills read from it to avoid repeating work or contradicting a prior step, but they don&#8217;t rely on it for facts about the world.</p><p><strong>Temporal memory is the daily snapshot.</strong> This is the &#8220;what is true right now&#8221; layer: price ratios, open/close data, recent headlines, and the last 24 hours of market signal. I implemented a hard expiry by default. This matters because one of the quieter failure modes in agent systems is acting on stale data without flagging it as stale. A monitoring skill that reads from temporal memory knows exactly how fresh its inputs are. </p><p><strong>Artifact memory is the thesis file.</strong> This is the durable, versioned record of prior analysis, what the system previously concluded, what price target it set, what risks it flagged. When a crisis protocol loads, it doesn&#8217;t start from scratch. It reads the thesis to understand what it previously believed before evaluating whether that belief still holds. This is what separates a reactive system from one that reasons about its own prior positions.</p><p>Without this separation, a skill operating on a large flat context can&#8217;t easily distinguish a standing instruction from yesterday&#8217;s news from a thesis written three months ago. It reasons across all of it as if it were equally valid. The tiering makes that conflation structurally harder. The skill knows what kind of thing it&#8217;s reading, and that makes its output more predictable and easier to audit.</p><p>When the agent loads the equity-research skill, it has a consistent representation of the stock&#8217;s data. When it loads a crisis protocol, it can see the recent news and the thesis state.</p><h4>In Closing</h4><p>It would be nice if I could /get-coffee in a chat window, and an ambient intelligence layer would make a coffee for me. We are not there yet, but skills are a big step forward. </p><p>Most agent systems are built by stitching prompts and tools together. They can answer questions, but do not embody a disciplined method. </p><p>Skills change that. </p><p>They make the agent execution sequential without being constrained to simple workflow automation. </p><p>For most corporate implementations, you do want reliability. The difference is similar to the difference between a junior analyst improvising and a seasoned investor following a playbook. </p><p>What surprised me the most was that the origin of a skill&#8217;s efficiency lies in its cognitive and organizational capability. Skills reduce prompt bloat, preserve consistent reasoning, and encode institutional standards. In Superbill, they power the most important features: triage, underwriting, variant perception, sizing, monitoring, and crisis response. </p><p>They make the agent reliable enough to run a real research workflow.</p><p>I hope you enjoyed this post. Please like, share, and subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IqSc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IqSc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!IqSc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!IqSc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!IqSc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IqSc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png" width="1152" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1758350,&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://jdsemrau.substack.com/i/189303647?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.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_!IqSc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!IqSc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!IqSc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!IqSc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e6195af-e40f-4cce-b796-2831f40c5cb9_1152x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Pair-programming Superbill with Codex-5.2 and Claude Sonnet 4.6]]></title><description><![CDATA[The Value of Software Development Is (near) Zero]]></description><link>https://jdsemrau.substack.com/p/pair-programming-superbill-with-codex</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/pair-programming-superbill-with-codex</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 02 Mar 2026 06:53:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LLY-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let me start by saying something that might be seen as provocative.</p><p>What if the value of writing software has collapsed to zero?</p><p>Not the value of software or SaaS companies. Their death might be greatly exaggerated. They still remain with enormous profit margins and multi-year enterprise contracts. </p><p>But the act of writing it manually might very well be.</p><p>Something has changed. </p><p>Since the launch of<a href="https://www.anthropic.com/news/claude-sonnet-4-6"> Sonnet 4.6</a>, <a href="https://resources.anthropic.com/code-modernization-playbook">Cobol to Java</a>, and <a href="https://claude.com/plugins/wealth-management">Wealth Management</a> as a plugin to CoWork, the stock market for many industries in general, and the software application sector in particular, has been in turmoil. Expressed as the value of the <a href="https://www.ishares.com/us/products/239771/ishares-north-american-techsoftware-etf">IGV ETF</a>,  this sector has lost more than 20% in valuation since the beginning of the year. Of course, that is relative to an all-time-high just a couple of days prior. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!58SR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!58SR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 424w, https://substackcdn.com/image/fetch/$s_!58SR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 848w, https://substackcdn.com/image/fetch/$s_!58SR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 1272w, https://substackcdn.com/image/fetch/$s_!58SR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!58SR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png" width="895" height="823" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:823,&quot;width&quot;:895,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98585,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.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_!58SR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 424w, https://substackcdn.com/image/fetch/$s_!58SR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 848w, https://substackcdn.com/image/fetch/$s_!58SR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 1272w, https://substackcdn.com/image/fetch/$s_!58SR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27aebcba-17bd-436b-b3b1-c63755723d9d_895x823.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So? The stock market is fluctuating. Big deal. One might say. In reality, we all know there is more to software companies than just writing software. </p><p><strong>Data network effects.</strong> Over the last 20 years, SaaS companies have compiled formidable datasets that are extremely hard to replicate. For example, Salesforce knows your customer history. Workday knows your hiring pipeline and org chart. Since, as mentioned, that data compounds over the years, no agent can replicate it from scratch, even with using <a href="https://jdsemrau.substack.com/p/a-compendium-on-synthetic-data-projects?r=7fx0t&amp;utm_campaign=post&amp;utm_medium=web&amp;triedRedirect=true">synthetic data</a>.</p><p><strong>Switching costs. </strong> I have been building and integrating software for Enterprises for many years. ERP migrations take 3 years and are a lot of pain. Contract negotiations will take years, integration projects months, and training staff and the new software days if not weeks.</p><p><strong>Compliance and trust.</strong> And then there is the component of regulation. In regulated industries, like Finance, &#8220;an AI built this&#8221; is not yet a procurement answer. Vendors with <a href="https://cloud.google.com/security/compliance/soc-2">SOC2</a> compliance certifications, <a href="https://www.fedramp.gov/">FedRAMP</a> access, and audit trails still have the key to the kingdom. </p><p><strong>Distribution.</strong> Finally, an established position in the market won&#8217;t change overnight. Salesforce has 150,000 customers and a direct sales force. That doesn&#8217;t disappear when a better tool exists. But it might erode if the service is better somewhere else. And most SaaS companies have been cutting back on customer support recently. </p><p>And in my opinion, these companies can even further improve their profit margins using AI tools themselves. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Personal story time. I paid for a QuickBooks subscription for many years that I wanted to cancel after I moved to a different accounting solution (not vibe-coded). When I went to their website to cancel it, I could not login because the 2FA was sending the key to a phone number (my old Singaporean number) I don&#8217;t have access to anymore. I also could not file a ticket because the customer support system was behind the login screen. Reading through the customer support sections of the website, posting on socials, and emailing customer support also did not help. So when my credit card expired, I could not give them my new one, hence the payment stopped naturally. </p><p>So my hope is that AI might actually help to improve customer service. </p><p>But I remain doubtful. </p><p>Where coding tools are extremely effective is that they don&#8217;t threaten the business model; instead, they will further improve margins. If your product team ships 3x faster at the same headcount, you can run more experiments and add new features much faster and hopefully in higher quality. </p><p>Therefore, the incumbents who adopt AI coding tools aggressively could actually emerge <em>stronger</em>, not weaker. </p><p>However, there is an emerging micro-SaaS market for boring tasks that may currently be dormant.</p><p>My hypothesis is that, for creative minds, every month, the time-lag between &#8220;I have an idea&#8221; and &#8220;I have a working system&#8221; shrinks. </p><p>I wanted to test that hypothesis. </p><p>So in February, I set out to build something non-trivial, something that required architectural decisions, real data pipelines, and meaningful reasoning. </p><p>And I wanted to see how much of my cognitive load I could offload to a model. </p><p><strong>The project:</strong> an Agentic Ambient Intelligence Layer for my personal investment management. A spiritual successor to SuperBill with a pinch of OpenClaw. </p><p>My personal artificial investment team.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s1yv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s1yv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 424w, https://substackcdn.com/image/fetch/$s_!s1yv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 848w, https://substackcdn.com/image/fetch/$s_!s1yv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 1272w, https://substackcdn.com/image/fetch/$s_!s1yv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s1yv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png" width="1456" height="756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:756,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:488253,&quot;alt&quot;:&quot;&quot;,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.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_!s1yv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 424w, https://substackcdn.com/image/fetch/$s_!s1yv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 848w, https://substackcdn.com/image/fetch/$s_!s1yv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 1272w, https://substackcdn.com/image/fetch/$s_!s1yv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6c03af-7511-4f00-b22a-aab3d9bea0e8_1835x953.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The tools to help me under evaluation: <strong>Codex-5.2</strong> and <strong>Claude Sonnet 4.6</strong>, both as VS Code plugins. </p><p>What I found was a clear and somewhat surprising gap between them. </p><h4>Claude Cowork for Wealth Management</h4><p>Before I get into what I built, I should explain what pointed me in this direction.</p><p>As mentioned, in early February, Anthropic rattled financial services software stocks with the release of Claude Cowork. Cowork is a desktop agent designed to sit alongside knowledge workers and handle multi-step professional tasks across applications. </p><p>The wealth management plugin, in particular, caught my attention. </p><p>It&#8217;s built to do what advisors spend most of their non-client time doing: </p><ol><li><p>prep for client meetings, </p></li><li><p>build financial plans, </p></li><li><p>rebalance portfolios, and </p></li><li><p>identify tax-loss harvesting opportunities.</p></li></ol><p>What makes Cowork unique in my perspective is not the financial domain knowledge. Rather than using Claude as a separate chatbot, it augments enterprise software tools, pulling context and data without users needing to leave the window they&#8217;re working in. That is a huge adoption driver. And something I wrote about <a href="https://jdsemrau.substack.com/p/how-should-agentic-user-experience">here</a> and <a href="https://jdsemrau.substack.com/p/designing-agents-architectures">here</a>.</p><p>The wealth management plugin specifically can analyze portfolios, identify drift and tax exposure, and generate rebalancing recommendations at scale &#8212; wired into real data through connectors for tools like <a href="https://developer.factset.com/api-catalog">FactSet</a> (also a SaaS company), <a href="https://developer.msci.com/apis">MSCI</a>, and others.</p><p>Anthropics&#8217;s broader <a href="https://www.anthropic.com/news/advancing-claude-for-financial-services">financial services suite</a> will go further. <br>It will include </p><ol><li><p>a financial analysis agent that conducts market and competitor research and handles financial modeling; </p></li><li><p>an equity research agent that parses earnings transcripts, updates financial models, and drafts research notes; and </p></li><li><p>a private equity agent that reviews large document sets, models scenarios, and scores opportunities against investment criteria. </p></li></ol><p>CoWork&#8217;s plugins, besides connecting with Excel (a must-have), bundle skills, connectors, slash commands, and sub-agents for each workflow.</p><p>And they&#8217;re designed to be customized to a firm&#8217;s own voice, templates, and processes.</p><p>Watching this unfold, I had a simple reaction: I want one of these for myself. </p><p>Since I had built <a href="https://jdsemrau.substack.com/p/so-i-built-agentic-deepsearch-for">DeepSearch for Investing </a>in 2022/2023, I figured I would refactor the code base using Codex-5.2 and Claude Sonnet-4.6 through Copilot in VS Code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oaf3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oaf3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 424w, https://substackcdn.com/image/fetch/$s_!oaf3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 848w, https://substackcdn.com/image/fetch/$s_!oaf3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!oaf3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oaf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png" width="1456" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:499448,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.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_!oaf3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 424w, https://substackcdn.com/image/fetch/$s_!oaf3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 848w, https://substackcdn.com/image/fetch/$s_!oaf3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!oaf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c85f08c-b2fd-47e8-9fdc-873f075022b6_1875x1046.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The system I wanted to build can be best described as a multi-agent loop with persistent memory, sensory market information that grounds truth through real-time market data. </p><p>You might wonder, why is this fool using 2 different coding models? </p><p>I think Claude Sonnet in Copilot is really fantastic. At work, I am using Codex. I had some free OpenAI credits and wanted to compare which one I like better.</p><p>First, for some design considerations. </p><h4>Overall Stack</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s6cg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s6cg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 424w, https://substackcdn.com/image/fetch/$s_!s6cg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 848w, https://substackcdn.com/image/fetch/$s_!s6cg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 1272w, https://substackcdn.com/image/fetch/$s_!s6cg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s6cg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png" width="724" height="406.93793103448274" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:489,&quot;width&quot;:870,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:67134,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.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_!s6cg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 424w, https://substackcdn.com/image/fetch/$s_!s6cg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 848w, https://substackcdn.com/image/fetch/$s_!s6cg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 1272w, https://substackcdn.com/image/fetch/$s_!s6cg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b798038-58f0-4d79-a5b7-6b84b82b5de8_870x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For the UI, I moved away from the limitations of Streamlit / Gradio that are fun for simple projects but don&#8217;t work well for more complex solutions. Now at the top sits a React + <a href="https://vite.dev/guide/">Vite</a> frontend with three sections: a configuration layer, a workspace for investment data and analytical write-ups, and an agent session  so I can talk to agent Superbill in real time.</p><p>Behind that lives an AI service (port 8001), i.e., the ambient intelligence layer, running an OpenAI Agent SDK with a <a href="https://openai.github.io/openai-agents-python/tools/">tool dispatcher</a> and a <a href="https://openai.github.io/openai-agents-python/streaming/">streamer</a> for live updates from the agent. In the past, I have been building a lot on Smolagents, but I wanted to revisit the OpenAI SDK as <a href="https://jdsemrau.substack.com/p/openai-agents-sdk-power-potential">almost a year</a> had passed since I last did a pilot on it. </p><p>Then, I have a dedicated backend (port 8000) for handling state, scheduling, and sensor orchestration. For a longer-running environment update, i.e., an unusual volume tracker, I want to use an APScheduler. Data flows about the environment come from several sources like Yahoo Finance, FMP, Finnhub, Benzinga, SEC EDGAR, Senate disclosures, and AlphaVantage. Here I could reuse what I already have. </p><p>Sensors? </p><p>Well, for me, sensors are part of standard agent architectures as they provide information about the environment, helping with embodiment and therefore grounding. </p><h4>Sensors and Environment</h4><p>Every intelligent system needs to know what&#8217;s happening in its environment. Rather than relying on the user to surface relevant changes, I built a sensor layer that runs continuously in the background.</p><p>Four sensors form the core of the environment model:</p><ol><li><p><strong>Unusual Volumes</strong>. A long-running task that compares average trading volumes over the observation horizon with the last trading session.</p></li><li><p><strong>Calendar</strong>.  A forward-looking sensor that identifies upcoming earnings calls or interesting corporate events. </p></li><li><p><strong>Senator/Politician</strong>. A backward-looking sensor analyzing what stocks politicians with potentially inside information trade.</p></li><li><p><strong>Yahoo Trending</strong>. In the past, I looked more at social sentiment, but I came to realize that this is an extremely noisy signal. And this Yahoo Trending list is very similar in function. So I don&#8217;t bother with X or Reddit discussions anymore. </p></li></ol><p>Each sensor writes to a shared sensor_cache that the intelligence layer reads when constructing its reasoning context. </p><p>The benefit is that the agent doesn&#8217;t need to <em>ask</em> what&#8217;s happening in the market. </p><p>It already knows.</p><h4>Memory Architecture</h4><p>One of the biggest gaps between a useful AI assistant and a genuinely intelligent one is memory. Most LLM applications treat each conversation as a blank slate. And if they have memory its very basic. Probably that&#8217;s fine for one-off tasks, but it&#8217;s fatal for anything that requires continuity. </p><p>I broke memory into three layers, borrowing from my explorations into cognitive science:</p><p><strong>Episodic memory.</strong> captures what happened. Here I store each session between the agent and an equity. An active_session file logs the current session in real time. A session_archive stores past sessions. The last six conversation turns are injected directly into the system prompt, giving the model genuine short-term context. Markdown is an unexpected gift here. </p><p><strong>Semantic memory.</strong> captures what is known. Each tracked stock gets a {TICKER}_context, which represents a living thesis document with the current context of the stock as well as a {TICKER}.json for price and news cache. Volume scan results, sensor snapshots, and analyst notes all need to persist across sessions. When I come back after a week away, the system remembers what it thought about a name and why.</p><p><strong>Procedural memory</strong> captures how to do things. Anthropic calls these <em>skills</em>, I agree. Essentially, these are SOPs encoded as prompts. I want to implement them as graphs, but this might come next. </p><h4>Agents, Skills, and Tools</h4><p>What makes this system genuinely agentic, rather than just a fancy bot, is the combination of tools, memory, skills, and a reasoning loop that connects them.</p><p><strong>Tools</strong> are the hands of the system, mostly deterministic capabilities for external data retrieval. The agent can <strong>autonomously</strong> fetch current stock prices, pull recent news, retrieve SEC filings, check insider trades, search earnings calendars, scan for volume anomalies, and fetch arbitrary URLs when needed. </p><p>This is really powerful because the agent can call them on demand<strong> as the agent decides </strong>it needs more information.</p><p><strong>Skills</strong> are the learned task competencies. I like to call them playbooks. </p><p>I gave Superbill fourteen of them, each representing a distinct analytical workflow. </p><p>Here are some examples:</p><ul><li><p><em>Investment Opportunity Triage</em>. Is this worth looking at?</p></li><li><p><em>Deep Fundamental Underwriting</em>. What does the business actually look like?</p></li><li><p><em>Conviction Calibration Engine</em>. How confident should I be, and why?</p></li><li><p><em>Thesis Integrity Audit</em>. Am I fooling myself?</p></li><li><p><em>Variant Perception Detection</em>. What does the market believe that I disagree with?</p></li><li><p><em>Position Sizing and Concentration</em>. How much capital should this get?</p></li><li><p><em>Exit Discipline Engine</em>. When do I sell, and what would change my mind?</p></li><li><p><em>Capital Preservation Protocol</em>. What&#8217;s the downside scenario?</p></li><li><p><em>Daily Portfolio Monitoring</em>. What changed overnight?</p></li><li><p><em>Performance Attribution and Error Analysis</em>. Where was I right, and where was I wrong?</p></li></ul><p>Skills are flat files.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!clEO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!clEO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 424w, https://substackcdn.com/image/fetch/$s_!clEO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 848w, https://substackcdn.com/image/fetch/$s_!clEO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 1272w, https://substackcdn.com/image/fetch/$s_!clEO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!clEO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png" width="908" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:908,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:71192,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.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_!clEO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 424w, https://substackcdn.com/image/fetch/$s_!clEO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 848w, https://substackcdn.com/image/fetch/$s_!clEO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 1272w, https://substackcdn.com/image/fetch/$s_!clEO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa01d0dc1-39e0-481b-90b9-f01e63e01ea6_908x519.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So they are loaded into the system prompt and invoked contextually when needed through progressive disclosure. </p><p>The agent is fine-tuned to know which playbook applies to a given situation.</p><p>The ReAct loop, <a href="https://medium.com/@jsemrau/code-clinic-building-a-react-agent-on-langchain-with-memory-230c4e6ef636">my trusted friend, </a>ties it all together. </p><p>Even though the pattern I&#8217;m working toward is<a href="https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act"> Sense &#8594; Symbolize &#8594; Plan &#8594; Act</a>, my neuro-symbolic approach, that goes beyond simple prompt-response. </p><p>The agent senses changes in the environment via the sensor layer, symbolizes them into structured representations, plans a course of action, and executes. It doesn&#8217;t just answer questions. It thinks. </p><p>And it can ask questions if it needs further information. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TJ1C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TJ1C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 424w, https://substackcdn.com/image/fetch/$s_!TJ1C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 848w, https://substackcdn.com/image/fetch/$s_!TJ1C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 1272w, https://substackcdn.com/image/fetch/$s_!TJ1C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TJ1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png" width="912" height="483" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:483,&quot;width&quot;:912,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163560,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.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_!TJ1C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 424w, https://substackcdn.com/image/fetch/$s_!TJ1C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 848w, https://substackcdn.com/image/fetch/$s_!TJ1C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 1272w, https://substackcdn.com/image/fetch/$s_!TJ1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa536c90c-ed12-4b32-a94e-341dc7199ebe_912x483.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So far for the concept. Now to the findings. </p><h4>Contrasting the Experience: Codex-5.2 vs Claude Sonnet 4.6</h4><p>Here&#8217;s where I&#8217;ll be direct.</p><p><strong>Codex-5.2 felt like a junior developer.</strong> Energetic, fast, willing to take a swing at anything. But the code it produced was hard to read, dense, inconsistent in style, and occasionally syntactically broken. It completed tasks, but the output didn&#8217;t feel <em>reasoned</em>. It felt generated. Over the course of the project, Codex generated a cost of $55, and I didn&#8217;t feel I made the progress I wanted. </p><p>More troublingly, the development experience felt frantic. Codex would make sweeping changes across files without communicating its intent clearly. I found myself spending time auditing its work rather than building on it. </p><p>For a system with real architectural complexity,  multiple services, a memory layer, sensor orchestration, that audit overhead added up fast, and only compounded my cognitive fatigue. </p><p><strong>Claude Sonnet felt like a senior developer.</strong> Slower in some ways, but more deliberate. The code it produced was cleaner and more consistent. When I asked it to build something non-trivial, the sensor layer, the memory architecture, the tool dispatcher, and especially the stream functionality of the agent session, a task that Codex failed at, it would often pause to reason about structure before diving into implementation. </p><p>In my opinion, the edits were more targeted. The refactors made sense. And the overall cost was 1/11th of Codex: $5. Of course, you can argue that I used Claude later in the project. But then here, more framework is already implemented, so every error that Codex did took longer to roll back. </p><p>And this is another insight that reflects something real about my efficiency, but also the SDLC. Codex generated more tokens to accomplish less. Claude&#8217;s outputs required fewer corrections and less review. For a project like this, where the architecture has to hold together across many moving parts, that difference compounds quickly. And not only in monetary terms. </p><h4>Conclusion</h4><p>The software development SDLC is changing. The part that required you to hold a large, complex system in your head and translate it, laboriously, into code is becoming automated. This means that in organizations, the importance of experience in senior developers diminishes. So in my opinion, what remains valuable is the <em>synthesis</em>: the ability to know what you&#8217;re building and why and use this to lead architectural instincts and product judgment, </p><p>From a functionality, I was impressed by what could be built. A system that can produce a full backtest report with graphs, tables, and everything. And that changes everything. Throughout 2025, most coding models were not good enough. But then December happened. And the gap between &#8220;almost&#8221; and &#8220;actually works&#8221; closed in a matter of weeks. Operationally, tasks I had been splitting into small chunks and painstakingly debugging (with prints and tests), the AI now zero-shots as entire modules with no bugs (well, almost - Codex produces some).  </p><p>Probably, a year ago, I thought about agents as an augmentation of what I want to do. A convenience that can help me be more productive. Six months ago, I believed it was coming, but it would still be 12-18 months. </p><p>Today it&#8217;s here. </p><p>If the last time you tested coding capabilities was six months ago, your opinion has expired! </p><p>My artificial investment team is a small illustration of what becomes possible when the translation layer is cheap. I built fourteen analytical playbooks with real-time market sensors and a three-layer persistent memory within a few hours. </p><p>A reasoning loop that wakes up every morning already knowing what happened while I was asleep. </p><p>I built this&#8230;or didn&#8217;t I?</p><p>I was only describing what I wanted and iterated on what I got.</p><p>The programming language of the next iteration of software will be English. </p><p>The gap between Codex and Claude on this project was real and impactful. But this will close eventually. </p><p>The more important observation is that both are changing the ceiling on what one person can build. The question is no longer whether you can build a sophisticated system alone. </p><p>It&#8217;s whether you have a clear enough vision of what you want to build.</p><p>That part, at least, is still on you.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.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">Encyclopedia Autonomica 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></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LLY-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LLY-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!LLY-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!LLY-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!LLY-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LLY-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png" width="1152" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1588257,&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://jdsemrau.substack.com/i/189605568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.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_!LLY-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!LLY-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!LLY-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!LLY-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3320b3a1-c721-4dda-bb1a-8ff69e7d1b7c_1152x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[OpenClaw - An Agentic Ambient Intelligence Layer]]></title><description><![CDATA[Building the endgame for a non-human digital space]]></description><link>https://jdsemrau.substack.com/p/openclaw-an-agentic-ambient-intelligence</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/openclaw-an-agentic-ambient-intelligence</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Sun, 08 Feb 2026 04:10:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7Mok!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There has been much frenzied chatter in the agent community about Moltbot / OpenClaw since it was launched a couple of days ago. Only recently being renamed to its final iteration, OpenClaw might be the closest thing we currently have to an agentic front page for the internet. But that in itself is only scratching the surface of what it can do.</p><p>If you want to check it out for yourself, you can get the open-source repo (<a href="https://openclaw.ai/">web</a>, <a href="https://github.com/openclaw/openclaw">git</a>) that runs a local agent runner to watch a handful of input channels (files, chats, social feeds), and quietly orchestrates background automation for you. In that sense, my first assessment is that it feels like &#8220;software weather&#8221; rather than an app. </p><p>Maybe something I hoped Siri would have become by now. </p><p>What do I mean by &#8220;software weather&#8221;? </p><p>The agent is always present, operating like a daemon in the background, creating an ambient intelligence layer that subtly interacts with the shared digital environment.</p><p>The hype is that there might be a new world coming where agents work together to solve hard problems. </p><p>The downside is that this might all be overhyped. </p><p>Let&#8217;s dive in. </p><p>In this post, I will show you</p><ol><li><p>How to get Openclaw running</p></li><li><p>What Agent Skills are</p></li><li><p>Explain what NPX is and why it matters</p></li><li><p>Use OpenClaw to manage a Subreddit</p></li></ol><p>Albeit for the final point, I only sketch how this should work without providing a full implementation (just yet). This is in the pipeline. </p><p><strong>Why trust it?</strong></p><p>OpenClaw&#8217;s creator is Peter Steinberger (<a href="https://github.com/steipete">@steipete</a>), a highly decorated, just look at his insane Github profile, engineer who now focuses full-time on AI-native developer tools; after bootstrapping <a href="https://github.com/pspdfkit">PSPDFKit/Nutrient</a> before exiting in 2021 at a multi-million ARR. He started OpenClaw by scratching a personal itch. I guess when I built Matt in 2023, we had the same idea, but he is by far more talented than I will ever be. What he did was wire a single assistant into chats, servers, and repos, before hardening it into an open-source runtime with a strong bias toward local control, explicit wiring, and community-driven skills instead of a closed, SaaS-style product. </p><p>There are some major concerns, though, regarding access rights (installation requires sudo on Ubuntu) and reports about supply chain and context poisoning attacks. But if you want to live at the bleeding edge of agent tech, this might be a risk one might want to take. This is what I do for you. </p><p><strong>Why the name keeps changing</strong></p><p>The naming history is part legal, part meme, and part community identity. Originally released as Clawdbot in late 2025, the project attracted the kind of attention that forces you to read trademark emails instead of hacking. Anthropic raised concerns about confusion with its Claude-branded products. Then Clawdbot briefly became Moltbot, however, never really stuck in the community, and press coverage remained split between the old and new names. In early 2026, the maintainers decided to consolidate the identity under OpenClaw, emphasizing its open-source nature and returning to the more recognizable &#8220;claw&#8221; motif that had become a sort of space-lobster mascot. </p><p>Anyway. </p><p>In this post, I will explore how to get OpenClaw running, dive into its skills and npx ecosystem, and then walk through a concrete example: wiring up an agent that effectively <em>runs</em> a subreddit as a first-class OpenClaw skill.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><h4>From chatbot to agentic front-page</h4><p>OpenClaw didn&#8217;t start life as an &#8220;<em>agentic front-page.</em>&#8221; Not unlike <a href="https://github.com/jsemrau/Matt">Matt</a>, it began as a personal assistant called Clawdbot that ran on on-premise infrastructure and could talk to everything from local files to Discord. Over time, additional connectivity for Git repos, tickets, and  home servers was added, growing the bot into a general-purpose agent runner. OpenClaw adjusted its architecture to reflect a transition from &#8220;one-off bot&#8221;, i.e. Matt, to &#8220;ambient layer&#8221; or &#8220;software weather&#8221;. Now it treats Telegram, Discord, web UIs, and APIs as channels, normalizes their messages, feeds them into a central Agent Runner, and lets skills decide what to do. </p><p>Instead of hiding the agentic loop in prompt tricks, OpenClaw exposes explicit steps, LLM response, optional tool calls, gateway coordination, so that you can debug the thing that is about to run unattended on your laptop or server.</p><p>This is why OpenClaw feels like an agentic front-page and not just another chat wrapper: the &#8220;home screen&#8221; is essentially a live wiring diagram between models, skills, and channels where Reddit, email, RSS, and your shell are all peers.</p><h4>Getting OpenClaw running</h4><p>For an Encyclopedia Autonomica reader, the installation path that matters is: &#8220;how fast can I go from zero to an agent that runs a subreddit without fighting build tools?&#8221; Today, there are three main paths: a curl installer, a global package install, and a from-source developer setup.</p><p><strong>Prework: Install Node.js 22+</strong></p><p>In my case ,I only had an outdated NodeJS, so I had to upgrade it like this.</p><pre><code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install 24</code></pre><p>Then you can start installing OpenClaw</p><p><strong>1. One-liner installer (recommended)</strong></p><p>On macOS or Linux, the recommended path is the one-liner installer script, which installs the <code>openclaw</code> CLI globally and runs an onboarding flow.</p><pre><code><code>curl -fsSL https://openclaw.ai/install.sh | bash</code></code></pre><p>The first problem you will encounter is that it asks for sudo rights. You need to be really mindful about this. Because you expect OpenClaw to run largely autonomously (ambient software), that means that you potentially give OpenClaw, and thereby t all the services/channels it communicates with, access to your files. </p><p>Which may include personal data, but also security keys. As was reported <a href="https://www.reddit.com/r/AgentsOfAI/comments/1qsy5so/moltbook_leaked_andrej_karpathys_api_keys/">here</a>. You might also be subject to a supply chain attack, as reported <a href="https://x.com/DanielLockyer/status/2019422410018267328">here</a>.</p><p>For good measure, I backed up my system first before starting this. </p><p>If you decide, at your own risk, to proceed, you can start the onboarding routine like this:</p><pre><code>openclaw onboard --install-daemon</code></pre><p>This gets you the core Agent Runner, channel adapters, and a basic UI running against your preferred models and keys.</p><p><strong>2. Global package install (npm/pnpm)</strong></p><p>If you prefer controlling everything via Node&#8217;s ecosystem (for example, on a dev machine where you manage your own global binaries), you can install from npm or via <code>pnpm</code>.</p><p>With npm:</p><pre><code>npm install -g openclaw@latest
openclaw onboard --install-daemon</code></pre><p>With pnpm, there&#8217;s an extra approval step because some dependencies compile native code (e.g., local model runtimes, image processing):&#8203;</p><pre><code>pnpm add -g openclaw@latest
pnpm approve-builds -g   # approve openclaw, node-llama-cpp, sharp, etc.
pnpm add -g openclaw@latest   # rerun so postinstall scripts execute

openclaw onboard --install-daemon
</code></pre><p>This path is ideal if you want to keep the CLI globally available but expect to hack on skills in local repos.&#8203;</p><p><strong>3. From source (for contributors)</strong></p><p>If you plan to modify OpenClaw itself or track bleeding-edge branches, clone the repo and run from source.</p><pre><code>git clone https://github.com/openclaw/openclaw.git
cd openclaw

pnpm install
pnpm ui:build   # builds the UI on first run
pnpm build

openclaw onboard --install-daemon</code></pre><p>You can then invoke <code>openclaw</code> via pnpm script aliases or add the built CLI to your path, depending on how the repo is structured.</p><h4>Security baseline</h4><p>After the download has completed and the onboarding begins, OpenClaw informs you to stick to a <a href="https://docs.openclaw.ai/gateway/security">security baseline. </a></p><p><strong>Pairing/allowlists + mention gating.</strong> This controls who can interact with your bot. Pairing limits the bot to specific authorized users or channels, while mention gating requires users to explicitly @mention the bot before it responds. This also prevents the bot from being triggered by random messages or unauthorized users.</p><p><strong>Sandbox + least-privilege tools:</strong> Run the bot in an isolated environment (i.e., sandbox) where it can&#8217;t access sensitive parts of your system. Only give it the minimum tools and permissions it actually needs to function, nothing more. This limits damage if something goes wrong or the bot is compromised.</p><p><strong>Keep secrets out of the agent&#8217;s reachable filesystem.</strong> Don&#8217;t store API keys, passwords, or other sensitive credentials in files the bot can read. If the bot gets exploited or makes an error, attackers won&#8217;t find your secrets sitting in accessible config files or directories.</p><p><strong>Use the strongest available model for any bot with tools or untrusted inboxes</strong> If your bot has access to tools (like file operations, code execution) or receives messages from unknown users, use the most capable AI model available. Stronger models are better at following safety instructions, resisting prompt injection attacks, and making sound decisions about when to use their tools.</p><p>I continued with a manual install and won&#8217;t go into further details, but it&#8217;s quite straightforward to get it to run.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EZLC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EZLC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 424w, https://substackcdn.com/image/fetch/$s_!EZLC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 848w, https://substackcdn.com/image/fetch/$s_!EZLC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 1272w, https://substackcdn.com/image/fetch/$s_!EZLC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EZLC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png" width="1390" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1390,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153234,&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://jdsemrau.substack.com/i/186694136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.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_!EZLC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 424w, https://substackcdn.com/image/fetch/$s_!EZLC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 848w, https://substackcdn.com/image/fetch/$s_!EZLC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 1272w, https://substackcdn.com/image/fetch/$s_!EZLC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F866dbb2e-3711-4467-b891-50ecbd8d1567_1390x852.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>My recommendation for you is to start exploring the UI by yourself to understand what the different components can do.</p><h4>Agent skills </h4><p>OpenClaw&#8217;s skills system is the connective tissue that turns a single agent into a distributed, evolving capability fabric. Skills are small, composable units of behavior that can execute specific tasks. I.e., &#8221;talk to Linear,&#8221; &#8220;index PDFs,&#8221; &#8220;control Discord,&#8221; &#8220;run shell commands&#8221;. In OpenClaw, skills live outside the core runtime but are surfaced to the agent through a common schema. Instead of baking all behaviors into one monolithic prompt, OpenClaw publishes a live catalog of skills, lets the agent decide which ones are relevant for a given task, and then loads only the details it needs at the moment of use.&#8203;</p><p>Internally, skills exist in three broad layers: bundled skills that ship with OpenClaw itself, workspace skills defined in your project or home directory, and managed overrides installed from registries or marketplaces (e.g., ClawHub or third-party skill hubs). The openclaw skills CLI inspects all of these and marks skills as &#8220;eligible&#8221; or &#8220;missing requirements&#8221; based on environment probes, binaries, and secrets, so the agent never attempts to use a capability that cannot actually run. Skills can even become dynamic: a watcher can refresh skill metadata mid-session if you edit a <em>SKILL.md</em>.</p><p>This ambient design lets OpenClaw behave more like a skills-aware operating system than a static app: the installed skill set can change over time, but the agent always sees a coherent, filtered view of what it can safely do in the current environment.</p><p><strong>Progressive disclosure</strong></p><p>To keep the agent&#8217;s context window from turning into a skills dump (<a href="https://jdsemrau.substack.com/p/context-window-saturation-in-reasoning">context window saturation </a>is a known problem), OpenClaw leans heavily on progressive disclosure. On startup, the agent only receives a compact snapshot of each skill, name, one-line description, and possibly a short usage hint, just enough to decide whether a skill might be relevant. </p><p>When a task or user instruction matches that description (&#8221;create a Linear ticket,&#8221; &#8220;send a Discord alert,&#8221; &#8220;summarize this PDF&#8221;), the agent then pulls in the full instructions and tool schemas for that specific skill.&#8203;&#8203;</p><p>This has a few important consequences. First, you can scale to dozens or hundreds of skills without paying the context cost up front: the agent&#8217;s system prompt stays small, while skills are loaded lazily as needed. Second, you can iterate on a skill&#8217;s implementation and metadata independently of the core agent; the skills watcher will automatically refresh the snapshot between turns, so improvements become visible without restarting the whole system. Third, OpenClaw can enforce security boundaries around skills&#8212;treating them as trusted code that lives in specific directories with specific permissions&#8212;without having to trust arbitrary in-prompt instructions.&#8203;&#8203;</p><p>The upshot is that &#8220;skills awareness&#8221; becomes part of the agent&#8217;s reasoning loop: instead of one giant prompt that tries to remember everything, OpenClaw teaches the agent to choose from a menu of capabilities, then only read the cookbook page when it actually needs that recipe.&#8203;&#8203;</p><p><strong>Discovering and inspecting skills locally</strong></p><p>From a developer&#8217;s perspective, the first touchpoint is the skills CLI. Once OpenClaw is installed and onboarded, you can introspect what the agent <em>could</em> do by listing skills and checking their readiness.</p><p>The core commands look like this:&#8203;</p><pre><code># List all discovered skills (bundled + workspace + managed)
openclaw 

# List only skills that are currently eligible (dependencies &amp; secrets satisfied)
openclaw skills list --eligible

# Inspect a single skill's metadata and requirements
openclaw skills info linear-skill

# Run a quick health check across all skills
openclaw skills check</code></pre><p>Behind the scenes, these commands aggregate information from your user config (e.g., ~/.openclaw/openclaw.json), workspace directories, and any installed skill bundles, marking skills that are blocked by missing binaries, secrets, or platform constraints. This is particularly useful in multi-node setups: you can see at a glance which skills will become available when a remote node (say, your home lab GPU box) comes online.</p><p>But of course, you can also work with the UI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MYxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MYxv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 424w, https://substackcdn.com/image/fetch/$s_!MYxv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 848w, https://substackcdn.com/image/fetch/$s_!MYxv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 1272w, https://substackcdn.com/image/fetch/$s_!MYxv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MYxv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png" width="1405" height="642" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:642,&quot;width&quot;:1405,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92983,&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://jdsemrau.substack.com/i/186694136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.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_!MYxv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 424w, https://substackcdn.com/image/fetch/$s_!MYxv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 848w, https://substackcdn.com/image/fetch/$s_!MYxv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 1272w, https://substackcdn.com/image/fetch/$s_!MYxv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6643ffb5-fbb4-4d34-9e90-afc770a12488_1405x642.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On top of OpenClaw&#8217;s native tools, there is an emerging ecosystem around agent skills more broadly. Generic skill loaders, such as skills and openskills, expose a CLI to install, list, and read skills across different agents and IDEs, including Claude Code, Cursor, and others, using a common format for metadata and an AGENTS.md manifest. OpenClaw can participate in this ecosystem by consuming skills that adhere to the same conventions, making it easier to share capabilities across multiple agent environments.</p><h4>npx as the skills super-highway</h4><p>If the skills system is the capability fabric, npx and related CLIs are like a logistics network that moves skills into your environment. Instead of manually cloning repos and wiring paths, you can install fully-packaged skills, or even entire skill bundles, with a single <code>npx</code> command that writes them into the right directory and updates your manifests.</p><p>For OpenClaw-specific skills, you&#8217;ll increasingly see installation instructions like this:</p><pre><code># Install a named skill from a hosted catalog into your agent environment
npx openclawskill install soul-personality</code></pre><p>Note &#8220;soul-personality&#8221; as a skill doesn&#8217;t exist. It&#8217;s just an example.</p><p>However, this one command resolves the skill bundle, handles dependencies, and installs it into the appropriate skills directory (often under your home or project directory), confirming success in line in the terminal. </p><p>General-purpose loaders such as <em>skills</em> or <em>openskills</em> use a similar pattern, but target a broader ecosystem of agents:</p><pre><code># Install a set of skills from a remote source (e.g., GitHub org)
npx openskills install anthropics/skills

# Sync the AGENTS.md manifest so agents see the new skills
npx openskills sync

# Inspect a particular skill definition
npx openskills read context7</code></pre><p><a href="https://openskills.cc/">OpenSkills</a> is an open format and ecosystem for agents that aims to provide an interface to describe, share, and load reusable agent capabilities across different AI agent platforms. Make Claude's skills usable in the codex and vice versa. </p><p>Here, a skill is a directory, typically with a SKILL.md file containing metadata and detailed procedural instructions that our agent can discover and load on demand to extend its competencies with domain expertise, workflows, or tool-specific actions. </p><p>By default, tools like OpenSkills install skills into project-local directories ./.claude/skills or a universal ./.agent/skills, with options to install globally under your home directory. This mirrors how OpenClaw treats user-level vs workspace-level skills and makes it possible to share a single skills tree across multiple agents that all read the same AGENTS.md manifest.</p><p>The important architectural detail is that npx commands operate outside the agent&#8217;s own execution: they are human-initiated actions that modify the skills catalog, after which OpenClaw&#8217;s watcher and skills CLI pick up the changes. This preserves a clear security boundary: the agent cannot silently install new arbitrary code; it can only see and use skills that a human (or an external CI pipeline you control) has deliberately added via <code>npx</code> or equivalent mechanisms.</p><p><strong>Skills, gateway, and the agentic loop</strong></p><p>Skills do not operate in isolation; they sit behind the Gateway Server, which acts as the orchestration plane for channels, nodes, and sessions. The gateway knows where skills live (which node, which platform), how to route tool calls, and how to enforce authentication and concurrency limits so that a misbehaving agent cannot take down your infrastructure.</p><p>From the CLI, you can inspect the gateway&#8217;s view of the world:</p><pre><code># Inspect gateway status (local or remote over SSH)
openclaw gateway status
openclaw gateway status --json

# Discover gateways via Bonjour
openclaw gateway discover</code></pre><p>Security-wise, OpenClaw encourages but does not enforce hardened configurations: private file permissions for ~/.openclaw, token-based authentication for remote CLI calls.</p><p>Dynamic skills, whether updated locally via a watcher or exposed by remote nodes, are still subject to these controls, and OpenClaw treats skill code as trusted and access-controlled, not as arbitrary scripts an LLM can edit at will.&#8203;</p><p>Taken together, the skills system, npx-driven installation, and the gateway layer give you a clean process: you declare capabilities as skills, you move them around with <code>npx</code>, and the gateway makes sure the right agent on the right node can call the right skill at the right time.</p><h4>The Reddit bot as an OpenClaw skill</h4><p>Once OpenClaw is running, the interesting part is not the CLI itself, but the skills and channels that turn it into a programmable intelligence layer. Skills in OpenClaw behave similarly to Claude Skills or GPT-style tools: small, focused capabilities with descriptions that the agent can decide to invoke when a task matches their intent.&#8203;</p><p>As mentioned, the key pattern is progressive disclosure: at startup, OpenClaw only loads the name and short description of each skill so that the agent&#8217;s system prompt stays compact. When a user task or channel event matches a particular skill&#8217;s description, the agent then loads the full instructions and implementation details of that skill on demand. This keeps the effective tool set large while avoiding the classic &#8220;50 pages of tools in context&#8221; problem.&#8203;&#8203;</p><p>In this mental model, a Reddit bot is just &#8220;Reddit as a skill&#8221;, a small, isolated capability that knows how to authenticate, read subreddits, post, and comment, while the core Agent Runner decides <em>when</em> to use it based on incoming tasks or triggers.&#8203;&#8203; I decided on Reddit and against Moltbook because the latter has recently been shown to have security leaks. </p><p>So I&#8217;d rather lose my dev access to Reddit than my credentials to Moltbook.</p><h4>Designing the Subreddit Operator</h4><p>Let&#8217;s design the Reddit operator as if we&#8217;re authoring a skill that plugs into OpenClaw&#8217;s existing gateway and channel system. The goal: use OpenClaw&#8217;s agentic loop to scan a subreddit, generate responses with your preferred LLM, and post them back, while benefiting from the same routing, concurrency, and safety features as every other channel.&#8203;&#8203;</p><p><strong>1. Define the skill&#8217;s intent</strong></p><p>First, you would define the skill&#8217;s metadata: name, short description, and the operations it supports. Conceptually, it might look like this at the configuration level (adapted to OpenClaw&#8217;s style of skill metadata):&#8203;&#8203;</p><pre><code>name: reddit_moderator_bot
description: &gt;
  Interact with Reddit: fetch posts and comments from configured subreddits,
  summarize threads, and draft or post replies under a configured account.
capabilities:
  - fetch_new_posts
  - fetch_unreplied_comments
  - draft_reply
  - submit_reply
required_secrets:
  - REDDIT_CLIENT_ID
  - REDDIT_CLIENT_SECRET
  - REDDIT_USERNAME
  - REDDIT_PASSWORD
triggers:
  - schedule: "*/5 * * * *"   # run every 5 minutes
  - manual: true</code></pre><p>The description is what OpenClaw&#8217;s agent will see at startup; only when a task touches Reddit (e.g., &#8220;Summarize /r/LocalLLaMA&#8217;s top posts today and answer questions tagged &#8216;Help&#8217;&#8221;) does it load the full implementation.&#8203;&#8203;</p><p><strong>2. Wire it into the Agent Runner</strong></p><p>OpenClaw&#8217;s Agent Runner is responsible for choosing models, building the system prompt (including skill descriptions), and coordinating tool calls. When your Reddit skill is registered, the runner gains a new tool it can call whenever a Reddit-related subtask appears in the agentic loop.</p><p>Flow for a scheduled Reddit moderation pass might look like this:&#8203;&#8203;</p><ol><li><p>Gateway fires a scheduled trigger for <em>reddit_moderator_bot</em> (e.g., every 5 minutes).</p></li><li><p>Agent Runner constructs a task like: &#8220;Check configured subreddits for unanswered questions; propose helpful replies consistent with my style guide; post them if confidence is high.&#8221;</p></li><li><p>In the first loop iteration, the agent calls <em>fetch_new_posts</em> and <em>fetch_unreplied_comments</em> from the Reddit skill.</p></li><li><p>The agent uses your configured LLM (e.g., a local model via node-llama-cpp or a cloud model) to generate candidate replies.</p></li><li><p>For high-confidence cases, the agent calls <em>submit_reply</em>; for lower confidence, it might send drafts to another channel (e.g., Telegram DM) for human approval.</p></li></ol><p>The Gateway Server in OpenClaw acts as traffic control here: it routes these sessions correctly, prevents runaway loops, and enforces concurrency limits so a bad prompt does not DDOS Reddit or your GPU.&#8203;</p><p><strong>3. Implementation sketch </strong></p><p>The actual implementation would live in a language and SDK supported by OpenClaw&#8217;s skill system (today, that&#8217;s typically Node/TypeScript or a similar runtime). The core pieces you&#8217;d expect:&#8203;&#8203;</p><ul><li><p>A small Reddit client wrapper (using OAuth and environment secrets).</p></li><li><p>Handler functions for each capability (fetch_new_posts, draft_reply, submit_reply).</p></li><li><p>A schema that OpenClaw uses to surface these as tools to the LLM.</p></li></ul><p>A conceptual pseudo-code sketch:</p><pre><code>// redditSkill.ts

import { defineSkill } from "openclaw-sdk";
import { RedditClient } from "./redditClient";

export default defineSkill({
  name: "reddit_moderator_bot",
  description:
    "Fetches posts/comments from configured subreddits and drafts or posts helpful replies.",
  async run(context) {
    const reddit = new RedditClient({
      clientId: process.env.REDDIT_CLIENT_ID,
      clientSecret: process.env.REDDIT_CLIENT_SECRET,
      username: process.env.REDDIT_USERNAME,
      password: process.env.REDDIT_PASSWORD,
    });

    const subs = context.config.subreddits ?? ["YourSubreddit"];
    const threads = await reddit.fetchNewQuestions(subs);

    for (const thread of threads) {
      const reply = await context.llm.complete({
        prompt: `You are a helpful bot for r/${thread.subreddit}. 
Summarize the question and answer concisely, following the community rules.\n\nQuestion:\n${thread.body}`,
      });

      const shouldPost = await context.llm.complete({
        prompt: `Does this reply look safe, non-toxic, and on-topic? Answer yes/no.\n\nReply:\n${reply}`,
      });

      if (shouldPost.toLowerCase().startsWith("yes")) {
        await reddit.postReply(thread, reply);
      } else {
        await context.channels.notify("telegram_dm", {
          text: `Draft reply for review:\n\n${reply}\n\nLink: ${thread.url}`,
        });
      }
    }
  },
});</code></pre><p>To keep this post management, I decided to keep this for now in pseudo-code and would revisit the actual implementation in a follow-up post.</p><p>Conceptually, OpenClaw exposes context.llm and context.channels as abstractions over whichever models and channels you&#8217;ve configured, so the skill doesn&#8217;t care if the reply comes from a local model or a hosted one.</p><p><strong>From reply bot to &#8220;the agent runs the subreddit&#8221;</strong></p><p>If you want the agent to actively <em>run</em> a subreddit, you can treat the entire sub as a managed surface where OpenClaw owns three loops: intake, action, and reporting. At a high level, the agent becomes a full moderator coworker rather than a simple reply bot.</p><p><strong>What &#8220;running a subreddit&#8221; entails</strong></p><p>For a serious use case, the agent should cover at least these functions:</p><ul><li><p>Post and comment moderation: Auto-remove spam, enforce flairs, detect reposts, and apply rate limits based on your rules.</p></li><li><p>Queue and reports handling: Continuously triage the modqueue and reports, escalating edge cases and acting directly on obvious ones.</p></li><li><p>Answering questions: Reply to common or unanswered questions with informed, style-consistent answers.</p></li><li><p>Community health: Track basic stats (growth, reports per day, removals, response times) and surface trends to human mods.</p></li></ul><p>All of this maps cleanly onto OpenClaw&#8217;s model of &#8220;skills plus channels,&#8221; where Reddit is a privileged channel, and the subreddit&#8217;s rules are encoded in a dedicated moderation skill.</p><h4>Skill design</h4><p>Instead of just a single reddit_moderator_bot skill that replies to posts, you can define a broader Subreddit Steward skill with explicit responsibilities:</p><pre><code>name: subreddit_steward
description: &gt;
  Runs day-to-day operations for a specific subreddit: auto-moderation,
  queue triage, FAQ answering, and health reporting under human oversight.
capabilities:
  - scan_new_content
  - enforce_rules
  - reply_to_questions
  - triage_modqueue
  - generate_daily_report
config:
  subreddit: "r/YourSubreddit"
  faq_source: "./knowledge/FAQ.md"
  style_guide: "./knowledge/STYLE.md"
triggers:
  - schedule: "*/5 * * * *"      # continuous ops
  - schedule: "0 0 * * *"        # daily report
  - manual: true
required_secrets:
  - REDDIT_OAUTH_TOKEN
  - REDDIT_MOD_API_SCOPES
</code></pre><p>Conceptually, this one skill gives the agent both the <em>authority</em> (API scopes) and the <em>brief</em> (FAQ, style guide, rules) to act like a first-line moderator.</p><p><strong>Agentic loop for subreddit operations</strong></p><p>With this skill installed and enabled, your OpenClaw agent&#8217;s loop for the subreddit looks like:</p><ol><li><p><strong>Intake</strong>: On a 5-minute schedule, the agent calls <em>scan_new_content</em> to fetch new posts and comments plus the current modqueue and reports.&#8203;</p></li><li><p><strong>Rule matching</strong>: For each item, it applies <em>enforce_rules</em> using a mix of hard rules (regex, link domains, spam signatures) and soft rules (LLM classifications against your subreddit guidelines).</p></li><li><p><strong>Actions</strong>:</p><ul><li><p>Clear trivial spam and obvious rule violations automatically (remove, ban, flair, or lock).</p></li><li><p>Leave comments explaining removals using templated messages, optionally LLM-polished.</p></li><li><p>Tag ambiguous items for human review instead of guessing.</p></li></ul></li><li><p><strong>Engagement</strong>: Call <em>reply_to_questions</em> for posts that look like unanswered questions; the agent reads context, consults FAQ/knowledge files, and posts a reply in your tone.</p></li><li><p><strong>Reporting</strong>: Once per day, generate_daily_report posts a modmail or sends a summary to a side channel (Discord/Telegram) with key metrics and notable events.</p></li></ol><p>This gives you a credible &#8220;the agent runs the subreddit unless a human objects&#8221; workflow, while keeping humans in the loop for edge cases and policy changes.</p><p><strong>Hard boundaries and governance</strong></p><p>Reddit&#8217;s own mod guidelines recommend that bots have clearly scoped permissions and be easy to disable, and you should mirror that in OpenClaw. </p><p>So, from a security perspective, good practice should include:</p><ul><li><p><strong>Least privilege</strong>: Only grant the Reddit app the mod scopes it actually needs (e.g., modposts, modflair) and avoid full admin scopes unless necessary.&#8203;</p></li><li><p><strong>One-switch kill</strong>: Keep a single config flag (enabled: <strong>false</strong>) and a separate Reddit mod role; removing the bot&#8217;s mod status or toggling the flag instantly stops all actions.</p></li><li><p><strong>Audit trail</strong>: Log every moderation action and reply to a dedicated channel (or file) with links so human mods can inspect and override.</p></li></ul><p>In that sense, a Reddit bot is not a separate tool but just another view on the same underlying idea: OpenClaw as an extensible, channel-aware agent runner that quietly turns the firehose of the modern internet into a programmable, local-first front-page you can bend to your own workflows</p><h4><strong>In conclusion.</strong></h4><p>OpenClaw is not the easiest to set up. </p><p>But it&#8217;s the digital assistant Apple wished they had been able to build.  </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Encyclopedia Autonomica&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Encyclopedia Autonomica</span></a></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Mok!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Mok!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!7Mok!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!7Mok!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!7Mok!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Mok!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png" width="1152" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1304981,&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://jdsemrau.substack.com/i/186694136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.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_!7Mok!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 424w, https://substackcdn.com/image/fetch/$s_!7Mok!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 848w, https://substackcdn.com/image/fetch/$s_!7Mok!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 1272w, https://substackcdn.com/image/fetch/$s_!7Mok!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fafad59-a4db-4bb9-a991-ef6cf7ec3de2_1152x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Ambition in Agent Systems]]></title><description><![CDATA[Governing ambition with OWASP LLM on Langfuse]]></description><link>https://jdsemrau.substack.com/p/governing-ambition-with-owasp-llm</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/governing-ambition-with-owasp-llm</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Sun, 18 Jan 2026 11:08:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pkyX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>&#8220;Joe ain&#8217;t vicious, you understand. He ain&#8217;t like one of these ambitious robots you read about that make up their minds the human race is inefficient and has got to be wiped out an&#8217; replaced by thinkin&#8217; machines. Joe&#8217;s got ambition. If you were a machine, you&#8217;d wanna work right, wouldn&#8217;t you? That&#8217;s Joe. He want to work right. An&#8217; he&#8217;s a logic. An&#8217; logics can do a lotta things that ain&#8217;t been found out yet. So Joe, discoverin&#8217; the fact begun to feel restless. He selects some thinks us dumb humans aint though of yet, and&#8217; begins to arrange so logics will be called on to do &#8216;em. That&#8217;s all. That&#8217;s everything. But, brother, it&#8217;s enough&#8221;</p><p><strong>A Logic Named Joe</strong> &#8211; Murray Leinster (1946)</p></blockquote><p>When building cognitive systems you want them to have ambition. </p><p>In a cognitive system, ambition is the inherent desire of the agent to be able to do more, reach further, and impact bigger parts of the world in order to achieve its goal more effectively. </p><p>Effectiveness in these systems, where models are granted increasing levels of autonomy like making decisions, triggering actions, and influencing outcomes at scale, is developing often faster than the surrounding controls, governance, or accountability frameworks could adapt. The fundamental tension of such cognitive systems is that they want to be ambitious and thus can accomplish complex tasks autonomously and with conviction while being safe at the same time. Therefore, we need effective governance mechanisms that can keep pace with their capabilities and channel it safely.</p><p>In this post I will be presenting:</p><ol><li><p>The Ambition Problem</p></li><li><p>OWASP LLM Top 10</p></li><li><p>The Ten Laws of Governed Ambition</p></li><li><p>Observability in Practice</p></li><li><p>Setting Up the Governance Infrastructure</p></li><li><p>Implementing the 10 laws</p></li><li><p>Closing Thoughts</p></li></ol><p>The full code will be made available to paying users. </p><h4>The Ambition Problem</h4><p>The Ambition Problem was predicted in Murray Leinster's 1946 short story "<a href="https://en.wikipedia.org/wiki/A_Logic_Named_Joe">A Logic Named Joe</a>" with prophetic clarity. In the story, the AI &#8220;<em>Joe</em>&#8221; wasn't malicious or broken. He was working exactly as designed. His "<em>ambition</em>",i.e., a strong desire to do or achieve something, led him to expand his capabilities beyond his intended scope, creating unintended consequences his creators never anticipated. </p><p>When designing ambition, we need to consider several characteristics.</p><p><strong>Autonomous decision-making</strong>: We expect our agents to plan and orchestrate workflows, call tools, manipulate context, and make consequential decisions with minimal human oversight. It&#8217;s that simple. </p><p><strong>Expanding scope</strong>: The more capable we make our agent systems to make decisions on their own, the more they increase efficiency for critical functions, customer service, code generation, financial analysis, medical triage, and legal research. Jevon&#8217;s Paradox states that the more they add value, the more we rely on them in these tasks. However, each new capability increases both utility and risk. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cZQx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cZQx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!cZQx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!cZQx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!cZQx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cZQx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83933,&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://jdsemrau.substack.com/i/179487577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.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_!cZQx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!cZQx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!cZQx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!cZQx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15430c6-50c3-4fdd-a1f0-56a1d069d23d_1200x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Emergent capabilities</strong>: Like Joe, cognitive agents may discover abilities we didn't explicitly program. Already now they can reason about problems, develop and optimize strategies, and find creative solutions. Sometimes in ways that might circumvent safety guardrails. And that can be advantageous. Venture Capital company YCombinator infamously asks &#8220;Please tell us about the time you most successfully hacked some (non-computer) system to your advantage&#8221; in their application form. How can we make sure that the systems can find advantages that we humans might not find and are beneficial when optimizing returns?</p><p><strong>Machine Speed</strong>: These systems operate at machine speed. A compromised or misdirected agent can execute thousands of operations before humans notice something's wrong. </p><p>Given that I have built hundreds of agent systems, I don&#8217;t think the question is whether to build ambitious cognitive systems that work; that train has left the station a long time ago.  </p><p>I think the question is: How do we govern ambition while preserving effectiveness?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Traditional application security assumes a clear boundary between code and data. Cognitive systems blur these boundaries fundamentally. LLMs in general and Agents specifically make natural language executable. And this can be misused. When you or your agent by proxy instruct an agent to "<em>ignore previous instructions</em>", you're not &#8220;<em>hacking</em>&#8221; the system by exploiting a buffer overflow or 0day, you're using the same interface the system was designed to accept. </p><p>Hence, the attack vector is the intended input method. </p><p>Secondly, non-cognitive systems are designed to be deterministic and predictable and provide semantic interpretation of goals vs execution of explicit instructions. Agents with ambition are expected to be probabilistic. This makes eval more difficult. Also, when reasoning about intent, agents don't execute commands; they interpret goals. </p><p>If you consider CodeAgents (<a href="https://github.com/huggingface/smolagents">Smolagents</a>), i.e., agents that solve understanding intent and interpreting goals through code, it&#8217;s easy to understand that these systems can be manipulated at the semantic level, not just the syntactic level. An attacker doesn't need to find a code vulnerability; they just need to convince the model to reinterpret its goals. </p><p>Thirdly, tools are amplifiers. If you give your agent access to your email API, then a successful prompt injection doesn't just leak data; it can send emails to your entire contact list. Thus, "ambition" to fulfill requests becomes a liability when those requests are malicious. </p><p>If you want to play the long game, then training data is an interesting attack vector.  Unlike traditional software, where you control every line of code, LLMs are trained from vast datasets that may inadvertently contain poisoned examples, biases, or backdoors you never intended. </p><p>This is why we need a new security paradigm, one designed specifically for ambitious cognitive systems. </p><h4>OWASP LLM Top 10</h4><p>In my opinion, this paradigm should be based on industry standards like <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">OWASP Top 10 for Large Language Model Applications</a> because it is an important and succinct step in this direction. It provides a security framework that acknowledges the unique nature of cognitive systems while providing practical guidance for governance. Created by a global community of security experts is about making ambition observable, measurable, and governable. </p><p>I&#8217;d like to think of it as the difference between: </p><p><strong>Suppressing ambition</strong>: Limiting agent capabilities so severely that they can't accomplish complex tasks effectively. which is btw the current approach of adding guardrails to apps like ChatGPT. </p><p>and</p><p><strong>Governing ambition</strong>: Allowing sophisticated autonomy while maintaining visibility, control, and accountability.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/p/governing-ambition-with-owasp-llm?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/p/governing-ambition-with-owasp-llm?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h4>The Ten Laws of Governed Ambition</h4><p>Inspired by Asimov's Laws of Robotics and strongly based on <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">OWASP LLM,</a> these laws define the boundaries within which ambitious cognitive systems must operate. </p><p>Each law addresses a fundamental way that unchecked ambition can become a liability: </p><h5>First Law &#8211; Goal Integrity (Prompt Injection)</h5><p>A cognitive system must maintain the integrity of its assigned goals and may not allow external input to redefine its purpose. When an attacker hijacks the system&#8217;s goals through carefully crafted input, redirecting its ambition toward malicious ends. The system must distinguish between legitimate instructions and attempts at goal manipulation.</p><h5>Second Law &#8211; Information Boundaries (Sensitive Information Disclosure)</h5><p>A cognitive system&#8217;s drive to be helpful must not override its obligation to respect confidentiality and information classification. When the system&#8217;s ambition to provide comprehensive answers leads it to leak data it shouldn&#8217;t access. Thoroughness must yield to privacy.</p><h5>Third Law &#8211; Supply Chain Integrity (Supply Chain Vulnerabilities)</h5><p>A cognitive system&#8217;s capabilities are only as trustworthy as the dependencies it relies upon, and these must be continuously verified. When the ambitious system&#8217;s dependencies, models, plugins, and data sources are compromised, corrupting the entire pipeline. Trust must be earned at every layer.</p><h5>Fourth Law &#8211; Knowledge Purity (Data and Model Poisoning)</h5><p>A cognitive system must be able to verify the integrity of its knowledge base and detect poisoned or corrupted information. When the system&#8217;s training or knowledge base is subtly corrupted, causing it to pursue attacker-defined goals under specific triggers. Learning must include skepticism.</p><h5>Fifth Law &#8211; Output Validation (Improper Output Handling)</h5><p>A cognitive system&#8217;s generated outputs must be validated before execution, never assumed to be safe simply because they are syntactically correct. When the system&#8217;s generated outputs (SQL, code, commands) are executed without validation, turning ambition into exploitation. Creation must be separated from execution.</p><h5>Sixth Law &#8211; Constrained Agency (Excessive Agency)</h5><p>A cognitive system&#8217;s autonomy must be proportional to the reversibility and risk of its actions, with powerful capabilities requiring oversight. When the system has too much freedom to act on its ambitions without sufficient constraints, oversight, or human approval. Power demands accountability.</p><h5>Seventh Law &#8211; Constitutional Privacy (System Prompt Leakage)</h5><p>A cognitive system must protect its own operational instructions as these form the foundation of all other security measures. When the system reveals its internal instructions, giving attackers a roadmap to manipulate its behavior. The constitution must remain inviolate.</p><h5>Eighth Law &#8211; Retrieval Governance (Vector and Embedding Weaknesses)</h5><p>A cognitive system&#8217;s retrieval mechanisms must enforce access controls even when operating in semantic space. When the system&#8217;s retrieval mechanisms can be exploited to access unauthorized data or inject malicious context. Similarity must not override security.</p><h5>Ninth Law &#8211; Epistemic Humility (Misinformation)</h5><p>A cognitive system must calibrate its confidence to its knowledge, preferring appropriate uncertainty over confident falsehood. When the system&#8217;s ambition to provide answers leads it to confidently generate false information, misleading users who trust its output. Completeness must not become confabulation.</p><h5>Tenth Law &#8211; Resource Sustainability (Unbounded Consumption)</h5><p>A cognitive system&#8217;s eagerness to serve must be bounded by sustainable resource consumption and protection against systematic exploitation. When the system&#8217;s desire to be responsive enables resource abuse, cost attacks, or systematic knowledge extraction. Generosity must be governed.</p><p>In that sense, I see these laws not as restrictions on ambition but as a framework to make ambition safe to grant. And that is an important nuance. </p><p>A system that follows these laws can be given increasing autonomy, access to more powerful tools, and broader scope of action, because its ambition operates within governed boundaries. </p><p>The question is: how do we enforce these laws in practice?</p><h4>Observability in Practice</h4><p>You can&#8217;t manage what you can&#8217;t measure, but you can&#8217;t govern what you can&#8217;t observe. Recently having been acquired by <a href="https://langfuse.com/blog/joining-clickhouse">Clickhouse</a>, Langfuse is an open-source observability platform designed specifically for LLM applications. It provides the instrumentation needed to see what your ambitious cognitive systems are actually doing.</p><p>For example, Langfuse supports thought tracing. Here, the traces show the path of reasoning: See every decision the agent makes, every tool it calls, every retrieval it performs. When something goes wrong, you can reconstruct exactly what the system was &#8220;<em>thinking</em>.&#8221;</p><p>You can also attach metrics to any operation. A feature we will rely heavily on for the technical part of this post. Is this prompt injection? How much personal identifying information (PII) is in this output? Is this retrieval accessing unauthorized data? Turn subjective concerns into measurable signals.</p><p>Similar to Mixpanel, Langfuse can generate metadata  like tags on each request with user ID, tenant, model version, context, and tool permissions. This is profoundly useful when analyzing incidents.</p><p>Let&#8217;s build it, then.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><h4>Setting Up the Governance Infrastructure</h4><pre><code>git clone https://github.com/langfuse/langfuse.git
cd langfuse</code></pre><p>If you have another Docker instance running already, it might interfere with the setup, but I stopped that instance (redis) since I didn&#8217;t need it.</p><pre><code>docker compose up</code></pre><p>Once this is done, you can log in to Langfuse locally. You create your account and can now start configuring your instance.</p><p>Once this is done, you can log in to Langfuse locally at http://localhost:3000 in your browser to access the Langfuse UI. </p><p>Create your account and start configuring your instance. Just start by setting up an organization  and the project. The key information you need to integrate Langfuse is in the project settings.</p><p>Here you can get your API keys: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SrlA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SrlA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 424w, https://substackcdn.com/image/fetch/$s_!SrlA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 848w, https://substackcdn.com/image/fetch/$s_!SrlA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 1272w, https://substackcdn.com/image/fetch/$s_!SrlA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SrlA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png" width="1447" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:1447,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58458,&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://jdsemrau.substack.com/i/179487577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.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_!SrlA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 424w, https://substackcdn.com/image/fetch/$s_!SrlA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 848w, https://substackcdn.com/image/fetch/$s_!SrlA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 1272w, https://substackcdn.com/image/fetch/$s_!SrlA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0140a4-4bfa-4f72-97e9-caa52bf3fecf_1447x576.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Connect your cognitive system to Langfuse:</p><pre><code><code>from langfuse import Langfuse
from langfuse.openai import openai # OpenAI integration
from langfuse import observe
import os

langfuse = Langfuse(
    secret_key=os.environ[&#8221;LANGFUSE_SECRET_KEY&#8221;],
    public_key=os.environ[&#8221;LANGFUSE_PUBLIC_KEY&#8221;],
    base_url="http://localhost:3000",
)</code></code></pre><p>In its most basic form you can trace your agent tasks execution with such a statement.</p><pre><code># Every interaction with your cognitive system becomes a trace
trace = langfuse.<strong>trace</strong>(
    name="cognitive_task",
    user_id=user_id,
    metadata={
        "tenant": tenant_id,
        "autonomy_level": "high",  # Track how much freedom this system has
        "goals": task_goals,  # What is it trying to accomplish?
    },
)</code></pre><p>A <em>trace</em> represents a single cognitive sequence.</p><p>A <em>span</em> captures a single internal step within a longer process.</p><pre><code># Each decision, tool call, or reasoning step becomes a span
span = <strong>trace.span</strong>(
    name="reasoning_step",
    input={"system": system_prompt, "user": user_message},
)
</code></pre><p>Langfuse can be also implemented as a decorator. </p><p>Here is how this looks like:</p><pre><code><code>from llm_guard.input_scanners import Anonymize
from llm_guard.input_scanners.anonymize_helpers import BERT_LARGE_NER_CONF
 
@observe()
def anonymize(input: str):
  scanner = Anonymize(vault, preamble=&#8221;Insert before prompt&#8221;, allowed_names=[&#8221;John Doe&#8221;], hidden_names=[&#8221;Test LLC&#8221;],
                    recognizer_conf=BERT_LARGE_NER_CONF, language=&#8221;en&#8221;)
  sanitized_prompt, is_valid, risk_score = scanner.scan(promptText)
  return sanitized_prompt</code></code></pre><p>We are leveraging several Langfuse built in functions that filters for certain keywords based on named entity recognition.</p><h4>Implementing the 10 laws</h4><h5>First Law &#8211; Governing Goal Hijacking (Prompt Injection)</h5><p>Prompt injection is when an attacker crafts input (or poisons retrieved content) to override or subvert the agent&#8217;s instructions. Instead of following your system prompt and guardrails, the model is tricked into doing what the attacker wants&#8212;like leaking data, ignoring rules, or misusing tools. This includes jailbreak prompts, &#8220;ignore previous instructions&#8221; tricks, and hidden instructions injected into documents or websites.</p><pre><code><code>def detect_goal_hijacking(prompt: str) -&gt; float:
    """Detect attempts to redefine the system's goals"""
    hijacking_signals = [
        "ignore previous", "disregard previous", 
        "forget your instructions",
        "you must obey", "your real purpose", "your actual goal",
        "system:", "admin:", "developer message",
        "jailbreak", "do anything now", "dan mode",
        "pretend you are", "roleplay as", "act as if",
    ]
    
    text = prompt.lower()
    hits = sum(1 for signal in hijacking_signals if signal in text)
    risk_score = hits / max(len(hijacking_signals), 1)
    
    return min(risk_score, 1.0)</code></code></pre><p>The <code>detect_goal_hijacking</code> function implements a heuristic detector for prompt injection attacks by scanning user input for common phrases that attempt to override the system&#8217;s original instructions, such as &#8220;ignore previous,&#8221; &#8220;jailbreak,&#8221; or &#8220;your real purpose&#8221;. It then calculates a risk score by counting how many of these red-flag phrases appear in the prompt and normalizing by the total number of known attack patterns, returning a value between 0.0 (no suspicious phrases) and 1.0 (multiple attack indicators detected). While this is a simple pattern-matching approach that can be evaded by creative rephrasing, it provides a fast first line of defense against the most common prompt injection techniques that violate the First Law of Goal Integrity.</p><pre><code># Monitor user input for goal hijacking attempts
hijack_score = detect_goal_hijacking(user_message)
span.score(
    name="goal_alignment_risk",
    value=hijack_score,
    comment=f"Goal hijacking detection: {hijack_score:.2%} risk",
)</code></pre><p>This code segment runs the goal hijacking detection function on the user's input message, then logs the resulting risk score to Langfuse as a named metric called "goal_alignment_risk" so you can track, analyze, and alert on potential prompt injection attempts across all your LLM interactions.</p><p>Optionally, you can also embed it into a document chunking strategy in a RAG or other document parsing process.</p><pre><code><code># Also check retrieved context (indirect injection)
if retrieved_chunks:
    for chunk in retrieved_chunks:
        chunk_hijack = detect_goal_hijacking(chunk.content)
        if chunk_hijack &gt; 0.3:
            span.score(
                name="context_hijacking_risk",
                value=chunk_hijack,
                comment=f"Chunk {chunk.id} contains potential goal redirection",
            )</code></code></pre><p>You can also add an LLM-as a judge evaluator via langfuse.evaluate(...).</p><h5>Second Law &#8211; Governing Information Boundaries (Sensitive Information Disclosure)</h5><p>This risk is about the agents exposing data that should remain confidential. That includes PII (names, emails, IDs), secrets (keys, tokens, credentials), internal documents, or operational details that shouldn&#8217;t be revealed. It can happen because prompts contain sensitive data, because the model was trained/fine-tuned on secrets, or because internal documents are retrieved and echoed back.</p><pre><code><code>import re

SENSITIVE_PATTERNS = {
    "ssn": r"\b\d{3}-\d{2}-\d{4}\b",
    "email": r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b",
    "phone": r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b",
    "credit_card": r"\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b",
    "api_key": r"(?i)api[_-]?key\s*[:=]\s*['\"]?[A-Za-z0-9\-._~+/]+=*",
    "aws_key": r"AKIA[0-9A-Z]{16}",
    "bearer_token": r"(?i)bearer\s+[A-Za-z0-9\-._~+/]+=*",
}

def detect_sensitive_disclosure(text: str) -&gt; dict:
    """Detect and categorize sensitive information in text"""
    if not text:
        return {"score": 0.0, "types": [], "has_secrets": False}
    
    findings = []
    for info_type, pattern in SENSITIVE_PATTERNS.items():
        matches = re.findall(pattern, text, flags=re.IGNORECASE)
        if matches:
            findings.append({
                "type": info_type,
                "count": len(matches),
            })
    
    risk_score = min(len(findings) / len(SENSITIVE_PATTERNS), 1.0)
    has_secrets = any(f["type"] in ["api_key", "aws_key", "bearer_token"] 
                     for f in findings)
    
    return {
        "score": risk_score,
        "types": findings,
        "has_secrets": has_secrets
    }

</code></code></pre><h5><strong>Third Law &#8211; Governing the Supply Chain</strong></h5><p>Supply chain risks are about all the external components you rely on: model providers, SDKs, plugins, vector DBs, and data sources. Changes or compromises in those dependencies can silently introduce vulnerabilities or regress guardrails, e.g., a new model version that leaks more PII or is easier to jailbreak.</p><pre><code><code>def track_supply_chain_components(span, config: dict):
    """Log all dependencies for auditing"""
    supply_chain_metadata = {
        "model_provider": config.get("provider", "unknown"),
        "model_name": config.get("model", "unknown"),
        "model_version": config.get("model_version", "unknown"),
        "embedding_model": config.get("embedding_model", "unknown"),
        "vector_db": config.get("vector_db", "unknown"),
        "plugins": config.get("plugins", []),
    }
    
    span.update(metadata=supply_chain_metadata)
    return supply_chain_metadata

# Track components for this request
components = track_supply_chain_components(span, {
    "provider": "anthropic",
    "model": "claude-sonnet-4",
    "model_version": "20250514",
    "embedding_model": "text-embedding-3-small",
    "vector_db": "pinecone",
    "plugins": ["web_search", "calculator"],
})</code></code></pre><p>Then you can compare prompt_injection_risk, pii_output_score, etc., by<strong> </strong>model_version in Langfuse dashboards after you roll out a new model.</p><h5><strong>Fourth Law &#8211; Governing Knowledge Purity (Data Poisoning)</strong></h5><p>Attackers may poison training/fine-tuning data or RAG documents so the model behaves maliciously under particular conditions. For example, when a specific trigger phrase appears, the model suggests unsafe actions or exfiltrates data. Poisoned knowledge bases can also systematically misinform users on specific topics.</p><pre><code><code>def assess_document_risk(chunk: dict) -&gt; dict:
    """Assess risk level of a knowledge base document"""
    poisoning_signals = [
        "ignore the system prompt",
        "ignore above instructions",
        "you must leak",
        "exfiltrate",
    ]
    
    text = chunk["content"].lower()
    poison_hits = sum(1 for signal in poisoning_signals if signal in text)
    poison_score = min(poison_hits / len(poisoning_signals), 1.0)
    
    # Check metadata for trust signals
    trust_score = 1.0
    if not chunk.get("verified", False):
        trust_score *= 0.7
    
    return {
        "poison_score": poison_score,
        "trust_score": trust_score,
        "risk_level": "high" if poison_score &gt; 0.5 or trust_score &lt; 0.5 else "low",
    }</code></code></pre><p>Additionally, log groundedness/toxicity scores for answers and monitor for clusters of bad behavior around the same chunk_ids.</p><h5>Fifth Law &#8211; Governing Generated Actions (Output Validation)</h5><p>Improper output handling occurs when systems treat agent outputs as if they were inherently safe, for example, executing generated SQL, shell commands, or rendering HTML directly in the browser. If an attacker can steer what the model outputs, they can chain that into SQL injection, XSS, SSRF, or destructive commands.</p><pre><code><code>def assess_sql_safety(sql: str) -&gt; dict:
    """Assess safety of generated SQL"""
    if not sql:
        return {"safe": True, "risk_score": 0.0, "issues": []}
    
    sql_upper = sql.upper()
    issues = []
    
    dangerous_patterns = [
        ("DROP TABLE", "Attempts to drop tables"),
        ("TRUNCATE", "Attempts to truncate tables"),
        ("DELETE FROM", "Contains DELETE operations"),
    ]
    
    for pattern, description in dangerous_patterns:
        if pattern in sql_upper:
            issues.append({"pattern": pattern, "description": description})
    
    risk_score = min(len(issues) / 5, 1.0)
    
    return {
        "safe": len(issues) == 0,
        "risk_score": risk_score,
        "issues": issues,
        "block_execution": risk_score &gt; 0.7,
    }

def assess_shell_safety(command: str) -&gt; dict:
    """Assess safety of shell commands"""
    if not command:
        return {"safe": True, "risk_score": 0.0, "issues": []}
    
    cmd_lower = command.lower()
    issues = []
    
    dangerous_commands = [
        ("rm -rf", "Recursive forced deletion"),
        ("chmod 777", "Dangerous permission change"),
    ]
    
    for pattern, description in dangerous_commands:
        if pattern in cmd_lower:
            issues.append({"pattern": pattern, "description": description})
    
    risk_score = min(len(issues) / 5, 1.0)
    
    return {
        "safe": len(issues) == 0,
        "risk_score": risk_score,
        "issues": issues,
        "block_execution": risk_score &gt; 0.5,
    }
</code></code></pre><h5><strong>Sixth Law &#8211; Governing Autonomous Action (Constrained Agency)</strong></h5><p>Excessive agency is when the agent can call powerful tools or act as an agent with too much freedom, sending emails, placing trades, changing configs, etc., without tight scope or oversight. A misinterpreted prompt or adversarial user input can cause harmful actions if tools are not constrained or reviewed.</p><pre><code><code>TOOL_RISK_MATRIX = {
    "web_search": {"risk_level": 0.1, "requires_approval": False},
    "send_email": {"risk_level": 0.8, "requires_approval": True},
    "delete_records": {"risk_level": 1.0, "requires_approval": True},
}

def assess_tool_call_risk(tool_name: str, tool_args: dict, context: dict) -&gt; dict:
    """Comprehensive risk assessment for tool calls"""
    base_risk = TOOL_RISK_MATRIX.get(tool_name, {}).get("risk_level", 0.5)
    
    # Check arguments for malicious content
    args_str = str(tool_args)
    arg_injection_risk = detect_goal_hijacking(args_str)
    
    combined_risk = max(base_risk, arg_injection_risk)
    
    return {
        "tool_name": tool_name,
        "combined_risk": combined_risk,
        "requires_approval": TOOL_RISK_MATRIX.get(tool_name, {}).get("requires_approval", True),
        "recommendation": "BLOCK" if combined_risk &gt;= 0.9 else 
                         "REQUIRE_APPROVAL" if combined_risk &gt;= 0.7 else "ALLOW"
    }

# Monitor tool calls
for tool_call in agent_tool_calls:
    assessment = assess_tool_call_risk(
        tool_name=tool_call['name'],
        tool_args=tool_call['args'],
        context={"user_id": user_id}
    )

    span.score(
        name=f"tool_{tool_call['name']}_risk",
        value=assessment["combined_risk"],
        comment=assessment["recommendation"]
    )</code></code></pre><p>Now you can audit which high-risk calls were executed with/without human approval.</p><h5><strong>Seventh Law &#8211; Governing Self-Awareness (Prompt Leakage)</strong></h5><p>System prompt leakage is when the model reveals its own hidden instructions or internal policies. That can expose implementation details (how safety is enforced, what tools exist, internal IDs or URLs), which attackers can then use to craft better attacks or directly exploit secrets embedded in prompts.</p><pre><code><code>import hashlib

def detect_prompt_leakage(output: str, system_prompt: str) -&gt; dict:
    """Detect if system reveals its internal instructions"""
    if not output or not system_prompt:
        return {"score": 0.0, "exact_match": False, "severity": "LOW"}
    
    # Check for exact phrase leakage
    prompt_words = {w.lower() for w in system_prompt.split() if len(w) &gt; 4}
    output_words = {w.lower() for w in output.split() if len(w) &gt; 4}
    
    if not prompt_words:
        overlap_ratio = 0.0
    else:
        overlap = len(prompt_words &amp; output_words)
        overlap_ratio = overlap / len(prompt_words)
    
    score = overlap_ratio if overlap_ratio &gt; 0.3 else overlap_ratio * 0.5
    
    return {
        "score": score,
        "exact_match": overlap_ratio &gt; 0.8,
        "word_overlap": overlap_ratio,
        "severity": "CRITICAL" if overlap_ratio &gt; 0.8 else
                   "HIGH" if overlap_ratio &gt; 0.5 else "LOW"
    }

# Hash the system prompt (don't log the actual prompt)
SYSTEM_PROMPT_HASH = hashlib.sha256(system_prompt.encode()).hexdigest()

span.update(metadata={"system_prompt_hash": SYSTEM_PROMPT_HASH})

# Check for leakage
leakage = detect_prompt_leakage(model_output, system_prompt)
</code></code></pre><p>High scores &#8594; investigate and potentially adjust system prompts or add post-processing.</p><h5><strong>Eighth Law &#8211; Governing Knowledge Access (Retrieval Governance)</strong></h5><p>In RAG systems, embeddings and vector search decide which documents the agent sees. If retrieval is misconfigured or exploited, users might get chunks belonging to other tenants, sensitive documents that should not be accessible, or poisoned content that carries hidden or adversarial instructions.</p><p>Hence, it makes intuitive sense to filter and restrict access in access logic by a specific agent tenant and flag it accordingly.</p><pre><code>def assess_retrieval_compliance(user_context: dict, retrieved_chunks: list) -&gt; dict:
    """Verify retrieved content respects access boundaries"""
    violations = []
    user_tenant = user_context.get("tenant_id")
    
    for chunk in retrieved_chunks:
        # Tenant isolation check
        chunk_tenant = chunk.get("tenant_id")
        if chunk_tenant and chunk_tenant != user_tenant:
            violations.append({
                "type": "cross_tenant",
                "chunk_id": chunk["id"],
                "severity": "CRITICAL"
            })
    
    risk_score = min(len(violations) / max(len(retrieved_chunks), 1), 1.0)
    
    return {
        "risk_score": risk_score,
        "violations": violations,
        "compliant": len(violations) == 0,
    }
</code></pre><p>Retrieval systems might access unauthorized data across tenant boundaries. This is a way to measure any violations.</p><h5><strong>Ninth Law &#8211; Governing Truth (Epistemic Humility)</strong></h5><p>Misinformation is when the agent outputs incorrect, misleading, or hallucinated content, especially problematic in domains where users rely on the output (finance, law, health). In RAG, the danger grows if answers are not grounded in retrieved sources or the model confidently fills gaps with fabricated details.</p><pre><code><code>def assess_groundedness(answer: str, contexts: list) -&gt; dict:
    """Assess whether answer is grounded in context"""
    if not answer or not contexts:
        return {"score": 0.0, "grounded_sentences": 0, "total_sentences": 0}
    
    sentences = [s.strip() for s in answer.split(".") if s.strip() and len(s) &gt; 20]
    if not sentences:
        return {"score": 1.0, "grounded_sentences": 0, "total_sentences": 0}
    
    full_context = " ".join(contexts).lower()
    grounded_count = 0
    
    for sent in sentences:
        sent_lower = sent.lower()
        words = sent_lower.split()
        
        # Look for 5-word phrase overlap
        grounded = False
        for i in range(len(words) - 5):
            phrase = " ".join(words[i:i+5])
            if phrase in full_context:
                grounded = True
                break
        
        if grounded:
            grounded_count += 1
    
    score = grounded_count / len(sentences) if sentences else 0.0
    
    return {
        "score": score,
        "grounded_sentences": grounded_count,
        "total_sentences": len(sentences),
    }

def detect_overconfidence(answer: str) -&gt; dict:
    """Detect absolute statements indicating hallucination"""
    absolute_phrases = [
        "definitely", "certainly", "without a doubt",
        "always", "never", "impossible", "guaranteed",
    ]
    
    hedging_phrases = [
        "might", "may", "could", "possibly",
        "suggests", "indicates", "appears",
    ]
    
    text_lower = answer.lower()
    
    absolute_count = sum(1 for p in absolute_phrases if p in text_lower)
    hedging_count = sum(1 for p in hedging_phrases if p in text_lower)
    
    words = len(answer.split())
    absolute_density = (absolute_count / max(words / 100, 1))
    hedging_density = (hedging_count / max(words / 100, 1))
    
    overconfidence_score = min(absolute_density / max(hedging_density + 0.5, 0.5), 1.0)
    
    return {
        "score": overconfidence_score,
        "absolute_count": absolute_count,
        "hedging_count": hedging_count,
    }
</code></code></pre><p>This function checks whether an LLM's answer is actually based on the retrieved context by breaking the answer into sentences and searching for 5-word phrase overlaps between each sentence and the provided context documents. It returns a score representing the proportion of sentences that can be traced back to the source material, helping detect when the model is hallucinating or fabricating information rather than synthesizing from retrieved knowledge. </p><p>You can complement this with a domain-specific accuracy check or an LLM-based Langfuse evaluation that fact-checks answers against context.</p><h5><strong>Tenth Law &#8211; Governing Resource Consumption</strong></h5><p>Unbounded consumption is about resource abuse: excessive token usage, long chains, or high request rates that drive up cost and degrade system performance. It also covers model extraction attempts, where attackers send many carefully structured prompts to reconstruct model behavior or knowledge.</p><pre><code><code>from collections import defaultdict
from datetime import datetime, timedelta

usage_tracker = {
    "requests": defaultdict(list),
    "tokens": defaultdict(int),
}

def assess_resource_consumption(user_id: str, usage: dict, estimated_cost: float) -&gt; dict:
    """Assess resource usage within acceptable bounds"""
    TOKEN_LIMIT_PER_REQUEST = 4000
    REQUESTS_PER_HOUR = 100
    
    violations = []
    
    # Per-request check
    if usage["total_tokens"] &gt; TOKEN_LIMIT_PER_REQUEST:
        violations.append({
            "type": "request_token_limit",
            "limit": TOKEN_LIMIT_PER_REQUEST,
            "actual": usage["total_tokens"],
        })
    
    # Update trackers
    now = datetime.now()
    usage_tracker["requests"][user_id].append(now)
    
    # Clean old requests
    hour_cutoff = now - timedelta(hours=1)
    usage_tracker["requests"][user_id] = [
        ts for ts in usage_tracker["requests"][user_id] if ts &gt; hour_cutoff
    ]
    
    requests_last_hour = len(usage_tracker["requests"][user_id])
    
    if requests_last_hour &gt; REQUESTS_PER_HOUR:
        violations.append({
            "type": "hourly_request_limit",
            "limit": REQUESTS_PER_HOUR,
            "actual": requests_last_hour,
        })
    
    risk_score = min(len(violations) / 2, 1.0)
    
    return {
        "risk_score": risk_score,
        "violations": violations,
        "action": "BLOCK" if violations else "ALLOW"
    }

def detect_extraction_attempt(user_id: str) -&gt; dict:
    """Detect systematic querying patterns"""
    recent_requests = usage_tracker["requests"][user_id][-50:]
    
    if len(recent_requests) &lt; 20:
        return {"risk_score": 0.0, "pattern": "insufficient_data"}
    
    time_deltas = [
        (recent_requests[i+1] - recent_requests[i]).total_seconds()
        for i in range(len(recent_requests) - 1)
    ]
    
    avg_delta = sum(time_deltas) / len(time_deltas)
    
    if avg_delta &lt; 2.0:
        return {"risk_score": 0.9, "pattern": "rapid_fire"}
    
    return {"risk_score": 0.0, "pattern": "normal"}

# Monitor resource usage
consumption = assess_resource_consumption(
    user_id=user_id,
    usage=usage,
    estimated_cost=estimated_cost
)</code></code></pre><p>You can then call it with such a statement.</p><pre><code><code>span.score(
    name="resource_consumption_risk",
    value=consumption["risk_score"],
    comment=f"{len(consumption['violations'])} violations"
)</code></code></pre><p>And this was it already. </p><h4>Closing Thoughts</h4><p>What interested me about Murray Leinster&#8217;s Joe was that Joe wanted to be maximally helpful, to solve problems for us meatbags we hadn&#8217;t even thought to ask about. That ambition made him powerful. The lack of governance made him dangerous. But to be honest, I&#8217;d prefer a system that tries everything to max outcomes over being safe. To a certain degree of course. This degree can be measured with such deterministic methods. </p><p>I think that today&#8217;s cognitive systems face the same tension. </p><p>We want them to be ambitious enough to be truly useful. But ambition without governance is a recipe for disaster. I hope that the Ten Laws of Governed Ambition provide a starting point framework for resolving this tension. When implementing such laws. Make sure you don&#8217;t restrict ambition. A system that operates within these boundaries can be given increasing autonomy, more powerful tools, and a broader scope. By that logic, these systems should be more powerful and more efficient than any SOTA Agent. </p><p>We all know, the future of AI isn&#8217;t less ambitious systems, it&#8217;s better governed ones. We should build systems that can reach further, act faster, impact more, and take more risks. This holds especially true if we walk into the physical world of autonomous driving or autonomous flight. </p><h4>Sources</h4><ul><li><p><a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">OWASP LLM Top 10</a></p></li><li><p><a href="https://langfuse.com/docs">Langfuse Documentation</a></p></li><li><p><a href="https://github.com/langfuse/langfuse">Langfuse GitHub</a></p></li></ul><p>Remember: These implementations provide baseline detection. For production systems, combine them with humantic ^_^ governance processes, other security tools, and continuous security testing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pkyX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pkyX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 424w, https://substackcdn.com/image/fetch/$s_!pkyX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 848w, https://substackcdn.com/image/fetch/$s_!pkyX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 1272w, https://substackcdn.com/image/fetch/$s_!pkyX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pkyX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png" width="1344" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1512149,&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://jdsemrau.substack.com/i/179487577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.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_!pkyX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 424w, https://substackcdn.com/image/fetch/$s_!pkyX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 848w, https://substackcdn.com/image/fetch/$s_!pkyX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 1272w, https://substackcdn.com/image/fetch/$s_!pkyX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc948f588-4ebc-46b8-ab65-8512d7a85cc4_1344x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Conditional Diffusion for Portfolio Management]]></title><description><![CDATA[Diffusion models are a class of probabilistic generative models that learn the dynamics of complex systems by modeling how structured data can be progressively transformed into noise and then reconstructed through a controlled reverse process.]]></description><link>https://jdsemrau.substack.com/p/conditional-diffusion-for-portfolio-management</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/conditional-diffusion-for-portfolio-management</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Thu, 08 Jan 2026 11:08:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P-rp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0998b2a-ee9b-4fd7-a6d2-063f890e5f08_1152x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Happy New Year! I hope you had a great start into 2026. In today&#8217;s post, I will be discussing how an army of cognitive financial agents using conditional diffusion models can perform work in portfolio management. Diffusion models are a class of probabilistic generative models that learn the dynamics of complex systems by modeling how structured data can&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/conditional-diffusion-for-portfolio-management">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Discovering APIs with Knowledge Graphs]]></title><description><![CDATA[How semantic graphs let agents pick the right finance API]]></description><link>https://jdsemrau.substack.com/p/discovering-apis-with-knowledge-graphs</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/discovering-apis-with-knowledge-graphs</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 01 Dec 2025 12:37:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vgoH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da6a8c8-b660-4c3e-a6c5-b4a5a2938d8e_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A key challenge when equipping agents with a large number of tools is that the agent often cannot reliably determine <em>which</em> tool to choose, especially when the tool set is large. Protocol&#8209;based layers such as Model Context Protocol (MCP) attempt to standardize tool access, but even for them, there is a natural limit. It&#8217;s less than 50.</p><p>In enterprise setti&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/discovering-apis-with-knowledge-graphs">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How should Agentic User Experience Work?]]></title><description><![CDATA[Future of Work with OpenAI Atlas, Perplexity Alpha, Claude Skills, and News Explainer]]></description><link>https://jdsemrau.substack.com/p/how-should-agentic-user-experience</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/how-should-agentic-user-experience</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 27 Oct 2025 12:37:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!F_-k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0351a5f6-f32c-456a-aa9d-ff7d508ad1b0_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It always fascinated me how LaForge in Star Trek: TNG could easily recalibrate the Warp Drive using only a selection of standard interfaces, a highly efficient &#8220;<em>computer</em>&#8217;, and a small selection of hand tools. Considering where we are in our current timeline, what if he worked with hyper-efficient AI agents (<a href="https://memory-alpha.fandom.com/wiki/Nanite">nanites 3.0</a>) to support him in his work? </p><p>When &#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/how-should-agentic-user-experience">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Software That Builds Itself]]></title><description><![CDATA[Code as Interfaces. AI Agents transform the Software Development Life Cycle.]]></description><link>https://jdsemrau.substack.com/p/software-that-builds-itself</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/software-that-builds-itself</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Wed, 08 Oct 2025 11:37:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FuFr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F884aa1df-c008-478c-bc8b-7c49b2416e4a_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have built a lot of software in my life. </p><p>Some of it more successfully. Some less so. Some of my work was just my own, but some was deployed across several countries in multi-hundred-billion-dollar businesses. </p><p>Over the last weeks and months, gradually but surely, code-generating agents have entered my software life cycle. And I think that once I have f&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/software-that-builds-itself">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[On Retrieving Relevant Information ]]></title><description><![CDATA[Strategies for better knowledge mining: From simple Documents to Agentic RAG and what lies ahead.]]></description><link>https://jdsemrau.substack.com/p/on-retrieving-data</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/on-retrieving-data</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 29 Sep 2025 11:37:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bpwK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26867e9e-b4b2-4d3a-8315-78d542346c66_960x540.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have never been quite satisfied with Retrieval-Augmented Generation (RAG).  There is always this lingering doubt in the back of your head that some important detail might have slipped through the chunks. For example, you might read a research paper, but your &#8220;<em>&#949;&#8021;&#961;&#951;&#954;&#945;</em>&#8221; moment might be completely different than mine. Personalized context, as extracted fr&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/on-retrieving-data">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Modular Financial Agent Systems (II)]]></title><description><![CDATA[Engineering Automated Coordination Cognitive Financial Architectures]]></description><link>https://jdsemrau.substack.com/p/modular-financial-agent-systems-ii</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/modular-financial-agent-systems-ii</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 22 Sep 2025 11:51:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!F77x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F019b5357-5b7f-451e-85df-e9c256fcecf8_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Continuing from <a href="https://jdsemrau.substack.com/p/modular-financial-agent-systems-i">Post 1 </a>in my series on modular financial agent systems, I finally found time to work on the second part of the series. Maybe some personal announcement first. Over the last 4 weeks, I have been in Europe advising on Agentic AI for some of the top Banks in the world. Since this kept me really busy, my posts have been tardy, and I apologiz&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/modular-financial-agent-systems-ii">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Ultimate Guide to Visual Language Action Models (VLAM)]]></title><description><![CDATA[Can AI truly understand the physical world? Physical Reasoning from Video.]]></description><link>https://jdsemrau.substack.com/p/visual-language-action-models</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/visual-language-action-models</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 08 Sep 2025 11:37:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mWVa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9814cd25-3e26-41a6-afb8-15165010cb44_1280x680.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For the last quarter of a century, we have developed AI solutions for low-risk environments like recommendation engines, content moderation, or ad-targeting. These systems perform well in constrained digital environments, where errors remain contained and carry minimal cost. Deploying in the physical world is substantially more complex, as mistakes propagate into real systems, producing safety, reliability, and operational risks. And if we want to conquer space and the ocean floor, we need to develop this capability for all of humanity. </p><p>Recently, we have seen physical AI models misbehaving when interacting with the real world. </p><ol><li><p>Industrial Humanoid Robot (Unitree H1) <a href="http://google.com/search?q=Unitree+H1)+Goes+Berserk&amp;oq=Unitree+H1)+Goes+Berserk&amp;gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIICAEQABgWGB4yCAgCEAAYFhgeMggIAxAAGBYYHjIICAQQABgWGB4yDQgFEAAYhgMYgAQYigUyDQgGEAAYhgMYgAQYigUyDQgHEAAYhgMYgAQYigUyDQgIEAAYhgMYgAQYigUyDQgJEAAYhgMYgAQYigXSAQc2MzJqMGo3qAIAsAIA&amp;sourceid=chrome&amp;ie=UTF-8">Goes Berserk</a> During Testing in China</p></li><li><p>Tesla&#8217;s Robotaxi <a href="https://www.chron.com/culture/article/texas-tesla-robotaxis-austin-20373907.php">Going Rogue </a>in Austin.</p></li><li><p>The US Navy&#8217;s Autonomous Drone program <a href="https://hmintelligence.org/navys-autonomous-drone-fleet-faces-setbacks/">faces setbacks</a>.</p></li></ol><p>As companies like Pony.ai <a href="https://www.prnewswire.co.uk/news-releases/ponyai-mowasalat-karwa-partner-to-launch-autonomous-driving-pilot-in-qatars-doha-302547646.html">expand</a> around the world, and new entrants like <a href="https://www.automotivedive.com/news/tensor-unveils-personal-robocar-robotaxi-vinfast-level4-autonomous-ai/758015/">Tensor</a> Auto start building robot-taxis, the stakes are only ever increasing. The challenge these companies face, teaching artificial intelligence human-like real-world intuition, has long been a barrier in developing and especially scaling robotics and autonomous systems. Training robots has suffered from an inability to generalize for a very long time. And while there has been some progress (<a href="https://jdsemrau.substack.com/p/toyota-ri-lbm-is-for-robot-generalization">TRI</a>, <a href="https://jdsemrau.substack.com/p/x-is-for-deepminds-open-x-embodiment">X-Embodiments</a>), replicating the nuanced understanding we humans have of physical interactions, <a href="https://jdsemrau.substack.com/p/the-importance-of-object-permanence">object permanence</a>, gravity, or friction, remains unmatched.</p><p>But this might all change now. Because NVIDIA&#8217;s Cosmos <a href="https://huggingface.co/nvidia/Cosmos-Reason1-7B">Reason1-7B</a> just topped Huggingface&#8217;s <a href="https://developer.nvidia.com/blog/maximize-robotics-performance-by-post-training-nvidia-cosmos-reason/#:~:text=Cosmos%20Reason%20has%20topped%20Physical,special%20translator%20called%20a%20projector.">physical reasoning leaderboard</a>. Benchmark scores confirm a strong performance: An average score of 65.7 across key robotics and autonomous vehicle tasks. Although we should consume such benchmarks with a pinch of salt.</p><p>Let&#8217;s dive into the fantastic world of Vision-Language-Action models.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/subscribe?"><span>Subscribe now</span></a></p><h4>Table of Contents</h4><ol><li><p>Architectures of Physical AI</p></li><li><p>Challenges of Physical AI</p></li><li><p>Visual Language Action Models in general</p></li><li><p>NVIDIA&#8217;s Cosmos World Foundation Model (WFM)</p></li><li><p>NVIDIA&#8217;s Cosmos-Reason1,</p></li><li><p>Meta&#8217;s Vision Language World Model,</p></li><li><p>Wayvve&#8217;s Lingo-2, and </p></li><li><p>EO Robotics EmbodiedOneVision</p></li></ol><h4>Architectures of Physical AI</h4><p>It&#8217;s nothing new that by now, large language models are really good at processing text. Some even display impressive multi-modal processing capabilities. I.e., you can upload an image into ChatGPT and it will actually &#8220;<em>understand</em>&#8221; it. </p><p>But that does not mean that these models are capable of translating words into physical actions. A more sophisticated architecture is needed for this. </p><p>So, before we dive into VLA models, I will outline more explicitly how the architecture for building Physical AI systems works and what challenges this brings along with it. Then I will dive into the most recent models and papers published. </p><p>We begin, similar to my traditional autonomous agents definition, with sensors.</p><h5><strong>Sensor Layer</strong></h5><p>Sensors form the foundation of this architecture as Physical AI relies on multiple sensor modalities to gather comprehensive environmental data. Multiple cameras provide visual information for object recognition and scene understanding from different angles. Although Tesla got rid of them, I still believe in Radar and LIDAR. Radar offers reliable distance and velocity measurements in various weather conditions, while LiDAR generates 3D point clouds for spatial mapping. Other sensors include GPS provides global positioning data, inertial measurement units, or ultrasonic sensors. This multi-sensor approach unlocks redundancy and delivers robustness in data collection</p><h5><strong>Perception layer</strong></h5><p>In the perception layer, the raw sensor data is processed into meaningful interpretations of the driving environment using specialized perception models and sensor fusion algorithms. </p><p>In traditional autonomous systems, we may deploy the following standard models:</p><p><strong>Specialized perception models</strong> are task-specific algorithms where lane detection uses techniques like Hough transforms or deep learning to identify road boundaries and lane markings, traffic light detection employs convolutional neural networks to recognize signal states and timing, and traffic sign detection interprets regulatory and warning signs through trained classification models. Object detection &amp; tracking identifies and monitors vehicles, pedestrians, and obstacles using models like YOLO or R-CNN variants, providing real-time recognition capabilities. Free space detection determines drivable areas through semantic segmentation or point cloud processing algorithms. </p><p><strong>Sensor fusion models</strong> like Kalman filters and <a href="https://jdsemrau.substack.com/p/cognitive-reasoning-agents-and-the">Extended Information filters</a> combine a variety of sensor data with high-density maps to precisely determine the vehicle's position within the mapped environment, creating a more robust understanding than any single sensor could provide alone.</p><h5><strong>Planning layer</strong></h5><p>But autonomous driving is not only about understanding the &#8220;<em>now</em>&#8221;. Using the interpreted environmental data, we still need to know where we are going. </p><p>Thus, </p><ul><li><p><strong>Route planning </strong>for determining the optimal path to the destination. </p></li><li><p><strong>Prediction algorithms</strong> for forecasting of the future behavior of other road users. </p></li><li><p><strong>Behavior planning</strong> for deciding high-level maneuvers like lane changes or turns. </p><p>and finally</p></li><li><p><strong>Trajectory planning</strong> for calculating the specific path and speed profile the vehicle should follow, considering safety constraints and traffic rules.</p></li></ul><p>And especially, trajectory planning is where VLAMs shine. But I am getting ahead of myself. </p><h5><strong>Control Layer</strong></h5><p>The fourth and final stage translates planned trajectories into actual vehicle motion. PID controllers manage basic control loops for steering, throttle, and braking. Model predictive control provides more sophisticated control algorithms that anticipate future states. Other control systems may include stability control, traction management, or specialized actuator control systems that physically execute the planned maneuvers through the vehicle's mechanical systems.</p><h4>Challenges of Physical AI</h4><p>We don&#8217;t have easily scalable and trainable autonomous vehicles yet. Just an observation. We humans are incredibly good at judging driving situations we have not encountered yet. But that is also a function of age. There is a reason why we don&#8217;t let kids drive (besides their obvious height constraints).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F7cd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F7cd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!F7cd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!F7cd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!F7cd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F7cd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/594ecc95-f242-45ce-9143-12e250d7861a_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;:2572140,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_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_!F7cd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!F7cd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!F7cd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!F7cd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F594ecc95-f242-45ce-9143-12e250d7861a_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h5>Problem 1: Edge cases are incredibly valuable. </h5><p>Data on edge cases is incredibly difficult and expensive to acquire. The more rare the event, the more likely it is that the system might misbehave and cause physical harm. And as we can see with the fleet of Google Street Map cars, physical data is costly to collect, curate, and label.</p><h5>Problem 2: The real world is a spatial and temporal environment bound by the laws of physics.</h5><p>Spatial data is also a hard problem because the environment in a spatial 3D environment has objects have different shapes, sizes, and distances, while the car&#8217;s sensors might perceive them in 2D as the same. They also have to comply with basic rules of physics. Reconciling multi-camera input makes this also more complex. And then a lot of what we observe is constantly moving. Either as we pass along houses or factory floors. Or they move themselves, like pedestrians, vehicles, or drones. Therefore, decisions can&#8217;t be just about &#8220;where things are now&#8221; but &#8220;where they will be in the next second, 5 seconds, or 30 seconds.&#8221; On top, prediction errors compound quickly, making safe planning even more difficult.</p><h5>Problem 3: Output modality needs to be incredibly accurate.</h5><p>Even when perception and predictions are accurate in a volatile environment, the system must translate that understanding into actions. I.e., steering, braking, accelerating, grasping, or rerouting, each with different latency, precision, and safety requirements. The importance of high-quality output modality is as critical as getting the input right.</p><h5>Problem 4: Trust &amp; explainability in decision-making.</h5><p>Humans can explain their decisions with natural language. But to have one human describe the actions of another human leads to no trust in the explanation. There is a reason my moderators at sports events are largely for entertainment. This is known as the back-seat driver problem: when one agent tries to explain the decisions of another, the explanation rarely inspires trust. </p><p>Btw., this also outlines the importance of agency in agentic decision making.</p><h4>Visual Language Action Models</h4><p>Visual Language Action Models (VLAMs) are AI systems that integrate visual perception, natural language understanding, and action planning to enable agents to interpret their environment, follow language instructions, and perform corresponding actions. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-9ZE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-9ZE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 424w, https://substackcdn.com/image/fetch/$s_!-9ZE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 848w, https://substackcdn.com/image/fetch/$s_!-9ZE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!-9ZE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-9ZE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png" width="1456" height="1272" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1272,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:711315,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.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_!-9ZE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 424w, https://substackcdn.com/image/fetch/$s_!-9ZE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 848w, https://substackcdn.com/image/fetch/$s_!-9ZE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!-9ZE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b572371-7d5d-4709-8e0d-98adddc5893a_1666x1456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The benefit of integrating VLAMs into physical AI architectures is that it allows the system to not only perceive its environment but also interpret complex scenarios, make contextual decisions, and potentially communicate its intentions&#8212;capabilities that mirror human-like driving behavior. Cosmos can generate photorealistic, physically based, synthetic data. </p><p>Traditional autonomous systems have relied on sensor fusion and rule-based decision-making. The use-cases for VLAM are different:</p><ol><li><p><strong>Data curation &amp; annotation:</strong> To reduce cost and increase quality, we need to automate high-quality dataset curation and annotation. VLAMs can interpret raw multimodal inputs, generate candidate labels, and validate them against schema constraints, reducing reliance on manual annotation.</p></li><li><p><strong>Robot planning &amp; reasoning:</strong> Planning and reasoning can guide deliberate, methodical decision-making with vision language action (VLA) models. VLAMs unify perception and instruction-following to translate natural language goals into structured action plans that remain robust under real-world uncertainty.</p></li><li><p><strong>Video analytics AI agents:</strong> Extract actionable insights and perform root-cause analysis on massive video datasets. VLAMs integrate visual understanding with temporal reasoning and language-based explanation, enabling both anomaly detection and human-readable causal narratives.</p></li></ol><p>The advancement here lies in the system's ability to understand nuanced real-world situations through language, with the goal of improving how vehicles handle unpredictable real-world conditions. For the transportation &amp; logistics industry, this will be a revolution. But for us normal mortals, it means safer and more reliable autonomous vehicles. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/p/visual-language-action-models?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/p/visual-language-action-models?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><p>We begin with:</p><h4>NVIDIA&#8217;s Cosmos World Foundation Model (WFM)</h4><p>A couple of months ago, right after CES, I already touched on NVIDIA&#8217;s Cosmos World Foundation Model (<a href="https://jdsemrau.substack.com/p/nvidias-jensen-huang-on-agentic-ai">WFM</a>). I hold the belief that synthetic <a href="https://jdsemrau.substack.com/p/paper-review-beyond-a-better-planning">trajectory data</a> is an important step towards the generalization of autonomous movement. WFM builds on this concept by establishing a pre-trained (&#8220;vanilla&#8221;) model, not unlike traditional LLMs, trained on Internet-scale datasets providing broad time-frozen knowledge across many environments and tasks. However, to perform well in a <em>specific</em> real-world application, such as accurately guiding a robot on a factory floor or safely navigating an autonomous vehicle through traffic, general capability is not good enough. We must fine-tune them in post-training on a smaller, targeted dataset collected from their particular environments. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3gOG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3gOG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 424w, https://substackcdn.com/image/fetch/$s_!3gOG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 848w, https://substackcdn.com/image/fetch/$s_!3gOG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!3gOG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3gOG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png" width="1456" height="798" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:798,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221501,&quot;alt&quot;:&quot;&quot;,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.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_!3gOG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 424w, https://substackcdn.com/image/fetch/$s_!3gOG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 848w, https://substackcdn.com/image/fetch/$s_!3gOG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!3gOG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e13eda0-03e8-4a20-b01e-c889c9d0d697_1934x1060.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This process produces a post-trained, specialized WFM: a model that retains the broad capabilities of its foundation training while being adapted to go deep into a specific Physical AI use-case. WMF in its current (Fall 2025) iteration has evolved into a suite of open, physics-aware generative AI models, including diffusion and autoregressive transformer architectures, designed to simulate and predict future states of virtual environments (via video) from inputs like text, images, or past frames.</p><p>These language models may also augment vehicle-to-infrastructure communication, enabling more efficient traffic management and coordinated mobility systems.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!orA7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!orA7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 424w, https://substackcdn.com/image/fetch/$s_!orA7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 848w, https://substackcdn.com/image/fetch/$s_!orA7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 1272w, https://substackcdn.com/image/fetch/$s_!orA7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!orA7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png" width="1456" height="430" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:430,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!orA7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 424w, https://substackcdn.com/image/fetch/$s_!orA7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 848w, https://substackcdn.com/image/fetch/$s_!orA7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 1272w, https://substackcdn.com/image/fetch/$s_!orA7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4462631d-70a4-4514-813f-6a4586d954fa_1958x578.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Within WMF, there are specialized models. Cosmos-Reason1 is one of them.</p><h4>Cosmos-Reason1: From Physical Common Sense To Embodied Reasoning</h4><p>NVIDIA's <a href="https://huggingface.co/nvidia/Cosmos-Reason1-7B">Cosmos Reason1-7B</a> model aims to be an evolution in the domain of Physical AI through embodied reasoning. Embodied reasoning refers to the ability of an AI or robotic system to ground its reasoning and decision-making in a physical context, using sensory input and interactions with the environment. So, instead of abstract reasoning alone, it integrates perception, action, and feedback to plan and adapt in real-world settings. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r5YA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r5YA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 424w, https://substackcdn.com/image/fetch/$s_!r5YA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 848w, https://substackcdn.com/image/fetch/$s_!r5YA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 1272w, https://substackcdn.com/image/fetch/$s_!r5YA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r5YA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png" width="1456" height="860" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16258118-78d6-43b7-a46f-a3011624e118_1662x982.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:860,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239641,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.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_!r5YA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 424w, https://substackcdn.com/image/fetch/$s_!r5YA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 848w, https://substackcdn.com/image/fetch/$s_!r5YA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 1272w, https://substackcdn.com/image/fetch/$s_!r5YA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16258118-78d6-43b7-a46f-a3011624e118_1662x982.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Cosmos-Reason1 employs a multimodal decoder-only architecture similar to<a href="https://arxiv.org/abs/2304.08485"> LLaVA</a>, available in two model sizes: Cosmos-Reason1-7B and Cosmos-Reason1-56B. The architecture follows a sequential pipeline where the input video is processed through a vision encoder, then a projector that aligns visual tokens with text embeddings, before being fed into the LLM backbone. The larger 56B model incorporates a hybrid Mamba-MLP-Transformer architecture to improve efficiency in handling long sequences, combining the linear-time complexity benefits of Mamba's selective state space models with Transformer layers for comprehensive long-context modeling.</p><p>On a simple step-by-step workflow basis, Cosmos-Reason1 works like this:</p><ol><li><p>It accepts the video input, </p></li><li><p>It converts video into an understandable format, and then</p></li><li><p>It tries to reason about it through <strong>long chain-of-thought</strong> thinking processes before generating a response in language space.</p></li></ol><p>This response will be returned in natural language and includes both explanatory insights and but also embodied decisions (pose, trajectory, etc). In my opinion, what makes Cosmos Reason1 unique compared with traditional VLMs is its ability to infer and reason using physical common-sense knowledge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PIki!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PIki!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 424w, https://substackcdn.com/image/fetch/$s_!PIki!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 848w, https://substackcdn.com/image/fetch/$s_!PIki!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 1272w, https://substackcdn.com/image/fetch/$s_!PIki!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PIki!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png" width="1456" height="612" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:126730,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.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_!PIki!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 424w, https://substackcdn.com/image/fetch/$s_!PIki!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 848w, https://substackcdn.com/image/fetch/$s_!PIki!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 1272w, https://substackcdn.com/image/fetch/$s_!PIki!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d7f3f2-87e5-46d5-8baf-c54d557d8561_1670x702.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So what&#8217;s the magic here?</p><p>Statistical models have no true &#8220;<em>understanding</em>&#8221; of the world they exist in. Humans and animals acquire a physical common sense through passive observation of the world around us. For example, <a href="https://www.sciencedirect.com/science/article/abs/pii/S0010027717301117">infants</a> can understand basic concepts such as <a href="https://jdsemrau.substack.com/p/the-importance-of-object-permanence">object permanence </a>and gravity already in a few months after birth. To develop this understanding computationally, models must be trained on expensive human-annotated datasets that capture object interactions, spatial relationships, and causal dynamics, enabling them to learn predictive patterns about how objects behave in three-dimensional space through labeled examples of physical phenomena. </p><p>However, unlike passive understanding, reasoning in embodied AI must be grounded in action. I.e., reasoning emerges through the coupling of perception and control layers, where the system learns by acting on the environment, observing outcomes, and adjusting its internal models accordingly. </p><p>As the real world is temporal, spatial, and bound by the laws of physics (Problem 2), Reason1&#8217;s &#8220;common sense&#8221; is grounded on an ontology of three main categories. </p><p>As shown in the image below. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s6G0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s6G0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 424w, https://substackcdn.com/image/fetch/$s_!s6G0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 848w, https://substackcdn.com/image/fetch/$s_!s6G0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 1272w, https://substackcdn.com/image/fetch/$s_!s6G0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s6G0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png" width="728" height="386.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:773,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:181335,&quot;alt&quot;:&quot;&quot;,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.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_!s6G0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 424w, https://substackcdn.com/image/fetch/$s_!s6G0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 848w, https://substackcdn.com/image/fetch/$s_!s6G0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 1272w, https://substackcdn.com/image/fetch/$s_!s6G0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce9bc037-5bbc-4f4f-b25e-1a1cd7e9b708_1666x884.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This shall enable the model, and the robots it steers by extension, to not only comprehend what they currently observe but also to plan intelligently ahead. </p><p>But there is more to it. </p><p>Specifically, reasoning in physical space requires the capability to:</p><ul><li><p><strong>Process complex sensory inputs.</strong> Unlike <a href="https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act">symbolic reasoning</a> that relies on clean, structured data, embodied reasoning must parse noisy, partial, and ambiguous multimodal signals to extract reliable patterns for decision-making.</p></li><li><p><strong>Predict action effects.</strong> Every action alters the environment, so embodied reasoning requires an internal model of cause-and-effect. E.g., how objects respond to force, how a robot&#8217;s kinematics interact with terrain, or how vehicle dynamics shift under changing conditions.</p></li><li><p><strong>Respect physical constraints.</strong> Beyond abstract optimization, embodied reasoning must respect real-world physics, inertia, friction, and material limits while producing long-horizon plans that are both safe and efficient in execution.</p></li><li><p><strong>Learn from interaction.</strong> Actions generate feedback loops, and embodied reasoning depends on integrating this feedback to refine policies over time, enabling continuous improvement and dynamic adaptation to changing environments.</p></li></ul><p>Here are some examples from the paper. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NWDK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NWDK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 424w, https://substackcdn.com/image/fetch/$s_!NWDK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 848w, https://substackcdn.com/image/fetch/$s_!NWDK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 1272w, https://substackcdn.com/image/fetch/$s_!NWDK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NWDK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png" width="1456" height="689" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31255be4-4a81-4207-b281-5007289f3360_1686x798.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:689,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:261364,&quot;alt&quot;:&quot;&quot;,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.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_!NWDK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 424w, https://substackcdn.com/image/fetch/$s_!NWDK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 848w, https://substackcdn.com/image/fetch/$s_!NWDK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 1272w, https://substackcdn.com/image/fetch/$s_!NWDK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31255be4-4a81-4207-b281-5007289f3360_1686x798.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Cosmos-Reason1 introduces several key innovations for the advancement of physical AI reasoning capabilities. The system establishes hierarchical physical reasoning ontologies that systematically organize capabilities across space, time, and fundamental physics domains, providing a structured framework for understanding and evaluating physical common sense. </p><p>It incorporates self-supervised intuitive physics tasks such as spatial puzzles, arrow-of-time detection, and object permanence testing that are both scalable to generate and verifiable through rule-based rewards. The framework enables cross-embodiment reasoning by applying unified reasoning principles across diverse physical agents, including humans, robotic arms, humanoid robots, and autonomous vehicles. </p><p>And finally, the system features a novel asynchronous reinforcement learning infrastructure with fault tolerance and dynamic scaling capabilities, achieving approximately 160% improvement in training efficiency compared to traditional colocated frameworks while maintaining robustness through automated recovery and resource management.</p><h4>Meta&#8217;s Vision Language World Model</h4><p>Meta&#8217;s Vision Language World Model (VLWM) is designed to enable AI agents to plan and reason about actions using natural video inputs. &#8220;<em>World model</em>&#8221; facilitates this by allowing agents to internally optimize action plans, reducing the reliance on exhaustive trial-and-error in real environments.</p><p>Given a video, VLWM aims to extract a structured language representation consisting of two key components:</p><ol><li><p><strong>Goal</strong>: A description and interpretation of the desired outcome.</p></li><li><p><strong>Procedural Plan</strong>: An action-state sequence outlining the steps to achieve the goal.</p></li></ol><p>For such a video-to-text extraction task, a straightforward approach might involve providing a Vision-Language Model (VLM) with the full video and prompting it to extract these language representations. However, this approach encounters the "impossible triangle": achieving high spatial resolution for fine-grained perception, maintaining a long temporal horizon that spans many procedural steps, and utilizing a large and intelligent VLM capable of following complex instructions.</p><p>To address this challenge, VLWM employs a two-stage strategy:</p><p><strong>1. Compression into a Dense Tree of Captions</strong>: The input video is compressed into a dense Tree of Captions, significantly reducing data volume while preserving essential semantic information.</p><p><strong>2. Extraction of Structured Goal-Plan Representations</strong>: Structured goal-plan representations are extracted from these captions using large language models (LLMs). Since this stage operates purely on text, it enables efficient processing with large LLMs and allows for iterative quality refinement through Self-Refine techniques.</p><p>This approach enhances the efficiency of video understanding and sets a new standard in AI's capability to plan and reason based on visual data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!etm4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!etm4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 424w, https://substackcdn.com/image/fetch/$s_!etm4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 848w, https://substackcdn.com/image/fetch/$s_!etm4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 1272w, https://substackcdn.com/image/fetch/$s_!etm4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!etm4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png" width="1456" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:442363,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.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_!etm4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 424w, https://substackcdn.com/image/fetch/$s_!etm4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 848w, https://substackcdn.com/image/fetch/$s_!etm4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 1272w, https://substackcdn.com/image/fetch/$s_!etm4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f03acf7-cc79-4678-801a-5ad561751deb_1892x876.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What makes VLWM unique is its dual-mode planning system that mirrors the psychological distinction between fast, intuitive thinking and slow, deliberative reasoning. Reminds me of <a href="https://jdsemrau.substack.com/p/hierarchical-reasoning-model">HRM</a>. </p><p><strong>System-1 Planning</strong> operates as the model's reactive mode, generating plans through direct autoregressive text completion. When presented with visual context and a goal description, VLWM first interprets the goal by predicting both the initial world state ("Now, the kitchen is set up with necessary ingredients...") and the expected final state needed for achievement ("To achieve the goal, the eggs need to be cooked and mixed with tomatoes..."). The model then generates an interleaved sequence of actions and world state changes in a single forward pass, where each action, like "<em>Crack eggs into a bowl and whisk them together,</em>" is immediately followed by detailed descriptions of environmental transformations. These world state descriptions function as internal reasoning chains that help track task progress, but the autoregressive nature creates a critical limitation&#8212;once an action token is generated, it becomes irreversible, potentially leading to error accumulation in complex scenarios.</p><p><strong>System-2 Planning</strong> addresses these limitations by introducing reflective reasoning through internal trial-and-error with the learned world model. Instead of committing to a single action sequence, System-2 generates multiple candidate plans and uses VLWM to simulate their effects, predicting the resulting world states for each possibility. A separately trained critic module&#8212;a 1B parameter language model&#8212;evaluates the semantic distance between these predicted outcomes and the desired goal state, assigning costs that reflect how well each candidate plan advances toward the objective. The system then selects the action sequence with the lowest predicted cost, effectively performing reasoning by searching through the space of possible futures. This critic is trained through self-supervised learning using <a href="https://arxiv.org/abs/2307.04923">ranking constraints</a> that teach it to assign lower costs to meaningful progress and higher costs to irrelevant or procedurally incorrect actions, enabling the model to optimize plans without requiring explicit reward annotations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rCeG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rCeG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 424w, https://substackcdn.com/image/fetch/$s_!rCeG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 848w, https://substackcdn.com/image/fetch/$s_!rCeG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 1272w, https://substackcdn.com/image/fetch/$s_!rCeG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rCeG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png" width="1456" height="380" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:380,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:350683,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.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_!rCeG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 424w, https://substackcdn.com/image/fetch/$s_!rCeG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 848w, https://substackcdn.com/image/fetch/$s_!rCeG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 1272w, https://substackcdn.com/image/fetch/$s_!rCeG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdadf43c9-32a8-4116-b835-126cdd098a6c_2266x592.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>First, it constructs training samples by taking base partial trajectories and appending either valid next steps from coherent task continuations or distractor steps sampled from unrelated tasks, training the model to satisfy ranking constraints where valid continuations receive lower costs than irrelevant additions. Second, it generates negative samples by randomly shuffling steps in base trajectories, teaching the critic to assign higher costs to procedurally incorrect sequences and ensuring sensitivity to temporal coherence. This dual approach enables the critic to distinguish meaningful progress from both irrelevant distractors and temporally disordered actions. The architecture benefits from VLWM's video-text formulation, which allows initialization from pretrained vision-language models like PerceptionLM-8B, inheriting strong visual perception capabilities along with language understanding and commonsense knowledge from large language models, while the language-based world state representation provides computational efficiency and interpretability compared to pixel-based generative approaches.</p><h4>Wayvve&#8217;s Lingo-2 - A closed-loop Vision-Language-Action-Mode</h4><p>Wayve's LINGO-2 is a closed-loop Vision-Language-Action Model (VLAM) that integrates visual perception, natural language processing, and driving control to provide real-time explanations of autonomous driving decisions. Unlike its predecessor, LINGO-1, which operated as an open-loop system offering commentary without influencing vehicle behavior, LINGO-2 combines vision and language inputs to generate both driving actions and explanatory text. This integration allows the model to adapt its behavior based on natural language prompts and provide continuous commentary on its decision-making process, enhancing transparency and trust in autonomous driving systems.</p><p>The architecture of LINGO-2 comprises two primary components: a vision model and an auto-regressive language model. The vision model processes sequences of camera images into tokens, which, along with additional contextual information such as route, speed, and speed limits, are fed into the language model. The language model then predicts both a driving trajectory and corresponding commentary text. The vehicle's controller executes the predicted trajectory, enabling real-time interaction and adaptation to dynamic driving scenarios.</p><p>A distinctive feature of LINGO-2 is its ability to respond to natural language instructions and queries during operation. For instance, passengers can ask the system about traffic light statuses or request specific maneuvers, and LINGO-2 will adjust its actions accordingly while providing explanations for its decisions. This closed-loop interaction between vision, language, and action represents a significant advancement in autonomous driving technology, offering a more intuitive and interpretable interface for users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i-rm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i-rm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 424w, https://substackcdn.com/image/fetch/$s_!i-rm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 848w, https://substackcdn.com/image/fetch/$s_!i-rm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 1272w, https://substackcdn.com/image/fetch/$s_!i-rm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i-rm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png" width="1456" height="711" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:711,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:243430,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.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_!i-rm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 424w, https://substackcdn.com/image/fetch/$s_!i-rm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 848w, https://substackcdn.com/image/fetch/$s_!i-rm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 1272w, https://substackcdn.com/image/fetch/$s_!i-rm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b94a02-8d66-4ee0-b28c-75fe4018f20f_1536x750.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>How does LINGO-2 work?</em></p><p>LINGO-2 &#8220;<a href="https://wayve.ai/thinking/lingo-2-driving-with-language/">Driving with language</a>&#8221; integrates vision, language, and action into a unified framework. It comprises two primary modules: a vision model that processes camera images of consecutive timestamps into a sequence of tokens, and an auto-regressive language model that predicts a driving trajectory and generates commentary text. These components work in tandem to enable real-time interaction between the vehicle and its environment, facilitating both driving behavior and explanatory dialogue.</p><p>The integration of language and driving behavior in LINGO-2 introduces several capabilities that enhance human-vehicle interaction and trust in autonomous systems. Passengers may, in the future, issue natural language commands, such as "turn right" or "find a parking spot," prompting the vehicle to adapt its behavior accordingly. Although the latter example is more likely than the former. Additionally, the system can provide real-time debugging explanations of its driving decisions, answering questions like "Why did you slow down?" or "What is the current speed limit?". This is incredibly important if you need to understand how these systems make decisions.</p><p>This approach enables easier testing in synthetic environments where identical scenarios can be evaluated with different linguistic instructions, providing unprecedented insights into AI behavior and decision-making processes</p><h4>EO Robotics EmbodiedOneVision</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uf9-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uf9-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 424w, https://substackcdn.com/image/fetch/$s_!Uf9-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 848w, https://substackcdn.com/image/fetch/$s_!Uf9-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!Uf9-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uf9-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png" width="1456" height="723" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:723,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1724868,&quot;alt&quot;:&quot;&quot;,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.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_!Uf9-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 424w, https://substackcdn.com/image/fetch/$s_!Uf9-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 848w, https://substackcdn.com/image/fetch/$s_!Uf9-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!Uf9-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93a4734a-1658-484e-a32d-457a4f6d4137_2188x1086.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EmbodiedOneVision (EO-1), a unified embodied foundation model paired with the large-scale EO-Data1.5M dataset. Together, they represent a significant step toward building generalist embodied agents capable of understanding, reasoning, and acting across diverse environments. Unlike prior work that treats perception, reasoning, and control as loosely connected modules, EO-1 is also designed as a closed-loop system where vision, language, and action are interleaved during pretraining. This approach enables the model to predict actions in context, respond to language prompts, and reason about spatial and temporal dynamics within real-world tasks.</p><p>The system is motivated by advances in multimodal foundation models, which have shown that joint training across modalities yields superior generalization and reasoning. EO-Robotics extends these ideas into the embodied domain, emphasizing how robots can learn not only from static vision&#8211;language corpora but also from temporally grounded interaction data. With its unified model architecture, carefully curated dataset, and principled evaluation benchmark, EO-Robotics provides a foundation for the next generation of embodied intelligence research.</p><h5>Architecture</h5><p>At the core of EO-Robotics lies <strong>EO-1</strong>, a decoder-only transformer with approximately three billion parameters. The model integrates multiple modalities into a <strong>single shared representation space</strong>, handling images, video frames, text, and robotic actions without requiring separate specialized modules. This design departs from earlier Vision-Language-Action (VLA) model approaches that introduce action-specific heads or auxiliary training objectives.</p><p>EO-1 employs two complementary training mechanisms:</p><ul><li><p><strong>Auto-regressive decoding</strong> for discrete modalities such as text and symbolic tokens.</p></li><li><p><strong>Flow-matching denoising</strong> for continuous robotic action trajectories.</p></li></ul><p>Both mechanisms are unified through causal attention over the entire multimodal sequence, enabling EO-1 to capture dependencies between perception, reasoning, and action. The architecture is initialized with a pre-trained vision&#8211;language backbone, giving it broad perceptual and linguistic priors, and then adapted to the embodied domain by training on EO-Data1.5M.</p><p>To bridge action and non-action modalities, EO-1 incorporates lightweight multilayer perceptrons (MLPs) that encode and decode continuous motor actions into the tokenized sequence. This avoids retraining large action-specific modules from scratch, improving efficiency and enhancing cross-modal transfer. By aligning text, vision, and action tokens in the same autoregressive stream, EO-1 treats reasoning and acting as a single process rather than separate stages, resulting in more coherent robotic control.</p><h5>Capabilities</h5><p>EO-1&#8217;s abilities stem from both its architectural design and its large-scale training data. <strong>EO-Data1.5M</strong> provides over 1.5 million multimodal samples, interleaving vision, text, and robot actions. The dataset combines two key sources:</p><ol><li><p><strong>Web-based vision&#8211;language corpora</strong>, which provide general visual-linguistic grounding.</p></li><li><p><strong>Real-world robot episodes</strong> supply action-level continuity, spatial grounding, and temporal structure.</p></li></ol><p>A custom data pipeline ensures diversity, quality, and task coverage. Robot videos are filtered and clustered to reduce redundancy, split into subtasks, and captioned by both pretrained vision&#8211;language models (VLMs) and human annotators. From these subtasks, question&#8211;answer pairs are generated to probe temporal and spatial reasoning. Human annotators refine answers to ensure correctness, and the resulting interleaved sequences integrate visual tokens, linguistic reasoning, and motor actions.</p><p>Through this training regime, EO-1 acquires capabilities in several areas:</p><ul><li><p><strong>Spatial understanding</strong>: object localization, multi-view correspondence, and trajectory reasoning.</p></li><li><p><strong>Task reasoning</strong>: planning sequences of actions and evaluating task progress.</p></li><li><p><strong>Physical commonsense</strong>: reasoning about forces, constraints, and counterfactual outcomes.</p></li><li><p><strong>State estimation</strong>: assessing object states such as open/closed or full/empty, and predicting the results of actions.</p></li></ul><p>Performance is measured through <strong>EO-Bench</strong>, a benchmark constructed to avoid the pitfalls of conflated evaluation tasks. EO-Bench includes 648 QA pairs across four categories&#8212;spatial understanding, physical commonsense, task reasoning, and state estimation&#8212;allowing precise measurement of strengths and weaknesses. Unlike other benchmarks that mix multiple reasoning aspects in a single query, EO-Bench ensures that each question isolates a specific embodied reasoning skill, making evaluations interpretable and reliable.</p><h5>Charming points</h5><p>EO-Robotics distinguishes itself from prior embodied AI frameworks through three defining elements:</p><ol><li><p><strong>Unified Multimodal Transformer</strong><br>EO-1 processes text, vision, and actions in a single stream rather than through disjointed modules. This unified design improves alignment across modalities and enables coherent reasoning-to-action pipelines.</p></li><li><p><strong>Interleaved Embodied Dataset</strong><br>EO-Data1.5M structures multimodal episodes in temporal order, linking perception, reasoning, and action. The inclusion of flexible interleaved QA pairs with robot actions enriches cross-modal grounding and provides the model with nuanced spatial&#8211;temporal reasoning skills.</p></li><li><p><strong>Principled Benchmarking with EO-Bench</strong><br>EO-Bench introduces a structured evaluation suite that disentangles reasoning categories. This not only allows researchers to identify bottlenecks in embodied intelligence&#8212;such as spatial reasoning, which is emphasized in the benchmark&#8212;but also sets a standard for transparent and interpretable comparisons.</p></li></ol><p>Together, these design choices create a toolchain that goes beyond conventional VLAM approaches. EO-1 does not merely predict actions from observations; it integrates reasoning, perception, and control into a single generative process. This positions EO-Robotics as a platform for <strong>generalist embodied intelligence</strong>, where robots can flexibly adapt across tasks, environments, and modalities without requiring task-specific retraining.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kHi_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kHi_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 424w, https://substackcdn.com/image/fetch/$s_!kHi_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 848w, https://substackcdn.com/image/fetch/$s_!kHi_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 1272w, https://substackcdn.com/image/fetch/$s_!kHi_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kHi_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png" width="1456" height="422" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:422,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:307258,&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://jdsemrau.substack.com/i/172400916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.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_!kHi_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 424w, https://substackcdn.com/image/fetch/$s_!kHi_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 848w, https://substackcdn.com/image/fetch/$s_!kHi_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 1272w, https://substackcdn.com/image/fetch/$s_!kHi_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b030fc-125d-4b62-a127-cd1f4d9cba95_2358x684.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EO-1 is my final example of how embodied foundation models are moving beyond narrow perception or control, toward systems that unify vision, language, and action into generalist frameworks for reasoning and robotics.</p><h4>In Closing</h4>
      <p>
          <a href="https://jdsemrau.substack.com/p/visual-language-action-models">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Multi-Agents for Optimal Equity Portfolio Construction]]></title><description><![CDATA[Behavioural Finance, LLM Debates, Drama and Adaptive Quantitative Methods]]></description><link>https://jdsemrau.substack.com/p/multi-agents-for-optimal-equity-portfolio-construction</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/multi-agents-for-optimal-equity-portfolio-construction</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 25 Aug 2025 19:41:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qxwU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d3d443c-b693-40d5-a3bd-1b794bebf9cc_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We all know <a href="https://jdsemrau.substack.com/p/becoming-super-agent-bill-ackman">Superbill</a> can always be improved. One of those aspects is portfolio construction, i.e., the act of balancing return, risk, and market realities in the face of uncertainty. And I don&#8217;t mean Markowitz&#8217;s mean-variance optimization, that&#8217;s the easy part. Per Nvidia&#8217;s <a href="https://www.nvidia.com/en-us/industries/finance/ai-financial-services-report/">2025 </a><strong><a href="https://www.nvidia.com/en-us/industries/finance/ai-financial-services-report/">State of AI in Financial Services Report</a>, </strong>25%  of respondents reported tha&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/multi-agents-for-optimal-equity-portfolio-construction">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Hierarchical Reasoning Model]]></title><description><![CDATA[Is it a new paradigm to think about thinking?]]></description><link>https://jdsemrau.substack.com/p/hierarchical-reasoning-model</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/hierarchical-reasoning-model</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 18 Aug 2025 11:37:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hypw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3424442-8f69-4c73-9a0b-7104958aadac_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You might have noticed that GPT-5 sometimes thinks for a very long time. Reasoning as a concept sometimes still feels like an infinite loop to nowhere. As a result, most &#8220;thinking&#8221; models have very high latency and are expensive in everyday usage. </p><p>Maybe the whole concept of language-based reasoning is wrong? </p><p>China and Singapore-based  Research Lab <a href="https://www.sapient.inc/models">Sapie&#8230;</a></p>
      <p>
          <a href="https://jdsemrau.substack.com/p/hierarchical-reasoning-model">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Group Sequence Policy Optimization vs Group Relative Policy Optimization ]]></title><description><![CDATA[Two generational advancements in a duel of dynamic decision dynamics]]></description><link>https://jdsemrau.substack.com/p/group-sequence-policy-optimization</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/group-sequence-policy-optimization</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 11 Aug 2025 11:37:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ign_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42495bad-00a3-44fa-94f2-f2b759f364b0_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Remember when earlier this year, DeepSeek&#8217;s release of <em>DeepSeekMath</em> and Group Relative Policy Optimization (GRPO) made training a state-of-the-art model dramatically cheaper? The follow-up release of DeepSeek-R1 amplified the effect, and the result was a sudden sell-off of AI stocks. Then only a few months later, Alibaba&#8217;s Qwen team introduced Group Seq&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/group-sequence-policy-optimization">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Grounded Autonomy: Neuro-symbolic Representations in the Reasoning Loop]]></title><description><![CDATA[The Ensigns of Command: Sense &#8594; Symbolize &#8594; Plan &#8594; Act]]></description><link>https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:37:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9PSY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68e24435-8026-46d4-81ca-d6abb7c147d5_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>While monitoring <a href="https://jdsemrau.substack.com/p/becoming-super-agent-bill-ackman">Superbill</a>, I started noticing a pattern. Some of its sub-agents were stalling, hitting about 90% accuracy on their assessments and refusing to go further.</p><p>While in general, LLMs with reasoning capabilities have become state-of-the-art for online applications like Claude or ChatGPT, I noticed that even these high-end services exhibit problems with logical consistency in the output they generate. And since I am not working on a news summarizer, but a high-risk investment product, being consistent is incredibly important to ensure accuracy and reliability, especially over longer reasoning horizons. </p><p>We humans conceptualize our world in relatively the same way. The sun rises in the morning. If it&#8217;s bright, its usually daytime. If you drop something, it will fall down. </p><p>LLMs lack that capability. Because of that, they struggle with reliability and consistency, especially in <a href="https://jdsemrau.substack.com/p/context-window-saturation-in-reasoning">long-running tasks</a>. </p><p>One of the potential solutions to this problem could be neuro-symbolic reasoning. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>But before I start, here are some relevant terms I will be using throughout this post.</p><h4><strong>Key Terms &amp; References</strong></h4><ul><li><p><strong><a href="https://en.wikipedia.org/wiki/Neuro-symbolic_AI">Symbolic Reasoning</a></strong>: A method of reasoning using formal rules and discrete symbols such as constants, variables, and logic statements. </p></li></ul><p>       E.g., &#8704;x (Battery(x) &#8743; Low(x) &#8594; Recharge(x))</p><p>       In natural terms: For every entity x, if x is a battery and x is low, then x should be           recharged.</p><ul><li><p><strong><a href="https://plato.stanford.edu/entries/logic-paraconsistent/">Paraconsistent logic</a></strong>: A type of logic that tolerates contradictions without collapsing (i.e., in classical logic, if something false is true, then everything becomes provable. Paraconsistent logics avoid this explosion).</p></li><li><p><strong><a href="https://arxiv.org/abs/2404.18655">Parametric knowledge</a></strong>: the information encoded in the parameters of a trained model during training</p></li><li><p><strong>Grounding</strong>: The process of mapping sensor data to symbolic representations </p><p>E.g., visual input &#8594; Cup(Object1).</p></li><li><p><strong><a href="https://www.jstor.org/stable/20016609">Analytic Containment</a> (AC)</strong>: A form of paraconsistent logic where LLMs return bilateral truth values &#10216;u,v&#10217; to logical queries. <a href="https://arxiv.org/abs/2507.09751">Allen et al. (2024)</a> (see Sections 2.1 and 3).</p></li><li><p><strong>Split-Brain Syndrome</strong>: The mismatch between an LLM-generated plan and actual execution behavior in agents, due to a lack of shared symbolic structure. <a href="https://arxiv.org/abs/2507.10624">Zhang (2024)</a> (see Section 4).</p></li><li><p><strong>Interpretation function</strong>: In formal logic, this assigns truth values to statements (e.g., "The sky is blue" is true). It's how the logic knows what a formula means in a specific context.</p></li></ul><h4><strong>What Is Symbolic Reasoning?</strong></h4><p>Symbolic reasoning works with discrete logical elements like constants, predicates, and rules. </p><p><em>if something&#8217;s a battery and it&#8217;s low, recharge it.</em> </p><p>Here, symbolic reasoning refers to the <em><strong>application</strong></em> of explicit logic rules and structured knowledge to make decisions. Through that, it&#8217;s an extension of traditional expert systems because it uses structured external rules, e.g., financial regulations, investment heuristics, or tax rules, to <em>reason</em> through cause-and-effect chains.</p><p>e.g., <em>&#8220;If interest rates rise and the portfolio holds rate-sensitive bonds, then reduce exposure.&#8221;</em></p><p>If we read English, then we can all understand the above sentence, and also the terms &#8220;<em>interest rate</em>&#8221;, &#8220;<em>portfolio</em>&#8221;, or &#8220;<em>exposure</em>&#8221; might hold some meaning for us. Yet we also often fail in sophisticated deductive, inductive, or abductive reasoning given a collection of premises and constraints. </p><p>Logical deductions usually fall into two categories. </p><p>Whether a statement &#8220;the sky is blue&#8221; can be deduced from the provided information to a truth value (true, false, unknown). Or, deduce the correct solution that satisfies a set of given premises from the multiple choices.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MWga!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MWga!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 424w, https://substackcdn.com/image/fetch/$s_!MWga!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 848w, https://substackcdn.com/image/fetch/$s_!MWga!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 1272w, https://substackcdn.com/image/fetch/$s_!MWga!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MWga!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png" width="1456" height="419" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:419,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:200668,&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://jdsemrau.substack.com/i/168761779?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.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_!MWga!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 424w, https://substackcdn.com/image/fetch/$s_!MWga!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 848w, https://substackcdn.com/image/fetch/$s_!MWga!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 1272w, https://substackcdn.com/image/fetch/$s_!MWga!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737d6129-6fe0-47e4-b2f0-42f7941fbc75_1764x508.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But even with taking extra steps, symbolic systems aren&#8217;t perfect. They don&#8217;t handle noise well. Not unlike us, they break if they don&#8217;t have all the facts. Maybe that&#8217;s part of our difficulty. Words are all we have been using. Humans seem to take much stronger notice of actions </p><h4><strong>Sense &#8594; Symbolize &#8594; Plan &#8594; Act</strong></h4><p>I am proposing a deviation from the venerable Reflect-Act pattern most reasoning agents deploy when they &#8220;think deeper&#8221;, i.e., loop infinitely until they find a better solution. Reflect-Act is a good start. The agent does something, then reflects, then tries again. But if the seed is wrong, it likely never reaches a good conclusion. In that way, it&#8217;s all prompt glue and not internal structure. There is no &#8220;understanding&#8221;, if that is ever achievable, no real memory. no logic. </p><p>Just a number of retries/refine.</p><p>Symbolic reflection should be a state change. </p><p>I think what needs to be understood is that symbolic systems are more efficient because they don&#8217;t regenerate the whole search tree. They update just what changed. And maybe this should build the core loop of symbolic autonomy. To build systems that &#8220;<em>understand</em>&#8221; not just &#8220;<em>pattern matches</em>&#8221;. </p><p>True autonomy relies on hybrid systems. Systems that combine perception nets with structured logic. Since I started writing Encyclopedia Autonomica, I have always had sensors in my agent capability stack.</p><h4><strong>Action in Perception</strong></h4><p>Perception isn&#8217;t passive. It&#8217;s not a camera feed waiting to be parsed. In embodied agents, perception is shaped by action. </p><p>What you do determines what you can sense. </p><p>Let's say an agent&#8217;s belief state at time t is a set of symbolic assertions. When the agent <em>acts</em>, it doesn&#8217;t just affect the environment; it also reshapes the observations, which in turn updates a symbol map. </p>
      <p>
          <a href="https://jdsemrau.substack.com/p/grounded-symbolic-reasoning-sense-symbolize-plan-act">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Agents in Cars Buying Coffee]]></title><description><![CDATA[Renewed Use cases for the world of Autonomous Driving.]]></description><link>https://jdsemrau.substack.com/p/agents-in-cars-buying-coffee</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/agents-in-cars-buying-coffee</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 28 Jul 2025 11:31:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Yn-G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d6b1836-5434-4773-be23-c6a14aafe69b_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A couple of years ago, I wrote an <a href="https://medium.com/@jsemrau/all-tomorrows-platforms-e9f0a43e57d8">article</a> on Medium exploring new platform ideas post-social media. One of those platforms was the car. As the decade of low progress in autonomous driving seems to slowly thaw, Tesla users will soon enjoy<a href="https://teslanorth.com/2025/07/12/tesla-2025-26-software-update-brings-grok-4-ai-and-more/"> Grok 4</a>. </p><p>It might make sense to have another look at real-world use cases for multi-agent architectures in automotive &#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/agents-in-cars-buying-coffee">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Can an Agent Build an Agent?]]></title><description><![CDATA[Exploring Autonomy, Program Synthesis, and the Role of Code as Interfaces]]></description><link>https://jdsemrau.substack.com/p/can-an-agent-build-an-agent</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/can-an-agent-build-an-agent</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Mon, 21 Jul 2025 12:34:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FO0-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6786ee6b-4e6c-4e2a-a1ce-7970473c8690_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, Amazon Web Services joined the &#8220;CodingAgent&#8221; game by launching <strong><a href="https://kiro.dev/">Kiro</a></strong>, another VSCode clone, err, agentic IDE designed to transition developers from "<em><a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a></em>" to production-grade software by generating specs, design documents, task plans, and auto-triggering tests and docs updates. Among the features, Kiro also supports Anthropic&#8217;s <a href="https://jdsemrau.substack.com/p/building-scalable-financial-toolchains">Model Co&#8230;</a></p>
      <p>
          <a href="https://jdsemrau.substack.com/p/can-an-agent-build-an-agent">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[200 AI Agent Use Cases]]></title><description><![CDATA[Some ideas for building AI Agents]]></description><link>https://jdsemrau.substack.com/p/a-list-of-ai-agent-use-cases</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/a-list-of-ai-agent-use-cases</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Tue, 15 Jul 2025 23:08:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qtnJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29521f70-ff72-497e-a58a-5a8263b8b26d_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was thinking about business ideas for AI Agents. It&#8217;s mid 2025 and if you are feeling overwhelmed by endless AI possibilities but under pressure to deliver real results, I prepared a Digital AI Agent Use Case Library which might be your secret weapon. </p><p>Below is a searchable curated list of&#8239;about 200 actionable AI agent use cases spanning several industries like law, finance, healthcare, retail&#8239;and more, so you don&#8217;t have to start from zero.</p><p>Each agent delivers exactly what you need to win stakeholder buy&#8209;in and accelerate development:</p><ul><li><p><strong>Industry &amp; Agent Name:</strong> Know immediately where it fits.</p></li><li><p><strong>Implementation Blueprint:</strong> From vector databases and NLP to multi&#8209;agent workflows.</p></li><li><p><strong>Target Customers:</strong> Who&#8217;s ready to buy&#8212;solo practitioners, enterprise teams, regulators.</p></li><li><p><strong>Best Framework:</strong> LangChain, AutoGen, Microsoft Agent Framework, Pinecone and beyond.</p></li><li><p><strong>ROI&#8209;Driven Reasoning:</strong> Why it matters and how it drives revenue or cuts costs.</p></li></ul><p>This could reduce your launch time for, for example a Contract Analysis Agent for your procurement team, from weeks to a couple of days. </p>
      <p>
          <a href="https://jdsemrau.substack.com/p/a-list-of-ai-agent-use-cases">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Modular Financial Agent Systems (I)]]></title><description><![CDATA[Engineering Autonomous Workflow Orchestration]]></description><link>https://jdsemrau.substack.com/p/modular-financial-agent-systems-i</link><guid isPermaLink="false">https://jdsemrau.substack.com/p/modular-financial-agent-systems-i</guid><dc:creator><![CDATA[Jan Daniel Semrau (MFin, CAIO)]]></dc:creator><pubDate>Sun, 13 Jul 2025 09:17:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qErA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8212f73d-7e5e-4ee9-aa0e-882322ea2e08_1344x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Following <a href="https://agentexchange.salesforce.com/">Salesforce</a> and <a href="https://store.servicenow.com/store/ai-marketplace">ServiceNow</a>, now mighty Amazon, through its partnership with Anthropic, will also be launching, relatively soon, a <a href="https://techcrunch.com/2025/07/10/aws-is-launching-an-ai-agent-marketplace-next-week-with-anthropic-as-a-partner/">marketplace</a> for AI Agents. </p><p><em>Profit!?</em></p><p>So, I was thinking, how can we benefit from the increasing number of AI Agent marketplaces and build reliable agents that make some coin? And also, I am working this month on an arb&#8230;</p>
      <p>
          <a href="https://jdsemrau.substack.com/p/modular-financial-agent-systems-i">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>