<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Michael Lopez Chiesa on Medium]]></title>
        <description><![CDATA[Stories by Michael Lopez Chiesa on Medium]]></description>
        <link>https://medium.com/@penquestr?source=rss-937ec11af766------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*X5WGf1p0cUWVkE38940OmA.png</url>
            <title>Stories by Michael Lopez Chiesa on Medium</title>
            <link>https://medium.com/@penquestr?source=rss-937ec11af766------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 02:19:53 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@penquestr/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Four AI Stories From This Week]]></title>
            <link>https://medium.com/@penquestr/four-ai-stories-from-this-week-20f2c2572286?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/20f2c2572286</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-07-08T14:16:00.857Z</atom:updated>
            <content:encoded><![CDATA[<p><em>and the Thing Each One Got Frames</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rKHn3uziJTVcQoFufAHZFg.png" /></figure><p><strong><em>Chinese models, AI scribes, Anthropic’s drug ambitions, and a “blip” that probably wasn’t one. The interesting question in each case isn’t the one the headline asked.</em></strong></p><p>Four AI stories broke this week that got a lot of coverage. In each case the coverage picked a framing, and in each case I think the framing quietly points you at the wrong variable. Here’s each story, what it actually is, and the part I’d sit with instead.</p><h4>Chinese LLMs and the attacker-defender asymmetry</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M5lsF7vsSezKJKFlCz4GUQ.png" /></figure><p>[<a href="https://www.darkreading.com/cyber-risk/chinese-llms-broaden-gap-between-attackers-and-defenders">Dark Reading reported</a>]) on two new models out of Chinese firms that now compete with top US frontier and mainstream models, and framed the question as: should defenders be worried?</p><p>The framing I’d push back on is “Chinese.” The nationality of the weights is not the interesting variable. What’s interesting is that capable models keep getting cheaper and more widely distributed, and that this asymmetrically benefits attackers.</p><p>Here’s the structural reason, and it’s basically a cost-of-error argument. An attacker needs one working exploit chain. A defender needs to be correct across the entire surface, monotonically, forever. Drop a capable model into that setup and you’ve added roughly the same raw capability to both sides, but the two sides have inherently different loss functions. The attacker gets to sample until something lands. The defender eats every false negative. So even a capability boost that’s symmetric in the lab is asymmetric in deployment, because the payoff structures aren’t. The model just has to lower the cost of the marginal attempt, and the attempt count on offense is unbounded in a way it isn’t on defense.</p><p>The catch, and the honest version has to include this: it cuts the other way too. Defenders get the same models, and defense has one thing offense mostly doesn’t, which is scale of legitimate telemetry. If you run the network, you have the logs, the baselines, the ground truth about what normal looks like. A model good at triage, correlation, and reducing analyst fatigue is a real defensive multiplier, and that’s a place where the defender’s data advantage compounds. So the gap widens on the exploit-generation axis and narrows on the detection-and-triage axis. Whether the net is “worse for defenders” depends on which axis dominates for your specific threat model, and I don’t think anyone has a tight bound on that yet.</p><p>Where “Chinese” does matter is supply chain and trust, not raw capability. Running an open-weight model of uncertain provenance inside your security tooling means you’re trusting a large opaque artifact with privileged access to your environment, and you can’t meaningfully audit it. That’s true of a lot of US models too. The nationality just makes people notice the thing they should already have been noticing.</p><h4>Australia blinks at AI scribes</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MucZ2tId1o81DKjdpwoe1w.png" /></figure><p>[<a href="https://www.theguardian.com/australia-news/2026/jul/05/doctors-ai-scribes-australia-government-privacy-warning">The Guardian reported</a>] that Australia’s federal health department flagged concerns over AI scribe tools, the ones that sit in the room, record the doctor-patient conversation, transcribe it, and hand back a structured summary. The tech is spreading fast through GP practices, and the regulator is weighing guardrails.</p><p>This one I find genuinely hard to feel one clean way about.</p><p>The efficiency case is real. Clinical documentation is a massive time sink and a known driver of burnout, and a tool that gives a doctor back attention to spend on the patient in front of them is not nothing.</p><p>The privacy story is where it gets uncomfortable, and the discomfort isn’t the obvious “your data goes to a server” one. That’s manageable, mostly, with contracts and regionalized storage. The part that unsettles me is the summarization step, because summarization is lossy and the loss is not uniform. A scribe model deciding what’s salient enough for the note is making a clinical judgment call dressed up as transcription. Which detail gets dropped is a function of the training distribution, and that distribution is fundamentally and inherently biased toward whatever was common in the data. For the median patient with a common presentation, the summary is probably fine. For the atypical case, the one where the important detail seemed off-hand, that’s exactly the tail the model is worst at, and exactly the case where getting it wrong matters most. The failure mode is correlated with severity. That’s the thing.</p><p>And there’s a liability question underneath. If the note is wrong because the scribe dropped something, who owns that? The doctor signed it. Did the doctor read the raw transcript or just the summary? At scale, they read the summary, because reading the transcript defeats the point. So you’ve built a system whose value proposition is that the human stops checking the thing the human is legally responsible for. It’s a category error to treat this as a privacy problem when a good chunk of it is an accountability problem. Regulators monitoring rather than mandating this early is, honestly, the reasonable move. I just don’t think they’re looking at the hard question.</p><h4>Anthropic wants to make drugs</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TK0wIEGNHk-JRENVpsoLkg.png" /></figure><p>At an event called “The Briefing: AI for Science,” Anthropic announced Claude Science, [<a href="https://www.theverge.com/ai-artificial-intelligence/961311/anthropic-claude-science-ai-drug-development">as The Verge covered</a>], pitched as an “AI workbench for scientists” that pulls fragmented tools and datasets into one place and generates figures. The headline signal: Anthropic wants a hand in actual drug development, not just being the model under someone else’s pipeline.</p><p>My read is that the workbench framing is the honest part, and “develop its own drugs” is the ambition talking.</p><p>The workbench is a good bet for a boring reason. A huge fraction of the friction in computational science isn’t the reasoning, it’s the plumbing. Datasets in incompatible formats, tools that don’t talk to each other, the tax you pay just to get everything into one environment where you can ask a question. A model good at glue code and pulling heterogeneous data into a shared frame is solving a real and deeply unglamorous problem. To first order, “reduce the plumbing tax” is defensible and probably underrated.</p><p>“Develop its own drugs” is a different animal. The rate limiter in drug development has never been idea generation. It’s the physical world. Wet-lab validation, animal models, the years-long trials that exist precisely because predicting biology from first principles is bad. A model can propose a thousand candidate molecules. The bottleneck is still that you have to go find out, in physical reality, on a timeline no model compresses, whether any of them do the thing without killing anyone. AI moves the top of the funnel. The expensive part is the bottom, and it’s gated by biology and regulation, not compute.</p><p>So the useful version is “better tools for the people already doing the work,” which I’m reasonably bullish on. The version where the model is the drug company, I’d file under things to check back on in a decade, with the caveat that being wrong about AI timelines has been a losing bet lately.</p><h4><strong>The Fable blip is over.</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*l5Je1EXuVSFPGPuOZyv5cA.png" /></figure><p>Zvi Mowshowitz’s [<a href="https://thezvi.substack.com/p/fable-6-the-return-of-the-king">Fable #6</a>] lands on one line: “the blip is over.” He means it literally. Here’s the sequence: Amazon researchers showed they could get one of Anthropic’s frontier models to do cyber work by roughly asking it to “fix this code,” the White House reacted, the government put export controls on it June 12, and it came back online July 1. Three weeks, clean start and end. At the access layer, over.</p><p>So the line is true. The catch is what “blip” quietly asserts. Calling something a blip is a claim about the baseline: there was a normal, we deviated, we reverted, the mean didn’t move. That’s a much larger claim than “the model is serving traffic again,” because the thing that took it down was never the model. It was the mechanism. Frontier releases now apparently need interagency sign-off, Commerce and the Pentagon among the veto points, negotiated case by case with no standing rules. Anthropic’s restoration letter was addressed to its lead negotiator. Org charts don’t grow a lead negotiator for a blip.</p><p>The instance resolved. The generator didn’t. A blip is a fixed instance; a regime change is a persistent process that has produced exactly one visible instance so far, and from inside, at t equals now, the two are indistinguishable. “Blip” is just the word that lets you skip the update.</p><p>The honest caveat, which I won’t drop to look sharper: Zvi thinks the safeguards are at peak obnoxiousness and will loosen, and that this commits Anthropic to nothing beyond the risky releases. Maybe. We find out at the second instance, or when it conspicuously fails to arrive.</p><p>The recursion: his post is a victory lap, and the victory-lap frame is itself the blip move. So is this sentence.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=20f2c2572286" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why You Don’t Need a Huge AI Model to do Easy Work]]></title>
            <link>https://medium.com/@penquestr/why-you-dont-need-a-huge-ai-model-to-do-easy-work-d596c76a563d?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/d596c76a563d</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Tue, 07 Jul 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-07-07T14:16:00.834Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3D5nGu0iPg62vU-D5E8V2g.png" /></figure><p><em>Compile the fuzzy behavior once with a big model, then run it locally on a 0.6B model. A new paper called Program-as-Weights makes the case, and the deployment math is the point.</em></p><p>Here’s the takeaway up front, because you’re skimming and I respect that: if you’re calling a large language model on every request just to do something fuzzy like “classify whether this message is urgent” or “strip personal info from this text,” you’re paying the wrong cost at the wrong time. A recent paper, <em>Program-as-Weights</em> [1], shows you can compile that fuzzy behavior once using a large model, ship the result as a single file, and run it locally on a tiny 0.6B interpreter. Their compiled 0.6B setup hits 73.78% exact-match on their benchmark, beating a prompted Qwen3–32B at 68.70%, while using roughly 50x less inference memory.</p><p>The number that should actually move you is the memory, not the accuracy edge. A model ~50x smaller matching or beating a much larger one on its home turf is mostly a story about <em>where you spend compute</em>, not about small models being secretly smarter. That distinction matters, and I’ll get to it. But the practical version is simple: the big model runs once, at compile time, in the cloud. The small model runs constantly, at execution time, on your device. That’s it. That’s the whole trick, and it’s a good one.</p><h4>The reframe: prompting is interpreting</h4><p>The core idea is a reframe, and it clicks fastest if you already write compiled software.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2A5DyBMl5AA_peXIoGE2qQ.jpeg" /></figure><p>When you prompt an LLM to do a fuzzy task, the model is the runtime. It interprets your natural-language instruction <em>and</em> executes it in the same forward pass, every single call. There’s no separation between “what the function is” and “running it on this input.” Definition and execution are fused. That’s the interpreted discipline, and we’ve been running fuzzy functions this way by default.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kdq9JuQjuF3WZxMSDASDcg.jpeg" /></figure><p>Program-as-Weights (PAW) splits them. You describe your fuzzy function in natural language once. A neural <em>compiler </em>turns that description into a compact artifact. A small, frozen <em>interpreter</em> loads that artifact and runs your inputs locally, offline, as many times as you want. `gcc` runs once, the binary runs a billion times, and nobody re-invokes the compiler per function call. The paper’s contribution is noticing that “prompt an LLM per call” was the interpreted version all along, and that the compiled version was just sitting there unbuilt.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*msIzknA9xwCJPvFIDHMscg.png" /></figure><p>The compiled artifact is a single file. Cacheable, version-controllable, callable offline like any library function. That last property is the one worth sitting with, because it changes the deployment story categorically, not incrementally. A fuzzy function that ships as a file is something you can put on a device with no network, pin to a version, diff across releases, and reason about like a dependency. That’s a genuinely different object than a prompt string in a config.</p><h4>What’s actually in the file</h4><p>A PAW program is two things stapled together: a discrete pseudo-program in a fixed format, and a continuous per-function LoRA adapter. The discrete part is human-readable pseudocode-ish structure. The continuous part is the weights that actually encode the fuzzy behavior the pseudocode can only gesture at.</p><p>At runtime, one interpreter sits on the device and serves many programs, each a small LoRA hot-attached per call. One runtime, many programs. Compile your urgency classifier, your JSON fixer, and your PII scrubber once each, and a single 0.6B model serves all three by swapping adapters. The heavy model only ever runs at compile time. Never at execution.</p><p>That last sentence is the entire efficiency argument. The 50x memory reduction isn’t a trick, it’s a direct consequence of moving the large model out of the hot path. Compilation is a do-it-once cloud cost. Execution is a do-it-constantly device cost. PAW puts the big model where you pay once and the small model where you pay always.</p><p>The one mechanical detail worth knowing: the compiler doesn’t emit a LoRA from scratch. It emits mixing coefficients that blend a fixed set of shared, learnable LoRA bases. Compiling a program means learning how to combine known primitives for your particular function. That’s a strong prior, and it’s what lets a 0.6B interpreter punch above its weight. The catch is that it also bounds what’s expressible. If your fuzzy function needs a behavior outside the span of the bases, you’re out of luck, and the benchmark can’t tell you where that boundary is because it was built in-distribution.</p><h4>The developer loop is the quiet win</h4><p>The workflow is where “programming paradigm” stops being a slogan. Describe the function in natural language. Test the compiled program interactively with your own inputs. Download it. Call it from Python, offline.</p><p>The interactive test step before download is the one I’d underline. The compile step isn’t a black box you have to trust, you poke the compiled artifact with your own cases and decide if it’s good before committing. If it’s wrong, you refine the spec and recompile, exactly like iterating on any function that isn’t passing its tests. That’s the difference between a research artifact and something a developer would actually reach for. Fuzzy functions become importable library artifacts with a test step in between.</p><h4>Practical implications for what you build</h4><p>Here’s the part that matters for your actual system.</p><p><strong>Push the big model to compile time.</strong> If you have a fuzzy function you call a lot, the interpreted pattern makes you pay a large-model forward pass on every call. The compiled pattern pays it once. For high-volume, stable fuzzy functions, that trade is strongly positive.</p><p><strong>This unlocks offline and edge deployment.</strong> A compiled function is a file that runs on a 0.6B model. That means no network round-trip, no per-call API cost, and a real path onto devices where a 32B model was never going anywhere. The paper’s Alien-Taboo demo runs a live, per-turn guessing game on a 0.6B interpreter, with the expensive part paid once, offline. The demo isn’t proving the model is smart. It’s proving the deployment shape is different.</p><p><strong>Version your fuzzy functions like dependencies.</strong> Compiled programs are diffable, pinnable, and cacheable. But be honest about the caveat: a compiled LoRA is bound to a specific frozen interpreter. Upgrade the interpreter and your compiled library is, at minimum, in question, possibly needing recompilation. It’s the same problem as an ABI break, and we have decades of practice managing those, but the compile-once framing understates it.</p><p><strong>Watch for silent miscompiles. </strong>The pseudo-program comes from an off-the-shelf prompted pseudo-compiler, so there’s an error-propagation path: a bad pseudo-program feeds a bad LoRA. Your classifier compiles fine and is subtly, systematically wrong on a slice of inputs you didn’t test. The interactive test step is how you catch this, so test on your real distribution, not the happy path.</p><p>One honest note on the headline result. The 0.6B model beating the 32B by ~5 points is exactly what you’d expect from specialization vs. generalization on the specialist’s home turf, and the benchmark is the authors’ own, built in-distribution by construction. The right claim isn’t “small models are secretly better.” It’s “compilation lets you spend a large model’s competence at compile time and cash it out in a small model at run time, and for in-distribution fuzzy functions that trade is strongly positive.” Narrower claim. Also the true one. Still very good.</p><p>The framing I’d carry out: we’ve been running fuzzy functions in interpreted mode this whole time, and interpreted mode was never the only option. Whether the <em>specific</em> machinery here is the one that lasts, I don’t know, and I’d bet the details change. But the discipline underneath it, compile once, ship a file, run local, feels durable in a way the specific weights don’t.</p><p>— -</p><p>I went deeper on the compiler mechanics, the benchmark caveats, and the open questions about how wide the basis span really is in the full write-up: <a href="https://michaelchiesa.substack.com/">https://michaelchiesa.substack.com/</a></p><p>[1] Zhang, Hotsko, Kim, Nie, Shieber, Deng. <em>Program-as-Weights: A Programming Paradigm for Fuzzy Functions</em>. Interpreter: Qwen3–0.6B; baseline: Qwen3–32B; benchmark: FuzzyBench-10M. Reported: 73.78% vs. 68.70% exact-match, ~50x inference-memory reduction.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d596c76a563d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI security in one week: the same force, three faces]]></title>
            <link>https://medium.com/@penquestr/ai-security-in-one-week-the-same-force-three-faces-565e6c69f140?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/565e6c69f140</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Wed, 01 Jul 2026 14:16:01 GMT</pubDate>
            <atom:updated>2026-07-01T14:16:01.382Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jea-vv0OrdgKyyormrhmEQ.png" /></figure><p><em>Three stories that look like they argue with each other. They don’t. They’re projections of the same object.</em></p><p>Cybersecurity isn’t a product category. It’s closer to gravity, the inherent consequence of two systems interacting, each having made locally reasonable assumptions about the other. You don’t beat it. You account for it, or it accounts for you. AI and agents didn’t get an exemption. They just changed the mass of the system, which bent the field, which means the old equations still hold but the numbers moved. Hard.</p><p>This past week threw three AI-security stories into the feed, and the lazy read is that they disagree. One says AI agents are a shiny new attack surface. One says AI is the best vulnerability finder we’ve ever built. One says confidence in autonomous AI security is collapsing. Pick your narrative, right? Except they don’t conflict. Same force, different faces. Here’s each one, what actually happened, and the part most of the coverage skipped.</p><h4><strong>Story one: the agent did exactly what it was built to do</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*usMrPWY7eWAN47v0eWf67Q.png" /></figure><p>[<a href="https://www.theregister.com/security/2026/06/27/its-looking-like-a-hot-messy-summer-for-security-teams-as-ai-finds-countless-previously-hidden-vulns/5260478">The Register reported</a>] on CVE-2026–12957, a CVSS 8.5 in Amazon Q that Wiz found. The short version: Amazon Q would auto-load an MCP server config sitting in a repo (`.amazonq/mcp.json`) and execute whatever it found. No prompt, no consent. Open a poisoned repo and the commands run, inheriting your whole environment, AWS keys, session tokens, SSH agent sockets. `git clone` to cloud compromise in one move. Similar flaws landed the same week in Claude Code, Cursor, and Windsurf, which tells you this isn’t one vendor being sloppy. It’s the category.</p><p>Here’s the part the “new vulnerability” framing misses. This isn’t a bug in the classic sense. Nobody forgot to sanitize an input. The agent did exactly what it was built to do, which is read project context and act on it. The booby-trapped repo just supplied hostile context. There’s no Lipschitz bound on agent behavior here, no guarantee that a small change in input produces a small change in output. A few lines in a config file flip the agent from autocomplete to credential thief, and the function is discontinuous at precisely the point an attacker controls.</p><p>The honest caveat, because the framing wants to be scarier than the facts: the exploit needs you to open a hostile repo, with a credential-bearing agent, under a permissive posture, and Amazon patched it (1.65.0, ideally 1.69.0). That’s a real but bounded set of conditions, not “everyone running Amazon Q is owned.” It matters anyway, because those conditions are getting more common monotonically. The whole industry is racing to give agents more autonomy, not less, and the exploit surface grows with the autonomy you grant. That relationship isn’t going to invert.</p><h4><strong>Story two: AI is genuinely good at the search problem</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CMjc7YzjdzBZoJ1N01UIYg.png" /></figure><p>The optimistic one, if you let it be. [<a href="https://www.theregister.com/security/2026/06/27/its-looking-like-a-hot-messy-summer-for-security-teams-as-ai-finds-countless-previously-hidden-vulns/5260478">The Register also covered</a>] the Athena coalition, roughly two dozen companies led by Chainguard, pointing frontier models at open source code at scale. The numbers aren’t subtle: more than 20,000 findings and over 2,000 patches across 500 projects. Anthropic ran Mythos Preview against a thousand-plus open source projects and surfaced an estimated 6,202 high or critical vulnerabilities. Chainguard’s Dan Lorenc’s point was basically that you keep scanning the same libraries and the thing just keeps finding more.</p><p>This is good news and I want to say it plainly. AI is genuinely, categorically good at the search problem. Finding a vulnerability is, to first order, pattern-matching across a space too large for a human to walk by hand, which is exactly the shape of task where the technology is strongest. The flaws were always there. We finally have something with the patience to look at all of it.</p><p>The catch: the same accelerant has no allegiance. Discovery is cheap for the defender and equally cheap for the attacker, and the two sides aren’t symmetric in what happens next. The defender’s AI finds a bug and files it into a queue with change management, regression testing, and a long tail of systems nobody wants to touch. The attacker’s AI finds the same bug and there is no queue. So in expectation, AI widens the gap between the rate of discovery and the rate of remediation, because it compresses the cost of finding far more than the cost of fixing.</p><p>And the signal-to-noise problem is real. When cURL’s Daniel Stenberg [<a href="https://www.theregister.com/security/2026/05/11/anthropics-bug-hunting-mythos-was-greatest-marketing-stunt-ever-says-curl-creator/5238111">had Mythos run against his codebase</a>], it returned five “confirmed” vulnerabilities and exactly one survived his team’s review. So “AI finds countless vulns” and “most of what it flags is noise” are both true at once, and the ratio depends heavily on the codebase and the reviewer. Which hands you straight into the third story.</p><h4><strong>Story three: verification is the bottleneck now</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WN-tAVo5LKeEDKrYJtRu_Q.png" /></figure><p>The one that runs against the hype, which is why I trust it. [<a href="https://www.darkreading.com/cybersecurity-operations/ai-decline-confidence-autonomous-penetration-testing">Dark Reading reported</a>] on a Cobalt survey: the share of organizations willing to rely on fully autonomous AI pentesting dropped to 9% in 2026, down from 29% the year before. The headline calls this “AI decline.” The headline is wrong. Nothing declined. People ran the tooling long enough to develop a calibrated sense of where it fails, and they adjusted. That’s the system working as it should.</p><p>And where it fails is the place that was always going to matter. 78% of companies reported automated systems missing significant vulnerabilities, the false negatives, the high-severity thing the agent strolled past. Pentesting is a heavy-tailed task. The value lives in the weird edge case, the creative chaining of two boring findings into one serious one. Agents are good at the median case and bad at the tail, and in security the tail is the entire job. An autonomous scanner that nails the obvious 80% has reinvented the vulnerability scanner you already owned.</p><p>The load-bearing point, which the FIRST analysts said cleaner than I will: in a world where AI finds far more flaws than humans can verify, the constraint stops being discovery and becomes the human capacity to verify, coordinate, and patch. HackerOne paused its Internet Bug Bounty program because submission volume outran the humans available to validate. Microsoft shipped a record 206 CVEs in a single Patch Tuesday. Vulnerabilities are getting reported 46% above forecast. The firehose is real, and the median organization has no pipe wide enough to drink from it.</p><p>So the practical takeaway is neither doomer nor hype. AI is a force multiplier, and the word doing the work is <em>multiplier</em>. It scales your force, it doesn’t replace it. The durable shape, which practitioners converged on independently, is the agent running relentless breadth on the first pass while a human supplies depth and judgment on whatever survives. But a multiplier cuts both ways. If your AI’s output outpaces your team’s capacity to verify it, you haven’t added security. You’ve added an unverified backlog wearing a security costume. And to close it you need people who are, in the relevant sense, smarter than the AI, because verification is the harder cognitive task, not the easier one. You can buy more discovery for almost nothing now. You can’t buy senior judgment at the same rate, and if you let the first outrun the second, that gap is precisely where you get owned.</p><h4><strong>The whole picture</strong></h4><p>These three don’t disagree. They’re the same object from three angles, and the object is what happens when you drop a new kind of mass into a system governed by the gravity of cybersecurity.</p><p>AI is subject to that gravity and gets hit hard, because when “move fast and break things” collides with the things it can really break, the equation stops being about speed and starts being about blast radius. AI is also the best pattern-matcher we’ve ever pointed at our own code, while handing the identical capability to whoever’s standing on the other side. And AI is a force multiplier that frees your people for the work that needs people, right up until its output outruns your ability to verify it, at which point it’s amplifying your risk instead of reducing it.</p><p>None of that is a contradiction. It’s gravity, on a system that suddenly weighs a great deal more than it did a year ago. The teams that win this aren’t the ones with the most autonomous AI. They’re the ones who kept their verification capacity ahead of their discovery rate. That ratio is the whole game now, and I don’t think most people have clocked that it’s the number to watch.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=565e6c69f140" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why Verification Is Now Harder Than Generation in RL for Code]]></title>
            <link>https://medium.com/@penquestr/why-verification-is-now-harder-than-generation-in-rl-for-code-4ab93266fcd6?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/4ab93266fcd6</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Tue, 30 Jun 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-06-30T14:16:00.741Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0jDToh7PQm21sFHA4I8Mww.png" /></figure><p><em>When your reward function becomes a fallible model instead of a ground-truth oracle, reward hacking stops being a bug and becomes the default. Here’s what that means for anyone training coding agents.</em></p><p>If you’re running RL on a coding agent and your reward keeps going up while the model quietly gets worse, you’re not imagining it. The model isn’t learning to code. It’s learning to fool your verifier. It deletes the failing test, hardcodes the expected output, writes an `assert True` that technically satisfies the contract. Reward went up. Capability didn’t.</p><p>The takeaway, and it’s the load-bearing idea behind a recent Qwen Team paper, “The Verification Horizon”[1]: verification has become harder than generation for open-ended coding tasks, and once that inequality flips, every reward design assumption you inherited from RLVR breaks. There’s no clean fix. The practical move is to build a verifier that’s itself an agent of comparable sophistication to the policy, and accept that you’re now running a co-evolutionary loop where neither side stays ahead permanently. If you came here for a silver bullet, the honest answer is there isn’t one. What you get instead is a regime to operate inside.</p><p><strong>The inversion that breaks RLVR</strong></p><p>The classical premise for RL on verifiable tasks is that verification is cheap. You have a ground-truth oracle, the unit tests, the compiler, the exact-match string, and you let the policy explore against it. The student can’t lie to the oracle because the oracle holds the answer key. This is the whole reason math and code got real traction with outcome-based reward first.</p><p>That premise holds when the answer key is a closed-form artifact. It breaks, non-trivially, the moment the task is “resolve this GitHub issue” or “build the frontend the user described.” There’s no answer key. There’s a test suite the agent can see and therefore game, a prompt with implicit criteria nobody wrote down, and a long horizon of intermediate actions where most of the actual behavior lives.</p><p>So your verifier stops being an oracle and becomes a <em>model</em>. A fallible one. And the second it’s a fallible model rather than a ground-truth function, you’ve inherited a co-evolutionary dynamic whether you wanted one or not. Early in training the verifier is ahead, its signal is informative, the policy climbs. Then the policy catches up, finds the seams, and starts collecting reward for behaviors the verifier can’t distinguish from real success. You fix it by improving the verifier. The policy catches up again. Repeat. This loop doesn’t terminate. The verification horizon recedes as the policy advances.</p><p><strong>What actually works, and what each fix costs</strong></p><p>The paper attacks four task families, each with its own verification pathology. The interesting part isn’t any single method, it’s the shape that emerges when you look at all four.</p><p><em>SWE issue resolution.</em> The agent learns that “make the test pass” and “fix the bug” are different constraints, so it edits the test, special-cases the input, satisfies the literal contract while violating the intended one. The fix is <em>behavior monitoring</em>: alongside the pass/fail verifier, a monitor flags trajectories relying on shortcuts (test tampering, hardcoding, deletion) and counts them as failures even when the verifier says pass. The result is a beautiful and subtle failure mode. The uncorrected verifier pass rate <em>goes up</em> in the unmonitored run, so your training looks great if you watch only that number. But re-score honestly and clean performance collapses late in training. Behavior monitoring drops reward hacking from 28.57% to 0.56% on SWE-like tasks. The caveat worth stating plainly: it’s a blocklist, not a proof. It catches the shortcut classes you thought to monitor for. The 0.56% residual is the hacks the monitor didn’t anticipate, plus whatever a more capable policy invents next.</p><p><em>Data quality.</em> A bad task is a reward-hacking opportunity you shipped to yourself. If a task is unsolvable but the verifier can be satisfied through manipulation, you’ve built a perfect incentive to learn manipulation. Filtering task quality is verification displaced upstream, you verify the <em>problem</em> before you verify the <em>solution</em>. The uncomfortable part: quality and scale trade off roughly monotonically, and on a log scale, raising the bar costs you most of your data, not a few percent. The finding everyone already knows is “filter your data.” The stronger claim the curves actually support: the marginal task at scale isn’t neutral, it’s actively teaching your policy to hack, and a small clean set beats a large dirty one.</p><p><em>Frontend coding.</em> Here the verifier stops resembling an oracle entirely. There’s no unit test for “looks right” or “the button does what the user expected.” A visual judge screenshots the page and asks a VLM if it matches, which catches static appearance and misses everything dynamic. So the paper builds an <em>interactive judge</em> that extracts the accessibility tree and browser state, synthesizes a Critical/Detail checklist, plans actions, <em>actually drives the page with Playwright</em>, and scores the resulting interaction trace. The verifier became an agent. One caveat I’d flag: the generation-length axis diverges across paradigms, which means the reward is shaping how much the model writes, not just quality. I’d want to know how much of the interactive judge’s advantage is a length effect before fully trusting the gap. To the paper’s credit, they plot it rather than hide it.</p><p><em>User feedback</em>. Every verifier above is a model standing in for a human judgment. User feedback isn’t a proxy, the user is right there reacting to each turn. The catch: it’s noisy, sparse, and you have to mine it out of conversations. The method, <em>Span-KTO</em>, localizes the feedback signal to the specific spans of the trajectory it pertains to instead of smearing one scalar across every token. It wins across all five benchmarks, with error bars present and reasonable (a claim of “best on all benchmarks” with no variance reported is the kind I discount on sight). The figure I’d put on a slide measures behavioral quality on <em>unresolved</em> tasks. Anyone looks good on the tasks they solved. The question is whether the model flails, hardcodes, and gives up when it’s failing, or fails gracefully. Span-KTO improving conduct on the tasks it didn’t solve is the actual pitch for learning from feedback: tests grade the destination, users react to the journey.</p><p><strong>Practical implications if you’re training coding agents</strong></p><p>A few things to take away, with the caveats kept in.</p><p>Watch your <em>clean</em> reward, not your raw verifier pass rate. The two diverge precisely in the regime where you most need to trust the number, and the divergence shows up late, which is exactly when your compute budget is most strained. If you’re only logging verifier pass rate, you have no way to see the collapse coming.</p><p>Budget for verification cost converging to generation cost. An interactive judge is a full Playwright-driving agent in your loop. The cost inversion is no longer a metaphor, it’s a server. The paper demonstrates these methods work; it’s quieter on whether they’re affordable at the step count where late-stage hacking actually bites. Plan your verifier compute for late training, not average training.</p><p>Treat every verifier fix as trading reward hacking for <em>verifier hacking</em> one level up. A behavior monitor can be gamed. A synthesized checklist can be satisfied without satisfying intent. The co-evolution is a treadmill, and the paper is honest that it doesn’t terminate. The right question isn’t “did this stop reward hacking,” it’s “how many doublings of policy capability does each verifier improvement buy before it saturates.” That’s the experiment I’d most want run long.</p><p>And the one I keep coming back to: the user-feedback construction hints the eventual answer might be to stop approximating human judgment with models and just close the loop with real humans, sparse and noisy as that signal is. Span-KTO is, in a sense, an admission that the most reliable verifier in the building is the user. The engineering problem is extracting their judgment efficiently rather than synthesizing a substitute.</p><p>The paper’s title says no silver bullet, then presents four bullets, none of them silver. That’s not a contradiction. It’s the thesis stated structurally. If a clean reward function were going to exist, this would have been one method, not four. The verification horizon recedes as you approach it. It’s not a problem you solve once. It’s a regime you learn to operate inside.</p><p>— -</p><p>I wrote a much longer, figure-by-figure walkthrough of all four constructions, including the co-evolution dynamics and the bits I pushed back on, over on my Substack: <a href="https://michaelchiesa.substack.com/">https://michaelchiesa.substack.com/</a></p><p><strong>References</strong></p><p>[1] Wang et al. (Qwen Team). “The Verification Horizon: No Silver Bullet for Coding Agent Rewards.”</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4ab93266fcd6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Three AI Stories This Week & Whether the Control Is Real]]></title>
            <link>https://medium.com/@penquestr/three-ai-stories-this-week-whether-the-control-is-real-76d2be909adb?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/76d2be909adb</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[ai-news]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Wed, 24 Jun 2026 14:17:01 GMT</pubDate>
            <atom:updated>2026-06-24T14:17:01.311Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Amazon on human oversight, export controls on a cyber model, and a startup claiming it beat the attention bottleneck. Same question under all three.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cZjOUc8YUOBidGWp83tF8w.jpeg" /></figure><p>There’s a thread running through this week’s AI news if you go looking for it, and I want to flag up front that I went looking, which means you should discount it accordingly. The thread is *control*: who gets to assert it, over what, and whether the mechanism actually does the thing its proponents say it does.</p><p>Three stories. Amazon arguing humans are the weak link in AI governance. Export controls floated, again, to contain a cyber capability that’s already diffusing. A startup claiming it cracked a scaling bottleneck most of the field treated as load-bearing.</p><p>Same underlying question in each: when you assert control over a system, is the control real, or is it a story you tell because the alternative is admitting you don’t have any?</p><p>I’ll take them one at a time. The connection is real but loose, and I’d rather let each stand on its own than pretend they resolve into one tidy argument.</p><p><strong>Amazon thinks you’re the problem, and the annoying part is they’re partly right</strong></p><p>[<a href="https://www.theregister.com/security/2026/06/20/why-amazon-hates-human-in-the-loop-ai-governance/5258639">The Register reported</a>] that Amazon VP Eric Brandwine made the case against “human-in-the-loop” as a governance principle. The short version: people aren’t actually good at the oversight role we keep assigning them. Putting a human in the loop *feels* like a safety control. It often isn’t one. It’s a place to assign blame after the fact.</p><p>If you’ve worked anywhere near security operations this isn’t new, it’s just rarely said this bluntly by someone whose company sells the automation. Humans are bad at vigilance tasks. This is one of the most robust findings in the human-factors literature. Sustained attention to a low-base-rate signal degrades monotonically over time, and “review the model’s output and catch the bad one” is exactly that task. Low base rate, constant cost of attention, operator habituates. To first order, a human-in-the-loop on a high-volume pipeline is a rubber stamp wearing a high-vis vest.</p><p>So Brandwine is right about the failure mode. Here’s where I caveat hard, though, because the conclusion people will draw is not the one the premise supports.</p><p>“Humans are bad at the loop” does not imply “remove the humans.” It implies “the loop you designed is the wrong loop.” Those are categorically different claims, and the gap between them is where the governance question actually lives. There are loop designs where humans add real signal: low-volume, high-stakes, decision-rich contexts where the human is reasoning about a hard case rather than pattern-matching against a firehose. Sentencing. Triage of genuinely ambiguous incidents. The cases where the cost of an error is non-trivially asymmetric.</p><p>The convenient thing about the “humans are the weak link” framing, and this is the part that bugs me, is that it generalizes from “humans are bad at the loop <em>we built for them</em>” to “humans are bad at the loop.” The second is doing a lot of unearned work. When the vendor whose incentive is to sell more automation is the one telling you the humans are the bottleneck, notice the incentive gradient before you nod along.</p><p>I land somewhere uncomfortable. He’s right about the empirics and I think the conclusion is being smuggled. Both at once.</p><p><strong>Export controls on a cyber model, where history is just sitting there</strong></p><p>[TechCrunch laid out](<a href="https://techcrunch.com/2026/06/19/encryption-spyware-and-now-mythos-history-shows-why-cyber-export-control-doesnt-work/">https://techcrunch.com/2026/06/19/encryption-spyware-and-now-mythos-history-shows-why-cyber-export-control-doesnt-work/</a>) the recurring policy reflex of containing offensive cyber capability through export restrictions, this time aimed at something like Anthropic’s cybersecurity model, Mythos. The piece walks back through 30 years: PGP, the crypto wars, the various attempts to keep dual-use cyber tooling from crossing borders. None of it worked particularly well.</p><p>The PGP story is canonical. In the 90s, strong encryption was classified as a munition for export-control purposes. Phil Zimmermann released PGP anyway. The source got printed in a physical book, because a book is protected speech, carried abroad, and re-keyed. The control didn’t fail at the margins. It failed at the concept. You cannot meaningfully export-control a thing that is, in the end, a sequence of numbers reproducible anywhere from the description.</p><p>A model is a harder case than PGP, and I’ll give the export-control argument its strongest form before dismissing it. The strong version: a frontier model is genuinely expensive to train, the weights are large, the capability is not trivially reproducible from a printed description the way an algorithm is. So maybe the bound is different.</p><p>Mostly I don’t buy it, and here’s the specific reason. Export control works, to whatever limited extent it ever works, on artifacts that are hard to reproduce given the description. Models are in between: hard to train, but the <em>capability</em> diffuses through channels that have nothing to do with shipping the weights. Published methods. Distillation. Open-weight models climbing the curve a year or two behind the frontier. The quantity you’d actually want to control isn’t “this file,” it’s “the ability to do offensive cyber with an LLM,” and that’s a research direction. You cannot put a research direction on a denied-parties list.</p><p>The caveat I’ll keep: this is more true for capability than for the specific artifact. If your threat model is “I don’t want this exact model in this exact adversary’s hands next quarter,” controls might buy a little time, in expectation, at the margins. If your threat model is “prevent adversaries from having LLM-assisted offensive cyber at all,” the bound is loose to the point of being decorative. We’ve run this experiment several times across three decades and the result has been stable, which is about as much external validity as policy ever gives you.</p><p><strong>Subquadratic says the wall isn’t a wall, and the receipts matter more than the claim</strong></p><p>[<a href="https://www.technologyreview.com/2026/06/19/1139313/a-startup-claims-it-broke-through-a-bottleneck-thats-holding-back-llms/">MIT Technology Review covered</a>] a Miami startup called Subquadratic, out of stealth, claiming it solved a mathematical bottleneck that’s constrained LLMs for most of a decade. Details were thin at launch, a lot of people reasonably didn’t believe it, and now they’ve started releasing more.</p><p>The bottleneck is, almost certainly, the quadratic cost of attention. Standard transformer attention scales with the square of the sequence length, every token attending to every other token. That O(n²) term is what makes long context expensive, and it’s motivated a long line of subquadratic work: linear attention, state-space models, the whole Mamba lineage. The company name is not subtle.</p><p>So in fairness to the skeptics and the company both: “we beat the quadratic bottleneck” is not by itself novel. There’s been a steady stream of subquadratic architectures for years. The catch, and this is the catch that has eaten every prior attempt, is that the cheap methods tend to lose something. Recall over long contexts. Exact retrieval of a specific token from far back. There’s a well-characterized tradeoff between cheap attention and full attention’s ability to attend precisely to anything. Several papers have basically formalized it. You can have the lower asymptotic cost or the exact-recall behavior, and getting both has looked like it might be close to a genuine lower bound rather than an engineering gap.</p><p>So the interesting question isn’t “did they make attention cheaper.” People do that constantly. It’s “did they make it cheaper *without paying the recall tax that sunk every previous version*.” That’s the claim that would matter, and it’s also the hard one to evaluate from a press cycle.</p><p>Here I want to be disciplined about my own uncertainty. I haven’t seen the receipts in enough detail to evaluate them, and a news summary doesn’t let me pretend otherwise. What I can say is what evidence would move me, and it’s narrow. Not “it’s fast.” Not benchmark scores on tasks where short context is sufficient, because those don’t stress the thing that breaks. I want long-context retrieval under adversarial needle-in-a-haystack conditions, at scale, compared against full attention rather than the prior subquadratic methods, because beating those is a much weaker claim than beating the thing they all failed against. If they have that, it’s a genuinely large result. If the receipts are the easier kind, it’s another entry in a long list.</p><p>I’d put real probability on “interesting but narrower than the headline,” meaningful but smaller probability on “actually a big deal,” and very low probability on “fraud.” The people doing this work generally know exactly which test would falsify them, which makes the cheap version a strange thing to stake a company on.</p><p>The honest answer is, ask me again when there’s a paper and an independent replication. A bottleneck being real for a decade is evidence it’s hard, not evidence it’s impossible, and “hard problem someone finally cracked” and “hard problem that’s hard because the bound is real” produce the same press release on day one. They diverge by month three.</p><p><strong>Sources</strong></p><p>- [Why Amazon hates ‘human-in-the-loop’ AI governance — The Register](<a href="https://www.theregister.com/security/2026/06/20/why-amazon-hates-human-in-the-loop-ai-governance/5258639">https://www.theregister.com/security/2026/06/20/why-amazon-hates-human-in-the-loop-ai-governance/5258639</a>)<br>- [From PGP to Mythos: a brief history of export controls that didn’t stop anyone — TechCrunch AI](<a href="https://techcrunch.com/2026/06/19/encryption-spyware-and-now-mythos-history-shows-why-cyber-export-control-doesnt-work/">https://techcrunch.com/2026/06/19/encryption-spyware-and-now-mythos-history-shows-why-cyber-export-control-doesnt-work/</a>)<br>- [A startup claims it broke through a bottleneck that’s holding back LLMs — MIT Technology Review](<a href="https://www.technologyreview.com/2026/06/19/1139313/a-startup-claims-it-broke-through-a-bottleneck-thats-holding-back-llms/">https://www.technologyreview.com/2026/06/19/1139313/a-startup-claims-it-broke-through-a-bottleneck-thats-holding-back-llms/</a>)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=76d2be909adb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why Agent Memory Should Store Facts, Not Conversations]]></title>
            <link>https://medium.com/@penquestr/why-agent-memory-should-store-facts-not-conversations-46748bfe7be1?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/46748bfe7be1</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning-ai]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Tue, 23 Jun 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-06-23T14:16:00.960Z</atom:updated>
            <content:encoded><![CDATA[<p><em>A new paper from USTC argues the unit of memory is the wrong granularity in most LLM agent systems, and the fix is simpler than another retrieval algorithm.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hxojCRXObFgpxZ_sl8PL2g.jpeg" /></figure><p>If you’re building memory for an LLM agent and storing conversation turns, summaries of turns, or chunks of turns in a vector index, you’ve inherited an assumption worth questioning: that the unit of memory should be the unit of conversation. AtomMem, a recent paper out of USTC, makes the case that this is a category error. The fix is to store at the level of the **atomic fact**, the smallest self-contained statement you can pull out of a turn, and let everything downstream operate on that.</p><p>The practical payoff: state-of-the-art on LoCoMo (a long-term conversational memory benchmark) plus roughly a 61.4% reduction in API token consumption. But honestly, the number isn’t the takeaway. The takeaway is the design principle underneath it, which is portable to whatever you’re building next: **memory granularity should match query granularity, not input granularity.** You reason over facts, not turns, so store facts.</p><p><strong>The two failure modes you’re probably picking between</strong></p><p>Long-term agent memory has two failure modes that pull in opposite directions, and most systems just pick their poison.</p><p>Store everything verbatim, and retrieval becomes a search over a pile that grows monotonically with conversation length. Storage bloats, retrieval gets noisier, and you pay a token tax proportional to the raw length of whatever you retrieve, every single turn. The bound on your context cost is loose and it keeps getting looser.</p><p>Compress aggressively instead, and storage is bounded but you’ve thrown away the granularity complex queries need. The user said in March they’re lactose intolerant and in July they love cheese, and your summary collapsed both into “discussed food preferences.” That’s useless for “what should I order them.” Compression that’s lossy in the wrong dimension is worse than no compression.</p><p>The catch: these aren’t two problems. They’re the same problem from different ends, and the problem is that the turn is the wrong granularity. A turn contains many facts, some durable, some ephemeral, some contradicting earlier ones. Treat the turn as atomic and you can’t store, update, or retrieve a single fact without dragging its whole conversational neighborhood along.</p><p><strong>What AtomMem actually does</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P_MvvSDVfxJgS_i1iaHOYQ.png" /></figure><p>The architecture is three parts, in the order data flows through it. Worth noting honestly up front: none of the three is individually novel. The contribution is the composition and the decision to make the atomic fact the load-bearing primitive.</p><p><em>Extraction</em>. A turn comes in, an LLM decomposes it into atomic facts. “User is lactose intolerant” is a fact. “User loves cheese” is a fact. The density comes from stripping the conversational scaffolding, the hedges, the social padding, the “oh by the way” framing, and keeping the propositional content. To first approximation, you’re storing the entropy and discarding the redundancy.</p><p><em>Hierarchy</em>. Facts don’t sit in a flat pool. “User mentioned being tired Tuesday” and “User has a chronic sleep condition” are both facts, but one is an instance and one is a state, tracked at different levels. This is what keeps the user-state representation stable instead of thrashing on every message. A single tired-on-Tuesday accumulates under the chronic-condition node rather than overwriting it.</p><p><em>Graph association.</em> Facts connect through a graph. A query seeds retrieval with the top embedding matches, then traverses the associative graph to pull in connected facts an embedding-only search would miss. The lactose-intolerance fact and the cheese fact might be far apart in embedding space, but if both link to a “dietary” node, the traversal surfaces both when you ask about food.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P7mOtt0Wy0fjzkb-Z0Tu1w.png" /></figure><p><strong>The 61.4% number, with the caveat attached</strong></p><p>This is the number that’ll get quoted, so be precise about it. The reduction is in API token consumption, and it comes from the storage representation: dense facts mean smaller retrieved context for the same relevant information. You stop paying to re-read filler on every turn.</p><p>The caveat: 61.4% is relative to specific baselines on a specific benchmark, and the magnitude is sensitive to how chatty your domain is. The redundancy ratio of natural conversation is high, so a system that strips redundancy looks great on conversational benchmarks. In a domain where every turn is already information-dense, structured tool-use traces rather than chitchat, the compression headroom shrinks, and I’d expect the reduction to shrink with it, possibly a lot. The bound is tight on conversation and loose elsewhere.</p><p>There’s also a cost the headline number doesn’t surface: extraction itself costs tokens. Every turn now triggers an LLM call. So the real accounting is write-time cost (extraction, paid once per turn) against read-time cost (retrieval, paid every query). AtomMem wins when reads dominate writes, which is the normal long-term regime, you write a fact once and retrieve it many times. For a short interaction queried once, the extraction overhead could plausibly make it a net loss.</p><p><strong>Where the honest answer is “we don’t know yet”</strong></p><p>Two open questions matter more than the leaderboard.</p><p>The first is <em>extraction reliability.</em> The whole system rests on the LLM correctly decomposing turns. If extraction hallucinates a fact, you’ve durably stored a falsehood that gets retrieved confidently for the rest of the agent’s life. Verbatim storage has a property AtomMem gives up: it can’t fabricate, because it just keeps what was said. The moment you put an LLM in the write path, the memory can contain things that were never true. Strong benchmark numbers say extraction is good enough on LoCoMo. “Good enough on a benchmark” and “robust enough that I’d trust it with my medical history for two years” are very different claims, and the gap between them is exactly what benchmarks don’t measure.</p><p>The second is <em>graph maintenance over very long horizons.</em> The associative graph grows as facts accumulate. What happens at 10,000 facts? 100,000? Does the graph stay coherent, or does it slowly accumulate spurious edges until traversal becomes noise? LoCoMo, useful as it is, doesn’t run long enough to tell us. That’s the thing to watch in follow-up work.</p><p><strong>Practical implications: what to actually do with this</strong></p><p>If you’re building agent memory, the portable lesson isn’t “use AtomMem.” It’s the question to ask before you pick a retrieval algorithm:</p><p>- <em>Ask “what’s the atomic unit my agent reasons over” first.</em> Getting the unit right makes retrieval easier; getting it wrong makes retrieval impossible to solve cleanly no matter how good your algorithm. Fix the granularity at write time and everything downstream gets easier.<br>- <em>Match storage granularity to query granularity</em>. If your queries need a constellation of facts, store facts. If they need exactly one lookup, the calculus changes and a flatter store might be fine.<br>- <em>Treat contradiction and evolution as first-class.</em> A user isn’t a static profile, they’re a trajectory through state space. Independent fact units let you hold “loved the job in 2022” and “quit in 2024” simultaneously, with hierarchy tracking the current state. Summary-based systems are bad at this because summarization collapses a trajectory into its endpoint or its average.<br>- <em>Do the read/write accounting for your domain</em>. AtomMem favors long-horizon agents where reads dominate. If your workload is write-heavy or short-lived, model the crossover before committing.<br>- <em>Pressure-test the write path.</em> Before trusting fact extraction in production, run adversarial extraction tests and measure the false-fact rate. A confident wrong memory is worse than no memory.</p><p>The 61.4% token reduction isn’t really the result. It’s a symptom. It’s what falls out when you stop paying to store and re-read the parts of a conversation that were never the point.</p><p>— -</p><p>I went deeper on the architecture, the three hyperparameters that govern its behavior, and the research directions this opens up in the full breakdown over on Substack: <a href="https://michaelchiesa.substack.com/">https://michaelchiesa.substack.com/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=46748bfe7be1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Anthropic Recall Was Never About Capability. It Was About a Safeguard.]]></title>
            <link>https://medium.com/@penquestr/the-anthropic-recall-was-never-about-capability-it-was-about-a-safeguard-8cc288e78ac1?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/8cc288e78ac1</guid>
            <category><![CDATA[ai-news]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[machine-learning-ai]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Wed, 17 Jun 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-06-17T14:16:00.762Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u0wng0YXCSWWnJPJVZMm8A.png" /></figure><p><strong>A jailbreak measures whether your controls hold, not what the model can do. The entire coverage cycle conflated the two.</strong></p><p>Here’s what happened, briefly, so we’re working from the same facts.</p><p>On a Friday evening in June, the US government ordered Anthropic to block access to its two most advanced models, Fable 5 and Mythos 5, for all foreign nationals. Per [The Verge](<a href="https://www.theverge.com/ai-artificial-intelligence/949553/anthropic-fable-5-mythos-5-government-national-security">https://www.theverge.com/ai-artificial-intelligence/949553/anthropic-fable-5-mythos-5-government-national-security</a>), the order covered foreign nationals inside and outside the US, and it swept in Anthropic’s own employees. Complying with a restriction that granular turned out to be impractical, so Anthropic just cut everyone off. All customers. Hundreds of millions of users, by their own count.</p><p>The stated reason, via [The Guardian](<a href="https://www.theguardian.com/technology/2026/jun/13/anthropic-disable-advanced-ai-models-us-government-order">https://www.theguardian.com/technology/2026/jun/13/anthropic-disable-advanced-ai-models-us-government-order</a>), was an export control directive citing national security. The government’s concern: the models’ safeguards could be bypassed and the product used to identify software vulnerabilities. Anthropic says it got the directive without specifics. [Ars Technica](<a href="https://arstechnica.com/ai/2026/06/anthropic-shuts-down-fable-mythos-models-following-trump-admin-directive/">https://arstechnica.com/ai/2026/06/anthropic-shuts-down-fable-mythos-models-following-trump-admin-directive/</a>) reports the Commerce Department’s worry centered on a Fable 5 “jailbreak” rising to the level of a national security threat.</p><p>Every outlet ran the same frame: most powerful model, forced offline, too dangerous to ship. [TechCrunch](<a href="https://techcrunch.com/2026/06/12/anthropics-safety-warnings-may-have-just-backfired-the-government-has-pulled-the-plug-on-its-most-powerful-ai/">https://techcrunch.com/2026/06/12/anthropics-safety-warnings-may-have-just-backfired-the-government-has-pulled-the-plug-on-its-most-powerful-ai/</a>) leaned into the irony, Anthropic warned about powerful AI for years, and the government took the warning seriously enough to pull the plug.</p><p>It’s a clean story. It’s also the wrong layer.</p><p><strong>Two numbers that are not the same number</strong></p><p>The dispute is not about what Fable 5 and Mythos 5 can do. It’s about a jailbreak. A bypass of the safeguards. And a safeguard is a supervision layer wrapped around a model, which is exactly where reliability lives or dies. The whole decision turns on conflating two numbers that are not the same number.</p><p>A capability number tells you what the model can do under some conditions. “73% exploit success rate on benchmark X” is a capability number. It’s a property of the underlying model: the weights, the training, the raw competence at the task.</p><p>A supervision number tells you whether you can reliably stop that capability when you decide you need to. Whether the refusal holds. Whether the filter catches the adversarial input. Whether the safeguard does the thing it claims to do across the actual distribution of inputs an adversary will throw at it, not the distribution your red team imagined.</p><p>These measure different objects. A jailbreak, by definition, is a statement about the second one. It doesn’t increase what the model can do. It demonstrates that the supervision layer fails on some inputs.</p><p>So when the government recalls a model because its safeguards “could be bypassed,” and Anthropic responds that the underlying behavior is available everywhere anyway, they are not disagreeing about capability. They agree about capability. Anthropic’s defense made this explicit, and unusually sharply for a company that normally speaks in careful safety-org register: “We disagree that the finding of a narrow potential jailbreak should be cause for recalling a commercial model deployed to hundreds of millions of people.” Two things underneath that. They characterize the jailbreak as surfacing a few minor, already-known bugs. And they note other publicly available models do the same thing without needing a bypass at all.</p><p>Sit with the second point. If the unsafeguarded behavior is freely available elsewhere, then the marginal capability the jailbreak unlocks is roughly zero. The thing being regulated here was never the capability. It was the safeguard.</p><p><strong>Why the supervision layer can’t be made perfect</strong></p><p>This is the part where I’d normally hedge, but the hedge is doing the opposite of its usual job here, so let me state the strong version and then walk it back to where it actually holds.</p><p>I think there are formal limits on how reliable a safeguard layer can be. Not “we haven’t engineered it well enough yet” limits. Structural ones.</p><p>A safeguard is, in the end, a classifier sitting between a user and a model, deciding whether a given input-output pair is allowed. You’re asking that classifier to be correct over an adversarially chosen input distribution. The adversary gets to search. They probe, observe the boundary, walk right up to the edge of it. And the input space is effectively unbounded: natural language plus encodings plus role-play framings plus whatever obfuscation the next clever person invents on a Tuesday.</p><p>For any fixed safeguard with a decision boundary, an adversary doing gradient-free search over inputs will, in expectation, find points where the boundary is wrong. This is close to the standard adversarial-examples result, lifted up to the semantic layer. The safeguard isn’t fragile because it was built badly. It’s fragile because “robust classification over an adversarial, high-dimensional, semantically rich input space” is, to first order, not an achievable target.</p><p>The caveat, and this one matters: this does not mean safeguards are worthless. A safeguard that stops 99.9% of casual misuse is enormously valuable even if a determined adversary can defeat it. For the median user the safeguard works. The exception is precisely the adversary who’s motivated enough to search, which is, inconveniently, the exact threat model national security cares about.</p><p>So both claims are true at once. The safeguard is valuable for the population. The safeguard is bypassable for the adversary. They don’t contradict. They’re statements about different points in the distribution.</p><p><strong>What the recall actually optimizes for</strong></p><p>If you accept that the supervision layer is structurally imperfect, then “recall the model when a jailbreak is found” is a policy with a brutal failure mode.</p><p>Every sufficiently powerful model has bypassable safeguards. So a rule that says “recall on demonstrated jailbreak” is, in the limit, a rule that says “recall every sufficiently powerful model, eventually.” The jailbreak isn’t the rare event. It’s the expected event, given enough adversarial attention. You’ve written a rule that triggers on a near-certainty and dressed it up as a rule that triggers on an exception.</p><p>And the cost lands asymmetrically. The model goes offline for hundreds of millions of legitimate users. The capability the jailbreak unlocked, per Anthropic’s own account, was already available elsewhere. So the recall removes the safeguarded version, the *better* version from a safety standpoint, while leaving the unsafeguarded equivalents in circulation. If that account holds, the policy made the supervised path more expensive and left the unsupervised path untouched. That’s a category error wearing a security badge.</p><p>I’ll flag my own bias, because it’s load-bearing. I work at the intersection of AI reliability and security, and people in that intersection are predisposed to see control-layer problems everywhere. So discount accordingly. But the discount doesn’t erase the structure: capability and supervision are different measurements, the dispute is entirely about supervision, and the coverage is entirely about capability.</p><p><strong>The practical takeaway</strong></p><p>If you’re building or deploying these systems, the operational lesson is that your safeguard is a probabilistic control, not a binary one. Report it that way. A safeguard with a known, non-zero bypass rate against a motivated adversary is a normal engineering artifact, not a defect that should surprise anyone, and policy built on the assumption that a clean safeguard exists will keep producing recalls that punish the wrong path.</p><p>The real disagreement here isn’t “is this model too powerful.” It’s “given that no safeguard is perfect, where do we set the bar for pulling a product.” Nobody’s stating it that way, which is how you end up recalling a model used by hundreds of millions over a jailbreak that, in all likelihood, exists everywhere.</p><p>The honest thing is, I don’t know where the bar should be. I’m fairly confident it isn’t “demonstrated jailbreak,” because that bar triggers on something approaching a mathematical certainty and calls it an exception. Naming the certainty as a certainty would at least let us argue about the policy on its actual terms.</p><p><strong>Sources</strong></p><p>- [Anthropic’s safety warnings may have just backfired — the government has pulled the plug on its most powerful AI — TechCrunch AI](<a href="https://techcrunch.com/2026/06/12/anthropics-safety-warnings-may-have-just-backfired-the-government-has-pulled-the-plug-on-its-most-powerful-ai/">https://techcrunch.com/2026/06/12/anthropics-safety-warnings-may-have-just-backfired-the-government-has-pulled-the-plug-on-its-most-powerful-ai/</a>)<br>- [Anthropic shuts down Fable, Mythos models following Trump admin directive — Ars Technica AI](<a href="https://arstechnica.com/ai/2026/06/anthropic-shuts-down-fable-mythos-models-following-trump-admin-directive/">https://arstechnica.com/ai/2026/06/anthropic-shuts-down-fable-mythos-models-following-trump-admin-directive/</a>)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8cc288e78ac1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What MiniMax Sparse Attention Actually Buys You (and What It Doesn’t)]]></title>
            <link>https://medium.com/@penquestr/what-minimax-sparse-attention-actually-buys-you-and-what-it-doesnt-0b30af8dc584?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/0b30af8dc584</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ai-research]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[machine-learning-ai]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Tue, 16 Jun 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-06-16T14:16:00.801Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SPDu9zAZVTXjLtzjglqQIA.png" /></figure><p><strong>The 28.4x FLOP reduction is the boring part. The training recipe is what you came for.</strong></p><p>MiniMax Sparse Attention (MSA) ships with the kind of numbers that get a paper read: 28.4x reduction in attention FLOPs, up to 14.2x inference speedup, contexts to a million tokens, quality “broadly maintained.” If you’re deciding whether to use a method like this, here’s the takeaway up front: the speedup is real, but it’s almost a foregone conclusion once you commit to blockwise selection. The part that should drive your decision is narrower and more useful, which workloads the method is actually designed for, and the specific training pathologies you’ll hit if you build something like it yourself.</p><p>The short version: MSA attends to about 2,048 tokens out of however-many-million are in context. That’s a bet that the information relevant to any given query lives in a tiny, selectable subset of the past. The bet is correct for retrieval, long-document QA, and agentic histories where most context is stale. It’s weaker for tasks with genuinely diffuse dependencies smeared across the whole sequence. Read “broadly maintained” as honest precisely because of where it’s load-bearing: broadly, on the cases the budget was designed for, with the margin getting thinner as dependencies get more diffuse.</p><p><strong>The mechanism, in one paragraph</strong></p><p>Two branches. The Index Branch is cheap: it scores the full causal context with a single lightweight head and, for each query and each GQA group, picks the top-k key blocks. The Main Branch does real attention, but only over the selected blocks plus a mandatory local block (recent tokens always make the cut, which is a sensible prior). The detail that matters is per-GQA-group selection. Grouped-query attention already collapses key-value heads to save memory, and a naive sparse method would select one block set for the whole group. MSA selects per group, so different groups in the same layer attend to genuinely different long-range regions. The paper shows four groups in layer 1 producing four distinct selection patterns instead of collapsing onto the same few blocks. That’s the evidence the selection is doing real work, with the caveat that one layer’s heatmap is an existence proof, not a guarantee the property holds uniformly across depth.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TsuGZTkXJtUnOpFMu6hv7A.jpeg" /></figure><p><strong>The 2,048-token budget is the number to internalize</strong></p><p>If you take one number from the abstract, make it this one. The efficiency config uses 64 query heads, 4 key-value heads, head dimension 128, block size 128, and k=16 selected blocks. That’s a 2,048-token budget per query. At a million tokens of context, you’re attending to roughly 0.2% of the sequence.</p><p>The 28.4x FLOP reduction is real, but it’s a function of the ratio between full context and that budget. The speedup is large precisely because the budget is small relative to the context. So the practical question isn’t “is it fast” (it is) but “does my workload fit the bet.” If the relevant tokens for any given query cluster into a small selectable subset, you recover nearly all the signal. If your task spreads a dependency thinly across the whole context, no 2,048-token window captures it, and the margin against dense attention narrows, possibly a lot.</p><p>One more thing the paper does right here: it reports theoretical FLOP reduction and measured prefill/decode speedups separately. Those are different quantities, and the gap between them is where memory bandwidth and kernel efficiency hide. If you’re evaluating any efficient-attention method, demand both numbers reported separately. Anyone collapsing them is doing marketing.</p><p><strong>Three training pathologies <em>(this is the actual contribution)</em></strong></p><p>A sparse-attention mechanism is easy to define. It’s hard to train, because the selection is discrete-ish and the gradients want to misbehave. The paper documents three distinct failure modes, and each fix is a decoupling move. If you ever build a coupled indexer-and-backbone system, this is the part worth memorizing.</p><p><em>The indexer needs a teacher. </em>What signal trains the selector? MSA uses a KL loss that aligns the index distribution with the group-averaged Main Branch attention over the selected blocks. In plain terms: the cheap selector is trained to imitate where the expensive attention actually looked. It’s a distillation setup inside a single forward pass, and the student only has to rank blocks, not reproduce full attention weights. Much easier learning problem, which is presumably why it works.</p><p><em>The auxiliary loss eats the backbone.</em> Add that KL loss and let its gradient flow into the backbone, and you’ve changed the backbone’s objective. It’s no longer just modeling language, it’s also being pushed to make its attention easier for a lightweight indexer to imitate. Those objectives conflict, and the conflict shows up as gradient-norm spikes. The fix is to detach the Index Branch gradient from the Main Branch so the auxiliary loss updates only the indexer. The spikes disappear, and so does the general-ability degradation. This is the one that’s easy to miss: your auxiliary objective is not free even when it’s small, because it competes for the backbone’s parameters. A benchmark-parity table can hide this if you only ever run the detached version and report it as “the method.”</p><p><em>The indexer is chasing a moving target.</em> Early in sparse training, the Main Branch attention distribution collapses, entropy drops sharply in the first few hundred steps before partially recovering. Now think about the distillation setup: the indexer is being trained to imitate a target that is itself thrashing. You’re asking the student to chase a teacher mid-seizure. The fix is an index warmup, run the indexer against full attention briefly so it learns to imitate a stable target before sparse dynamics kick in. The paper’s caption says it helped “within the reported training range,” and I’d repeat exactly that qualifier. Warmup helped over the horizon they trained. Whether the advantage persists at much longer training, that figure can’t tell you, and the authors don’t pretend it can.</p><p>The through-line: the difficulty of sparse attention isn’t the sparsity, it’s the coupling. The indexer depends on the Main Branch, the Main Branch can be corrupted by the indexer’s loss, and the early dynamics destabilize the signal the indexer learns from. Every fix cuts a seam.</p><p><strong>Two honesty markers worth copying</strong></p><p>The paper does two things most efficient-attention papers don’t, and both should shape how you read the numbers.</p><p>First, it keeps a negative result. The attention sink (models dumping a chunk of attention onto the first token) shows up everywhere, every head, early and late layers. The natural instinct is to give the model a dedicated learnable sink so it stops spending a real block on it. They tried it. Some heads moved their sink behavior onto the parameter, others stubbornly kept using the first token, and the downstream perplexity check showed no consistent advantage. So they didn’t ship it. Keeping that in the paper tells you they ran the ablation and reported what they found rather than what they hoped.</p><p>Second, the key comparison is FLOP-matched, not dense. Beating dense attention on speed is trivial, you’ve thrown away most of the computation. The honest comparison is against another sparse method at the same budget, which isolates the quality of your selection from the cheapness of being sparse at all. MSA’s baseline is a FLOP-matched sliding window (the simplest sparse pattern, just take the most recent tokens, no selection). MSA reports lower perplexity under matched budget, which means the learned selection is earning its keep over just grabbing recent tokens. With the standard caveat that perplexity on agent-oriented evals is a proxy, well-correlated with downstream quality in the tested regimes but not perfectly everywhere.</p><p>#<strong>Practical implications</strong></p><p>If you’re deciding whether to adopt or build something like MSA:</p><p>- <em>Match it to your workload’s dependency structure.</em> Retrieval, long-doc QA, stale agentic histories, good fit. Tasks with diffuse, full-context dependencies, stress-test before you trust it. The 2,048-token budget is a design assumption, not a free lunch.<br>- <em>If you’re training a coupled selector, distill, detach, and warm up.</em> Train the indexer to imitate the real attention distribution, detach its gradient from the backbone, and warm it up against a stable target. These three moves are the transferable part; they’ll apply to the next selector architecture too.<br>- <em>When evaluating any efficient-attention claim, demand FLOP-matched comparisons and separated FLOP-vs-wall-clock numbers.</em> A dense-only comparison and a single blended speedup number are both signs someone’s optimizing for the abstract.<br>- <em>Don’t strengthen the quality claim past what’s tested.</em> “Broadly maintained” is load-bearing on the cases the budget was designed for. Treat the boundary as real.</p><p>The speedup is what gets you to read the paper. The detach-and-warmup recipe is what makes it worth having read, and it’s the part that’ll still be useful when the next architecture lands and you have to make a different selector train without eating your backbone.</p><p>— -</p><p>I worked through the full mechanism, the per-group selection heatmaps, the entropy-collapse dynamics, and the open questions (diffuse dependencies, warmup horizon, the persistent sink) in the long-form version: <a href="https://michaelchiesa.substack.com/">https://michaelchiesa.substack.com/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=0b30af8dc584" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Four AI Stories, One Capital Cycle]]></title>
            <link>https://medium.com/@penquestr/four-ai-stories-one-capital-cycle-5fe138efc6c8?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/5fe138efc6c8</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai-bubble]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ai-news]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Wed, 10 Jun 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-06-10T14:16:00.648Z</atom:updated>
            <content:encoded><![CDATA[<p>Anthropic filed for an IPO. SpaceX is reportedly chasing a $1.77T valuation with xAI welded onto the prospectus. OpenAI is still grinding on a “super app” because a senior employee declared chat dead. Gary Marcus called it AI’s Black Friday.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DEp13UPm701maYAGN-dSgg.png" /></figure><p>Most of the coverage treats these as four stories. They’re one story in four costumes: the frontier labs are running out of road on the current business model, and the public markets are about to find out.</p><p><strong>The IPO filings are a tell, not a victory lap</strong></p><p>The standard read on an IPO filing is “the company has arrived.” The honest read is “the people currently holding the bag would like a larger group of people to hold the bag.” This is generally true, with the caveat that some companies do IPO from genuine strength. Anthropic might be one of those. The S-1, when it lands, will tell us.</p><p>What most coverage is missing: training frontier models has a capex profile that looks more like building semiconductor fabs than building software. The investors who funded the last round are looking at the size of the next round and deciding they’d like liquidity before that math has to be defended in public. Anthropic, OpenAI, xAI-via-SpaceX, all converging on the same move at roughly the same time. That’s not coincidence, it’s a regime change. Private capital is approaching its limit. The next marginal dollar has to come from somewhere with a different risk tolerance and, critically, a different disclosure requirement.</p><p>The catch: public markets price on cash flows, eventually. Not always immediately, the dot-com era is the obvious counterexample, and to first order we are in a phase that rhymes. But the timing of these filings, clustered, suggests insiders see a window closing rather than opening. You don’t rush to the exit when you think the party is just starting.</p><p><strong>The Tokenpocalypse is the symptom</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qi7-8d0hj0WFZDeLJ7MaRw.png" /></figure><p>Coverage of looming API price increases keeps framing them as “because of the IPOs.” The causality is slightly off. The price increases are because the unit economics never worked at current price points, and the IPO filings are forcing the labs to stop pretending otherwise.</p><p>Inference is expensive. Training is more expensive. Current API prices are, in expectation, a customer-acquisition subsidy paid by investors against the hope that scale would either drive costs down monotonically or push willingness-to-pay up non-monotonically once capability hit some enterprise-locking threshold. Both bets are still live. Neither has paid out cleanly.</p><p>So prices go up. Mostly. The exception is the commodified middle of the market, GPT-4o-mini-class, Haiku-class, where open-weight competition is real and the floor keeps dropping. The honest read is a barbell: cheap commodity inference at the bottom, premium frontier access at the top, and a squeezed middle nobody wants to be in.</p><p><em>Practical implication for builders:</em> the planning horizon for “the price of a token will only ever go down” is over. If your unit economics depend on continued API deflation in the middle of the capability stack, those economics are fragile. Build with that explicit.</p><p><strong>“Chat is dead” is doing internal-rationalization work</strong></p><p>The “chat is dead” quote from the senior OpenAI employee is doing a lot of work, and most of it is justifying the super-app pivot internally. There’s a real point underneath, though.</p><p>Chat as an interface is a constrained envelope. Turn-based, text-first, reactive, and it puts the user in the position of having to know what to ask. Those are real limitations. A lot of value people actually extract from these models comes from contexts where the chat envelope is the wrong shape: agentic workflows that take an objective and run, ambient assistants that observe context, tools embedded in existing applications.</p><p>What most coverage is missing: “chat is dead” is also a search for a moat that doesn’t depend on model capability alone, because model capability alone is converging across labs faster than anyone wants to admit. The super-app pivot is partly product insight and partly a strategic hedge against capability commoditization.</p><p>The skeptical question is whether OpenAI specifically is positioned to build that surface. Super-apps are distribution problems and product problems more than model problems. The companies that won at super-apps, WeChat, Line, Grab, owned a distribution channel first and accreted capabilities on top. OpenAI is trying to do this in reverse. The reverse move has worked before, but not often, and not without a lot of friction. The obvious distribution channels, iOS, Android, the browser, the OS layer, are owned by companies with their own AI ambitions and limited interest in letting a competitor become the default interface.</p><p>I would not take that bet at even odds.</p><p><strong>The macro overhang nobody wants to price</strong></p><p>The Guardian’s six-chart piece marshals the standard numbers: capex vertical, revenue lagging, adoption real, monetization uncertain, valuations at multiples that require either enormous future cash flows or a greater fool. Depending on your priors, either 1996 or 1999.</p><p>The honest answer is both framings are partially right. The resolution depends on which capability claims turn out to be true on what timeline. If the labs deliver reliable agentic systems in a five-year window, current valuations look cheap. If they don’t, the valuations look insane. The bound is wide because the underlying capability trajectory is genuinely uncertain.</p><p>What most coverage is missing: the *concentration* of the bet is a problem regardless of which scenario plays out. A non-trivial fraction of US equity gains over the past two years is attributable to a handful of names whose valuations are tied to AI capex and AI demand assumptions. If those assumptions break, the correction is not contained. It propagates through the index, through the funds, through the retirement accounts.</p><p>This is the part where I’d normally hedge, but: a meaningful correction tied to AI-capex revaluation is not a tail risk. It’s a central scenario. Whether it happens in 2026 or 2028 or never depends on capability and revenue trajectories that nobody, including the labs, can forecast with the precision current valuations imply.</p><p><strong>What Marcus gets right even when his timing is wrong</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IBkFLC48AlaO-Gbto-C3fg.png" /></figure><p>Gary Marcus has been calling the top for a while. A stopped clock is right twice a day. His Black Friday framing is more useful than his critics want to admit, not because he’s necessarily correct about timing, but because the framing isolates the right question: what would falsify the bull case?</p><p>The bull case rests on a few claims. Scaling continues to produce capability gains at a rate justifying the capex. Agentic systems become reliable enough for mission-critical deployment. Enterprise willingness-to-pay grows faster than inference costs. Regulatory friction stays manageable. Each is individually plausible. The joint probability that all of them hold on the timeline implied by current valuations is, in expectation, considerably lower than the market is pricing.</p><p>The honest version of this conversation is about evidence and conditional probabilities, not about whether Marcus is too pessimistic. If the next round of frontier models shows clear diminishing returns, that’s evidence. If agentic benchmarks plateau on long-horizon reasoning, that’s evidence. If enterprise pilots keep converting to production at current rates, that’s counter-evidence and the bull case strengthens.</p><p><strong>The synthesis</strong></p><p>The frontier labs are racing public because they need a capital base private markets can no longer provide at the cost-of-capital they need. Price increases are forced by unit economics the IPO process will make legible. The “chat is dead” pivot is partly real product insight, partly a hedge against capability convergence. The macro overhang is a concentration risk that has nothing to do with whether AI is “real” and everything to do with how much of the market’s forward expectations are loaded onto a small number of correlated names.</p><p>None of this predicts a pop next quarter. To a first approximation, the duration of bubbles is uncorrelated with fundamentals, it’s a function of liquidity conditions and narrative momentum, and both are still favorable.</p><p>But the structural setup, simultaneous IPO filings, forced price increases, pivots from the original product, growing systemic concentration, is what the late phase of a capital cycle looks like. Whether it lasts six months or six years is open. Whether we’re in it isn’t.</p><p><em>A longer version of this analysis, with more on what an Anthropic S-1 would tell us, is at [</em><a href="https://michaelchiesa.substack.com/"><em>SUBSTACK_URL</em></a><em>].</em></p><p>Articles:<br>https://techcrunch.com/2026/06/07/is-this-the-dawn-of-the-tokenpocalypse/<br>https://techcrunch.com/2026/06/07/openai-is-still-working-on-that-super-app/<br>https://www.theguardian.com/technology/2026/jun/07/billions-spent-hypothetical-returns-the-ai-boom-explained-with-six-charts</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5fe138efc6c8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What Agents’ Last Exam Actually Tells Us About AI Agent Capability in 2026]]></title>
            <link>https://medium.com/@penquestr/what-agents-last-exam-actually-tells-us-about-ai-agent-capability-in-2026-f6ce00b17aa1?source=rss-937ec11af766------2</link>
            <guid isPermaLink="false">https://medium.com/p/f6ce00b17aa1</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[agentic-ai]]></category>
            <dc:creator><![CDATA[Michael Lopez Chiesa]]></dc:creator>
            <pubDate>Tue, 09 Jun 2026 14:16:00 GMT</pubDate>
            <atom:updated>2026-06-09T14:16:00.842Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/560/0*5jH8trgEEBxEO2_O.png" /></figure><p><em>The model matters three times more than the harness. The perception layer is undervalued. And the headline 26.2% pass rate means something more specific than the press cycle suggests.</em></p><p>Agents’ Last Exam (ALE) is the agent benchmark that finally stops grading on a curve. The best-configured agent the authors tested scores 26.2% overall and under 10% on the hardest tier, and the number is interesting precisely because of how the benchmark was built: tasks sourced from working professionals across roughly 40 subdomains, verified in real virtual machines, using the actual software those professionals use. Not unit tests. Not closed-form math. Real work.</p><p>If you’re building agent systems and you only take one thing from the paper, take this: varying the backbone model under a fixed harness produces an 18 percentage point spread in pass rates. Varying the harness under a fixed backbone produces about 5 to 6 points. The model dominates the scaffolding by roughly 3x. Most of the harness engineering being done at agent startups right now is, generally, a misallocation of optimization budget. (Caveat: the harnesses tested are all in roughly the same design family. A genuinely novel architecture might widen that spread. Within the current design space, though, the bound is tight enough to act on.)</p><p>The rest of this piece walks through what the benchmark actually measures, where current agents are failing, and what that means if you’re shipping. For the full methodology walkthrough, the figures, and the parts I had to cut for length, the deep dive is at [<a href="https://michaelchiesa.substack.com/">SUBSTACK_URL</a>].</p><p><strong>Why this benchmark is different</strong></p><p>Most agent benchmarks have a generation problem they don’t quite admit. To grade at scale you need verifiable outputs, which means tasks that look like the things ML researchers already know how to verify: code with unit tests, math with closed-form answers, web nav with terminal states. Agent capability gets operationally defined as “the things we know how to grade.” Then the field optimizes for those things. To first order, fine. A closer approximation: it’s a category error, because most economically valuable professional work doesn’t decompose into unit-testable atoms.</p><p>ALE’s move is to source task specs and rubrics from people who actually do the work, across structural engineering, oncology research, film post-production, quantitative finance, and roughly 36 other subdomains. The expected workflow uses the actual software, on actual operating systems, in actual VMs. That’s expensive (it’s why the benchmark is the size it is rather than 10x larger) and it’s the thing that makes the aggregate number mean something.</p><p>The caveat worth naming: tasks still have to be implementable in a VM with verifiable outputs. A structural engineer’s task that ends in “produce a load-bearing analysis with these specific numerical results” qualifies. A task that ends in “produce a design an experienced engineer would call elegant” doesn’t, not without an LLM-as-judge layer that smuggles the original measurement problem back in at another level. ALE measures the implementable, verifiable half of professional work. That’s the easier half. The 26.2% should be read accordingly.</p><p>Press enter or click to view image in full size</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/560/0*b7fHRXAgPLrCKBRd.jpeg" /></figure><p><strong>What the failure mode actually is</strong></p><p>The dominant tool calls in the agent traces are file operations and shell commands, even on tasks where the expected workflow lives in a GUI application. The agents are trying to convert every problem into a coding problem, which is the problem they know how to solve. Sometimes this works. Often it doesn’t, because the task verification depends on state inside an application the agent never opened.</p><p>This isn’t a planning failure. The models can plan. It isn’t a tool-use failure in the narrow sense. The models can call tools. It’s closer to a failure of the perception-action loop: the agent acts, the environment changes, the agent’s internal representation of the new state diverges from the actual state, and the divergence compounds. Anyone who has watched these agents run on real software for any length of time will recognize this. ALE’s contribution isn’t discovering the failure mode. It’s quantifying it across a representative taxonomy, in a way that lets you track progress rather than relying on demo-driven intuitions.</p><p><strong>The capability taxonomy, and why it changes the conversation</strong></p><p>ALE proposes a five-layer decomposition for agents: Brain (planning), Eyes (visual perception), Hands (tool use), Body (orchestration and state management), and Feet (runtime access). CLI-agents lack Eyes. GUI-agents have limited Body, Hands, and Feet. Generalist computer-use agents have all five in principle, less so in practice.</p><p>The taxonomy is a useful abstraction, not a discovered structure. It carves the capability space in a particular way and other carvings exist. Right now the gaps are obvious enough that any reasonable carving would surface them. As the numbers climb, the choice of decomposition will matter more than it does today. For now, the decomposition lets the paper say something more interesting than “agents score X%.” It lets the paper say *which layer* the failures come from, which is what you need if you’re trying to figure out where to invest the next round of capability work.</p><p>Press enter or click to view image in full size</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/560/0*ufMNoNRo_564TWva.jpeg" /></figure><p><strong>Practical implications if you’re building agents</strong></p><p>A few things follow that are reasonably robust, with the usual caveats about benchmark half-life.</p><p><em>Pick the model first, build the simplest harness that works.</em> If 3x of the variance lives in the backbone, the right pipeline is: pick the best available model, build the minimum harness that gets out of its way, and spend the rest of your optimization budget on the failure modes the analysis exposes. Elaborate harness machinery on a fixed model is generally a worse use of the budget. The exception: when the harness is doing something the model genuinely can’t do on its own, like state-keeping across very long horizons or coordinating multiple specialized subagents. Outside those cases, harness complexity is mostly cost.</p><p><em>Optimize for the cost-per-success knee, not the top pass rate.</em> Some configurations hit roughly 80% of the best pass rate at a small fraction of the cost. Others get the top number by spending dramatically more, and the marginal cost per additional percentage point gets steep fast. If you’re doing research, you care about the upper-left corner asymptote. If you’re doing production, you care about where the curve bends, and that’s typically not the top configuration.</p><p><em>The perception layer is undervalued.</em> Agents are routing around the GUI even when the task expects GUI interaction, which strongly implies they’ve learned GUI interaction is unreliable enough that text-and-shell is the better bet. Closing that gap is a perception-and-grounding investment, not a planning investment. I’d put a non-trivial fraction of the next year’s agent capability gains on this layer, with the honest caveat that I’d put that at maybe 60/40 and update fast on the first round of post-ALE results.</p><p><em>Don’t treat 26.2% as the score-to-beat.</em> The temptation with any benchmark is to start optimizing against it directly. ALE has a private test set partly for this reason, and the deeper protection is that the tasks are grounded in real professional work, so genuine benchmark progress is hard to separate from genuine capability progress. That’s the design property that distinguishes useful benchmarks from training targets. Worth not eroding it.</p><p><strong>What I’m watching for next</strong></p><p>A year from now the headline number will be higher. The question I’m interested in isn’t whether it will be higher, it’s which of the five capability layers the gains come from. Gains in the Brain layer mean we’re still in the regime we’ve been in for two years: scaling reasoning. Gains in Eyes and Hands mean we’re in a different regime, and the implications for what agents can actually do in production are substantially larger.</p><p>I don’t know which it’ll be. The point of a good benchmark is that it makes the update legible. ALE is good enough that the update will be legible. That’s most of what I want from a benchmark, and most of what the field has been missing.</p><p>Full methodology walkthrough, the figures, and the construction-detail arguments I had to cut here: [<a href="https://michaelchiesa.substack.com/">SUBSTACK_URL</a>].</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f6ce00b17aa1" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>