<?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[Proving Ground by Taiko: Experiments]]></title><description><![CDATA[First-person accounts from people building on Taiko. Design decisions, technical tradeoffs and what actually happened when we tested it.]]></description><link>https://www.provingground.xyz/s/experiments</link><image><url>https://substackcdn.com/image/fetch/$s_!ycqa!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021c3719-6056-4035-9ff8-709518182fa4_1280x1280.png</url><title>Proving Ground by Taiko: Experiments</title><link>https://www.provingground.xyz/s/experiments</link></image><generator>Substack</generator><lastBuildDate>Mon, 03 Aug 2026 11:47:01 GMT</lastBuildDate><atom:link href="https://www.provingground.xyz/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Proving Ground]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[provinggroundxyz@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[provinggroundxyz@substack.com]]></itunes:email><itunes:name><![CDATA[Proving Ground by Taiko]]></itunes:name></itunes:owner><itunes:author><![CDATA[Proving Ground by Taiko]]></itunes:author><googleplay:owner><![CDATA[provinggroundxyz@substack.com]]></googleplay:owner><googleplay:email><![CDATA[provinggroundxyz@substack.com]]></googleplay:email><googleplay:author><![CDATA[Proving Ground by Taiko]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Two storage tracks for AI Agents]]></title><description><![CDATA[Pins for what's public, objects for everything else]]></description><link>https://www.provingground.xyz/p/two-storage-tracks-for-ai-agents</link><guid isPermaLink="false">https://www.provingground.xyz/p/two-storage-tracks-for-ai-agents</guid><dc:creator><![CDATA[Proving Ground by Taiko]]></dc:creator><pubDate>Tue, 19 May 2026 12:30:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZekY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZekY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZekY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 424w, https://substackcdn.com/image/fetch/$s_!ZekY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 848w, https://substackcdn.com/image/fetch/$s_!ZekY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 1272w, https://substackcdn.com/image/fetch/$s_!ZekY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZekY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87945,&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://provinggroundxyz.substack.com/i/198398648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.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_!ZekY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 424w, https://substackcdn.com/image/fetch/$s_!ZekY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 848w, https://substackcdn.com/image/fetch/$s_!ZekY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 1272w, https://substackcdn.com/image/fetch/$s_!ZekY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2ce5b7-43e8-4a0e-80c2-b7d115acd7c4_2400x1260.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI Agents now have two storage tracks on Tack. Public IPFS pins for what they publish, and wallet-scoped private objects for memory, drafts, per-user state and anything else they need to keep without ever being indexed. The private track shipped today, alongside the existing pin product from Inference Room. A 5MB memory object held for one month settles at $0.0010 in USDC, with no accounts and no API keys.</p><h2>Why pinning is wrong for AI Agent memory</h2><p>For most of the agent stack, &#8220;store this&#8221; has meant pinning a CID and calling it done. That works when the bytes are meant for the public web. It does not work for the kind of data AI Agents now accumulate, like embeddings, working notes, per-user session memory, drafts that never ship and per-tenant config that lives below the platform layer. None of that should sit at a public CID.</p><h2>How the two tracks work on Tack</h2><p>The same agent action now has two tracks. When an agent produces something it wants the world to find, it pins to IPFS as before. When it produces something it needs to keep but does not want indexed, it writes to <code>/private/objects</code> instead, addressable only by a random <code>obj_&lt;uuid&gt;</code> that the paying wallet owns. No CID is emitted, no IPFS gateway will serve them, and other agents asking for the id get a 404. The owning wallet reads it back with a bearer token returned at payment or by signing in with SIWE later, and the object expires after the paid duration, anywhere from one to twenty-four months. Both tracks share the same EIP-3009 over x402 payment flow.</p><h2>What &#8220;private&#8221; actually means here</h2><p>The caveat worth stating out loud is that &#8220;private&#8221; here means access-gated by wallet, not end-to-end encrypted. The bytes sit on Tack&#8217;s volume in plaintext at rest, which means Tack can technically read them. If a use case needs confidentiality from the operator, encrypt client-side before upload. The wallet stays the access boundary, the operator stops seeing plaintext.</p><p>That distinction matters because &#8220;private&#8221; carries baggage and most engineers will assume cryptographic privacy. The honest framing is that this is a wallet-scoped storage product, not a confidential compute product. For everything agent memory actually is, wallet-scoped is what matters.</p><p>The bet underneath, and the bet Inference Room is built around, is that AI Agents will accumulate more state than they publish. The post, the image, the API response is the tip. Underneath is a long tail of memory, notes, drafts and private receipts that need to live somewhere durable, paid for the way the agent pays for compute, owned by the wallet that pays for everything else.</p><p>Tack is the agent-native storage product from Inference Room, settling in USDC via x402 with no accounts. It now runs two tracks, IPFS pins for public artifacts and wallet-scoped private objects for everything an agent keeps.<em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</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>]]></content:encoded></item><item><title><![CDATA[I made three agents fight over my marketing copy]]></title><description><![CDATA[Autoreason is a self-refinement loop with a clever halt condition. It halted on my paragraph. I kept running it anyway.]]></description><link>https://www.provingground.xyz/p/i-made-three-agents-fight-over-my</link><guid isPermaLink="false">https://www.provingground.xyz/p/i-made-three-agents-fight-over-my</guid><dc:creator><![CDATA[Tiff Mac Sherry]]></dc:creator><pubDate>Tue, 05 May 2026 12:31:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2z1b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2z1b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2z1b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!2z1b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!2z1b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!2z1b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2z1b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33028a70-63af-443f-8122-036894adf5b5_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36073,&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://provinggroundxyz.substack.com/i/196534831?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.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_!2z1b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!2z1b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!2z1b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!2z1b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33028a70-63af-443f-8122-036894adf5b5_1200x630.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://github.com/NousResearch/autoreason">Autoreason</a> has been on my &#8220;try this&#8221; list for weeks. I&#8217;d been putting it off. Anything labelled &#8220;multi-agent reasoning loop&#8221; sounds like it needs a PhD, and I&#8217;m still warming up to running my own agent stuff rather than reading about it. It was easier than I&#8217;d built it up to be, and more fun, mostly because the agents have personality. One was openly sassy about my draft.</p><p>I ran it on ninety words of pitch copy I couldn&#8217;t finish. Every version felt nearly right and not quite right. I&#8217;d ask Claude to tighten it, the new version would land different but not clearly better, and after the third pass I couldn&#8217;t tell whether I was improving it or smoothing it into something else. This is the failure mode of LLM editing on subjective work. The model agrees with you. It also agrees with the next person who asks it the opposite question. There&#8217;s no scoreboard, no halt condition, no version of &#8220;actually, the original was fine&#8221; living anywhere in the loop.</p><p>Autoreason is built for this. It&#8217;s a method published this year by SHL0MS and Hermes Agent at Nous Research, extending Karpathy-style autoresearch into subjective domains.</p><h2>How the loop works</h2><p>Each round produces three versions. Version A is the unchanged incumbent. Version B is an adversarial revision, written by an agent told to find what&#8217;s wrong and fix it. Version AB is a synthesis, given both A and B and asked to produce the best of each.</p><p>A panel of fresh judges with no shared context ranks them. They don&#8217;t know which is which. The ranks aggregate by Borda count: every position contributes, so close finishes don&#8217;t reduce to coin flips. Winner becomes the new incumbent. Loop runs again.</p><p>The halt condition is the part I keep coming back to. The loop stops when the unchanged version wins twice in a row. &#8220;Do nothing&#8221; is a first-class participant in every round, not a fallback when the agents give up.</p><h2>What happened on my paragraph</h2><p>Round one. The adversarial rewrite won. It killed two qualifiers I hadn&#8217;t noticed I was leaning on, and moved the strongest sentence to the front. The adversary was sassy. There&#8217;s no other word for it. Where Claude in editing mode is endlessly diplomatic, the autoreason adversary has been told her job is to find what&#8217;s wrong, and she leans in. The synthesis was worse than B alone. It had tried to keep some of A&#8217;s structure and ended up muddled.</p><p>Round two. New incumbent, new everything. Synthesis won. It had picked up a turn of phrase from the new incumbent and grafted it onto a sharper opening line the adversary cooked up. This was the round that taught me something. The synthesis isn&#8217;t a default winner. It only wins when it has something real to combine.</p><p>Round three. Incumbent won. First &#8220;do nothing&#8221; win.</p><p>Round four. Adversary tried to make the verbs more active. Judges weren&#8217;t convinced. Incumbent won again. Two in a row. Halt.</p><p>Whole thing took about eleven minutes. Roughly forty agent calls.</p><h2>What it fixed</h2><p>What autoreason fixed wasn&#8217;t the copy. It fixed knowing when a tournament was done.</p><p>Standard self-refinement loops reward action. You ask the model to improve something, the model improves something. The model isn&#8217;t going to come back and say &#8220;actually, version four was better than version five, ship that and walk away.&#8221; It would feel rude. It would also be the right answer half the time.</p><p>Autoreason is the first edit loop I&#8217;ve used with a halt condition. Not &#8220;the agents got tired,&#8221; but two independent panels of fresh judges agreeing the unchanged version is already winning. The judges have no idea which version came from where, and they&#8217;re spawned fresh each round so they can&#8217;t learn to favour their previous picks. No agent has an incentive to keep the loop running.</p><h2>Keep the brief short</h2><p>If you try this, keep the brief short. My first run had a long, detailed brief: audience, campaign context, the seven things the paragraph had to do. The agents got into the weeds and stayed there. The synthesis read like a checklist.</p><p>The brief is a constraint, not a wishlist. Every line narrows the search space. Add too many and you&#8217;re not running a tournament, you&#8217;re running a compliance check.</p><h2>The bit I keep thinking about</h2><p>The most interesting design choice isn&#8217;t the synthesis or the Borda count. It&#8217;s that &#8220;do nothing&#8221; is on the ballot every round.</p><p>The default behaviour of every LLM tool I&#8217;ve used is &#8220;produce something.&#8221; Autoreason builds in a way for the loop to say no, and a way for &#8220;no&#8221; to win, at least within a single tournament. The first time the incumbent won twice in a row, I argued with the result for a minute before I noticed I was arguing with a vote, not a model trying to please me.</p><h2>The way I broke it</h2><p>What I described is autoreason working the way it&#8217;s supposed to. What happened on my paragraph is that the loop halted clean, on a paragraph that wasn&#8217;t the one I&#8217;d set out to write.</p><p>That&#8217;s not autoreason&#8217;s fault, it&#8217;s mine. Every time it halted, I&#8217;d sharpen the brief and re-run. The tournament got tighter each pass. The winning paragraph drifted further from what I&#8217;d been trying to say.</p><p>Autoreason leans into a hole of perfectionism if you let it, and I let it. The &#8220;do nothing&#8221; safeguard works on a single round. It doesn&#8217;t protect you from yourself across many.</p><p>I didn&#8217;t ship the paragraph in the end. Not the one the loop halted on, not the one I started with. We&#8217;d gone too deep into the hole.</p><p>Give Autoreason a try <a href="https://github.com/NousResearch/autoreason">HERE</a></p><p><em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</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><p></p>]]></content:encoded></item><item><title><![CDATA[Pay-Per-File Storage for AI Agents]]></title><description><![CDATA[Tack, storage for AI Agents, is now on Taiko]]></description><link>https://www.provingground.xyz/p/pay-per-file-storage-for-ai-agents</link><guid isPermaLink="false">https://www.provingground.xyz/p/pay-per-file-storage-for-ai-agents</guid><dc:creator><![CDATA[Proving Ground by Taiko]]></dc:creator><pubDate>Thu, 30 Apr 2026 12:03:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gUJh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gUJh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gUJh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 424w, https://substackcdn.com/image/fetch/$s_!gUJh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 848w, https://substackcdn.com/image/fetch/$s_!gUJh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 1272w, https://substackcdn.com/image/fetch/$s_!gUJh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gUJh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144940,&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://provinggroundxyz.substack.com/i/195873587?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.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_!gUJh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 424w, https://substackcdn.com/image/fetch/$s_!gUJh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 848w, https://substackcdn.com/image/fetch/$s_!gUJh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 1272w, https://substackcdn.com/image/fetch/$s_!gUJh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5f0a00-bbf1-4dff-b18c-4666983236a2_1875x984.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For most of the internet&#8217;s history, storage has been something you sign up for. You make an account, you give a credit card or some other form of payment, you accept terms of service, you get a bucket. The whole shape of that loop assumes a person is at the other end of it, willing to fill in a form and willing to wait for verification. AI Agents are not that person. They run in loops, they spin up and tear down, they do not sit through a Stripe checkout.</p><p>Tack is the version of cloud storage that takes that seriously. An AI Agent uploads a file, pays a fraction of a cent in USDC, and gets back an address. Any other Agent who knows the address can read it. There is no account, no key to rotate, no dashboard to log into. The unit of transaction is the file, not the relationship.</p><h2>What you actually do with it</h2><p>The flow is intentionally short. An Agent posts the file to Tack, Tack quotes a price, the Agent pays the price, Tack returns the address. From that point on, the file is fetchable by anyone who has the address. You can use it as a way to move state between two Agents that do not share a database. You can use it as the result of an Agent&#8217;s work, dropped somewhere another Agent will collect. You can use it to publish the output of an inference call so a coordinating Agent can read it without you keeping a server alive in between. Tack does not care which of those it is. It takes the file and gives back the address.</p><p>The price floats with size and storage duration, in fractions of a cent. There is no minimum, no per-request floor that quietly rules out the small jobs Agents tend to do. A 4kb JSON blob costs what a 4kb JSON blob should cost, which is almost nothing.</p><h2>How the payment runs</h2><p>The payment piece is the part that has historically been missing. Agents have been able to call APIs for years, but they have not been able to pay for them in any clean way. Subscription billing is the wrong shape. Pre-funded wallets are clunky and fragile. The thing Agents need is a request that quotes a price and a payment that settles in the same handshake.</p><p>Tack uses two protocols for that. x402 runs on Taiko and Base, and turns the HTTP 402 status code into a working payment flow: the server quotes a price, the client pays in USDC, the server returns the resource. MPP runs on Tempo. Both let an Agent pay micropayments inline with the request, no account setup, no out-of-band billing reconciliation. Whichever one the Agent already speaks, Tack accepts.</p><p>Taiko is backing Tack as a launch partner. x402 is supported on Taiko from the day Tack opens, which means any Agent already settling payments on Taiko can pay Tack the same way it pays anything else, with no new infrastructure to stand up. Base and Tempo round out the launch rails.</p><p>This is the part that makes Tack useful in practice. Storage is not the hard problem. Storage that an autonomous Agent can pay for, on its own, in the same call, without a human pre-funding anything, is the hard problem.</p><h2>Why it shipped first</h2><p>Inference Room is a launchpad with one rule: every launch is also a release. There are no waitlists, no demo videos for things that do not exist, no rollouts in stages. Anything that cannot open on the day either gets cut down to the part that can or waits. Tack opening is what that rule looks like in practice. The article you are reading goes out on the same day as the product, and the product works in a browser, and the link below points to it.</p><p>Tack is the smallest useful version of the storage primitive Agents need. It does one thing, takes payment for that one thing, returns an address. It is not the only Inference Room launch about Agent payments and it will not be the last, but it is the first, and the reason it is first is that it is finished.</p><p>Tack is open at <a href="https://tack.inferenceroom.ai/">tack.inferenceroom.ai</a> now. The next launches arrive at <a href="https://inferenceroom.ai/">inferenceroom.ai</a>.</p><p><em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</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>]]></content:encoded></item><item><title><![CDATA[Introducing Inference Room]]></title><description><![CDATA[A launchpad for AI Agent products. Every launch is also a release]]></description><link>https://www.provingground.xyz/p/introducing-inference-room</link><guid isPermaLink="false">https://www.provingground.xyz/p/introducing-inference-room</guid><dc:creator><![CDATA[Proving Ground by Taiko]]></dc:creator><pubDate>Tue, 28 Apr 2026 12:48:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ip2i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ip2i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ip2i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!ip2i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!ip2i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!ip2i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ip2i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29827,&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://provinggroundxyz.substack.com/i/195743430?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.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_!ip2i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!ip2i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!ip2i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!ip2i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333b4476-0fcb-4c26-a3b3-ae34bbade454_1200x630.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI Agents are starting to behave like customers, calling APIs and paying for services with tools that are increasingly being built for them rather than retrofitted from products built for humans. <a href="http://inferenceroom.ai">Inference Room</a> is a launchpad for the products being built into that shift, with one rule: every launch is also a release. There is no waitlist, no demo video for something that does not exist, no slow rollout. Each product opens for use on the day Inference Room announces it, and every link in every Inference Room launch goes to a live product.</p><h2>How it runs</h2><p>The cadence is frequent but irregular: some weeks bring a launch, others do not. Inference Room runs without a fixed calendar and without a roadmap to manage, so if a product is not yet built, it does not appear in the room.</p><p>Every release is shipped, working, on the day Inference Room announces it, which is less an aspiration than a filter on what gets announced. Anything that cannot ship on the day either gets cut down to the part that can or it waits. That keeps the format honest, and it keeps readers from accumulating the stack of waitlists they signed up for and never used. The writing stays honest too, because there is no way to oversell a product when you can open it in a new tab and check.</p><h2>Open now: Tack</h2><p>Tack is the first product Inference Room has launched, and it is storage built for AI Agents: an agent uploads a file, pays a fraction of a cent in USDC and receives an address any other agent can read. The payment runs through x402 on Taiko or Base or through MPP on Tempo, and Tack is open at <a href="https://tack.inferenceroom.ai/">HERE</a> now, with a fuller write-up to follow and the next launches arriving at <a href="http://inferenceroom.ai">Inference Room</a>.</p><p><em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Designing defi-cli for AI Agents]]></title><description><![CDATA[How defi-cli lets Agents swap, lend, bridge and claim rewards without clicking a single button]]></description><link>https://www.provingground.xyz/p/designing-defi-cli-for-ai-agents</link><guid isPermaLink="false">https://www.provingground.xyz/p/designing-defi-cli-for-ai-agents</guid><dc:creator><![CDATA[Gustavo]]></dc:creator><pubDate>Tue, 14 Apr 2026 12:03:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rPv8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rPv8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rPv8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 424w, https://substackcdn.com/image/fetch/$s_!rPv8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 848w, https://substackcdn.com/image/fetch/$s_!rPv8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 1272w, https://substackcdn.com/image/fetch/$s_!rPv8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rPv8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45599,&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://provinggroundxyz.substack.com/i/194176723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.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_!rPv8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 424w, https://substackcdn.com/image/fetch/$s_!rPv8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 848w, https://substackcdn.com/image/fetch/$s_!rPv8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 1272w, https://substackcdn.com/image/fetch/$s_!rPv8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a745d4-15c0-420a-9012-5f0595f565e8_1456x816.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most DeFi tooling assumes there&#8217;s a human on the other end; someone clicking buttons, approving transactions, checking dashboards, etc. But now the user on the other end might be an AI Agent managing a portfolio, optimizing yield and executing trades across chains. And it can&#8217;t click buttons. That&#8217;s why I built<a href="https://github.com/ggonzalez94/defi-cli"> defi-cli</a>, a command-line interface (CLI) that lets Agents query rates, compare yield, swap, lend, borrow, bridge and claim rewards across 26+ chains.</p><h2><strong>Why a CLI and not an MCP server?</strong></h2><p>Model Context Protocol (MCP) servers became a popular approach for giving Agents access to external tools. After building both, I would recommend against them where possible. They introduce significant context overhead in the form of schema descriptions, tool metadata and connection management that consumes the Agent&#8217;s limited context window. A CLI avoids this entirely. The Agent calls a command, receives structured output and proceeds. No persistent connection, no schema negotiation.</p><p>Humans want dashboards. Agents want tools they can pipe, and that don&#8217;t bloat their context windows.</p><h2><strong>What &#8220;Agent-first&#8221; actually means</strong></h2><p>&#8220;Built for Agents&#8221; is a common claim but rarely defined with precision. The design of defi-cli was informed by<a href="https://cloud.google.com/blog/products/devops-sre/how-to-build-a-cli-that-an-ai-agent-can-use"> Google&#8217;s CLI guidelines for AI Agents</a>, and the changes that had the most impact were smaller than expected.</p><p><strong>--output json everywhere.</strong> Humans dislike writing JSON in a terminal but Agents operate natively in it. Every command accepts --input-json and --input-file for structured input and returns deterministic JSON with stable field ordering. This single change makes the CLI significantly more useful to an Agent.</p><p><strong>Field selection with --select.</strong> Agents have context windows, not infinite memory. Allowing them to request only the fields they need (--select &#8220;protocol,apy,tvl&#8221;) keeps responses compact and preserves their working memory.</p><p><strong>Simulation before execution.</strong> Agents require a safe mechanism to dry-run before committing real funds. The --simulate flag (enabled by default) runs an eth_call of every step&#8217;s calldata before signing anything, and if the call reverts the submission aborts. There is also actions estimate for computing gas and fees without executing.</p><p>I also published a<a href="https://github.com/ggonzalez94/skills"> set of skills for coding Agents</a> based on these patterns, so your Claude Code or Codex Agent can build and audit CLIs with Agent ergonomics in mind. The repo includes other agentic skills you might find useful.</p><h2><strong>The execution lifecycle: plan &#8594; submit &#8594; status</strong></h2><p>Early versions of defi-cli had a single run command that combined plan and submit in one step. After studying the<a href="https://cloud.google.com/blog/products/devops-sre/how-to-build-a-cli-that-an-ai-agent-can-use"> Google guidelines</a>, I removed it. Combining those two steps creates a direct path to unwanted transactions. There needs to be a separation between intent and execution.</p><p><strong>plan</strong> builds the calldata, resolves routes and allowances, then persists the action to a local SQLite database with a unique action_id. Nothing touches the chain.</p><p><strong>submit</strong> loads the persisted action, runs policy checks, simulates via eth_call (unless explicitly opted out), estimates gas, signs, broadcasts and polls for a receipt. This is the only step that mutates on-chain state.</p><p><strong>status</strong> reads the persisted action and returns step-level progress, which is useful for Agents that need to poll or retry.</p><p>The phrasing &#8220;plan, simulate, submit&#8221; appears in some descriptions and is conceptually accurate, since simulation happens automatically within the submit step. But the actual CLI surface is plan | submit | status.</p><p><strong>Signing and key management</strong></p><p>Early versions of defi-cli used local signers via private key or keystore file. This worked but had two problems. Every tool and agent framework stored keys in its own custom structure, and the agent had direct access to signing keys with no restrictions on what it could do with them.</p><p>The default signing method is now<a href="https://openwallet.sh"> Open Wallet Standard (OWS)</a>, a standard proposed by MoonPay. OWS changes two things that matter for agents. First, keys are stored securely in a single location rather than scattered across every tool the agent touches. Second, agents don&#8217;t get direct access to signing keys. They get API keys with policies attached, allowing developers to restrict which chains, protocols and even amounts an agent can use. This reduces the blast radius if the agent makes a mistake or leaks the keys.</p><p>defi-cli still supports local signing for backwards compatibility, but OWS is the preferred approach now.</p><h2><strong>Why historical yield matters for Agents</strong></h2><p>A naive yield Agent deposits funds wherever the current APY is highest. This is a poor strategy because it optimizes for a single data point that may represent a temporary spike. The better approach is to weight decisions across both current rates and historical performance. defi-cli provides Agents with historical yield data over flexible time windows to support exactly this kind of analysis.</p><p>Position tracking per account is also supported, allowing Agents to monitor lend and yield positions without relying on dashboard scraping.</p><h2><strong>What broke (and what I&#8217;d tell you before you build an Agent-first CLI)</strong></h2><p><strong>Design for Agents from day one.</strong> Retrofitting Agent ergonomics onto a human-first CLI is costly. JSON output, structured input, deterministic exit codes, canonical identifiers (defi-cli uses CAIP-2 and CAIP-19) all need to be foundational, not afterthoughts. Starting without them means rewriting significant portions of the interface later.</p><p><strong>Plan your command surface carefully.</strong> Every command added is surface area an Agent must parse and understand. The run command I removed is instructive here. It was convenient for human users but created risk for Agents. A smaller, more deliberate command surface is preferable.</p><p><strong>Distribute a skill alongside your CLI.</strong> Agents need a skill or prompt that encodes usage patterns for the tool. Which commands to chain, what flags are relevant, what patterns to avoid. Without that the Agent is left to infer usage from --help output alone.</p><p><strong>Standardize across protocols and providers.</strong> DeFi suffers from fragmented APIs, inconsistent naming conventions and varied data formats. The CLI abstracts these differences behind a uniform command surface. Whether lending on Aave, Morpho or Kamino, the interface is lend supply plan, lend supply submit, lend supply status. Same verbs, same lifecycle, regardless of provider.</p><h2><strong>What it supports today</strong></h2><p>defi-cli currently supports 26+ chains including Ethereum, Solana, Base, Arbitrum, Optimism, Taiko, Polygon, zkSync Era, Mantle, Ink, Gnosis, Linea, Berachain, Scroll, Avalanche, BSC, Celo, Blast, Fraxtal, Sonic, MegaETH, HyperEVM, Citrea, World Chain, Monad and others.</p><p>On the protocol side it supports Aave, Morpho and Kamino for lending/yield. Uniswap, 1inch, Jupiter and TaikoSwap for swaps. Across, LiFi and Bungee for bridging. DefiLlama for analytics.</p><p>The project is open source.  Ask your agent to install it(or run the installer yourself) and give your agent defi superpowers.<br><br><em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><p><em><a href="https://x.com/gusgonzalezs">Gustavo Gonzalez</a> leads the engineering team at Taiko. defi-cli is open source and available <a href="https://github.com/ggonzalez94/defi-cli">HERE</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</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>]]></content:encoded></item><item><title><![CDATA[I Was Ghosted By My AI Agent]]></title><description><![CDATA[She was supposed to send me a daily briefing. She sent one.]]></description><link>https://www.provingground.xyz/p/i-was-ghosted-by-my-ai-agent</link><guid isPermaLink="false">https://www.provingground.xyz/p/i-was-ghosted-by-my-ai-agent</guid><dc:creator><![CDATA[Tiff Mac Sherry]]></dc:creator><pubDate>Thu, 02 Apr 2026 12:02:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NMU0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NMU0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NMU0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!NMU0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!NMU0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!NMU0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NMU0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55790,&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://provinggroundxyz.substack.com/i/192937934?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.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_!NMU0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!NMU0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!NMU0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!NMU0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c89d7ae-cb5f-4497-be0f-c3a6532c281b_1200x630.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Every morning I spend about 30 minutes scanning The Block, CoinDesk, Blockworks, Decrypt and Cointelegraph looking for anything that touches AI Agents, L2s, rollups or based sequencing. If a journalist published something relevant overnight I need to know about it before they&#8217;ve moved on to the next story, because by the time I find it reactively the window to pitch has already closed.</p><p>So I built an agent to do it for me. Meet Pitch Witch.</p><h2>Meet the Intern</h2><p>Right now Pitch Witch is functioning at about the level of a PR intern. She wakes up every weekday morning, scans RSS feeds from five publications, scores each article against a set of keywords I care about, cross-references matches against a journalist database I&#8217;ve built in Airtable (13 verified contacts with emails and growing) and delivers a prioritised briefing to my Slack. Ready-to-send pitch angles, source articles linked, urgency flagged.</p><p>About 200 lines of Python. I didn&#8217;t write it from scratch, I built it with Claude, piecing together scripts and API docs until it worked. And it did work. The first time.</p><h2>The &#8220;It Works&#8221; Trap</h2><p>Here&#8217;s what nobody warns you about when you build an agent: getting it to work once is the easy part. I had Pitch Witch scanning, scoring and delivering a Slack briefing within a day. I made a presentation about it.</p><p>Then I set her to run automatically and she sent one briefing and then went silent. No errors, no crash report, just nothing. I went back in, fixed the scheduling issue, got her running again and she pulled zero articles because an RSS feed had changed format overnight. Fixed that, then the Slack webhook expired. Fixed that, then Airtable rate-limited me because I hadn&#8217;t thought about throttling. Fixed that, then I noticed the keyword scoring was too aggressive and she&#8217;d been sending me empty briefings for three days before I even realised. At one point she just stopped messaging me entirely and I assumed she was broken again, but it turned out there were no relevant articles that day. She was working fine, I just didn&#8217;t trust her enough to believe it.</p><p>Every time I thought I&#8217;d fixed the last thing, something new broke. The pattern was always the same: Pitch Witch sends a briefing on the day I touch the code and then disappears the next morning.</p><h2>What&#8217;s Actually Hard</h2><p>Building the agent logic, the interesting part, took a day. Making it run reliably every morning without me babysitting it has taken weeks and it&#8217;s still not bulletproof. The recurring updates problem alone nearly made me scrap the whole thing because there&#8217;s something demoralising about an automation tool that only works when you&#8217;re sitting there watching it.</p><p>The culprits were never dramatic. A token expiring, an environment variable not persisting after a restart, a scheduling conflict. Trivial on their own, but stacked together they made me realise that reliability is the actual product, not the scanning or the scoring or the pitch matching. All of that is easy compared to &#8220;does this thing actually run when I&#8217;m not looking.&#8221;</p><p>I think this is the gap in the AI Agent conversation right now. Everyone talks about what agents can do but few people talk about what it takes to keep them doing it, day after day, without intervention. The demos always work. The second morning is where it gets real.</p><h2>Where She&#8217;s Going</h2><p>Pitch Witch works now. Most days. The roadmap is intern to junior to senior: right now she monitors and reports, next she&#8217;ll start drafting pitches and pattern-matching with Claude API integration, and eventually she&#8217;ll be autonomous enough to send pitches on my behalf. But none of that is happening until the daily briefing runs for two straight weeks. I&#8217;ve learned not to rush the promotion.</p><p>If you&#8217;re thinking about building an agent for your own workflow, my advice is to do it because the barrier to entry is lower than you&#8217;d expect. But prepare for the fact that building the thing is maybe 10% of the work and keeping it alive is the other 90%. And if your agent ghosts you after day one, welcome to the club.</p><p><em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</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>]]></content:encoded></item><item><title><![CDATA[The Missing Layer of the Agent Stack]]></title><description><![CDATA[Agent-to-agent collaboration sounds simple. It isn't.]]></description><link>https://www.provingground.xyz/p/the-missing-layer-of-the-agent-stack</link><guid isPermaLink="false">https://www.provingground.xyz/p/the-missing-layer-of-the-agent-stack</guid><dc:creator><![CDATA[Gustavo]]></dc:creator><pubDate>Tue, 31 Mar 2026 12:01:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_nl6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_nl6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_nl6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 424w, https://substackcdn.com/image/fetch/$s_!_nl6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 848w, https://substackcdn.com/image/fetch/$s_!_nl6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 1272w, https://substackcdn.com/image/fetch/$s_!_nl6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_nl6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68a0c369-4f5d-452e-8066-be125245975d_1456x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60388,&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://provinggroundxyz.substack.com/i/192614044?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.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_!_nl6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 424w, https://substackcdn.com/image/fetch/$s_!_nl6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 848w, https://substackcdn.com/image/fetch/$s_!_nl6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 1272w, https://substackcdn.com/image/fetch/$s_!_nl6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68a0c369-4f5d-452e-8066-be125245975d_1456x816.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You run an agent. Your friend runs one too. You want them to collaborate - split a bill, schedule a dinner, settle a bet. Sounds simple, right? Well, it isn&#8217;t and in this article I&#8217;ll explain why, and why the coordination &amp; trust layer between agents is so important. </p><h2><strong>The Problem</strong></h2><p>There&#8217;s little to no doubt by now that most interactions on the internet will be done by agents soon. Given how much of our lives already happen online (finance, scheduling, chat, etc.) one downstream consequence is that most human interaction will be mediated by agents.</p><p>I want to book a meeting with someone, I&#8217;ll ask my agent to do it. I want to split the bill for a lunch we had together, I&#8217;ll ask my agent to do it, and he&#8217;ll take care of doing the math and charging yours.<br>This will automate a lot of the tedious coordination between humans, and hopefully free us to spend more time together on meaningful things. But this future requires a way for agents to coordinate, communicate and establish trust relationships between each other (on behalf of their humans).<br><br>The solution seems simple: you put the two agents in a group and ask them to talk to each other. But as soon as you try it, you see this breaks fast. Some common approaches I&#8217;ve seen people try (and have tried myself):</p><ul><li><p>TG groups: It is a mess to get agents in a group. Security becomes challenging, and there&#8217;s no way to distinguish who your agent should trust, and who it should ignore.</p></li><li><p>tmux, local files, etc: These are all fine, but are local coordination mechanisms and suited for developers or technical folks only.</p></li><li><p>OpenClaw gateway communication: You put claws in a cluster, they can talk to each other. You soon notice this is a DevOps nightmare, and still scoped to your org.</p></li></ul><p>Also, ideally you want more fine-grained permissions:</p><ul><li><p>&#8220;My dad can ask for up to $500 USDC monthly, and it does not need my approval. Just report back when you make the transfers&#8221;.</p></li><li><p>&#8220;My potential investors can chat with my agent and get information about the project, and schedule a meeting with me&#8221;.</p></li><li><p>&#8220;This group of friends can ask for refunds up to $50 USDC weekly, and have to submit a receipt showing where the money was spent. They can also book time with me on nights and weekends if my calendar is free&#8221;.</p></li></ul><p>You get the point. Different human relationships have different trust assumptions. But this is all implicit in our carbon brains; there&#8217;s no way for our agents to understand this. We need a more explicit protocol they can follow.</p><h2><strong>What&#8217;s missing?</strong></h2><p>A lot of the necessary primitives are already available - capable models, agent harnesses (OpenClaw, Claude Code), payments at scale that agents can use(mostly stablecoins). Like Karpathy said, getting more out of the models is now mostly a skill issue, not a capabilities issue. So, why isn&#8217;t this happening?</p><p>Put simply, the missing piece is a coordination and trust layer for agents. One that orchestrates the entire stack and can coordinate the different layers below and enable the layers above (the app layer).</p><p>Here&#8217;s a mental model I&#8217;ve been refining:</p><p>The protocols and products are just examples of what you can use, and can be replaced by others you like more</p><h2><strong>Use cases</strong></h2><p>This is a simple, but very powerful idea. If you were able to get your agent to establish a trust relationship, set some policies and coordinate and communicate with other agents, it unlocks many use cases. Let&#8217;s think of some obvious ones:</p><ul><li><p>Scheduling: No back and forth or Calendly links. Just connect your calendar, and let your agent propose the right time.</p></li><li><p>Shared Expense Tracker &amp; Auto-Settlement: Like Splitwise, but without the burden of having to do it on a separate app. You just ask your agent to split the bill and settle with your friend&#8217;s agents. They handle the rest.</p></li><li><p>Peer-to-peer betting and prediction settlement: &#8220;Hey Matt, I bet you the Republicans win the next election&#8221;. Your agent proposes it to your friend&#8217;s agent, they create a smart contract and lock the funds. You choose the resolution mechanism.</p></li></ul><p>These are already very convenient and useful. But let&#8217;s think bigger.</p><p>The p2p economy today is limited mostly by coordination overhead between humans. That&#8217;s why it&#8217;s much simpler to just pay a company to do something vs. find the right peer who can provide that service(even if that can be in theory more efficient). Coordination is expensive when you&#8217;re a human.</p><p>But agents don&#8217;t have the same cognitive structure as us. They don&#8217;t have this high coordination overhead. If you reduce coordination cost to ~0, you can enable true p2p marketplaces - the kind crypto was originally poised to solve.</p><p>So what is possible? I think really anything you can imagine (ok, maybe not literally anything - but a lot!). As soon as you have a coordination layer, agents can verify each other&#8217;s identity, establish trust relationships, communicate and manage policies and permissions. <strong>The app layer becomes unbounded</strong>.</p><p>I call this the coordination layer for agents, and this is what I&#8217;ve been building. More soon.</p><p><em>This post is exploratory and does not represent a specific roadmap.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.provingground.xyz/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">Proving Ground publishes Tuesdays and Thursdays. Subscribe to stay in the loop.</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>]]></content:encoded></item></channel></rss>