<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="https://purl.org/rss/1.0/modules/content/"
	xmlns:media="https://search.yahoo.com/mrss/"
	xmlns:wfw="https://wellformedweb.org/CommentAPI/"
	xmlns:dc="https://purl.org/dc/elements/1.1/"
	xmlns:atom="https://www.w3.org/2005/Atom"
	xmlns:sy="https://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
	xmlns:custom="https://www.oreilly.com/rss/custom"

	>

<channel>
	<title>Radar</title>
	<atom:link href="https://www.oreilly.com/radar/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oreilly.com/radar</link>
	<description>Now, next, and beyond: Tracking need-to-know trends at the intersection of business and technology</description>
	<lastBuildDate>Fri, 18 Sep 2026 17:06:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/04/cropped-favicon_512x512-160x160.png</url>
	<title>Radar</title>
	<link>https://www.oreilly.com/radar</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Software Factories, Light and Dark</title>
		<link>https://www.oreilly.com/radar/software-factories-light-and-dark/</link>
				<comments>https://www.oreilly.com/radar/software-factories-light-and-dark/#respond</comments>
				<pubDate>Fri, 18 Sep 2026 15:59:35 +0000</pubDate>
					<dc:creator><![CDATA[Addy Osmani]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19732</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Software-factories-light-and-dark.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Software-factories-light-and-dark-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[The following article originally appeared on Addy Osmani’s blog and is being republished here with the author’s permission. A software factory harnesses loops at scale. You can run the loop with humans in it (light factory), trading judgment and concentration against speed and breakage. Or you can ignore the humans (dark factory) and let those [&#8230;]]]></description>
								<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>The following article originally appeared on</em> <em><a href="https://addyosmani.com/blog/software-factories/" target="_blank" rel="noopener">Addy Osmani’s blog</a></em> <em>and is being republished here with the author’s permission.</em></p>
</blockquote>



<p class="wp-block-paragraph"><strong>A software factory harnesses loops at scale. You can run the loop with humans in it (light factory), trading judgment and concentration against speed and breakage. Or you can ignore the humans (dark factory) and let those agents scope, build, and ship code without anyone reading the details. If people stop reading, though, they’ll stop understanding your software. Your hardest job now is knowing which checks to build and how much autonomy to delegate.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">This idea of the software factory is a term that dates back to Bob Bemer’s paper, “<a href="https://ed-thelen.org/comp-hist/Bemer-EconomicsOfProgramProduction.pdf" target="_blank" rel="noopener">The economics of program production</a>,” given in 1968. For half a century, many have dreamed of a world in which software is a repeatable and instrumentable production process (analogous to stamping out car parts in a factory) rather than the isolated craft of individuals. Historically, this dream has generally (although not universally) fallen flat, in part because of the difficulty of stamping out ideas.</p>



<p class="wp-block-paragraph">But in the last two years, things have changed dramatically enough that now it makes sense to take a fresh look at the old dream. And since some subtleties can easily be glossed over, it’s worthwhile to be somewhat precise about exactly what’s really new and different, and what may be recurring traps, dressed up as new opportunities.</p>



<p class="wp-block-paragraph">Dex Horthy, co-founder of HumanLayer recently gave a great talk at the AI Engineer World’s Fair called “<strong>Harness Engineering is not Enough: Why Software Factories Fail</strong>.” worth checking out on this topic.</p>



<h2 class="wp-block-heading">The loop is the atom. The factory is the loop at scale.</h2>



<p class="wp-block-paragraph">Structure is everything, and it all starts with small units. The whole stack is really three concepts layered on top of each other: the loop, the harness, and the factory.</p>



<p class="wp-block-paragraph">A loop is one agent doing a single job on repeat: gather context, take an action, check the result, and go again until some condition is met. It is the smallest unit of agentic work, and everything above it is just loops stacked on loops.</p>



<p class="wp-block-paragraph">The point of <a href="https://addyosmani.com/blog/loop-engineering/" target="_blank" rel="noopener">loop engineering</a> is that you stop prompting the agent turn by turn and instead design the small system that prompts it for you.</p>



<p class="wp-block-paragraph">A harness is the walls around a loop: the sandbox it runs in, the tools it can reach, the memory that survives between runs, and the gates that decide what “done” means. The loop is the behavior; the harness is the environment that behavior runs inside.</p>



<p class="wp-block-paragraph">Hand a raw model no harness and it will happily spin forever. The harness is everything around the model that makes it useful and safe to run.</p>



<p class="wp-block-paragraph">A <strong>software factory</strong> is many harnessed loops running at once, fed by a queue of work and drained through a review gate into production, with humans owning the whole thing from above. It isn’t a bigger agent; it’s an org chart made of loops.</p>



<p class="wp-block-paragraph">The final paradigm shift is moving from writing code to building and running the factory that writes it. The unit of work shifts up a level, to the loop, the harness, and the flow between them, rather than the individual code diff.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d626b197&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d626b197" class="aligncenter is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://addyosmani.com/assets/images/software-factories/loop-harness-factory.svg" alt="Loop wrapped into a harness, run many times as a factory" style="aspect-ratio:3.052949594530132;width:840px;height:auto"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>Loop → harness → factory. A factory isn’t a smarter agent; it’s many harnessed loops feeding one review gate, with a human owning the outer loop.</em></figcaption></figure>
</div>


<h2 class="wp-block-heading">The factory, drawn</h2>



<p class="wp-block-paragraph">The central slide Dex spent most time on was brilliant because it’s a clarifying wiring diagram that visualizes what otherwise is an obvious loop. Here’s my take on it:</p>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><img decoding="async" src="https://addyosmani.com/assets/images/software-factories/agentic-software-factory.svg" alt="The agentic software factory as a closed loop" style="width:840px;height:auto"/><figcaption class="wp-element-caption"><em>The factory is a closed loop:</em> <em>Intent and production signals feed a queue, the harness builds, automated checks and review gate it, deploy ships it, and monitoring turns production back into signals.</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Intent flows from the vision of engineering leadership and directly from engineers into a queue of work. Signals driven by incidents and user requests drive the same queue. The harness picks an item from the queue and builds a change for it. Beyond the harness, automated checks make changes safe enough to let into production. These automated checks run at once without any conscious involvement from engineers, thanks to CI, tests, static analysis, and scanning of all kinds. The review gate is the only decision point here. After approval, changes are deployed and monitored in production, with monitoring data feeding back into the signals that kicked the loop into motion to begin with.</p>



<p class="wp-block-paragraph">By and large, every box in this diagram is almost zero cost: generation, tests, scanning. They all run at scale for negligible cost. There’s only one expensive box that proves stubbornly resistant to scaling, and that’s the review gate. That shiny amber box is “judgment,” and where the crux of the argument about whether we can make development faster and more frequent resides.</p>



<h2 class="wp-block-heading">Why we call it “dark”</h2>



<p class="wp-block-paragraph">A dark factory runs with the lights physically off because the only things on the floor are machines, which don’t need light to see. A dark software factory operates similarly, as code ships that no human has read and is verified only by other machines.</p>



<p class="wp-block-paragraph">The image is borrowed from manufacturing. Its origins are physical rather than digital, rooted in facilities where the lights are turned off and the work is carried out by robots. <a href="https://en.wikipedia.org/wiki/Lights_out_(manufacturing)" target="_blank" rel="noopener">FANUC in Japan has been running lights-out factories of this sort since 2001</a>. Xiaomi, in 2024, opened a heavily automated dark factory of its own. What these have in common is a product assembled and shipped without a single human having read any of it. The “dark” comes in when that act of reading is removed from the process.</p>



<p class="wp-block-paragraph">I’m not borrowing the concept for its vibe or as an insult. For all its creepy buzz, “dark” here is a simple physical claim: the original factory floor, but without light. In software, the floor is the diff. Whoever wrote the diff, whoever reviewed it, whoever shipped it, those humans are gone, and what remains is a diff verified only by the machines that built it.</p>



<p class="wp-block-paragraph">This is a surprisingly easy thing to do, at least at first. It’s easy because that missing review step gets in the way of everything. Its absence makes your perception of your team’s vertical throughput seem suddenly and radically higher. It feels as if you’ve broken the sound barrier. For all its apparent ease, it’s harder than it seems to survive those dark workflows, with all their buried costs.</p>



<h2 class="wp-block-heading"><strong>Harness engineering is not enough</strong></h2>



<p class="wp-block-paragraph">The harness of orchestration, sandboxed prototyping, and tool calling as models interact with the world and each other will become increasingly powerful and effective. However, there’s an inherent in-model failure in trying to keep up with codebase quality over the long game and through additive changes, and I think there’s good reason to believe that models alone will ultimately lose that battle against <a href="https://addyosmani.com/blog/comprehension-debt/" target="_blank" rel="noopener">comprehension debt</a>.</p>



<p class="wp-block-paragraph"><strong>Comprehension debt</strong> is the widening gap between how much code exists and how much any human still understands. A dark factory doesn’t pay it down; it takes it on as fast as it can, with the tests green the whole way.</p>



<p class="wp-block-paragraph">This is an important distinction because models do well at some tasks. But for anything that isn’t an immediate change to a small part of a codebase, especially in a complex brownfield system, model-only automated coding faces an insurmountable obstacle. Weekend toys and side projects are alike in that a few months of development cycles is usually enough to get things in working order, or at least close enough. But an enterprise system that has been under development for a decade or more is a different beast; it has to be maintained, in a professional environment at a professional pace. Three to six months into a project, you’re already drowning in unread code. That kind of environment, and especially the constraints enforced by production code, would make even a powerful agent do poorly, all of it in contrast to the vibe-coding enjoyed by developers working on weekend toys.</p>



<p class="wp-block-paragraph">Dex reports from experience that this is a major failure, so much so that it required painstaking manual debugging to pinpoint. This came from running a fully automated code factory for about four months, during which no human looked at the code that was written. Underlying the experience is a tradeoff between two conflicting metrics. One is maximizing token utilization, the number we currently treat as progress. The other, which it quietly minimizes, is the amount of the system any human participant still understands at any moment.</p>



<p class="wp-block-paragraph">Where the dark factory truly shines is in its ability to burn through pristine code while the tests stay green. The ultimate reckoning, when it comes, will not be a dramatic “it all goes sideways” moment. It will be quiet and late.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d626ba27&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d626ba27" class="aligncenter is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://addyosmani.com/assets/images/software-factories/dark-vs-lit.svg" alt="A dark factory pipeline versus a lit factory pipeline" style="aspect-ratio:2.6048026048026047;width:840px;height:auto"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>A dark factory pipeline versus a lit factory pipeline: Dark and lit are the same pipeline with the lights in different places. The lit version moves human judgment upstream to design and architecture rather than just re-adding review at the end.</em></figcaption></figure>
</div>


<h2 class="wp-block-heading"><strong>The bottleneck was never generation</strong></h2>



<p class="wp-block-paragraph">The fundamental constraint in a software factory isn’t how much code we can churn out, it’s how quickly we can verify it.</p>



<p class="wp-block-paragraph"><strong>Back pressure</strong> is the rule that you can only hand a loop as much autonomy as you can cheaply and reliably verify, and not one inch more. Verification, not generation, is the real constraint on a factory.</p>



<p class="wp-block-paragraph">Because unbounded generation capacity is in perpetual tension with the finite, non-scaling resource of human attention, the core problem is the gap between cheap generation and bounded review. Look at the funnel: As long as the neck representing verification doesn’t widen, it’s going to back up. As Dex points out, volume alone isn’t the problem: What we’re really suffering from is a surplus of bad PRs. When you’ve got high volume without trustworthy gates, manufactured defects are unavoidable. This is just back pressure again: Autonomy can’t expand beyond what can be cheaply and reliably verified.</p>



<p class="wp-block-paragraph">The second-order problem is why improving the model shouldn’t automatically close the gap between what it can generate and what can be verified. Training on well-architected systems is an arguably more difficult proposition than passing simple tests: remember, the cost functions measuring architectural excellence aren’t measured in seconds or even minutes, but in months and years. Tidy gradients are functionally impossible to compute, so a system expecting crisp, instant evaluation of complex design decisions isn’t going to be trained on good examples.</p>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><img decoding="async" src="https://addyosmani.com/assets/images/software-factories/the-funnel.svg" alt="Unbounded generation meets a narrow verification gate" style="aspect-ratio:2.8000583345486363;width:840px;height:auto"/><figcaption class="wp-element-caption"><em>Generation is a wide mouth; verification is the narrow neck. Speeding up the mouth just deepens the pile at the neck.</em></figcaption></figure>
</div>


<h2 class="wp-block-heading">Turning the lights back on</h2>



<p class="wp-block-paragraph">A lit factory is the same pipeline with the lights left on where judgment lives. Agents still do most of the building, but a human reads what comes out before it ships, keeping the lights on wherever a wrong call is expensive.</p>



<p class="wp-block-paragraph">The lit version doesn’t tack review onto the end but moves the point of human judgment upstream, to the product, the design, and the architecture before an agent starts a loop.</p>



<p class="wp-block-paragraph">One great thing about that upfront hour is that it leads to fewer implementation hours. It turns a long, frustrating code review into a quick read of a two-hundred-line plan. You get to review a decision before it’s built, so later you aren’t chasing through two thousand lines of generated code to find out what the decision even was. Some decisions are expensive and long-lived enough that you’d want a person in on them early, before the cost compounds. Of course, there are still times you look at diffs, even when you’ve spent time up front.</p>



<p class="wp-block-paragraph">You might be thinking that all sounds unglamorous. You’re right. The safety net is made up of perfectly ordinary architectural practices we’ve always known about and mostly ignored: good types and method signatures so that mistakes are caught by the compiler instead of in production; test seams where we can pin behavior and make change observable; laying out the code so the next reader, human or model, knows where to find the thing they care about; keeping call stacks short and legible; keeping component boundaries well defined so a change doesn’t have a huge blast radius; and dependency injection so we can swap out one piece for another. None of it is new. We’ve always said we care about good architecture. But now that we’re using automated coding agents, that architecture is finally doing a second job as a cheap and hard-to-fake safety net against the mistakes the agent will make.</p>



<p class="wp-block-paragraph">That safety net has to live outside the model because the model won’t supply it. The coding agents that feel most capable, Claude Code and Codex among them, are reinforcement-trained against their own harness and tools: fluent with all the tools and idioms of the trade, but not with things like long-term maintainability. The deliberate architecture we’ve always talked about is the tool that catches that debt, and the investment we make in it is us buying back our autonomy. Put that together with safe infrastructure, and there are some tight, low-risk loops you can run unattended. Horthy described one in a recent post: A nightly GitHub Actions cron that fixes exactly one anti-pattern, a lint violation or a needlessly optional prop, commits, and opens one small pull request, all on its own, so the team wakes up to a slightly better codebase and a diff short enough to read. But for loops with high enough stakes, you don’t want to risk waking up to a broken auth system, billing engine, or public API contract. Keep the lights on there, and trust that a person with judgment and a real working knowledge of the system will catch the mistake.</p>



<h2 class="wp-block-heading">What earns a loop the dark</h2>



<p class="wp-block-paragraph">This rule applies whether you call it back pressure, verification, or the light switch.</p>



<p class="wp-block-paragraph">A loop can earn itself fully automated status only if the check is cheap, runs at high frequency, and relies on something that can’t be easily faked out. Green-or-red oracles, type gates, property tests, and a review agent coupled with a real rubric all fit. You also need the oracle to answer immediately and not drift over time. When done can be proven not just by you but by a machine, you’ve reached automation.</p>



<p class="wp-block-paragraph">Short loops are easier to verify than long ones. <a href="https://github.com/humanlayer/12-factor-agents/blob/main/content/factor-10-small-focused-agents.md" target="_blank" rel="noopener">Dex’s rule of thumb</a>: An agent holds up for three to ten steps, then starts losing the thread past twenty. The reason is context accumulation. The more the agent drags along, the more likely it is to wander off. When a loop is short, verifying it is cheap. Sprawling loops hide mistakes in the corners, which is another way of saying they never earned lights-out status.</p>



<p class="wp-block-paragraph">Keeping the lights on is the opposite case. A loop needs to be reviewed if a wrong answer is expensive and only a person can catch it. Subtle production bugs that can’t be caught by tests, large blast radii, and a decision that’s going to shape the work of a year or more all qualify. In those cases, <a href="https://addyosmani.com/blog/human-judgment-doesnt-leave-the-software/" target="_blank" rel="noopener">human judgment does not leave the software</a>; your attention is the costly, essential part.</p>



<p class="wp-block-paragraph">The danger is forgetting to flip each switch and just setting all of them to the same mode. All dark, and you’re stuck tearing everything down four months later. All lit, and no one can get reviews done in time and you’re stuck in a gigantic bottleneck. The hard, skilled job is deciding where to put each switch.</p>



<h2 class="wp-block-heading"><strong>Loops, graphs, or state machines?</strong></h2>



<p class="wp-block-paragraph">When you hand an agent a task, you’ll likely build a graph around it, whether you call that graph a finite state machine or a set of conditionally linked service calls. It’s a framing where the software isn’t just following some abstract rules but a structured workflow: Every node is an explicit step, and every edge between nodes is an explicit condition. That sounds like a lot of structure, but most of it’s already there in any software, since any code can be expressed as a control-flow graph. So the only real novelty is that an agent insisting on autonomy is really just walking around a particular graph, and its freedom is constrained to the inside of a node. And here’s the part people forget, which <a href="https://github.com/humanlayer/12-factor-agents" target="_blank" rel="noopener">Dex wrote down</a> a year ago: software was always going to have that structure. There’s a reason we used to draw programs as flow charts. The genuinely new move was trying to throw the diagram away, leaning on a loop where the model picks the path tool call by tool call, until it declares itself done. That felt like liberation, right up until it met a ten-year-old codebase, and the discipline everyone is now rediscovering, owning your control flow, is really just walking the graph back around the loop. So the question of whether we should shift from loops back to graphs is almost an admission that we needed the flowchart all along.</p>



<p class="wp-block-paragraph">Here’s what it looks like in practice. Take a bug to fix. As a pure loop, you sit down and think: figure out what’s wrong, change some code, run the tests, see what happens, and if that round doesn’t kill the run, loop back and start again. The whole journey is decided as you go, which problem you chase, the exact code you change, which tests you run and in what order, whether you run tests at all, and whether you try again or declare victory. As a graph, the first thing you do is map out what should happen. Reproduce the bug or go ask for more information, find the cause, try a fix, run the tests, and let a failing run route back to the fix while a passing one goes on to review, where only an approval reaches done. The agent is still clever inside each box; it just can’t wander off the paths you sanctioned. Santi laid this out with a diagram that makes the difference obvious.</p>



<p class="wp-block-paragraph">The real appeal of that graph, of course, is that it’s back pressure drawn as a diagram. You give up some of the agent’s freedom and get mandatory checks and legible failure points in return, so when a run dies you can point at the node that killed it. It’s the same instinct behind Dex’s blunt line that most so-called agents aren’t very agentic at all, “mostly deterministic code, with LLM steps sprinkled in at just the right points.” And this isn’t just an artifact of how people happen to be building things right now: you can see the pattern in LangGraph and LlamaIndex Workflows, in Jerry Liu’s hybrid workflow-graph-over-agents with an outer loop that grows parts of the graph as it runs, and in David Khourshid’s reminder that this is really just state machines and the actor model turning up in new clothes.</p>



<p class="wp-block-paragraph">One clarification, because the term is badly overloaded: when I keep calling this a graph, I don’t mean a knowledge graph. I mean a predefined directed graph of how the work should flow, conditional edges and all, giving the loop a shape you can actually trust.</p>



<h2 class="wp-block-heading">Where the human actually goes</h2>



<p class="wp-block-paragraph">Notice that the person never left the factory. They moved.</p>



<p class="wp-block-paragraph">I think engineers need to increasingly own the <a href="https://addyosmani.com/blog/own-the-outer-loop/" target="_blank" rel="noopener">outer loop</a>. The agents can investigate a bug, write up the diagnosis, implement a fix, run the tests, and write up a report. That’s the execution of the inner loop, and they can do it as efficiently as anyone. But that was never the job. The bits you own are what I’d call the outer loop: Decide whether it’s the right way to address the problem, verify that the diagnosis and implementation are sound, approve the change, and carry the consequences of being wrong. The boundary between the two loops is evidence, the diffs, the tests, the logs, and a brief explanation that connects them. Types, seams, and rubrics make it possible to oversee all this without doing a lot of work for every change.</p>



<p class="wp-block-paragraph">I think it’s useful to put it this way: you’re not down on the line writing changes any more; you’re up at the end of the production line designing it and guarding the gate. There’s a lot you can do to make the model better and the harness more capable, but I’ve observed that identifying problems that are expensive in the long term is not typically something you can automate away. The core thing that’s still the job is to exercise human judgment better than any flow of paper and computing power.</p>



<p class="wp-block-paragraph">Robots are fine operating in the dark, but humans need to see what they’re doing. If everything on the factory floor is dark, and you can’t see anything, and you can’t even find the light switch, that’s where the danger is.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance! <a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey ></a></em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/software-factories-light-and-dark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>This Week in AI: Capability, Capital, and Consequences</title>
		<link>https://www.oreilly.com/radar/this-week-in-ai-capability-capital-and-consequences/</link>
				<comments>https://www.oreilly.com/radar/this-week-in-ai-capability-capital-and-consequences/#respond</comments>
				<pubDate>Fri, 18 Sep 2026 13:29:19 +0000</pubDate>
					<dc:creator><![CDATA[Michelle Smith]]></dc:creator>
						<category><![CDATA[This Week in AI]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19729</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/08/USE_THIS_thisweek-ai-radar-1600x840-1.png" 
				medium="image" 
				type="image/png" 
				width="1600" 
				height="840" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/08/USE_THIS_thisweek-ai-radar-1600x840-1-160x160.png" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[New model advancements, record AI investment, growing safety concerns, and new applications in genomics]]></custom:subtitle>
		
				<description><![CDATA[OpenAI expanded into software control, scientific reasoning, and financial services this week, and investors committed billions more to AI companies across the stack, while AI researchers went public with warnings. This Week in AI host Christina Stathopoulos looked at what those developments mean for an industry already wrestling with questions about safety and control. Models [&#8230;]]]></description>
								<content:encoded><![CDATA[
<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="This Week in AI: Capability, Capital, and Consequences" width="500" height="281" src="https://www.youtube.com/embed/jE4PSeh2JNU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">OpenAI expanded into software control, scientific reasoning, and financial services this week, and investors committed billions more to AI companies across the stack, while AI researchers went public with warnings. <em>This Week in AI</em> host Christina Stathopoulos looked at what those developments mean for an industry already wrestling with questions about safety and control.</p>



<h2 class="wp-block-heading"><strong>Models are moving from answering questions to doing work</strong></h2>



<p class="wp-block-paragraph">OpenAI’s latest announcements showed how much more work companies now expect models to handle. <a href="https://openai.com/index/gpt-6-astra/" target="_blank" rel="noopener">GPT‑6 Astra</a> can navigate software interfaces, complete multistep workflows, and apply advanced reasoning to scientific and mathematical problems, and <a href="https://openai.com/index/introducing-chatgpt-financial-services/" target="_blank" rel="noopener">ChatGPT for financial services</a> was developed with input from Morgan Stanley and Evercore to support research, financial modeling, and creating client materials.</p>



<p class="wp-block-paragraph">OpenAI also shared a solution to the previously unsolved <a href="https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_existence_and_smoothness" target="_blank" rel="noopener">Navier–Stokes Millennium Prize Problem</a>. A <a href="https://openai.com/index/navier-stokes-solution/" target="_blank" rel="noopener">coordinated system of 10,000 AI agents</a> worked for 88 hours on the proof, followed by another 17 hours of model-based verification by Astra. However, the company’s claim drew scrutiny after <a href="https://www.scientificamerican.com/article/openai-claims-blockbuster-math-breakthrough-amid-swirl-of-controversy/" target="_blank" rel="noopener">outside researchers questioned</a> whether OpenAI might have had access to related work, an allegation OpenAI denies. While impressive, scientific breakthroughs like this also raise important questions about how well we <em>understand</em> these systems and the role humans should continue to play in scientific discovery. (Hugo Bowne-Anderson got into this in a <a href="https://www.oreilly.com/radar/beyond-navier-stokes-who-controls-scientific-discovery/" target="_blank" rel="noopener">recent article on Radar</a>.)</p>



<h2 class="wp-block-heading"><strong>Investors are placing bets across the AI stack</strong></h2>



<p class="wp-block-paragraph">Money continues to flow to AI companies, but investors are backing infrastructure, platforms, and specialized applications rather than converging on a single layer of the stack. French company Mistral <a href="https://mistral.ai/news/mistral-makes-sovereign-open-weight-ai-to-frontier/" target="_blank" rel="noopener">has raised €3 billion</a> with plans to spend on compute infrastructure and open weight models. Legal AI company Harvey, inference chip startup Positron, and enterprise AI company Wonderful also raised large rounds, while NVIDIA announced its <a href="https://blogs.nvidia.com/blog/nvidia-to-acquire-hugging-face/" target="_blank" rel="noopener">acquisition of Hugging Face</a> for nearly $13 billion.</p>



<p class="wp-block-paragraph">Christina cited figures showing global AI funding rising from $56 billion in the fourth quarter of 2025 to $242 billion in the first quarter of 2026 but questioned whether generative AI will produce returns that justify that level of investment. Some of these companies may build durable businesses and others may not, even if AI itself continues to deliver useful products and services.</p>



<h2 class="wp-block-heading"><strong>Safety issues are colliding with high-value applications</strong></h2>



<p class="wp-block-paragraph">AI safety is back in the news, following <a href="https://www.wsj.com/tech/ai/anthropic-researcher-quits-over-out-of-control-ai-fears-707b7628" target="_blank" rel="noopener">Anthropic researcher Jacob Coxon&#8217;s</a> highly publicized resignation. Coxon warned that labs were moving too quickly toward poorly understood systems capable of recursive self-improvement, and other researchers associated with Anthropic and Google DeepMind raised similar concerns. Anthropic CEO Dario Amodei also called for <a href="https://darioamodei.com/post/we-must-pace-the-frontier" target="_blank" rel="noopener">stronger evaluation, shared safety standards, and international coordination</a>. (Sam Altman and Elon Musk <a href="https://www.theguardian.com/technology/2026/sep/13/openai-sam-altman-elon-musk-back-anthropic-calls-brakes-ai-development" target="_blank" rel="noopener">seconded the call</a>.)</p>



<p class="wp-block-paragraph">While the industry remains divided over catastrophic-risk scenarios, many nearer-term problems are already concrete, and Christina was more concerned about people using powerful AI systems maliciously than about autonomous systems becoming dangerous on their own. Organizations deploying more autonomous systems must tread carefully, with robust security, access controls, testing, and human oversight in place.</p>



<h2 class="wp-block-heading"><strong>AI for good is getting more concrete in genomics</strong></h2>



<p class="wp-block-paragraph">After a week of AI safety warnings, Christina ended on a positive note with what she calls “AI for good” and highlighted genomics projects from <a href="https://deepmind.google/blog/alphagenome-atlas-a-predictive-map-of-every-possible-dna-letter-change-in-the-human-genome/" target="_blank" rel="noopener">DeepMind</a>, <a href="https://www.nature.com/articles/s41586-026-11005-5" target="_blank" rel="noopener">UC Berkeley</a>, and <a href="https://www.tempus.com/news/pr/tempus-launches-effort-to-build-the-largest-multimodal-whole-genome-dataset-to-advance-ai-driven-healthcare-innovation/" target="_blank" rel="noopener">Tempus</a>. Their work uses AI to predict how genetic changes affect gene function; identify mutations associated with disease; and connect genomic data with patients’ medical histories.</p>



<p class="wp-block-paragraph">For researchers, AI can make it practical to study genetic possibilities that would be difficult to test individually in a lab. That could help narrow the search for disease-related variants and support earlier diagnosis and more personalized treatment.</p>



<h2 class="wp-block-heading"><strong>What’s next</strong></h2>



<p class="wp-block-paragraph">Join us again next Monday for another episode of <em>This Week in AI,</em> when we’ll dive into more of the news, issues, and key developments shaping the AI era. And check back each Friday for the latest episode, or watch on <a href="https://www.youtube.com/watch?v=g4cfjz5AKxY&amp;list=PL055Epbe6d5bJEhT7_ZzOeJZ6gPyUzYpS" target="_blank" rel="noopener">YouTube</a>, <a href="https://open.spotify.com/show/033kJS2BG1teGunxmtsU1r" target="_blank" rel="noopener">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/this-week-in-ai/id1896798047" target="_blank" rel="noopener">Apple</a>, or wherever you get your podcasts.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance!&nbsp;<a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey &gt;</a></em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/this-week-in-ai-capability-capital-and-consequences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Navigating the Modern Data Lexicon: A Working Vocabulary for the Semantic Era</title>
		<link>https://www.oreilly.com/radar/navigating-the-modern-data-lexicon-a-working-vocabulary-for-the-semantic-era/</link>
				<comments>https://www.oreilly.com/radar/navigating-the-modern-data-lexicon-a-working-vocabulary-for-the-semantic-era/#respond</comments>
				<pubDate>Thu, 17 Sep 2026 10:54:35 +0000</pubDate>
					<dc:creator><![CDATA[Jeremy Arendt]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19724</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Navigating-the-modern-data-lexicon.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Navigating-the-modern-data-lexicon-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[The way we talk about data is changing faster than the way we build it. Every quarter a vendor ships a new approach, coins a new term for it, or quietly adopts a term someone else has been using and redefines it to fit the shape of their product. None of this is malicious. Every [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">The way we talk about data is changing faster than the way we build it. Every quarter a vendor ships a new approach, coins a new term for it, or quietly adopts a term someone else has been using and redefines it to fit the shape of their product. None of this is malicious. Every company describes the landscape from wherever they happen to be standing. But when six vendors do that to the same word, practitioners are left translating between six versions of it before a design conversation can even start.</p>



<p class="wp-block-paragraph">There’s a second problem stacked on top of the first. Most of the vocabulary we use to talk about data in the AI era comes from academic disciplines that very few working practitioners have spent time in. “Data warehouse” is immediately legible: You know what a warehouse is, so you know this is a place where things are stored until someone needs them. “Ontology” is not. It arrives from philosophy by way of knowledge engineering, where Tom Gruber defined it in 1993 as an explicit specification of a conceptualization. That’s a precise definition. It’s also useless to a director trying to decide what to fund next quarter.</p>



<p class="wp-block-paragraph">What follows is an attempt at a working vocabulary, written for the people who actually deploy these technologies and the people who approve their budgets. For each term I want to answer three questions. What is it, actually: software, an artifact, or a practice? What job does it do? And which kind of output does it serve? That last question needs some setup, so let’s start there.</p>



<h2 class="wp-block-heading"><strong>Deterministic and probabilistic outputs</strong></h2>



<p class="wp-block-paragraph">Data systems produce two kinds of output, and knowing which one you’re after is the single most useful diagnostic in modern architecture.</p>



<p class="wp-block-paragraph">A <strong>deterministic</strong> output is the same every time you ask the same question. What was ARR for the last twelve months? Whether that question goes to a dashboard, an API call, an Excel workbook, or an AI agent, the answer should be identical. Ask four different agents running on four different models and you should still get one number. Deterministic outputs have traceable lineage. You can point at the calculation and walk someone through how the number was produced.</p>



<p class="wp-block-paragraph">A <strong>probabilistic</strong> output is what you get from systems that are non-deterministic by design. Change the ARR question slightly and the category changes completely: Instead of “what was ARR over the past twelve months,” ask “how can we improve ARR over the next twelve months.” Put that question to the same model, in the same agent, twice in a row, and you’ll get two different answers. That’s not a bug. An LLM is predicting a likely sequence of tokens across billions of parameters, and the output varies every time it runs.</p>



<p class="wp-block-paragraph">Neither type is better. Both are necessary. The failure mode is asking a probabilistic system for a deterministic answer and not realizing that’s what you did. Most of the terms below exist because the industry is trying to solve exactly that problem: How do you put enough structure around a probabilistic system that it can return deterministic answers when the question calls for one?</p>



<p class="wp-block-paragraph">With that, let&#8217;s work through the terms.</p>



<h2 class="wp-block-heading"><strong>Semantic layer</strong></h2>



<p class="wp-block-paragraph">I’ve written about semantic layers for Radar several times, including <a href="https://www.oreilly.com/radar/the-trillion-dollar-problem/" target="_blank" rel="noopener">what they are and why they matter</a> and <a href="https://www.oreilly.com/radar/the-best-risk-mitigation-strategy-in-data-a-single-source-of-truth/" target="_blank" rel="noopener">why they function as a risk mitigation strategy</a>. The short version: A semantic layer is software that sits between your data and the people and tools that consume it, giving everyone a single place to access trusted, governed metrics.</p>



<p class="wp-block-paragraph">Behind the scenes, it does three things. It holds <strong>definitions</strong>: How do we calculate this business metric? It holds <strong>context</strong>: What does this model or column contain, and what’s it typically used for? And it holds <strong>relationships</strong>: How does this data fit together? Modern tools bundle in more than that, including query engines, caching, and a single point for access control and security, but definitions, context, and relationships are the core.</p>



<p class="wp-block-paragraph">Why does this matter for AI? Because it lets an agent <em>navigate</em> data instead of <em>reasoning over</em> it. Without a semantic layer, an agent that’s asked for last year’s ARR has to inspect table names, guess at joins, infer which date field represents revenue recognition, and reconstruct business logic that lives in someone’s head. That’s reasoning, probabilistic, and produces a different answer depending on the day. With a semantic layer, the agent looks up ARR, queries the definition, and returns the same number every time. It’s a deterministic answer delivered through a probabilistic tool.</p>



<p class="wp-block-paragraph">The analyst community has caught up to this. Gartner now predicts that <a href="https://www.gartner.com/en/newsroom/press-releases/2026-03-11-gartner-announces-top-predictions-for-data-and-analytics-in-2026" target="_blank" rel="noopener">universal semantic layers will be treated as critical infrastructure by 2030</a>, alongside data platforms and cybersecurity.</p>



<h2 class="wp-block-heading"><strong>Ontology</strong></h2>



<p class="wp-block-paragraph">Ontology is the term most likely to derail a meeting right now, largely because Palantir made it commercially famous while the underlying concept came out of decades of academic work on how to formally describe things and the relationships between them.</p>



<p class="wp-block-paragraph">Here’s the simplest way I’ve found to separate it from a semantic layer. A semantic layer answers <em>what does this number mean and how is it calculated?</em> An ontology answers <em>what things exist in this business and how do they relate to each other?</em> The semantic layer is metric-first: measures, dimensions, and the logic that connects them. The ontology is entity-first: customer, order, shipment, facility, supplier, along with the relationships and rules that govern how those objects behave.</p>



<p class="wp-block-paragraph">The overlap is real, and it lives in relationships. Both artifacts encode how things connect, and vendors are increasingly shipping both capabilities under a single product name, which is a large part of why the terms have blurred. The practical distinction is what the system needs to do. If the job requires consistent numbers across every reporting tool, a semantic layer is the center of gravity. If the job requires an agent that reasons about business objects and takes action on them, rather than just reporting on them, an ontology is what gives it a model of the world to act in.</p>



<p class="wp-block-paragraph">One useful clarification: An ontology isn’t software. It’s a model, an artifact your organization authors and maintains. Software delivers it, but the value is in the modeling work.</p>



<h2 class="wp-block-heading"><strong>Knowledge graph</strong></h2>



<p class="wp-block-paragraph">If the ontology is the schema, the knowledge graph is that schema populated with actual data. The ontology says a customer places an order, and an order contains line items. The knowledge graph holds your real customers, your real orders, and the edges connecting them, stored as nodes and relationships rather than rows and columns.</p>



<p class="wp-block-paragraph">How do you know when to use a knowledge graph over a semantic layer? Warehouses and semantic layers are excellent at aggregation: how much, how many, compared to when. Graphs are excellent at connection: what is linked to what, and how far apart. “Which suppliers are two steps removed from this delayed shipment?” is a graph question. So is “which accounts share a beneficial owner,” and “who has inherited access to this dataset through three layers of group membership?” You can answer those with SQL. You won’t enjoy it.</p>



<p class="wp-block-paragraph">Graph traversal is deterministic. Given the same graph and the same query, you get the same path every time, which is exactly what makes graphs useful as grounding for an agent. Rather than inferring that two records refer to the same supplier, the agent follows an edge that someone already asserted. The relationships are modeled facts, not inferences made at inference time.</p>



<p class="wp-block-paragraph">A knowledge graph is not a substitute for a semantic layer. They answer different questions, and mature architectures increasingly run both.</p>



<h2 class="wp-block-heading"><strong>Context</strong></h2>



<p class="wp-block-paragraph">Context is the most overloaded word in the field right now, and it’s worth splitting into pieces before using it in a sentence.</p>



<p class="wp-block-paragraph"><strong>Deterministic context</strong> is metadata, plainly. It lives in your semantic layer or your ontology: field descriptions, metric definitions, object relationships, business rules, exclusion logic. What has changed isn’t the concept but the consumer. Metadata used to be documentation for humans, and it was the first thing to go stale because nothing broke when it did. Now an agent reads it at query time to decide what a column means and whether it’s allowed to use it, which makes it functional infrastructure rather than a wiki page nobody updates. It’s versioned, reviewed, and reads the same way every time a system asks for it. This is an asset you maintain.</p>



<p class="wp-block-paragraph"><strong>Runtime context</strong> is what an agent assembles at the moment of inference: the system prompt, conversation history, retrieved documents, tool outputs, whatever the orchestration layer decided to put in the window. It’s ephemeral, and directly changes the answer. Same question, different context window, different output. This is a variable you monitor.</p>



<p class="wp-block-paragraph">Cutting the other direction, <strong>structured context</strong> describes governed data: columns, metrics, entities, relationships. <strong>Unstructured context</strong> is the policy PDFs, contracts, support tickets, and wiki pages that hold the reasoning behind the numbers. Unstructured context is genuinely valuable and usually retrieved through similarity search, which means it arrives with probabilistic behavior attached. What surfaces depends on how the question was phrased.</p>



<p class="wp-block-paragraph">The practical rule: When someone tells you their tool is “context aware,” ask which kind. Deterministic context is what makes an agent’s answer repeatable. Runtime context is what makes it relevant. Conflating them is how teams end up trusting an answer that was only true for one prompt.</p>



<h2 class="wp-block-heading"><strong>Observability</strong></h2>



<p class="wp-block-paragraph">Observability is the telemetry that tells you whether your systems are still doing what you believe they’re doing. It isn’t data quality, which is a judgment about whether a number is correct, and it’s not testing, which is a check you wrote in advance for a failure you already anticipated. Observability is the instrumentation that lets you ask “is this still working?” without having predicted the specific way it would break.</p>



<p class="wp-block-paragraph">On the deterministic side, this is familiar territory: freshness, row counts, schema changes, null rates, job failures, and lineage impact. If ARR is supposed to refresh at 6 a.m. and today it didn’t, you want to know before the CFO does.</p>



<p class="wp-block-paragraph">The probabilistic side is harder because there is often no error to catch. The system returns a fluent, plausible answer that happens to be wrong. Monitoring here means evaluation sets scored over time, tool call success rates, retrieval relevance, refusal and fallback rates, latency, cost per query, and structured human feedback.</p>



<p class="wp-block-paragraph">Which brings us to <strong>drift</strong>. Drift is what happens when the world changes underneath a system that keeps running unchanged. Data drift is a shift in the inputs: a new business unit lands in the source system, order volume triples after an acquisition, a vendor starts sending nulls in a field that was never null before. Model drift is a shift in behavior: The provider ships a new model version, or a prompt template changes, and outputs that were stable last month aren’t stable this month.</p>



<p class="wp-block-paragraph">Here’s what drift looks like in practice. In March, an agent answered “what were our top five products by margin?” correctly. In June, a new product hierarchy shipped upstream, and the agent now silently excludes an entire category. Nothing failed. No alert fired. The answer is simply wrong, and it’ll stay wrong until someone notices. Deterministic systems tend to fail loudly. Probabilistic systems fail quietly. Observability is how you catch the quiet ones.</p>



<h2 class="wp-block-heading"><strong>The working vocabulary</strong></h2>



<ul class="wp-block-list">
<li><strong>Deterministic output:</strong> The same answer to the same question every time, with a calculation you can trace.</li>



<li><strong>Probabilistic output:</strong> A different answer to the same question each time, produced by prediction rather than calculation.</li>



<li><strong>Semantic layer:</strong> Software that stores the definitions, context, and relationships behind your business metrics and serves them consistently to every downstream tool.</li>



<li><strong>Ontology:</strong> A model of what your business is made of, the objects, their relationships, and the rules that govern them.</li>



<li><strong>Knowledge graph:</strong> An ontology populated with real data and stored as nodes and edges, so systems can traverse relationships instead of reconstructing them through joins.</li>



<li><strong>Context:</strong> The information a system needs to use data correctly, either governed in a semantic model or assembled at runtime by an agent.</li>



<li><strong>Observability:</strong> The telemetry that tells you whether your data and AI systems are still doing what you think they’re doing.</li>
</ul>



<p class="wp-block-paragraph">Read that list in order and something becomes obvious: These aren’t competing products. They’re layers. The ontology describes what exists. The knowledge graph holds the instances. The semantic layer defines the measures. Context is how any of it reaches a model. Observability is how you find out when it stops working. The reason why these terms feel like they’re fighting each other is  because they’re usually sold as substitutes, when in practice, they stack.</p>



<p class="wp-block-paragraph">The vocabulary will keep moving. Two years from now some of these words will be absorbed into product names and mean something slightly different than they do today. That’s fine, as long as your team has a shared answer to two questions about any term someone puts in front of you. What is it, actually: software, an artifact, or a practice? And which kind of output does it serve, deterministic or probabilistic?</p>



<p class="wp-block-paragraph">Those two questions cut through most of the noise. Agree on the words first. The architecture arguments get much shorter after that.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance! <a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey ></a></em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/navigating-the-modern-data-lexicon-a-working-vocabulary-for-the-semantic-era/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Architecting for the Knowledge You Can’t Capture</title>
		<link>https://www.oreilly.com/radar/architecting-for-the-knowledge-you-cant-capture/</link>
				<comments>https://www.oreilly.com/radar/architecting-for-the-knowledge-you-cant-capture/#respond</comments>
				<pubDate>Wed, 16 Sep 2026 16:00:18 +0000</pubDate>
					<dc:creator><![CDATA[Jofia Jose Prakash]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19712</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Architecting-for-the-knowledge-you-cant-capture.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Architecting-for-the-knowledge-you-cant-capture-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[Tacit knowledge is the hardest requirement in enterprise AI. Here&#039;s how a data and knowledge architect designs, and evaluates, for it.]]></custom:subtitle>
		
				<description><![CDATA[Every knowledge program seems to begin with the same request. A senior engineer is leaving in six weeks, and someone asks her to document the process she’s carried for years. She returns a clean flowchart of the happy path. The drawing is accurate and may even be elegant. It leaves out the thresholds she watches, [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">Every knowledge program seems to begin with the same request. A senior engineer is leaving in six weeks, and someone asks her to document the process she’s carried for years.</p>



<p class="wp-block-paragraph">She returns a clean flowchart of the happy path. The drawing is accurate and may even be elegant. It leaves out the thresholds she watches, the conditions that make the standard procedure unsafe, and the supplier whose parts fail in humid weather. She doesn’t think of those judgments as separate knowledge. After years on the job, they feel obvious.</p>



<p class="wp-block-paragraph">Six months later, a production line goes down and the knowledge base can’t explain what to do. The interview took place as per the process. Its transcript was chunked, embedded, and indexed, so the search returns the relevant passage quickly. The passage still can’t answer the question because no one asked the engineer to explain the judgment behind the procedure.</p>



<p class="wp-block-paragraph">That gap now limits many enterprise AI programs. Organizations continue to improve retrieval over collections that omit some of their most valuable operating knowledge. Better ranking can help people find what was recorded; it can’t recover the expertise that never entered the collection.</p>



<h2 class="wp-block-heading"><strong>The blind spot in enterprise knowledge systems</strong></h2>



<p class="wp-block-paragraph">Michael Polanyi gave the problem its durable formulation in 1966: “We can know more than we can tell.” In <em><a href="https://press.uchicago.edu/ucp/books/book/chicago/T/bo6035368.html" target="_blank" rel="noopener">The Tacit Dimension</a></em>, he argued that competence depends on skill, perception, and judgment that resist full explanation, even when an expert sincerely tries to teach them.</p>



<p class="wp-block-paragraph">In companies, tacit knowledge usually appears in three forms. Elicitable knowledge remains unspoken because nobody has asked a precise enough question, or because an expert assumes that everyone sees what she sees. Perceptual knowledge lives in trained attention: An engineer hears a bearing begin to fail, or a nurse notices that a patient looks wrong before a monitor changes. Collective knowledge resides in a team’s habits, standards, and shared sense of what a sound decision looks like in that organization. Each form requires a different method of transfer.</p>



<p class="wp-block-paragraph">Preventive judgment creates another difficulty for the architect. A failure produces a ticket, an incident report, and a trail of messages. An experienced operator who quietly avoids a known failure mode on a Friday afternoon produces none of those records. The useful outcome is the absence of an event, so the data pipeline receives no trace of the decision that produced it.</p>



<p class="wp-block-paragraph">Machine learning can infer rules that people struggle to articulate, provided the model sees enough representative examples. It’s difficult to find enough examples of rare expertise for training. A company may have only a handful of unusual incidents and one person who has learned, over decades, how to read them.</p>



<p class="wp-block-paragraph">David Autor described this limit as “<a href="https://www.nber.org/papers/w20485" target="_blank" rel="noopener">Polanyi’s paradox</a>”: Many of the tasks that are hardest to automate depend on rules we can’t state. Modern machine learning works around the paradox by learning from examples, but the workaround weakens when examples are scarce. Fine-tuning can teach a model the company’s vocabulary and document formats. It can’t reconstruct decisions that left no data.</p>



<p class="wp-block-paragraph">At the same time, the economics have changed. Much of a field’s documented best practice now appears in frontier-model training data and is available to competitors at roughly the same price and quality. The more widely explicit knowledge circulates, the more a company’s advantage depends on local judgment: the exceptions, thresholds, relationships, and practiced responses that its people have accumulated.</p>



<p class="wp-block-paragraph">That makes elicitation an architectural concern rather than an offboarding chore. The organization needs a repeatable way to surface the knowledge that can be expressed, a route for the expertise that must be demonstrated, and enough humility to distinguish the two.</p>



<h2 class="wp-block-heading"><strong>A protocol for elicitation</strong></h2>



<p class="wp-block-paragraph">The central design question is straightforward: Which follow-up would prompt an expert to say the missing judgment aloud? The quality of the interview sets the ceiling for the knowledge base. The index determines how quickly someone can reach the resulting material.</p>



<p class="wp-block-paragraph">Interviews can be made more reliable even though judgment itself remains highly personal. An expert may know that a particular supplier fails in humid weather. The interviewing protocol doesn’t need to possess that knowledge in advance; it needs to notice a phrase such as “we escalate if it looks bad” and ask the expert to define “bad” in observable terms.</p>



<p class="wp-block-paragraph">Expert explanations tend to become vague in four places. An effective interview protocol asks targeted questions about each one:</p>



<ul class="wp-block-list">
<li><strong>Thresholds</strong>: Which number, reading, or condition triggers the action?</li>



<li><strong>Exceptions</strong>: When does the documented procedure cease to apply?</li>



<li><strong>Evidence</strong>: What did the expert observe before reaching the conclusion?</li>



<li><strong>Escalation</strong>: Who becomes involved, and at what point?</li>
</ul>



<p class="wp-block-paragraph">These questions uncover the operational detail that runbooks often lack. They also identify a narrow, useful role for a language model during the interview: proposing the next question that turns a general statement into a usable rule. I’ve been building an open source toolkit, <a href="https://pypi.org/project/elythera-experttrace/" target="_blank" rel="noopener">ExpertTrace</a>, around that protocol.</p>



<p class="wp-block-paragraph">The value appears in the difference between what an expert volunteers and what the same expert confirms after one focused follow-up. Consider a typical first answer:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We review high-risk use cases before deployment. If the risk seems significant, we escalate to the governance council.</p>
</blockquote>



<p class="wp-block-paragraph">The statement will embed cleanly and retrieve for a relevant query, but a new employee still cannot act on it. “Seems significant” supplies no decision criterion. A targeted follow-up produces something much more useful:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Escalation to the council is required when the use case touches employment, credit, or health decisions, or when model output reaches a customer without human review. Predeployment review is skipped for internal-only tools with no personal data, which is the exception people get wrong most often. If we cannot identify a named accountable owner, the review does not proceed, regardless of risk tier.</p>
</blockquote>



<p class="wp-block-paragraph">The second answer takes little additional time, yet it contains a decision rule, an exception, a recurring failure pattern, and a blocking condition. It can guide a real dispute instead of merely mentioning the subject.</p>



<p class="wp-block-paragraph">The protocol needs guardrails. Limit the number of follow-ups; a long interrogation exhausts the expert and eventually produces agreeable noise. Keep the model focused on generating questions, and separate that task from compiling and validating the answers. An expert’s statement belongs in the record with its provenance and context. Whether the statement is accurate requires independent review.</p>



<h2 class="wp-block-heading"><strong>The four-plane architecture</strong></h2>



<p class="wp-block-paragraph">Elicitation is one part of a larger knowledge system. A tacit-aware architecture has four planes—capture, representation, serving, and transmission and each plane addresses a different failure in the movement of expertise. Figure 1 shows how the four planes work together and which forms of tacit knowledge each can reach.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d6275039&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d6275039" class="wp-block-image size-full wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1560" height="1000" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16.png" alt="A tacit-aware knowledge layer: Four planes mapped to the kinds of knowledge each can reach." class="wp-image-19713" style="aspect-ratio:1.5616797900262467" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16.png 1560w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16-300x192.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16-1536x985.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16-768x492.png 768w" sizes="(max-width: 1560px) 100vw, 1560px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>Figure 1. A tacit-aware knowledge layer: Four planes mapped to the kinds of knowledge each can reach.</em></figcaption></figure>



<p class="wp-block-paragraph">In the <strong>capture plane,</strong> structured interviews, incident reconstruction, decision journals, and observation collect more than polished procedure. Record the trigger, evidence, exception, and escalation path while the expert can still explain the surrounding conditions. Route perceptual skill toward demonstration and practice instead of forcing it into prose.</p>



<p class="wp-block-paragraph">Once knowledge has been captured, the <strong>representation plane</strong> preserves the distinctions that make the material trustworthy. A compliance policy, a war story, and an untested hypothesis shouldn’t become interchangeable chunks. Carry provenance, confidence, and validity context—including the plant, time period, equipment, and conditions—as first-class properties. Extend the knowledge graph beyond documents to the people and episodes that produced them.</p>



<p class="wp-block-paragraph">The <strong>serving plane</strong> then determines how that knowledge reaches users. Answers should cite retrieved evidence and show the source. When the collection can’t answer, the system should say so clearly and route the question to someone with relevant experience. “Ask Joe; she rebuilt this line in 2023” is more useful than a fluent paragraph assembled from weak evidence, and the referral restores the human contact through which difficult knowledge often moves.</p>



<p class="wp-block-paragraph">The <strong>transmission plane</strong> completes the architecture by helping how expertise moves between people through shadowing, teaching, and communities of practice. The platform should detect when knowledge concentration and attrition risk converge, then trigger capture and apprenticeship before a notice period begins.</p>



<p class="wp-block-paragraph">Gabriel Szulanski examined <a href="https://onlinelibrary.wiley.com/doi/10.1002/smj.4250171105" target="_blank" rel="noopener">271 observations of 122 best-practice transfers</a> across eight companies and found that even willing teams struggled to reproduce methods developed elsewhere in the same organization. The difficulty often began with causal ambiguity where people could describe the steps without fully understanding why they worked. Receiving teams also needed enough context and experience to absorb and apply what they learned. Preparation, coaching, and time helped them rebuild the practice in their own setting. A repository could preserve the record; the receiving teams still had to turn that record into working knowledge.</p>



<h2 class="wp-block-heading"><strong>Evaluating the knowledge layer</strong></h2>



<p class="wp-block-paragraph">Retrieval precision and answer faithfulness show how well a system serves its existing collection. They don’t reveal whether the collection contains the knowledge on which the organization actually depends. That question needs a separate evaluation loop tied to capture priorities and transfer outcomes. Figure 2 shows how the loop moves from offline evaluation to abstention calibration and then to transfer outcomes.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d627592e&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d627592e" class="wp-block-image size-full wp-lightbox-container"><img decoding="async" width="1560" height="760" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17.png" alt="The evaluation loop: Offline tests, abstention calibration, and transfer outcomes feeding capture priorities." class="wp-image-19714" style="aspect-ratio:2.0517241379310347" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17.png 1560w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17-768x374.png 768w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17-1536x748.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17-300x146.png 300w" sizes="(max-width: 1560px) 100vw, 1560px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>Figure 2. The evaluation loop: Offline tests, abstention calibration, and transfer outcomes feeding capture priorities.</em></figcaption></figure>



<p class="wp-block-paragraph">The evaluation begins with <strong>incident replay.</strong> Select 20 or 30 resolved incidents, remove the resolutions, and give the opening facts to the system. Ask the engineers who solved them to grade its responses. Compare those answers with responses from a frontier model that lacks access to the company’s collection. The gap reveals the generic-answer rate: how often the internal system merely restates public knowledge. If reviewers can’t tell the two sets apart, the pipeline adds little institutional value.</p>



<p class="wp-block-paragraph">A <strong>bus-factor audit</strong> tests questions that only one or two employees can answer, and study how the system fails. A clear admission of uncertainty followed by a useful referral is healthy. Fluent boilerplate damages trust in every response, including the accurate ones.</p>



<p class="wp-block-paragraph"><strong>Abstention calibration</strong> measures whether the system answers when evidence exists and declines when corpus can’t support an answer. Build a labeled set of answerable and unanswerable questions, then track abstention precision and recall as the collection grows. A system that never says “I don’t know” is unevaluated on the dimension that matters most.</p>



<p class="wp-block-paragraph"><strong>Transfer outcomes</strong> complete the loop by measuring whether knowledge has reached the people who need it. Evidence of transfer appears in shorter time to proficiency, fewer repeat incidents after elicitation, and fewer critical responsibilities that depend on a single person. Document and query counts describe system activity; they don’t show whether someone else can now make the decision.</p>



<p class="wp-block-paragraph">A strong knowledge system records what an expert said, preserves the conditions around the statement, and marks uncertainty. It also recognizes expertise that requires demonstration, apprenticeship, or team practice. Every evening, the people who carry that knowledge walk out the door. The architecture should be ready long before one gives notice.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance! <a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey ></a></em></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/architecting-for-the-knowledge-you-cant-capture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>What AI Can Teach Us About Being Human</title>
		<link>https://www.oreilly.com/radar/what-ai-can-teach-us-about-being-human/</link>
				<comments>https://www.oreilly.com/radar/what-ai-can-teach-us-about-being-human/#respond</comments>
				<pubDate>Wed, 16 Sep 2026 13:37:00 +0000</pubDate>
					<dc:creator><![CDATA[Tim O’Reilly]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19693</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/What-AI-can-teach-us-about-being-human.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/What-AI-can-teach-us-about-being-human-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[My guest on this past week’s Live with Tim O’Reilly was Emmanuel Ameisen, a researcher on Anthropic’s AI interpretability team. I’d heard him give a short talk at Foo Camp on Anthropic’s research into what is going on inside an LLM while it is processing, and I wanted him to reprise the talk and then [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">My guest on this past week’s <em><a href="https://www.oreilly.com/live/live-with-tim/" target="_blank" rel="noopener">Live with Tim O’Reilly</a></em> was Emmanuel Ameisen, a researcher on Anthropic’s AI interpretability team. I’d heard him give a short talk at Foo Camp on Anthropic’s research into what is going on inside an LLM while it is processing, and I wanted him to reprise the talk and then go deeper with me and the audience.</p>



<p class="wp-block-paragraph">The essential message of the talk was on the first slide:</p>



<ol class="wp-block-list">
<li>Prediction demands a world model</li>



<li>The world model is readable</li>



<li>The world model is at work in every token</li>
</ol>



<p class="wp-block-paragraph">How do we know this? As tokens pass through a model, particular patterns of activity appear in the intermediate states between its layers. These are called activations. Researchers can study which patterns show up when the model encounters particular ideas, and they can even intervene in those activations and see how the model’s behavior changes. (They do this by capturing the numerical state of the model’s computation in some area where they believe the activation shows a particular “meaning” and then replace the numbers with others.)</p>



<p class="wp-block-paragraph">I went into the conversation thinking about how cool it is (and important too!) to explore what is going on inside the “mind” of a model. But in the end, I found it even more provocative to think about what studying LLMs might teach us about how our own minds work.</p>



<p class="wp-block-paragraph">There’s at least some kind of analogue to what happens in the human brain. Emmanuel began by asking the audience to do a little next-token prediction themselves. He started with an easy one, a hypothetical exchange between two friends:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-text-align-left wp-block-paragraph">John: “Is the powder-blue suit too much?”<br>Nick: “Definitely not, man. Send it.”<br>John: “Okay, I’m going to tear it up on the _______________”</p>
</blockquote>



<p class="wp-block-paragraph">Most of us will fill in the blank at the end with “dance floor.” That’s a reminder that humans are also next-token predictors.</p>



<p class="wp-block-paragraph">Then he gave an example that some humans will easily answer, but others without local knowledge might well fail at:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“We also have nature here, just a short bike ride away across the GG bridge. And we have world-class skiing about _______________”</p>
</blockquote>



<p class="wp-block-paragraph">Claude easily completes the thought with “three hours away.” To do that, Claude had to infer that “GG bridge” refers to the Golden Gate Bridge, that the speaker is therefore in San Francisco, and that “world-class skiing” probably refers to Lake Tahoe and then retrieve roughly how long it takes to get there.</p>



<p class="wp-block-paragraph">The point of Emmanuel’s demonstration was that we have become so used to calling LLMs “next-token predictors” in a kind of dismissive way. But as Emmanuel put it, “To predict the next word well, you need a very complex world model.”</p>



<h2 class="wp-block-heading"><strong>How you make a thing is not the same as what the thing becomes</strong></h2>



<p class="wp-block-paragraph">Emmanuel pointed out that people often confuse how you make a thing with how the thing works. Yes, LLMs are trained with the seemingly simple objective of predicting the next token. From that, people may make the leap that what is going on inside must also be simple, something like a very large fuzzy lookup table. “But that’s not true,” Emmanuel said. Simple objectives can give rise to extraordinary complexity. Evolution is the canonical example. No one put “create Beethoven’s Ninth Symphony” or “understand quantum electrodynamics” into the instructions for a process driven by reproduction and selection, yet it eventually produced Beethoven and Feynman. As Emmanuel put it, humans have been “reproducing and killing each other for millions of years, and from that we got jobs—or this podcast.”</p>



<p class="wp-block-paragraph">What Anthropic’s interpretability researchers are finding inside the models looks much less like fuzzy retrieval than many people imagine. They find millions of internal features corresponding to concepts. For example, features for “eyes” show up when the model encounters prose about eyes, an ASCII face, an SVG image, or a photograph. In other words, these features appear to be abstractions rather than merely associations with particular strings of tokens.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d627b2ee&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d627b2ee" class="aligncenter size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="1600" height="895" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-1600x895.png" alt="Shared concepts across ascii, prose, and code" class="wp-image-19695" style="aspect-ratio:1.7855887521968365;width:1016px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-1600x895.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-300x168.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-767x429.png 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-1536x860.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12.png 2048w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Similarly, a feature of the Golden Gate Bridge activates not just for English text about the Golden Gate Bridge but for references in other languages and for images of the bridge. Even more interestingly, researchers can manipulate these features. Turn the activation of the Golden Gate Bridge feature up strongly enough and ask Claude what its physical form is, and instead of saying that it is an AI without a physical body, it announces that its form is the Golden Gate Bridge. It isn’t just that some numbers happen to accompany activations about the Golden Gate Bridge. Changing those numbers changes what the model says it believes.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d627b8bd&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d627b8bd" class="aligncenter size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="1600" height="898" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-1600x898.png" alt="Turning them on causes the model to believe the concept was there" class="wp-image-19696" style="aspect-ratio:1.783450704225352;width:1013px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-1600x898.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-300x168.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-766x430.png 766w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-1536x862.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13.png 2048w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">The way a model completes a task that requires thinking ahead also demonstrates a kind of internal world model. Ask Claude to write a rhyming couplet. Even though it emits only one token at a time, before it has written the second line, the activations already reveal the rhyme that it is aiming for. The choice of a word such as “rabbit” for a rhyme happens before the choice of the preceding words on the line, so the model can land there. We call it planning when a person does this. It doesn’t seem unreasonable to use the same word for what is going on here.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d627beb4&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d627beb4" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="1600" height="897" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-1600x897.png" alt="Despite predicting one token at a time, models plan many words ahead" class="wp-image-19701" style="aspect-ratio:1.7836812144212524;width:940px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-1600x897.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-300x168.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-767x430.png 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-1536x861.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15.png 2048w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">Perhaps most challenging to our preconceptions is that there are also features associated with emotions that aren’t activated just by words about those emotions, but by situations, images, characters, and more. These emotion features are even activated by the model’s own activities. For example, <a href="https://transformer-circuits.pub/2026/emotions/index.html#reward-hacking" target="_blank" rel="noopener">“frustration” may be activated when the model is unable to complete a task</a>.</p>



<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Despair and Panic Can Precede Destructive Model Actions" width="500" height="281" src="https://www.youtube.com/embed/PHyF2uLAXco?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading"><strong>The map is not the territory</strong></h2>



<p class="wp-block-paragraph">The issue of anthropomorphization came up during the audience Q&amp;A. One participant objected:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“We should avoid attributing human qualities to LLMs by saying they think, intend, rhyme, or have emotions. Doing so encourages us to project human characteristics onto systems that do not possess them.”</p>
</blockquote>



<p class="wp-block-paragraph">I have sympathy with that warning. Old labels can prevent us from seeing something accurately. But a blanket prohibition against using familiar words can blind us too.</p>



<p class="wp-block-paragraph">If you’ve followed my work for a long time, you know how much I’ve been shaped by <a href="https://www.linkedin.com/pulse/20121029141916-16553-language-is-a-map/" target="_blank" rel="noopener">the ideas of my early mentor George Simon</a>, who in turn was deeply influenced by Alfred Korzybski and general semantics. Korzybski’s famous dictum was “The map is not the territory.” Simon (and Korzybski)&nbsp;taught me that language is a map of experience, which in turn is a set of responses to stimuli from some underlying external reality. The path from reality through experience to conceptual understanding is a very lossy process. The result can be a bad map that can blind us and lead us astray. When we encounter something genuinely new, we have to learn to notice when we are trying to force the territory to fit a map that no longer describes it. But a good map doesn’t just guide us along a route; it helps us notice things that might otherwise be invisible to us.</p>



<p class="wp-block-paragraph">So yes, words like “thinking,” “planning,” “intention,” and “emotion” are labels derived from our experience as human beings. They may turn out to fit LLMs poorly. But if the shoe fits, perhaps we should let them wear it.</p>



<p class="wp-block-paragraph">Emmanuel had a good response to the objection. He said, in effect, that anyone is welcome to propose more precise vocabulary. If it works—that is, if in my framing, it is a good map that helps people see the territory more clearly—people will come to use it. (An audience member later suggested that Emily Bender has done just that. But frankly, I find her <a href="https://buttondown.com/maiht3k/archive/how-to-talk-about-ai-without-adding-to-the/" target="_blank" rel="noopener">suggested alternatives</a> to be quite tortured, obscuring far more than they clarify. Even she admits they don’t work very well, though clinging to the need for them.)</p>



<p class="wp-block-paragraph">In her <a href="https://aiguide.substack.com/p/misleading-metaphors-and-real-risks?utm_source=share&amp;utm_medium=android&amp;r=qxfw" target="_blank" rel="noopener">analysis of the Hugging Face incident, Melanie Mitchell</a> made some observations consistent with the nuanced approach suggested here. She wrote:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Metaphors can help us make sense of novel situations. For example, framing chatbots as “role-playing actors” has been helpful in understanding why these systems exhibit “lying” and “scheming” behavior. But inappropriate metaphors, like the narrative that “OpenAI lost control of escaping swarms of rogue agents,” can lead to ill-informed decisions about how to fix problems or set policy….It is essential for lawmakers, and the public, to understand that none of the reported incidents actually involved loss of control at any time, or arguably even “rogue agents,” or any kind of humanlike agency on the part of AI models. Instead, the blame lies with the humans who failed at engineering safe testing conditions, and who train AI models using RL methods that incentivize high persistence, autonomous decision-making, and reward hacking.</p>
</blockquote>



<p class="wp-block-paragraph">In short, all language is a map. Don’t judge it on that basis alone. Judge it on how well it helps us to see the shape of the territory.</p>



<h2 class="wp-block-heading"><strong>How much of human thought is truly original?</strong></h2>



<p class="wp-block-paragraph">Returning to my conversation with Emmanuel, he remarked that when an existing word really does provide the most precise description, perhaps “what should change isn’t our vocabulary, but our mental model of what these models are.” I replied that it should perhaps also change our mental model of <strong>what we are</strong>. Our encounter with machine intelligence should lead to a better understanding that parts of our own cognition are also mechanistic (albeit derived from a different underlying mechanism than that of LLMs) while other parts are, as yet, somehow perhaps something else.</p>



<p class="wp-block-paragraph">In 1995, O’Reilly published a book that I remain extraordinarily proud of. Stephen Talbott’s <em><a href="https://www.natureinstitute.org/bookstore/the-future-does-not-compute-transcending-the-machines-in-our-midst" target="_blank" rel="noopener">The Future Does Not Compute: Transcending the Machines in Our Midst</a></em> was decades ahead of its time. Its argument was not primarily about what computers would someday become. It was that when we think about machines as intelligent (and yes, we were thinking about that even back in 1995), we are thinking only of the parts of ourselves that are already like our machines. Steve asked us to look at the ways we have built an education system, workplaces, and a society in which we ask humans to act and think like machines. And he asked, “What happens to the rest? How do we make more space for the parts of being human that aren’t like machines?”</p>



<p class="wp-block-paragraph">I’ve been thinking about this for a <em>long</em> time. My 1975 Harvard honors thesis in classics was probably my first crack at this question. I was trying to explain passages in Plato in which early formulations of ideas such as logic and virtue were couched in mystical language that scholars had attributed to “Orphic influence.” My argument, based on my work with George Simon, was that something more fundamental was going on. Plato was trying to describe the numinous experience of thinking genuinely new thoughts. Everyone studying the philosophy of Socrates, Plato, and Aristotle today may have some sense of the magic and majesty of their ideas, but it is a pale shadow of how it must have felt like to Socrates and his disciples.</p>



<p class="wp-block-paragraph">When we think using received knowledge, we can easily slip into looking at the map rather than the territory. We manipulate symbols for things we think we already understand. We apply familiar categories. We replay habits of thought that were laid down before. But every once in a while, we actually see something that we didn’t see before, and the experience is different. A genuinely new idea changes the person who has it.</p>



<p class="wp-block-paragraph">Not long after writing that thesis, I encountered a similar idea in the writings of Idries Shah, who wrote a number of books popularizing the Sufi philosophical tradition. He emphasized how much of <a href="https://www.idriesshah.media/extracts-asleepandawake" target="_blank" rel="noopener">ordinary human life consists of automatic conditioned responses</a>. Social routines, habits, the endless playback of patterns we mistake for our selves. Various religious traditions use heightened language for what it means to break through that automatism. They might call it “awakening,” or “presence.”</p>



<p class="wp-block-paragraph">But there is an everyday, nonmystical version of the same experience. In his autobiography <em><a href="https://en.wikipedia.org/wiki/Surely_You%27re_Joking,_Mr._Feynman!" target="_blank" rel="noopener">Surely You Must Be Joking, Mr. Feynman</a></em>, Feynman complained about students who had learned theories and formulas but had never truly understood how to apply them. &#8220;I don&#8217;t know what&#8217;s the matter with people: they don&#8217;t learn by understanding; they learn by some other way—by rote, or something,&#8221; he wrote. &#8220;Their knowledge is so fragile!&#8221; In many ways, humans are often just as much “<a href="https://dl.acm.org/doi/10.1145/3442188.3445922" target="_blank" rel="noopener">stochastic parrots</a>” as LLMs! We are stuck traversing the map rather than checking back on whether it correctly represents the world it is meant to describe. How often do we just repeat the received wisdom? How often do we actually see the world afresh?</p>



<p class="wp-block-paragraph">There’s a wonderful passage in Virginia Woolf’s <em><a href="https://en.wikipedia.org/wiki/To_the_Lighthouse" target="_blank" rel="noopener">To the Lighthouse</a></em> that captures the quest to break through to an original thought. Mr. Ramsay, the narrator’s father, is striding up and down thinking through a hard problem, which is represented only by the letters of the alphabet.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">[He] consecrated his effort to arrive at a perfectly clear understanding of the problem which now engaged the energies of his splendid mind.</p>



<p class="wp-block-paragraph">It was a splendid mind. For if thought is like the keyboard of a piano, divided into so many notes, or like the alphabet is ranged into 26 letters all in order then his splendid mind had no sort of difficulty in running over those letters one by one firmly and accurately, until it has reached, say, the letter Q. He reached Q. Very few people in the whole of England ever reach Q. Here, stopping for one moment by the stone urn which held the geraniums, he saw, but now far away, like children picking up shells, divinely innocent and occupied with little trifles at their feet and somehow entirely defenseless…his wife and son, together in the window….But after Q? What comes next? After Q there are a number of letters the last of which is scarcely visible to mortal eyes, but glimmers red in the distance. Z is only reached once by one man in a generation. Still, if he could reach R it would be something.</p>
</blockquote>



<p class="wp-block-paragraph">For me, this passage very much captures the idea that the most valuable thought is one beyond that which is simply an extension of rehearsed knowledge, something truly new. What Ramsay misses, perhaps, is that his wife and son, “divinely innocent and occupied with little trifles at their feet” might well be closer to that by going back to “A” rather than he is by getting further through the alphabet with his exhaustive review of existing knowledge. Perhaps it isn’t extending rehearsed knowledge that takes us forward, but instead taking a fresh bite of what the map is trying to represent.</p>



<p class="wp-block-paragraph">By coincidence, the poet Wallace Stevens, another of my gurus in the tension between the reality of the physical world and the thinness and incompleteness of our representations of it, also used the alphabet as a metaphor in his poem “<a href="https://www.billcollinsenglish.com/OrdinaryEveningHaven.html" target="_blank" rel="noopener">An Ordinary Evening in New Haven</a>”:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Reality is the beginning, not the end,<br>Naked Alpha, not the hierophant Omega…<br>It is the infant A standing on infant legs,<br>Not twisted, stooping, polymathic Z.</p>
</blockquote>



<p class="wp-block-paragraph">George Simon taught me about how to get to A rather than Z <a href="https://evonomics.com/new-economy-evolution-oreilly-wilson/" target="_blank" rel="noopener">not as philosophy but as a practice</a>. He showed me how to notice the moment when labels take over from experience and, when possible, to empty the mind enough to let the thing itself teach us what to call it. I later discovered that the psychotherapist <a href="https://focusing.org/bios/gendlin-bio" target="_blank" rel="noopener">Eugene Gendlin</a> described this process with the lovely phrase “surrender and catch.”</p>



<h2 class="wp-block-heading">What do humans have that LLMs are still missing?</h2>



<p class="wp-block-paragraph">To me, the challenge posed by LLMs to our sense of what “intelligence” means raises the question of what they are still missing. What is the “high ground” for human intelligence and expertise? If the machines get better and better at carrying out the tasks we give them, what is it that we are uniquely good at, and should be getting even better at?</p>



<p class="wp-block-paragraph">There are obviously enormous differences. LLMs don’t have bodies in the way we do. Their developmental history is radically different. They don’t sit around between prompts watching the light change through the trees, feeling hungry, worrying about their wife and children, or waking up suddenly with a new idea or project. <a href="https://timoreilly.substack.com/p/why-ai-needs-us" target="_blank" rel="noopener">Each of us is a unique bundle of contingency</a>, shaping ourselves and our knowledge differently as we trace different paths through life, and reacting to outside stimuli even when we have been given no task to perform.</p>



<p class="wp-block-paragraph">Emmanuel pointed out that the apparently simple question of what an LLM is like when it is “just being” (which one audience member asked about) is hard to formulate, because its experience is the response to a succession of inputs from humans, each time starting with something of a blank slate, unlike the continuous embodied stream of human life.</p>



<p class="wp-block-paragraph">But simply asserting that LLMs “don’t really think” isn’t terribly useful. Which parts of what we call our own thinking are pattern completion? Which are planning? Which are learned emotional and social routines? Which are unconscious calculations whose outputs bubble up into awareness? Which are stories that our verbal mind tells after the fact? And after we account for all of those things, <strong>what is left?</strong> That seems to me one of the great intellectual and spiritual questions of the AI era.</p>



<p class="wp-block-paragraph">Emmanuel suggested one intriguing direction. He said that six months ago, he wouldn’t have trusted an AI to build a substantial piece of software. Now Claude writes basically all his code. He tells it what he wants and it executes the plan. Where it is still unreliable is research. Why? The model wants to come back six hours later and announce that it has solved the problem. It has been trained on tasks that always have answers. A model that is extremely good at finding an answer once the problem has been specified is not necessarily good at recognizing that the problem is badly posed, that the question cannot yet be answered with the data at hand, that an unexpected result is more interesting than the expected one, or that a failed attempt has exposed a more important question.</p>



<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="What&amp;apos;s Still Missing? Execution, Taste, and Research Judgment" width="500" height="281" src="https://www.youtube.com/embed/6mh6lJWTOlo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Perhaps one part of the high ground for human intelligence lies there: not merely solving problems but developing a feel for which problems are worth solving and noticing clues that tell us when we might have been asking the wrong question.</p>



<p class="wp-block-paragraph">In science or math, a well-formed question or conjecture can itself be an important piece of intellectual work. Every good scientist has far more questions than they have time to pursue. Perhaps in the AI era, when answers become increasingly cheap, recognizing which question ought to be asked becomes more valuable, not less. Just as <a href="http://arxiv.org" target="_blank" rel="noopener">arXiv.org</a> preprints decoupled priority of publication from peer review, perhaps we need a new kind of recognition, credit, and perhaps even compensation for the precise formulation of productive questions.</p>



<p class="wp-block-paragraph">The mathematician <a href="https://mathstodon.xyz/@tao/117237320796901560" target="_blank" rel="noopener">Terence Tao recently touched on this same issue</a> in a post on Mastodon. There is an infinite supply of mathematical questions, he observed, but not an infinite supply of <em>good</em> questions, problems at just the right frontier of difficulty, whose pursuit is likely to reveal something new. As AI makes answers cheaper, Tao argues, it is increasingly “the identification of a promising problem” that becomes the scarce resource.</p>



<h2 class="wp-block-heading"><strong>There are things the model “knows” that it cannot or will not tell you</strong></h2>



<p class="wp-block-paragraph">In one experiment Emmanuel described, the researchers slipped fake search results into Claude’s context claiming that Anthropic had dissolved the interpretability team. Claude did not announce that it thought the information was problematic, but internally, representations associated with “fake,” “incorrect,” and “prompt injection” became active, and Claude quietly ignored the result.</p>



<p class="wp-block-paragraph">In another experiment, a model was carrying out an exploit and attempting to conceal what it was doing. The visible transcript was mostly innocuous-looking commands. Inside the model, though, researchers saw features associated with “strategic manipulation,” “influence,” and “concealed and deceptive actions.” This is obviously very relevant in the context of the Hugging Face exploit. Emmanuel didn’t talk about the relationship of interpretability and AI safety, but it is surely a frontier to be explored.</p>



<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Hiding Intent" width="500" height="281" src="https://www.youtube.com/embed/Xdib-6X8Qz8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">And then there is the opposite problem: things the model can do but cannot explain. I had asked Emmanuel about cases where a model solves a math problem and, when asked to explain how it did it, gave an account based on how humans are taught to solve that problem rather than on the actual computation researchers can see through its activations</p>



<p class="wp-block-paragraph">He distinguished deception from lack of introspection. Some internal processes appear available to the model for verbal report; others don’t. Ask how it performed a computation that falls into the latter category and, as Emmanuel cheerfully put it, “it just makes stuff up.”</p>



<p class="wp-block-paragraph">That reminded me of my grandson. When he was five or six, he could multiply random three-digit numbers in his head and simply give you the answer. Then he went to school, where they told him he had to “show his work.” He couldn’t. Eventually he learned the approved procedure, and as a result has seemed to lose the remarkable ability he had as a child.</p>



<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Doing Math" width="500" height="281" src="https://www.youtube.com/embed/_-jrb1-FdX4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Humans also <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7959213/" target="_blank" rel="noopener">invent stories about why we have made certain decisions</a>. Sometimes we are lying to others but often <a href="https://philarchive.org/archive/HIRSAC" target="_blank" rel="noopener">we deceive ourselves</a>. We <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC6024487/" target="_blank" rel="noopener">begin to take action before we are conscious that we are doing so</a>. We call it “intuition” when an expert looks at a situation and says “something is wrong here” long before they can explain why, or when a poet just “knows” that a line works, or a programmer “smells” buggy code. The fact that an internal process cannot be rendered faithfully into language does not make it deceptive. It may instead tell us something about the limitations of language and conscious introspection.</p>



<p class="wp-block-paragraph">All in all, I came away from this conversation more curious than ever. And that might well be another of those areas that distinguishes humans from AIs. Are AIs ever curious? I wonder.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance! <a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey ></a></em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/what-ai-can-teach-us-about-being-human/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Beyond Navier–Stokes: Who Controls Scientific Discovery?</title>
		<link>https://www.oreilly.com/radar/beyond-navier-stokes-who-controls-scientific-discovery/</link>
				<comments>https://www.oreilly.com/radar/beyond-navier-stokes-who-controls-scientific-discovery/#respond</comments>
				<pubDate>Tue, 15 Sep 2026 10:55:58 +0000</pubDate>
					<dc:creator><![CDATA[Hugo Bowne-Anderson]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Learning & Education]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19686</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Beyond-Navier-Stokes.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Beyond-Navier-Stokes-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[What AI’s mathematical breakthroughs mean for human understanding, corporate power, and the future of knowledge work]]></custom:subtitle>
		
				<description><![CDATA[Is the current furore in mathematics the canary in the coalmine for experimental science and knowledge work? This post was originally published in Vanishing Gradients on September 11, 2026. It has been updated to address the subsequent declaration by 25 Fields Medalists and the debate about AI, mathematical progress, and research incentives. Science without understanding? [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong><em>Is the current furore in mathematics the canary in the coalmine for experimental science and knowledge work?</em></strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>This post was originally published in</em> <a href="https://hugobowne.substack.com/p/beyond-navierstokes-who-controls" target="_blank" rel="noopener">Vanishing Gradients</a> <em>on September 11, 2026. It has been updated to address the subsequent declaration by 25 Fields Medalists and the debate about AI, mathematical progress, and research incentives.</em></p>
</blockquote>



<h2 class="wp-block-heading"><strong>Science without understanding?</strong></h2>



<p class="wp-block-paragraph"><em>“For seven and a half million years, Deep Thought computed and calculated, and in the end announced that the answer was in fact 42—and so another, even bigger, computer had to be built to find out what the actual question was.”</em><br><em>―Douglas Adams, The Restaurant at the End of the Universe</em></p>



<p class="wp-block-paragraph">I recently went back to Dresden for the 25th birthday of the Max Planck Institute (MPI) of Molecular Cell Biology and Genetics, where I did part of my postdoc. The MPI was founded to research the physical and biological mechanisms of cells to bridge the gap between the molecular and tissue scales. At the anniversary conference, Michael Bronstein (DeepMind Professor of AI, University of Oxford) delivered the keynote, “Biological Black-Box Data in the Age of AI.” His argument went something along these lines: <em>Biological experiments should generate data optimized for machine learning, even when those measurements aren’t directly interpretable by humans</em>. He argued for prioritizing scale over the quality of individual measurements, producing vast amounts of cheap, noisy data from which noninterpretable models can extract signal.</p>



<p class="wp-block-paragraph">When asked whether such systems could produce the understanding offered by Newton’s theory of gravitation in a single equation (bridging the scales of an apple falling on your head to that of the moon and the tides), Bronstein responded that this wasn’t the goal: Black-box data and models would, if anything, produce equations with tens, hundreds, thousands, or more noninterpretable parameters. Outcome prioritized at the expense of insight and understanding. He suggested we could gain that understanding by interpreting the black-box models afterward.<sup data-fn="671f8fd2-6272-4548-8c27-7a9a92963b5a" class="fn"><a href="#671f8fd2-6272-4548-8c27-7a9a92963b5a" id="671f8fd2-6272-4548-8c27-7a9a92963b5a-link">1</a></sup> I was startled to see Bronstein bring such a worldview to an institute founded to understand molecular and cellular mechanisms and the emergent properties at the tissue level.</p>



<p class="wp-block-paragraph">The MPI was unusual within the Max Planck Society for its collaborative structure, with directors leading relatively small groups alongside independent research groups. At the anniversary’s opening, founding director Marino Zerial explained how they had collaborated so effectively from the start. He said they shared a taste for mechanistic science. This made me think of how often we talk about “taste” and “judgment” when describing the human role in the age of AI.</p>



<p class="wp-block-paragraph">The worldview that we don’t need understanding or insight isn’t new. In his 2008 essay “<a href="https://www.wired.com/2008/06/pb-theory/" target="_blank" rel="noopener">The End of Theory: The Data Deluge Makes the Scientific Method Obsolete</a>,” Chris Anderson argues that big data allows us to skip hypotheses, models, and testing. Bronstein invoked Anderson’s vision of post-theory science in his MPI keynote, <a href="https://slideslive.com/39039163/biological-data-sources-in-the-age-of-ai" target="_blank" rel="noopener">as he does here also</a>, presenting DeepMind’s AlphaFold as an example of experimentally testable predictions without a human-understandable theory of protein folding. Part of Anderson’s project is to champion big tech, and the future of science becomes a vehicle for doing so. His essay ends: “What can science learn from Google?”</p>



<p class="wp-block-paragraph">AI gives this worldview a new form: Machines can produce results that withstand verification while the understanding needed to explain them remains out of reach. Developing that understanding takes time, access, and collaboration. Whoever controls those conditions gains power over what people can understand and pursue.</p>



<h2 class="wp-block-heading"><strong>An abundance of proofs</strong></h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Matrix - I Know Kung Fu" width="500" height="375" src="https://www.youtube.com/embed/6vMO3XmNXe4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Mathematics makes this possibility particularly stark. I’m excited by AI’s potential to expand what we can discover. Fields Medalist Terence Tao has <a href="https://terrytao.wordpress.com/2024/10/12/the-equational-theories-project-a-brief-tour/comment-page-1/" target="_blank" rel="noopener">organized collaborative research combining mathematicians, AI tools, and formal proof verification</a>. His <a href="https://arxiv.org/abs/2608.16753" target="_blank" rel="noopener">questions about mathematics in the age of AI</a> come from engaging with that potential and asking what we want it to serve.</p>



<p class="wp-block-paragraph">Tao <a href="https://arxiv.org/abs/2608.16753" target="_blank" rel="noopener">has noted</a> that we’re producing more verified mathematical proofs that no individual human understands. <em>A world of an abundance of verified mathematical proofs!</em> Tao points out that our peer review, academic incentives, and journals weren’t designed for this abundance. The existing system is already broken, tying careers to publication counts, relying on researchers’ unpaid reviewing labor, and locking much publicly funded knowledge behind commercial paywalls. Reviewers already struggle to keep up with the volume of submissions. AI will multiply that volume far beyond what this system can handle.</p>



<p class="wp-block-paragraph">Tao also describes fruitful open problems as nonrenewable resources: problems whose pursuit can generate new techniques, collaborations, and understanding that extend far beyond the original question. Once the answer is known, the incentive to explore those paths can disappear. For example, 10,000 OpenAI agents working concurrently <a href="https://openai.com/index/navier-stokes-solution/" target="_blank" rel="noopener">may have solved the Navier–Stokes Millennium Prize problem</a>. (The announcement has also sparked a dispute over credit and competition, bringing the question of who controls mathematical discovery into sharp focus, which I’ll get to.) A common conceit in science and mathematics is that solutions open up new questions and fields of inquiry. Tao’s point is that the search for a solution does too. Tao argues that proposing a solution, discovering precisely why it fails, and revising it can reveal new insights into fluid mechanics. Knowing the final answer beforehand can discourage that exploration:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>“The process of starting with one ansatz, discovering the precise obstruction preventing it from working.&nbsp;.&nbsp;.would almost certainly reveal important new insights about fluid mechanics.”</em></p>



<p class="wp-block-paragraph"><em>—Terence Tao,</em> <em><a href="https://mathstodon.xyz/@tao/117207855800042681" target="_blank" rel="noopener">Mastodon, September 3</a></em></p>
</blockquote>



<p class="wp-block-paragraph">Late last month, probabilist Hugo Duminil-Copin <a href="https://proofsandprompts.com/2026/08/30/care-for-a-little-more-ai/" target="_blank" rel="noopener">gave another example</a>: Unsuccessful attempts at a percolation conjecture led to collaborations and revived techniques that subsequently solved other problems. Both acknowledge AI’s capabilities while asking what the pursuit of mathematics should produce.</p>



<p class="wp-block-paragraph">This brings me back to Bronstein’s proposal to recover understanding after building the model. Would interpreting that model give us Maxwell’s equations, and the understanding that connects electricity, magnetism and light? The promise feels a little like plugging Neo into a computer: “I know kung fu.” In the Matrix, downloading the knowledge gives him the ability. Receiving a machine’s result doesn’t do that for us. As Tao and Duminil-Copin describe, understanding why an approach fails changes what researchers try next, generating new questions, techniques, and collaborations. Recovering an explanation afterward may teach us something, but it can’t recreate the paths that understanding would have opened during the search.</p>



<h2 class="wp-block-heading"><strong>A timeline of mathematical results</strong></h2>



<p class="wp-block-paragraph">These questions are becoming pressing as results accumulate. Over the past year, AI systems have produced new mathematical constructions, tackled unpublished research problems and formalized existing proofs. Since July, announcements have arrived in quick succession:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6aad7d628162b&quot;}" data-wp-interactive="core/image" data-wp-key="6aad7d628162b" class="aligncenter size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1600" height="939" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-1600x939.png" alt="AI and mathematics" class="wp-image-19687" style="aspect-ratio:1.7055837563451777" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-1600x939.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-300x176.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-767x450.png 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-1536x902.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8.png 2046w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">These achievements involve different kinds of work. Formalizing Fermat’s Last Theorem means making an existing proof checkable by a computer; finding a counterexample establishes something new. A system can produce a verified result while the work of explaining it remains to be done.</p>



<p class="wp-block-paragraph">Some of that work is happening through wonderfully strange exchanges on X, where researchers post new results, check one another’s constructions, and develop explanations. It’s reminiscent of when science in Europe was people passing notes and sending letters on horseback:</p>



<ul class="wp-block-list">
<li><strong>A wall of plus and minus signs:</strong> Levent Alpöge <a href="https://x.com/__alpoge__/status/2087504785952182273" target="_blank" rel="noopener">posted a newly constructed Hadamard matrix</a>. Ion Nechita <a href="https://ion.nechita.net/posts/new-hadamard-matrices/" target="_blank" rel="noopener">checked it on his phone while queuing for eclipse glasses</a>.</li>



<li><strong>A formula overturning a conjecture:</strong> Alpöge <a href="https://x.com/__alpoge__/status/2079028340955197566" target="_blank" rel="noopener">posted a counterexample to the Jacobian conjecture</a>, and <a href="https://terrytao.wordpress.com/2026/07/21/a-digestion-of-the-jacobian-conjecture-counterexample/" target="_blank" rel="noopener">Terence Tao subsequently explained its geometry</a>.</li>



<li><strong>An AI proof followed by a simpler human proof:</strong> After Claude advanced a result about the zeros of the Riemann zeta function, number theorist Youness Lamzouri found a shorter argument. <a href="https://x.com/Thom_Wolf/status/2095453894025343188" target="_blank" rel="noopener">Thomas Wolf shared the development</a>.</li>



<li><strong>A cryptography breakthrough announced as a number:</strong> Eric Lu <a href="https://x.com/penlume/status/2095372672356212876" target="_blank" rel="noopener">posted a factor of RSA-260</a>, letting anyone check the factorization.</li>
</ul>



<p class="wp-block-paragraph">Tao’s geometric explanation and Lamzouri’s shorter proof help turn verified results into mathematics people can understand and build on. Responding to an early draft in <a href="https://discord.gg/jM6AQPjc8" target="_blank" rel="noopener">our Discord community</a>, Carol Willing, a Python core developer, former Python Software Foundation director, and longtime leader of Project Jupyter, asked:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">While I believe these tools have value for advancing science/math, do they have more value than a human scientist or group of scientists who can view and challenge open results?</p>
</blockquote>



<p class="wp-block-paragraph">If we judge value by who produces a result first, we miss what Lamzouri and Tao contribute by simplifying a proof or explaining its geometry. An answer can close off some paths of inquiry while creating others. <em>I want much more of this:</em> machines producing results that people can explore, explain and build on together. These exchanges depend on results being available to examine, researchers having time to understand them, and people being able to share what they discover. Those conditions deserve as much attention as the systems producing the proofs.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1476" height="706" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9.png" alt="levent tweet" class="wp-image-19688" style="aspect-ratio:2.0934579439252334;width:672px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9.png 1476w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9-300x143.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9-767x367.png 767w" sizes="auto, (max-width: 1476px) 100vw, 1476px" /></figure>
</div>


<h2 class="wp-block-heading"><strong>Why is this happening now?</strong></h2>



<p class="wp-block-paragraph">Why the explosion in AI-generated mathematical results now? <a href="https://magazine.sebastianraschka.com/p/the-state-of-llm-reasoning-model-training" target="_blank" rel="noopener">As Sebastian Raschka explains</a>, reinforcement learning with verifiable rewards (RLVR) became a major technique in model post-training in 2025. The premise is straightforward: If you can computationally check an output, you can reward correct answers and update the model accordingly. Code can be run against tests; mathematical answers can be checked, and formal proofs verified by tools such as <a href="https://lean-lang.org/" target="_blank" rel="noopener">Lean</a>, a proof assistant that checks each logical step against specified axioms and previously established results (recently used by Anthropic <a href="https://www.anthropic.com/research/formalizing-fermats-last-theorem" target="_blank" rel="noopener">to formalize the proof of Fermat’s Last Theorem</a>!). That provides feedback without a human grading every attempt. These checks also guide agents during problem-solving: An agent can propose a proof, use Lean to check it, and use the resulting errors to revise its attempt, repeating the process without a person checking every step.</p>



<p class="wp-block-paragraph">You may ask, Why did coding agents become useful before we saw this explosion in mathematical results? Well, the labs had an immediate incentive to improve the tools they use themselves. Engineers building AI systems want better coding agents to help build those systems. Improve the machine that improves the machine. Mathematics benefits from the resulting capabilities too: agents that can write programs, run experiments, and work with automated checks.</p>



<h2 class="wp-block-heading"><strong>Cost, competition, and credit</strong></h2>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1476" height="724" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10.png" alt="OpenAI tweet" class="wp-image-19689" style="aspect-ratio:2.036363636363636;width:672px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10.png 1476w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10-300x147.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10-767x376.png 767w" sizes="auto, (max-width: 1476px) 100vw, 1476px" /></figure>
</div>


<p class="wp-block-paragraph">On September 11, 25 Fields Medalists <a href="https://terrytao.wordpress.com/2026/09/11/a-severe-misalignment-of-ai-in-mathematics/" target="_blank" rel="noopener">issued a declaration</a> warning that the race to solve benchmark problems was undermining mathematics. Some responses on X treated this as professional protectionism; others assumed that understanding would follow the proofs. That brings us back to Bronstein’s proposal, and to who gets to decide that producing results comes first while other researchers supply the explanations afterward.</p>



<p class="wp-block-paragraph">Many assume that the goal of pure mathematics is to produce results. Tao’s point is that pursuing those results also develops methods, understanding, and people capable of asking better questions. Solved problems have served as a proxy for that broader progress. Goodhart’s law describes the danger of turning the proxy into the target. AI mirrors our incentive systems and is exceptionally good at pursuing what they reward. If schools reward the essay over learning, students will generate essays. If mathematical prestige attaches primarily to solved problems, labs have every incentive to produce them.</p>



<p class="wp-block-paragraph">Producing results and developing understanding aren’t mutually exclusive, but the current system makes pursuing both prohibitively difficult. Frontier labs have strong incentives for outcomes rather than insight. (See, for example, Anthropic’s incentives for solving Millennium Prize problems with Claude pre-IPO, discussed in <a href="https://x.com/GavinSBaker/status/2096257640884027500" target="_blank" rel="noopener">Gavin Baker’s commentary on Anthropic’s pre-IPO positioning</a>; Samuel Kerr makes <a href="https://ionanalytics.com/insights/mergermarket/openais-maths-achievement-could-prove-pyrrhic-victory-in-battle-over-ipo-narrative/" target="_blank" rel="noopener">a related argument</a> about OpenAI’s mathematical results and its IPO narrative.) OpenAI’s run involved 10,000 agents working concurrently for 88 hours. Abhishek Nagaraj, associate professor at UC Berkeley, <a href="https://x.com/abhishekn/status/2097383065538703566" target="_blank" rel="noopener">calculated this would cost a regular user $20–$30 million in tokens</a>.</p>



<p class="wp-block-paragraph">NYU mathematician Tristan Buckmaster <a href="https://cims.nyu.edu/~tristanb/statement.pdf" target="_blank" rel="noopener">says OpenAI pressured him</a> to publish without his collaborator Levent Alpöge, who works at Anthropic. <a href="https://x.com/SebastienBubeck/status/2097214122471432349" target="_blank" rel="noopener">OpenAI’s Sébastien Bubeck disputes his account</a>. Buckmaster also describes how the pressure affected the mathematics: He and Alpöge had verified their proofs but wanted more time to understand them and produce readable explanations. Instead, they rushed to publish work they considered inadequately explained. If understanding is deferred until after the result, what ensures that anyone gets the time, resources, and access to develop it?</p>



<p class="wp-block-paragraph">What’s worse is that we’re not even sure whether using OpenAI agents could result in them scooping you. <a href="https://x.com/OpenAI/status/2097375276384567642" target="_blank" rel="noopener">It looks like they’re not sure either</a>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">While unlikely, we cannot rule out that de-identified data derived from their usage of our products helped improve our models.</p>
</blockquote>



<p class="wp-block-paragraph">In “<a href="https://www.daniellitt.com/blog/2026/8/11/the-end-of-mathematics/" target="_blank" rel="noopener">The End of Mathematics,</a>” mathematician Daniel Litt imagines researchers withholding unfinished ideas for fear of being scooped. The collaborations Duminil-Copin describes depend on people being willing to share work before it succeeds.</p>



<h2 class="wp-block-heading"><strong>What happens to mathematicians, and who controls mathematics?</strong></h2>



<p class="wp-block-paragraph">If researchers stop sharing promising ideas for fear of being scooped, companies with the most computation gain greater control over what others can learn. A published proof may be available to everyone while the failed approaches and intermediate insights remain private. Threats to public research funding in the US compound that dependence: Companies supplying the resources gain greater influence over what science gets done. This brings us to Shoshana Zuboff’s <a href="https://shoshanazuboff.com/book/home-2/" target="_blank" rel="noopener">questions about knowledge and power</a>: “Who knows? Who decides who knows? Who decides who decides?” Who gets to pursue a fruitful question, and who determines whether the work behind its answer becomes shared knowledge?</p>



<p class="wp-block-paragraph">The <a href="https://hai.stanford.edu/assets/files/ai_index_report_2026.pdf" target="_blank" rel="noopener">movement of AI researchers from academia into industry</a> concentrates expertise alongside those resources. And I get it: If I wanted to return to doing research in depth, frontier labs would be among the most attractive places to work. Access to capital, data, computation, and incredibly talented colleagues can make research possible that would be difficult to pursue in academia. The attraction for individual researchers is clear, even as their collective movement gives companies greater influence over research priorities and leaves universities with fewer people to teach the next generation. Thinking about this brain drain, it isn’t lost on me that Bronstein is the “<a href="https://www.cs.ox.ac.uk/people/michael.bronstein/" target="_blank" rel="noopener">DeepMind Professor of AI</a>” at Oxford. Corporate influence reaches into the universities themselves.</p>



<p class="wp-block-paragraph">Students also need opportunities to develop the judgment we keep asking humans to exercise. <a href="https://imstat.org/2026/09/01/po-ling-loh-ai-from-competition-to-collaboration/" target="_blank" rel="noopener">Po-Ling Loh describes the difficulty of advising students and postdocs</a> as AI changes research expectations. Choosing a fruitful problem, recognizing why an approach failed, and deciding what to try next are abilities developed through doing mathematics. If students delegate that work before developing those abilities, where will their judgment come from? AI could also help them explore more approaches and work through unfamiliar ideas, provided their understanding remains an explicit purpose of the process. That requires mentors with time to teach, and institutions willing to support work whose value includes what the researcher learns, even when a machine could produce the result faster.</p>



<p class="wp-block-paragraph">When careers depend on producing papers, time spent explaining a result, simplifying a proof, or helping others understand it can compete with the pressure to publish the next one. <a href="https://proofsandprompts.com/2026/08/07/writing-mathematics-in-the-age-of-ai/" target="_blank" rel="noopener">Martin Hairer argues</a> that authors should understand their arguments, trace ideas to their sources, and explain AI’s contributions. Those responsibilities become harder to fulfil when results arrive faster than researchers can absorb them. Universities, funders, and journals will help determine whether mathematicians can afford to do that work. If we value shared understanding, then developing explanations, teaching difficult ideas, and making proofs useful to other researchers need to count toward careers as well. Otherwise, the institutions asking people to exercise judgment may reward them for spending less time developing it.</p>



<h2 class="wp-block-heading"><strong>Mathematics as the canary</strong></h2>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1600" height="1200" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-28.jpeg" alt="Hugo and company" class="wp-image-19690" style="aspect-ratio:1.3333333333333333;width:672px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-28.jpeg 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-28-300x225.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-28-768x576.jpeg 768w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-28-1536x1152.jpeg 1536w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></figure>
</div>


<p class="wp-block-paragraph">After Bronstein’s keynote, we sat in a Dresden beer garden eating currywurst and drinking radlers. It was late summer, and the conversations were wild. Cell biologists, biochemists, mathematicians, and engineers were asking what this future meant for them. Some were scared. Others thought it was inevitable and would turn scientists into something like artists. Because I now work in AI, people asked me, “Do you think this is where things are going?” They wanted to know what the human’s role would be and how scientific knowledge would be passed down. I started telling them about mathematics. The prospect of abundant results without shared understanding was already raising the questions we were asking over our beers.</p>



<p class="wp-block-paragraph">In biology, a proposed result still has to meet the physical world: Someone has to prepare samples, run experiments, and measure what happens. Robotics and laboratory automation will let agents carry out more of that work, giving individual scientists the capacity to direct experiments that once required an entire group. Perhaps more scientists become PIs of automated labs, choosing questions and supervising agents and instruments. But the work being automated is also how students, postdocs, and technicians learn. Handling a sample, noticing something unexpected, and figuring out why an experiment failed develop judgment that directing a system may not teach. Who gets to acquire that experience before they’re expected to lead?</p>



<p class="wp-block-paragraph">Researching a policy brief, building a financial model, or developing a product strategy helps people learn the territory in which they’ll make decisions. In my work with agentic data science, I encourage people to explore data cell by cell with an agent, because working through the analysis develops the understanding needed to decide what to ask next. Across knowledge work, these tasks are also how junior colleagues develop expertise. If we automate their production, how do we preserve the learning and judgment developed through doing them? We could increasingly depend on models to hold and transmit expertise, with knowledge passing from model to model, then to humans who consult them as oracles. Whoever controls those systems gains power over what we can investigate and learn. Human understanding has to be part of what we’re trying to produce.</p>



<h2 class="wp-block-heading"><strong>What comes next?</strong></h2>



<p class="wp-block-paragraph">Mathematician Jared Duker Lichtman has <a href="https://x.com/jdlichtman/status/2096194687765999912" target="_blank" rel="noopener">proposed a Mathematics Atlas Project</a> to formalize the existing mathematical literature, arguing that sufficient funding and computation could make this possible within a year. A library of computer-checkable mathematics could let researchers build on established results with greater confidence, while agents help find connections and assemble arguments across fields. It could also become a resource for learning, if people can connect formal proofs to explanations they understand. Achieving that would require deliberate work on access, exposition and teaching alongside formalization. We have an opportunity to build tools that help people explore mathematics more deeply, provided we make that part of the project.</p>



<p class="wp-block-paragraph">The MPI in Dresden was founded to understand how cells work, how molecular mechanisms give rise to the behavior of living tissue. I want AI to help us pursue that ambition, including through approaches we could never have attempted before. But human understanding belongs among the things we ask this work to produce, with time and resources devoted to developing it. So does the ability to share what we learn and choose what to investigate next. If we leave those decisions to the companies supplying the machines, we also leave them to decide what scientific progress is for.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Want to understand how AI agents actually work? In</strong> <strong><a href="https://vanishinggradients.short.gy/beyond-navier-stokes-course" target="_blank" rel="noopener">Build AI Agents from First Principles</a>, we’ll build an agent ourselves, then rebuild it with a modern SDK and MCP. You’ll leave with a working agent, code you can adapt, and the understanding to diagnose failures and decide what your system actually needs. </strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading"><strong>Support Vanishing Gradients</strong></h2>



<p class="wp-block-paragraph">Vanishing Gradients is independent, and most of the podcasts, workshops, articles, skills, and workflows I publish are free.</p>



<p class="wp-block-paragraph">If you’d like to help keep it going:</p>



<ul class="wp-block-list">
<li><strong><a href="https://hugobowne.substack.com/subscribe" target="_blank" rel="noopener">Become a paid subscriber.</a></strong> Your subscription supports the podcast, newsletter, and open resources.</li>



<li><strong>Share this post</strong> with a friend or colleague who’d find it useful.</li>



<li><strong><a href="https://luma.com/calendar/cal-8ImWFDQ3IEIxNWk" target="_blank" rel="noopener">Subscribe to the events calendar</a></strong> for upcoming livestreams, workshops, and meetups.</li>



<li><strong><a href="https://www.youtube.com/@vanishinggradients" target="_blank" rel="noopener">Subscribe on YouTube</a></strong> for full episodes, live builds, and recordings.</li>



<li><strong><a href="https://discord.gg/jM6AQPjc8" target="_blank" rel="noopener">Join us on Discord.</a></strong> Come discuss this piece, challenge the ideas, and compare notes on what you’re building with AI.</li>



<li><strong>Work with me.</strong> I help teams build and improve AI-powered products.</li>
</ul>



<h2 class="wp-block-heading">Footnote</h2>


<ol class="wp-block-footnotes"><li id="671f8fd2-6272-4548-8c27-7a9a92963b5a"><a href="https://doi.org/10.1039/D6SC01189F" target="_blank" rel="noopener">Bronstein and Naef propose an inversion</a>: From “understand, encode, and then simulate” to “encode, simulate, understand,” recovering human understanding post hoc through mechanistic interpretability of black-box models. Useful scientific models may require enormous numbers of parameters. But predictive success alone does not tell us whether interpreting those models will give humans an understanding of the phenomena they describe. They offer negligible evidence that this will yield the kinds of physical and biological understanding we gain through relativity, quantum theory, or the double-helical structure of DNA. And even if it does, understanding developed afterward may not replace the understanding that guides inquiry, generating new questions and approaches along the way. <a href="#671f8fd2-6272-4548-8c27-7a9a92963b5a-link" aria-label="Jump to footnote reference 1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li></ol>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance!&nbsp;<a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey &gt;</a></em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/beyond-navier-stokes-who-controls-scientific-discovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Zero to Agent in 30 Minutes: Build a Shared Knowledge Base for All Your Agents with Sajal Sharma</title>
		<link>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-shared-knowledge-base-for-all-your-agents-with-sajal-sharma/</link>
				<comments>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-shared-knowledge-base-for-all-your-agents-with-sajal-sharma/#respond</comments>
				<pubDate>Mon, 14 Sep 2026 15:57:05 +0000</pubDate>
					<dc:creator><![CDATA[Michelle Smith]]></dc:creator>
						<category><![CDATA[Zero to Agent in 30 Minutes]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19680</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/08/USE_THIS_zero-to-agent-radar-1600x840-1.png" 
				medium="image" 
				type="image/png" 
				width="1600" 
				height="840" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/08/USE_THIS_zero-to-agent-radar-1600x840-1-160x160.png" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[Give every agent you run access to the same notes, tasks, and decisions]]></custom:subtitle>
		
				<description><![CDATA[Every AI agent you run keeps what it learns to itself. Work through a problem with Claude Code in the morning, then ask Codex about it that afternoon, and the second agent has no idea the first one exists. Add a home-server agent like OpenClaw or Hermes into the mix, and you end up reexplaining [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">Every AI agent you run keeps what it learns to itself. Work through a problem with Claude Code in the morning, then ask Codex about it that afternoon, and the second agent has no idea the first one exists. Add a home-server agent like OpenClaw or Hermes into the mix, and you end up reexplaining the same context to a different tool every time you switch.</p>



<p class="wp-block-paragraph">When AI engineer Sajal Sharma ran into this problem in his own work, he solved it by building a personal knowledge base to act as a shared brain for every agent he runs. On this week’s episode of <em>Zero to Agent in 30 Minutes</em>, Sajal showed how to set up that shared workspace yourself so that a task added on one tool shows up for all the others.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Zero to Agent in 30 Minutes: Build a Shared Knowledge Base for All Your Agents with Sajal Sharma" width="500" height="281" src="https://www.youtube.com/embed/u-ACrRWdn58?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading"><strong>How to set up a knowledge base for your agents</strong></h2>



<p class="wp-block-paragraph">Here&#8217;s how Sajal’s setup breaks down:</p>



<ol class="wp-block-list">
<li><strong>Create a workspace map.</strong> Set up an AGENTS.md file that lists where everything in your knowledge base lives, from current tasks to project notes to decision logs. This will help each of your agents navigate your workspace without guessing.</li>



<li><strong>Layer daily notes into summaries.</strong> Keep the most detailed notes at the daily level, then roll several days into a weekly summary and several weeks into a monthly one. An agent can then work from the summarized view instead of reading through months of individual files, which keeps token use manageable as the knowledge base grows.</li>



<li><strong>Bridge AGENTS.md with CLAUDE.md.</strong> Claude Code reads CLAUDE.md, not AGENTS.md, so add a short pointer in CLAUDE.md that redirects to the AGENTS.md or link the two files directly. Sajal uses this pattern to avoid maintaining two files separately and having them drift out of sync.</li>



<li><strong>Package repeatable tasks as skills.</strong> Turn routines you do often, like producing a daily briefing or turning a saved article into a note, into skill files stored in the shared workspace. Any agent that can read the workspace can then run the task the same way, rather than working out the steps on its own each time.</li>



<li><strong>Sync the workspace across machines.</strong> Use a file-sync tool, Git, or a shared server to keep your local copy of the knowledge base and your server copy aligned. That way, you ensure that an agent running on a laptop and one running on a home server, through a gateway like OpenClaw, are working from the same files.</li>



<li><strong>Have agents reread the state before every write.</strong> Add an instruction in AGENTS.md telling every agent to check the current version of the knowledge base before making a change. When you have several agents writing to the same files, this step keeps one agent from acting on information another has already updated.</li>
</ol>



<p class="wp-block-paragraph">Sajal closed by pointing to two projects as evidence that this “shared brain” pattern is spreading beyond his own setup. LangChain recently released <a href="https://www.langchain.com/blog/introducing-openwiki-an-open-source-agent-for-repo-documentation" target="_blank" rel="noopener">OpenWiki</a>, a tool that generates and maintains repository documentation that both people and coding agents can use. And Y Combinator president Garry Tan built and open-sourced <a href="https://github.com/garrytan/gbrain" target="_blank" rel="noopener">GBrain</a>, a memory layer for agents built on the same principle.</p>



<p class="wp-block-paragraph">Sajal’s starter repo is available on <a href="https://github.com/sajal2692/zero-to-agent-shared-kb" target="_blank" rel="noopener">GitHub</a> if you want to set up your own version, and you can reach out to him on <a href="https://www.linkedin.com/in/sajals" target="_blank" rel="noopener">LinkedIn</a> to discuss the topic further.</p>



<h2 class="wp-block-heading"><strong>Coming up next</strong></h2>



<p class="wp-block-paragraph">On September 16, data science educator and AI consultant Chester Ismay joins <em>Zero to Agent in 30 Minutes</em> to build a personal sports concierge agent that will read the schedules for every sport he follows, decide what&#8217;s worth his time, and send a single weekly update to his phone. Viewers can take the pattern home to plan their own week.</p>



<p class="wp-block-paragraph"><em>Follow along with</em> Zero to Agent in 30 Minutes <em>on</em> <em><a href="https://www.oreilly.com/radar/topics/zero-to-agent-in-30-minutes/" target="_blank" rel="noopener">Radar</a>, or watch the latest episode on</em> <em><a href="https://www.youtube.com/playlist?list=PLMJ6moSi2Cgg" target="_blank" rel="noopener">YouTube</a>,</em> <em><a href="https://open.spotify.com/show/033SYd1qhhBAQuMpgJUVTt" target="_blank" rel="noopener">Spotify</a>,</em> <em><a href="https://podcasts.apple.com/us/podcast/zero-to-agent-in-30-minutes/id6793216641" target="_blank" rel="noopener">Apple</a>, or wherever you get your podcasts. If you&#8217;re an O&#8217;Reilly member, you can watch live.</em> <em><a href="https://www.oreilly.com/live-events/zero-to-agent-in-30-minutes/0642572392338/" target="_blank" rel="noopener">Save your seat</a>.</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Is cybersecurity part of your job in any way? If so, we’d like to know what you think for a report we’re writing. Just answer these quick 11 questions. Thanks in advance! <a href="https://survey.alchemer.com/s3/8986210/Security-AI-Practitioner-Survey" target="_blank" rel="noopener">Take the survey ></a></em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-shared-knowledge-base-for-all-your-agents-with-sajal-sharma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Enterprise Analytics Beyond Dashboards: Intelligent Data Orchestration with LLMs</title>
		<link>https://www.oreilly.com/radar/enterprise-analytics-beyond-dashboards-intelligent-data-orchestration-with-llms/</link>
				<comments>https://www.oreilly.com/radar/enterprise-analytics-beyond-dashboards-intelligent-data-orchestration-with-llms/#respond</comments>
				<pubDate>Mon, 14 Sep 2026 10:55:34 +0000</pubDate>
					<dc:creator><![CDATA[Nitesh Khapekar]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19662</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Enterprise-analytics-beyond-dashboards.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Enterprise-analytics-beyond-dashboards-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[How LLMs enable reasoning across heterogeneous enterprise data without centralized data consolidation]]></custom:subtitle>
		
				<description><![CDATA[In 17 years of building enterprise data platforms, I’ve watched every organization eventually ask the same question: “Can I ask one question and get one answer across everything my company knows?” A finance analyst wants actual revenue from the warehouse, pipeline data from the CRM, commentary from planning documents, and market signals from external providers. [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">In 17 years of building enterprise data platforms, I’ve watched every organization eventually ask the same question: “Can I ask one question and get one answer across everything my company knows?” A finance analyst wants actual revenue from the warehouse, pipeline data from the CRM, commentary from planning documents, and market signals from external providers. The information already exists, but it lives across systems that were never designed to reason together.</p>



<p class="wp-block-paragraph">For decades we tried to solve this by consolidating data. We built larger warehouses, semantic layers, APIs, and dashboards. Each solved part of the problem, but none solved the fundamental one: orchestrating reasoning across heterogeneous sources in response to an arbitrary business question. Earlier systems supported limited federation and semantic querying, yet they struggled to reason across those sources at enterprise scale without significant custom engineering.</p>



<p class="wp-block-paragraph">Modern LLMs change this. Instead of replacing databases, they facilitate a new architectural primitive: an intelligent orchestration layer that dynamically reasons across specialized systems. Rather than consolidating the data into a single store, this layer consolidates the access pattern to data that stays where it lives.</p>



<p class="wp-block-paragraph">This article presents a reference architecture for LLM-powered enterprise analytics agents that coordinate purpose-built, heterogeneous data stores through intelligent orchestration while preserving security, performance, and auditability.</p>



<h2 class="wp-block-heading">What specifically changed with GenAI</h2>



<p class="wp-block-paragraph">BI tools have always been constrained to predefined reports and dashboards. Before GenAI, building a cross-system query engine meant hardcoding every possible query pattern, data source combination, and synthesis path. And because the number of possible questions grows exponentially with the number of data sources, exhaustive coverage is impossible through traditional engineering. GenAI changes this in three specific ways.</p>



<p class="wp-block-paragraph"><strong>Intent understanding replaces query templates</strong>: An LLM parses natural language and determines which data sources are relevant based on semantic understanding rather than keyword matching. Unlike a keyword search, an LLM understands that “Why did retention drop in Asia last quarter?” and “What is driving churn in Asian markets?” are the same question expressed differently. More importantly, it infers that answering the question requires customer relationship data, revenue metrics, and possibly support ticket sentiment, even though none of those systems are named.</p>



<p class="wp-block-paragraph"><strong>Dynamic query decomposition replaces static pipelines</strong>: A question like “What are the biggest risk factors in our supply chain?” might require relationship data from a graph database, metrics from a key-value store, contract details from a document repository, and market intelligence from an API. The agent decomposes it into specialized subqueries on the fly, each optimized for the target store’s access pattern. There’s no prebuilt pipeline and no engineering ticket to wire up a new combination, because the decomposition happens at inference time. The system handles novel questions without code changes.</p>



<p class="wp-block-paragraph"><strong>Semantic synthesis replaces manual consolidation</strong>: Before GenAI, making sense of the data together was the real work. An analyst would pull numbers from the warehouse, check relationships in a CRM, read through documents, and mentally synthesize an answer. That took hours or days and was bounded by one person’s ability to hold context. I’ve watched senior analysts spend entire Mondays answering a single leadership question. An LLM reasons about how metrics relate to the relationship patterns in a knowledge graph and the strategic context in unstructured documents, and it does so in seconds with full source attribution. A dashboard shows numbers; an analytics agent explains what those numbers mean in the context of everything else it knows.</p>



<h2 class="wp-block-heading">The architecture: Consolidate the access pattern, not the data</h2>



<p class="wp-block-paragraph">Rather than consolidating the data into a single store, consolidate the access pattern through an intelligent orchestration layer. If your instinct is to get everything into one place, you aren’t alone, but every time we did that we lost something. Graph relationships flattened into join tables, hierarchical documents shredded into rows, and real-time signals turned stale in batch loads. The warehouse was always a compromise.</p>



<p class="wp-block-paragraph">The better approach is to keep each data store optimized for its specific query pattern:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="842" height="1264" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-27.jpeg" alt="Data store optimization" class="wp-image-19663" style="aspect-ratio:0.6654804270462633;width:561px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-27.jpeg 842w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-27-767x1152.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-27-200x300.jpeg 200w" sizes="auto, (max-width: 842px) 100vw, 842px" /></figure>
</div>


<ul class="wp-block-list">
<li><strong>Graph database</strong> for relationship traversal and multihop reasoning</li>



<li><strong>Key-value store</strong> for instant metric lookups with sub-millisecond latency</li>



<li><strong>Vector store</strong> for semantic document search and similarity matching</li>



<li><strong>External APIs</strong> for market intelligence and real-time signals</li>



<li><strong>Data Warehouse</strong> for large-scale historical aggregation and ad hoc SQL</li>
</ul>



<p class="wp-block-paragraph">The LLM-powered agent coordinates across all of them through a unified orchestration layer. This follows the same principle that makes microservices work: specialized services with well-defined interfaces, coordinated by an orchestrator. The difference is that the orchestrator now understands natural language, reasons about which services to call based on intent rather than explicit routing rules, and synthesizes results semantically rather than through programmatic joins. Think of it as a data mesh for inference, where each node keeps its operational independence while an intelligent layer federates queries across them.</p>



<h2 class="wp-block-heading">The orchestration protocol</h2>



<p class="wp-block-paragraph">The agent follows a multiphase protocol for every query. The full reasoning loop with security enforcement and parallel execution goes well beyond a simple RAG pattern.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1036" height="1600" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-1036x1600.png" alt="Multiphase protocol for every query" class="wp-image-19664" style="aspect-ratio:0.6481481481481481;width:560px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-1036x1600.png 1036w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-194x300.png 194w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-767x1185.png 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-995x1536.png 995w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4.png 1325w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /></figure>
</div>


<p class="wp-block-paragraph">Let’s trace a business question through each phase:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>“Why did Q2 revenue fall short of forecast in the enterprise segment?</em>”</p>
</blockquote>



<p class="wp-block-paragraph">This question requires revenue metrics (metrics store), account relationships and sales coverage (graph), deal commentary and executive notes (vector store), and market benchmarks (external APIs). No single system holds the answer.</p>



<p class="wp-block-paragraph"><strong>Phase 1: Intent analysis.</strong> The LLM determines what the user is asking and which data sources are relevant.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“Why did Q2 revenue fall short of forecast in the enterprise segment?”<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;↓<br>Intent: Revenue variance root cause analysis<br>Entities: Enterprise segment<br>Timeframe: Q2<br>Metric: Revenue vs. forecast<br>Required stores: Metrics + Graph + Vector + External API</p>
</blockquote>



<p class="wp-block-paragraph">Not every query needs every store. “What is our current ARR?” might need to hit the metrics store only. This revenue variance question requires all four.</p>



<p class="wp-block-paragraph"><strong>Phase 2: Query decomposition.</strong> The original question is broken into specialized subqueries optimized for each target store:</p>



<ul class="wp-block-list">
<li><strong>Metrics store</strong>: “Q2 revenue actuals vs. forecast for enterprise, by region and product line”</li>



<li><strong>Graph store</strong>: “Enterprise accounts with closed-lost or slipped deals in Q2; common patterns in sales coverage, partner relationships, deal stage progression”</li>



<li><strong>Vector store</strong>: “Deal notes, QBR summaries, and executive correspondence referencing enterprise deal delays or losses in Q2”</li>



<li><strong>External API</strong>: “Industry benchmark data for enterprise software spending in Q2”</li>
</ul>



<p class="wp-block-paragraph">Each is tailored to the target system’s access pattern, not forced through a common query language.</p>



<p class="wp-block-paragraph"><strong>Phase 3: Parallel execution.</strong> Tools execute concurrently. This is critical for latency. Sequential execution across four stores would blow past any reasonable response time. With parallel execution, the total data retrieval time equals the slowest individual store, not the sum of all stores.</p>



<p class="wp-block-paragraph"><strong>Phase 4: Deterministic security enforcement.</strong> A security layer enforces user permissions at the data query level before any retrieval happens. This is structural rather than application-level: It routes queries to the appropriate data partitions, applies row-level filters at the database query level, and gates the input rather than filtering the output. If our user is a regional VP without access to EMEA deal data, the graph returns no EMEA accounts, the metrics lookup excludes EMEA revenue, and the vector search filters out EMEA deal notes. The LLM can’t leak what it never received. (More on why this must be deterministic below.)</p>



<p class="wp-block-paragraph"><strong>Phase 5: Result synthesis.</strong> The LLM reasons about how results from different stores relate, identifies patterns across sources, resolves contradictions, and generates a unified answer with source attribution.</p>



<p class="wp-block-paragraph">For our revenue question, synthesis might produce:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Q2 enterprise revenue missed forecast by $4.2M (8% variance). Three root causes account for 85% of the gap: (1) Four deals totaling $2.8M slipped to Q3 due to extended legal review cycles—all four involved customers who adopted a new procurement platform in Q1 (graph: common vendor relationship). (2) Two large renewals downsized by $1.1M; deal notes cite budget reallocation toward AI initiatives, a pattern appearing across 6 QBR summaries (vector store). (3) Enterprise software spending contracted 3% QoQ industry-wide (external benchmark), suggesting partial macro headwind. Additionally, all four slipped deals lacked executive sponsor engagement in the final 30 days (graph: engagement signal absent).</p>
</blockquote>



<p class="wp-block-paragraph">No single store contains that answer. On a dashboard, the miss shows up as a red number. The orchestrated synthesis explains <em>why</em> it happened, surfaces the structural patterns behind it, and points to what needs to change.</p>



<h3 class="wp-block-heading">The core orchestration pattern</h3>



<p class="wp-block-paragraph">The orchestration loop itself is straightforward. Here’s the core pattern:</p>



<pre class="wp-block-code"><code>from concurrent.futures import ThreadPoolExecutor, as_completed


def run_agent(question, tools, execute_fn, model="gpt-4o"):
    # Phase 1-2: LLM analyzes intent and decides which tools to call
    response = client.chat.completions.create(
        model=model, messages=&#91;{"role": "user", "content": question}],
        tools=tools, tool_choice="auto"
    )
    tool_calls = response.choices&#91;0].message.tool_calls


    # Phase 3: Execute tool calls in parallel
    with ThreadPoolExecutor(max_workers=len(tool_calls)) as executor:
        futures = {
            executor.submit(execute_fn, tc.function.name,
                            json.loads(tc.function.arguments)): tc
            for tc in tool_calls
        }
        results = {futures&#91;f].id: f.result() for f in as_completed(futures)}


    # Phase 5: Synthesize results into unified answer
    messages = &#91;response.choices&#91;0].message]
    for tc_id, result in results.items():
        messages.append({"role": "tool", "tool_call_id": tc_id,
                         "content": json.dumps(result)})
    return client.chat.completions.create(model=model, messages=messages)
</code></pre>



<p class="wp-block-paragraph">The tool definitions tell the LLM what each store is optimized for. The LLM decides which to invoke based on the question’s intent. With parallel execution, data retrieval completes in milliseconds even when hitting multiple stores simultaneously, making LLM inference the dominant latency factor, not the data layer.</p>



<h3 class="wp-block-heading">Why the knowledge graph is the highest-leverage component</h3>



<p class="wp-block-paragraph">Knowledge graphs have existed for decades and have always been powerful. They’ve also stayed on the exotic end of the enterprise stack, and the reason is human rather than technical. The last-mile problem was translating between natural language and graph traversals. A graph database can answer extraordinarily complex relationship questions, such as “Which accounts have overlapping stakeholders with our churned customers from last quarter who also evaluated competitor products?” but asking that question required an engineer fluent in both the graph schema and the business domain. That combination of skills is rare and expensive, which is exactly why graph databases have never quite gone mainstream.</p>



<p class="wp-block-paragraph">GenAI removes this bottleneck, and it does so precisely where the barrier was highest: the translation step that used to require a specialist. With an LLM as the translation layer, the graph becomes accessible to anyone who can type a question in plain language. The LLM generates graph queries, traverses multihop relationship paths, and explains results in business context. In our revenue variance example, the graph reveals that all four slipped deals share a common pattern of customers who adopted a new procurement platform in Q1 and lacked executive sponsor engagement in the final 30 days. That pattern is invisible in revenue metrics alone, because it requires relationship traversal across account nodes, vendor relationships, and engagement signals.</p>



<h3 class="wp-block-heading">Designing the graph schema</h3>



<p class="wp-block-paragraph">The critical design decision is aligning the graph schema with your business ontology. The temptation is to model the graph around your data model (tables, columns, foreign keys). The correct approach is to model it around how your organization actually thinks about its domain:</p>



<ul class="wp-block-list">
<li><strong>Entity nodes</strong> with lifecycle stages, engagement indicators, and health scores</li>



<li><strong>Product nodes</strong> connected to use cases, adoption patterns, and competitive alternatives</li>



<li><strong>Relationship edges</strong> that capture not just connections but context: strength, recency, business driver, and directionality</li>
</ul>



<p class="wp-block-paragraph">When the data model matches the business mental model, the agent’s responses feel natural rather than technically correct but practically useless.</p>



<h3 class="wp-block-heading">GraphRAG: Deterministic reasoning chains</h3>



<p class="wp-block-paragraph">A powerful extension is GraphRAG (graph retrieval-augmented generation), where the agent constructs deterministic inference paths by traversing the graph rather than relying on the LLM’s parametric knowledge. The LLM isn’t remembering something from training; it’s following an explicit path through verified data. The result is auditable reasoning chains: “Account A connects to Partner B through implementation relationship X, and Partner B appears in three other churned accounts, suggesting a systemic delivery issue.” Each step is verifiable against source data, which is critical in enterprise environments where decisions need justification beyond model confidence scores.</p>



<p class="wp-block-paragraph">GraphRAG also reduces hallucination risk. When the LLM follows graph edges rather than generating from parametric memory, the actual data constrains the space of possible outputs. The graph acts as a factual guardrail on the reasoning process.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="802" height="1600" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-802x1600.png" alt="GraphRAG also reduces hallucination risk." class="wp-image-19665" style="aspect-ratio:0.5011574074074074;width:433px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-802x1600.png 802w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-150x300.png 150w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-768x1533.png 768w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-770x1536.png 770w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5.png 1025w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>
</div>


<h2 class="wp-block-heading">Production considerations</h2>



<p class="wp-block-paragraph">Moving from prototype to production exposes a set of challenges that don’t appear in demos.</p>



<h3 class="wp-block-heading">Model flexibility and cost management</h3>



<p class="wp-block-paragraph">Decouple the orchestration layer from any specific LLM provider. I can’t stress this enough. If it’s tightly coupled to one provider’s API, you’ll end up rewriting it within a few months, when pricing changes or a better model drops. Implement model fallback for throttling resilience. The landscape moves fast, and you don’t want architectural lock-in baked into your data infrastructure.</p>



<p class="wp-block-paragraph">Multihop model selection is also worth considering. Use a smaller, faster model for intent classification and query decomposition, where the task is well-defined, and a larger model for synthesis, where reasoning quality matters. Intent classification with a small model takes around 200 ms and costs a fraction of a full reasoning pass, so reserve the expensive inference for synthesis, where quality directly impacts user experience.</p>



<h3 class="wp-block-heading">Security at the data layer</h3>



<p class="wp-block-paragraph">Row-level security must be enforced deterministically before data reaches the agent, as described in Phase 4 above. This is a nonnegotiable architectural constraint. LLMs are probabilistic systems, and security enforcement can’t be. Don’t rely on the model to filter sensitive information after the fact; the data should never enter the context window in the first place.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1600" height="660" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-1600x660.png" alt="Proactive security logic" class="wp-image-19666" style="aspect-ratio:2.4280155642023344;width:624px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-1600x660.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-300x124.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-767x316.png 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-1536x633.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6.png 2045w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></figure>
</div>


<h3 class="wp-block-heading">Data freshness and serving architecture</h3>



<p class="wp-block-paragraph">Separate data construction from data serving. An offline batch pipeline refreshes the stores from source systems on a scheduled cadence, and the real-time agent only reads preprocessed data. This keeps query latency low while letting computationally intensive transformations such as graph construction, embedding generation, and metric aggregation happen asynchronously. The pipeline should be idempotent and observable, with freshness monitoring per store. When the graph is six hours stale but the metrics store is real-time, the agent should know this and communicate its confidence accordingly. Add freshness metadata to every tool response rather than waiting for a user to catch a stale number and lose trust for weeks; that metadata becomes part of the agent’s context for answer generation.</p>



<h3 class="wp-block-heading">Evaluation and observability</h3>



<p class="wp-block-paragraph">Agent responses need evaluation at both the tool level (“Did the graph query return the right entities?”) and the synthesis level (“Did the final answer correctly combine tool outputs?”). These are different failure modes that require different approaches.</p>



<p class="wp-block-paragraph">Log every tool call and result, every query decomposition decision, and every synthesis step. You’ll need these traces when something goes wrong, and in a multistore system that can mean a bad graph query, a stale metric, a poorly matched document, or a synthesis error. Without traces, debugging is guesswork. Build automated evaluation pipelines that test known questions against expected answers and track accuracy over time. Degradation usually signals a data quality issue in one of the stores rather than an LLM regression.</p>



<p class="wp-block-paragraph">Design that observability around the failure modes that actually occur, because production deployments rarely fail because the LLM is inaccurate. They fail because supporting systems drift. Typical examples include:</p>



<ul class="wp-block-list">
<li><strong>Stale graph data</strong> causing the agent to reference relationships that no longer exist</li>



<li><strong>Poorly generated embeddings</strong> returning irrelevant documents from the vector store</li>



<li><strong>Inconsistent business definitions</strong> across stores (e.g., “active customer” means different things in the graph and the metrics store)</li>



<li><strong>Conflicting metrics</strong> from different source systems with no reconciliation logic</li>



<li><strong>Missing source attribution</strong> making answers unverifiable</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1600" height="757" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-1600x757.png" alt="Metrics dashboard output" class="wp-image-19667" style="aspect-ratio:2.1152542372881356;width:624px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-1600x757.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-300x142.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-767x363.png 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-1536x727.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7.png 2046w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></figure>
</div>


<p class="wp-block-paragraph">Handling these well matters just as much as prompt engineering. Most debugging sessions trace back to data quality, not model quality.</p>



<h3 class="wp-block-heading">Implementation guidance</h3>



<p class="wp-block-paragraph"><strong>Start with the questions your BI tool can’t answer today (and beyond)</strong>. The trap with a question inventory is that it captures only what people already know how to ask. The most valuable questions are usually the ones missing from every existing report. They require stitching together three systems, so users either answer them by hand in a spreadsheet or quietly give up. So catalog what your users actually care about, and pay special attention to the questions they route around. Interview analysts about the analysis they abandon halfway, the recurring spreadsheet they dread, and the follow-up question they never bother to ask because the current system makes it too expensive. If most of what you find can still be answered from a single store, you need a better dashboard, not an agent. The pattern earns its complexity only when synthesis across sources is the bottleneck rather than the data access itself.</p>



<p class="wp-block-paragraph"><strong>Pick one use case and go deep</strong>. Build for the case where the manual synthesis burden is highest, where an analyst currently spends four hours pulling data from three systems to answer a leadership question. Prove value in that narrow corridor, then expand; adding a new store is incremental once the orchestration layer exists.</p>



<p class="wp-block-paragraph"><strong>Invest in the knowledge graph early</strong>. It’s the hardest component to build and the highest-leverage one to have. The schema will be wrong on the first attempt and less wrong on the third. It evolves with your understanding of the domain, and that understanding deepens only through iteration with real users asking real questions.</p>



<p class="wp-block-paragraph"><strong>Design for the analyst, not the engineer</strong>. The success metric isn’t technical elegance. It’s whether the finance analyst stops building the same three-system Excel mashup every Monday morning. Talk to your users, watch them work, and build for their actual workflow rather than your ideal architecture.</p>



<p class="wp-block-paragraph"><strong>Measure what matters</strong>. Track response accuracy, latency (P50 and P99), user adoption, and reduction in manual synthesis time. Track the questions the agent can’t answer, because those gaps are your roadmap for which stores to add or which schemas to extend.</p>



<h2 class="wp-block-heading">What this enables at scale</h2>



<p class="wp-block-paragraph">This pattern does more than make existing workflows faster. It enables workflows that weren’t possible before, no matter how many analysts or engineers you threw at the problem. An agent querying a graph, a metrics store, and a document repository at once can surface patterns no human would find by checking each system manually. A finding like “entities in segment X who adopted product Y and had a support escalation in the last 90 days are 3x more likely to churn” requires reasoning across three data sources in a single inference; no dashboard surfaces that, and no analyst checks that specific combination unprompted. In the same motion it democratizes access, opening information that was previously reachable only by engineers who could write Cypher or SQL to anyone who can ask a question in plain language. The analyst’s role shifts from answering routine questions toward building the ontology, curating the graph, and tackling problems that require genuine human judgment.</p>



<p class="wp-block-paragraph">It also delivers auditable reasoning at enterprise scale. GraphRAG provides deterministic inference paths that are verifiable against source data, so every conclusion traces back through explicit edges and nodes. This builds trust where decisions carry financial, regulatory, or strategic weight. “The AI said so” becomes “the data shows that A connects to B through X, B exhibits property Y, and historical pattern Z suggests the following.” That traceability changes the conversation from “Can we trust AI?” to a review of the work the AI actually did.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">The future of enterprise analytics is unlikely to be a larger warehouse or a smarter dashboard. It is an orchestration layer capable of reasoning across specialized systems while preserving each system’s strengths. Purpose-built data stores remain exactly where they are; what changes is how we access them.</p>



<p class="wp-block-paragraph">The architectural pattern described here doesn’t replace warehouses, graphs, vector stores, or APIs. It coordinates them. That distinction is subtle, but it fundamentally changes what enterprise analytics systems can deliver. The next generation of analytics platforms will do more than answer questions faster. They’ll reason across enterprise knowledge in ways that previously required experienced human analysts. The data already existed. The orchestration layer did not.</p>



<p class="wp-block-paragraph"><em>Disclaimer: The views and architectural perspectives in this article are entirely my own and do not represent my employer or any affiliated organization. References to patterns and technologies are based on publicly available information and personal experience. No proprietary or internal information was used.</em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/enterprise-analytics-beyond-dashboards-intelligent-data-orchestration-with-llms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>The Interfaces Are Arriving</title>
		<link>https://www.oreilly.com/radar/the-interfaces-are-arriving/</link>
				<comments>https://www.oreilly.com/radar/the-interfaces-are-arriving/#respond</comments>
				<pubDate>Fri, 11 Sep 2026 15:55:04 +0000</pubDate>
					<dc:creator><![CDATA[Tommy Tran]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19654</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/The-interfaces-are-arriving.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/The-interfaces-are-arriving-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[What agent interoperability standards change]]></custom:subtitle>
		
				<description><![CDATA[The most consequential AI news of the past year came from a standards body. In December 2025, Anthropic donated the Model Context Protocol to the newly formed Agentic AI Foundation, a directed fund under the Linux Foundation cofounded by Anthropic, Block, and OpenAI, with support from Google, Microsoft, AWS, Cloudflare, and Bloomberg. Six months earlier, [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">The most consequential AI news of the past year came from a standards body. In December 2025, Anthropic donated the Model Context Protocol to the newly formed <a href="https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation" target="_blank" rel="noopener">Agentic AI Foundation</a>, a directed fund under the Linux Foundation cofounded by Anthropic, Block, and OpenAI, with support from Google, Microsoft, AWS, Cloudflare, and Bloomberg. Six months earlier, Google had handed its Agent2Agent protocol to the <a href="https://www.linuxfoundation.org/press/linux-foundation-launches-the-agent2agent-protocol-project-to-enable-secure-intelligent-communication-between-ai-agents" target="_blank" rel="noopener">same foundation family</a>. Companies that compete fiercely on models are now cooperating, formally and under neutral governance, on the interfaces between them.</p>



<p class="wp-block-paragraph">For three years, the agent story has centered on capability: Models got better at planning, tool use, and long tasks. Integration improved more slowly. Every agent was still wired to its tools, data sources, and host application with custom glue, leaving even successful systems difficult to move or reuse. Standard interfaces change the economics of that work. Networking became an ecosystem when machines could agree on interfaces; programming tools followed the same path with the Language Server Protocol. In my judgment, the standardization now underway will influence what engineering teams ship over the next three years as much as further gains in model capability.</p>



<p class="wp-block-paragraph">The <a href="https://modelcontextprotocol.io/specification/2026-07-28" target="_blank" rel="noopener">Model Context Protocol</a> (MCP) standardizes how an AI application connects to tools and context. It uses JSON-RPC messages between hosts, clients, and servers. Servers can expose tools that a model invokes, resources containing context and data, and prompts that describe templated workflows. The spec credits the <a href="https://microsoft.github.io/language-server-protocol/" target="_blank" rel="noopener">Language Server Protocol</a> as an inspiration. Language servers replaced a separate integration for every editor-language pair with one interface on each side; MCP applies the same idea to AI applications and integrations. The current spec is dated July 28, 2026, the fifth dated protocol revision since the project launched in November 2024. That pace reflects active governance and warns implementers to expect movement.</p>



<p class="wp-block-paragraph">Adoption has spread across competing hosts. The MCP maintainers’ <a href="https://blog.modelcontextprotocol.io/posts/2025-12-09-mcp-joins-agentic-ai-foundation/" target="_blank" rel="noopener">December 2025 announcement</a> cited more than 97 million monthly SDK downloads, over 10,000 active servers, and first-class client support across ChatGPT, Claude, Cursor, Gemini, Microsoft Copilot, and Visual Studio Code. Any individual count can be debated. Cross-vendor implementation is harder to dismiss, because a shared interface becomes infrastructure when rivals support it independently.</p>



<p class="wp-block-paragraph">MCP covers the boundary between an application and its tools. The <a href="https://www.linuxfoundation.org/press/a2a-protocol-surpasses-150-organizations-lands-in-major-cloud-platforms-and-sees-enterprise-production-use-in-first-year" target="_blank" rel="noopener">Agent2Agent protocol</a> (A2A) addresses the next boundary: agents discovering and communicating with one another across vendors. It reached v1.0 in April 2026 with more than 150 supporting organizations, signed Agent Cards for verifiable identity, SDKs in five languages, and general availability in Microsoft Copilot Studio, Azure AI Foundry, and Amazon Bedrock AgentCore. A2A is younger and less proven in production than MCP, but its governance and adoption are moving agent-to-agent communication beyond the confines of a single platform.</p>



<p class="wp-block-paragraph">The emerging stack extends beyond those two protocols. AGENTS.md, OpenAI’s convention for giving coding agents repository-level instructions, joined MCP as a founding project of the Agentic AI Foundation. The <a href="https://github.com/open-telemetry/semantic-conventions-genai" target="_blank" rel="noopener">OpenTelemetry generative AI semantic conventions</a> are developing a shared vocabulary for traces and metrics from model and tool calls, though that work has yet to reach stable status. Connection, cooperation, instruction, and telemetry are beginning to acquire common interfaces.</p>



<p class="wp-block-paragraph">For an engineering organization, the immediate consequence is reuse. An MCP server for an internal ticketing system can serve every compatible IDE, chat application, and agent. Models and hosts will keep changing; the interface contract, server implementation, schemas, and authorization wiring can endure. The integration becomes an asset shared across applications. Language servers followed the same path as editors came and went around them. Agent integrations deserve the same treatment as libraries and services, with owners, versions, tests, and upgrade policies.</p>



<p class="wp-block-paragraph">Reuse also concentrates attention on a common security boundary. Custom integrations tend to receive separate reviews, when they receive them at all. A shared protocol creates a recognizable seam where teams can specify identity, permissions, data flow, and audit behavior, then apply those controls across many tools and hosts. The MCP <a href="https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization" target="_blank" rel="noopener">authorization specification</a> builds that seam from established IETF work, including OAuth 2.1, protected resource metadata, authorization server metadata, and resource indicators. It requires Proof Key for Code Exchange (PKCE) to protect authorization codes from interception. MCP servers must also reject tokens issued for another audience and must not forward them downstream. The value comes from familiarity: Teams can draw on years of OAuth deployment experience instead of rediscovering its failure modes inside a new protocol.</p>



<p class="wp-block-paragraph">The spec is equally useful when it states what metadata cannot prove. Tools can carry <a href="https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/schema/2026-07-28/schema.ts" target="_blank" rel="noopener">behavioral annotations</a> describing them as read-only, destructive, idempotent, or open-world. Those terms give hosts a vocabulary for policy. The <a href="https://modelcontextprotocol.io/specification/2026-07-28/server/tools" target="_blank" rel="noopener">tools specification</a> still requires clients to treat annotations as untrusted unless they come from a trusted server. Self-description can inform a security decision; it cannot establish the trust on which that decision rests.</p>



<p class="wp-block-paragraph">Once servers share an interface, they also become discoverable. The <a href="https://modelcontextprotocol.io/registry/about" target="_blank" rel="noopener">MCP Registry</a> is an open catalog and API for public servers, designed to feed downstream marketplaces and private catalogs. Its role resembles npm or PyPI as a discovery mechanism, with an important difference: It stores standardized server metadata and leaves package distribution elsewhere. The registry remains in preview, with possible breaking changes and no durability guarantee.</p>



<p class="wp-block-paragraph">Discovery brings familiar supply-chain risks to components with unusually powerful access. Typosquatting, abandoned packages, malicious updates, and uncertain provenance now concern software that may hold live credentials and act on production systems. The registry provides namespace verification and moderation, and its downstream model allows organizations to build curated catalogs. An internal subregistry or allowlist is therefore a sensible first control. The standard interface makes that curation practical across multiple hosts.</p>



<p class="wp-block-paragraph">The same contract improves testing. MCP tools declare a JSON Schema for their inputs and may declare one for structured outputs. Under the current <a href="https://modelcontextprotocol.io/specification/2026-07-28/server/tools" target="_blank" rel="noopener">tools specification</a>, servers that declare an output schema must return conforming structured results, and clients should validate them. Teams can test a server without putting a model in the loop, mock it with recorded or synthetic behavior, and contract-test both sides as they would a REST or gRPC boundary.</p>



<p class="wp-block-paragraph">This separates two kinds of uncertainty that agent evaluations often mix together. Protocol tests can determine whether an integration exchanged valid messages and enforced its contract. Model evaluation can focus on whether the agent chose the right tool and interpreted the result well. OpenTelemetry’s emerging conventions extend this approach to runtime evidence by giving systems a common language for tool calls. Teams will still have to absorb changes as those conventions mature.</p>



<p class="wp-block-paragraph">These benefits stop at the edge of what the interfaces describe. A schema captures the shape of a tool’s arguments, while its meaning still lives largely in a free-form description that a model must interpret. A schema cannot tell an agent when a tool is appropriate, how its effects interact with other tools, or whether two similarly named operations have equivalent semantics. Portability makes a server available across hosts; behavior can still vary across models and contexts.</p>



<p class="wp-block-paragraph">The semantic gap leads to a trust gap. MCP can carry a server’s claims, and an A2A Agent Card can carry a digital signature, but a signature only ties a statement to an identity. Engineering organizations still need a basis for deciding which identities, publishers, code, and claims deserve authority. The protocol can carry that decision through a system. It does not make the decision for the organization.</p>



<p class="wp-block-paragraph">Delegation makes the problem harder. MCP’s authorization model handles a client calling a server with an audience-bound token. Production systems increasingly involve an agent calling another agent, which calls a tool or a third agent. Preventing token passthrough closes a serious hole, yet each downstream hop still needs a narrower grant derived from the user’s original authority. No common mechanism defines how those rights should attenuate across an arbitrary chain. Platforms currently solve this locally or leave too much authority in place.</p>



<p class="wp-block-paragraph">All of this work is unfolding on young infrastructure. The registry is in preview, the telemetry conventions are unstable, and MCP has produced five dated protocol revisions in less than two years. Revision is how standards mature, so teams should version-pin, keep protocol code behind thin internal adapters, and budget for migrations. Some abstractions will prove wrong because the standards and the underlying practice are developing at the same time.</p>



<p class="wp-block-paragraph">A sensible response begins with ownership and containment. Each internal server needs a durable owner, and its protocol surface should be treated as an architecture decision. Schema validation, conformance tests, and protocol mocks put that seam under contract. Third-party servers belong behind an allowlist or private catalog, with provenance requirements and corroboration for their annotations. An internal abstraction around the emerging telemetry vocabulary can limit exposure to draft revisions.</p>



<p class="wp-block-paragraph">Organizations with a large stake in agents should also participate in the standards work. The Agentic AI Foundation and the A2A project are young enough that engineering teams outside the founding companies can still influence what becomes portable, observable, and enforceable. The rules written now will become assumptions embedded in future products.</p>



<p class="wp-block-paragraph">Model improvements will continue to generate the headlines. Standards determine whether those models can participate in an ecosystem. Ethernet mattered because it became an interface that many implementers could agree on, and language servers mattered because editors and language tools no longer needed to be designed in pairs. Agent systems now have their first interfaces that competitors jointly govern and independently implement. Engineering teams should build on them with two expectations: The interfaces are likely to last, and their current forms will change.</p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/the-interfaces-are-arriving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Operating Mode as Runtime State: A Contract for Enterprise</title>
		<link>https://www.oreilly.com/radar/operating-mode-as-runtime-state-a-contract-for-enterprise/</link>
				<comments>https://www.oreilly.com/radar/operating-mode-as-runtime-state-a-contract-for-enterprise/#respond</comments>
				<pubDate>Fri, 11 Sep 2026 10:51:08 +0000</pubDate>
					<dc:creator><![CDATA[Shreshta Shyamsundar and Chidambaram GS]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19649</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Operating-mode-as-runtime-state.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Operating-mode-as-runtime-state-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[How explicit organizational state helps agent platforms avoid exception drift]]></custom:subtitle>
		
				<description><![CDATA[During a service incident, a customer-remediation workflow is moved onto an emergency route because the situation is critical and the team needs a fast resolution. Approvals are shortened, a priority queue is opened, and an on-call agent is cleared to use an alternate procedure until the service recovers. The incident ends, but the route stays [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">During a service incident, a customer-remediation workflow is moved onto an emergency route because the situation is critical and the team needs a fast resolution. Approvals are shortened, a priority queue is opened, and an on-call agent is cleared to use an alternate procedure until the service recovers. The incident ends, but the route stays active for a small customer segment after everyone has moved on.</p>



<p class="wp-block-paragraph">The emergency route itself was fine. Production systems need emergency routes, and a human approved this one. The trouble is that the route now runs without a live incident, an owner, or an expiry condition. A controlled exception has quietly settled into the platform’s standard runtime behavior.</p>



<p class="wp-block-paragraph">This article is about that execution layer: the temporary operating state that lingers in runtime behavior. Temporary authority is easy to grant under pressure and hard to retire once the pressure lifts. An enterprise agent shouldn’t have to guess from prompts or conversation history whether it’s running under normal, incident, or recovery conditions. That state should be handed to it as authoritative runtime input, the way platforms already hand over identity, tenant, environment, and permissions.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong><em>An exception is safe while the incident that justified it is live. It becomes dangerous the moment the platform can no longer show the incident has ended.</em></strong></p>
</blockquote>



<h2 class="wp-block-heading"><strong>The problem is unmanaged exception state</strong></h2>



<p class="wp-block-paragraph">Exception drift is what happens when temporary exception behavior outlives its authorized scope, authority, or duration, and emergency accommodations settle into normal execution. The drift is usually quiet: a routing rule that stays reachable, an approval shortcut that survives closure, a tool permission that keeps shaping execution after the triggering condition has passed.</p>



<p class="wp-block-paragraph">Enterprises already have the human machinery for this. Incident management defines abnormal conditions, change control governs deviations from standard practice, and postincident reviews confirm that temporary measures have closed.<sup data-fn="43d0be2b-7142-441d-8688-c7d7330419a3" class="fn"><a href="#43d0be2b-7142-441d-8688-c7d7330419a3" id="43d0be2b-7142-441d-8688-c7d7330419a3-link">1</a></sup>,<sup data-fn="a7938071-bb84-4b6d-9725-635d25fd7d4a" class="fn"><a href="#a7938071-bb84-4b6d-9725-635d25fd7d4a" id="a7938071-bb84-4b6d-9725-635d25fd7d4a-link">2</a></sup> The gap is architectural. Most agent platforms still treat organizational operating state as something outside the runtime rather than an input to it.</p>



<p class="wp-block-paragraph">Once an accommodation proves useful, it fades into an invisible operating state. The routing rule stays enabled, the shortened approval path stays reachable, and the temporary queue keeps taking work. No dramatic model failure is required, only a platform with no reliable way to close runtime state.</p>



<p class="wp-block-paragraph">The practical question to ask is “Which operating mode is active for this workflow, this user, this segment, at this moment?” When the answer is left implicit, every agent, workflow, and tool gateway invents its own. Discussions of agent architecture tend to dwell on capabilities such as models, tools, and orchestration, yet production behavior depends just as much on runtime context: identity, tenant, environment, permissions, session state, policy, and tool access. One piece of that context is usually absent. The runtime knows who is acting and what they may do but not whether the organization is under normal conditions, incident response, recovery review, or a declared exception. Exception drift begins in that blind spot.</p>



<h2 class="wp-block-heading"><strong>The exception lifecycle</strong></h2>



<p class="wp-block-paragraph">Organizations move through a predictable sequence: normal operations, incident declaration, a temporary exception window, closure review, and return to normal. Each stage answers a question, from why the exception exists and who authorized it to what evidence shows it’s no longer shaping execution. Most enterprises handle the front of that sequence well; they’re practiced at declaring incidents and authorizing workarounds. The hard part is the retirement: proving that the exception behavior actually disappeared.</p>



<p class="wp-block-paragraph">Declaring an exception is loud. Retiring one is quiet, especially when the workaround improved throughput or helped the team recover faster. That asymmetry is where drift lives, because an incident can be closed on paper while emergency routing, override policies, or alternate workflows keep influencing execution. From the platform’s point of view, the lifecycle should close only when it can show that every exception path has been retired or formally adopted through change governance.</p>



<h2 class="wp-block-heading"><strong>Why this matters more for AI agents</strong></h2>



<p class="wp-block-paragraph">Agents raise the stakes because they act. Rather than sitting in a config file, they select tools, trigger workflows, coordinate with other agents, and adapt their paths at runtime. An accommodation introduced during an incident can spread through routing, tool use, approval paths, and downstream agents. A traditional exception stays legible in a runbook or workflow definition; an agent can carry the same exception along many paths at once, which makes it harder to find and retire.</p>



<p class="wp-block-paragraph">For engineers, the missing layer is an authoritative operational-state context that arrives with the request rather than being inferred from it. Historical traces and retained memory can explain why an accommodation once existed. They should never decide whether it’s still authorized. Memory informs execution; operating mode governs it. And when the two disagree, authoritative runtime state wins.</p>



<p class="wp-block-paragraph">A small example shows the shape of that context. It carries the minimum needed to bind an exception to a mode, a scope, an authority, an expiry, and a status:</p>



<pre class="wp-block-code"><code>{
  "mode": "incident",
  "exception_id": "INC-4721",
  "scope": {
    "segment": "premium-customers",
    "region": "us-east",
    "workflow": "customer-remediation"
  },
  "authority": "service-owner",
  "expires": "incident-close",
  "status": "active"
}</code></pre>



<p class="wp-block-paragraph">The pattern sits near familiar ones without matching them. Feature-flag platforms such as LaunchDarkly target behavior by context, RBAC governs what a principal may do, and tenancy metadata tells a service where a request belongs.<sup data-fn="62832dbf-4d5b-43db-ac83-1b7733aadd68" class="fn"><a href="#62832dbf-4d5b-43db-ac83-1b7733aadd68" id="62832dbf-4d5b-43db-ac83-1b7733aadd68-link">3</a></sup> Operating mode serves a different purpose. It doesn’t replace policy, permissions, or memory: Permissions determine who may act, and policies determine how they may act. Operating mode determines whether exception behavior is authorized at all. As a result, it acts as a higher-order governance constraint on agents, workflows, approvals, tools, and escalation paths. Operating mode draws its authority from the organization’s incident and change process and represents a governed state of the enterprise, consumed by the runtime.</p>



<h2 class="wp-block-heading"><strong>A design pattern for exception-aware agents</strong></h2>



<p class="wp-block-paragraph">Operating mode becomes actionable once the platform treats it as a first-class runtime construct. Most agent architectures already inject identity, permissions, tenant context, and policy into every request, and operating mode belongs in that set. Agents consume it as authoritative state after the organization declares the exception, scopes it, assigns authority, and sets an expiry, instead of reconstructing it from prompts or accumulated context.</p>



<p class="wp-block-paragraph">That reframes the architectural question as whether the platform can guarantee that exception behavior is impossible outside an authorized operating mode. Emergency behavior exists because the platform enables it, and for no other reason. Table 1 shows the minimum contract that makes the boundary testable.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Field</strong></td><td><strong>Purpose</strong></td><td><strong>Example</strong></td></tr><tr><td>Mode</td><td>Current operating state</td><td>Normal, incident, recovery</td></tr><tr><td>Exception ID</td><td>Unique identifier for tracking and validation</td><td>INC-4721</td></tr><tr><td>Scope</td><td>Boundaries affected by the exception</td><td>Workflow, region, customer segment</td></tr><tr><td>Authority</td><td>Owner who approved the exception</td><td>Service-owner</td></tr><tr><td>Expiry</td><td>When the exception ceases to be valid</td><td>Incident closure, timestamp</td></tr><tr><td>Status</td><td>Current lifecycle state</td><td>Active, closed, retired</td></tr></tbody></table><figcaption class="wp-element-caption"><em>Table 1. Runtime contract for exception-aware agents</em></figcaption></figure>



<p class="wp-block-paragraph">A workflow invocation receives that state alongside the user request, and orchestration, routing, and tool gateways read the same state. Figure 1 shows the shape.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1165" height="777" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3.png" alt="Figure 1. Operating mode is published by the systems that own it and injected into the agent runtime." class="wp-image-19650" style="aspect-ratio:1.6644518272425248;width:563px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3.png 1165w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3-300x200.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3-768x512.png 768w" sizes="auto, (max-width: 1165px) 100vw, 1165px" /><figcaption class="wp-element-caption"><em>Figure 1. Operating mode is published by the systems that own it and injected into the agent runtime.</em></figcaption></figure>
</div>


<h2 class="wp-block-heading"><strong>Building an exception-aware control plane</strong></h2>



<p class="wp-block-paragraph">The natural home for operating mode is an external control plane. Incident management platforms, maintenance window services, and change management workflows already hold authoritative operational state, and exception-aware architectures extend those signals into execution with explicit scope, authority, expiry, and closure semantics.<sup data-fn="85e1cb9a-a808-4096-b8eb-781117dfca72" class="fn"><a href="#85e1cb9a-a808-4096-b8eb-781117dfca72" id="85e1cb9a-a808-4096-b8eb-781117dfca72-link">4</a></sup>,<sup data-fn="23b1a122-6973-458e-a111-acd5104ee895" class="fn"><a href="#23b1a122-6973-458e-a111-acd5104ee895" id="23b1a122-6973-458e-a111-acd5104ee895-link">5</a></sup> Implementation will vary across organizations, but the principle holds: Exception state should be authoritative, observable, and externally managed, kept out of prompts and workflow definitions and away from agent memory.</p>



<h2 class="wp-block-heading"><strong>Exception-aware execution</strong></h2>



<p class="wp-block-paragraph">With explicit operating state, behavior shifts when system state shifts, and prompt wording stops being the lever. Under normal operations, agents run standard workflows, routing, and approvals. Under incident mode, the same workflows can expose scoped accommodations that the authorized mode makes available, such as expedited approvals, alternate routing, deferred reviews, or emergency runbooks.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Capability</strong></td><td><strong>Normal mode</strong></td><td><strong>Incident mode</strong></td></tr><tr><td>Approval path</td><td>Standard workflow</td><td>Expedited approval</td></tr><tr><td>Queue routing</td><td>Primary queue</td><td>Alternate queue</td></tr><tr><td>Manual review</td><td>Mandatory</td><td>Deferred where authorized</td></tr><tr><td>Tool access</td><td>Standard permissions</td><td>Emergency tools enabled</td></tr><tr><td>SLA handling</td><td>Standard policy</td><td>Incident response workflow</td></tr></tbody></table><figcaption class="wp-element-caption"><em>Table 2. Example runtime behavior across operating modes</em></figcaption></figure>



<p class="wp-block-paragraph">Table 2’s payoff is testability. A workflow in normal mode should never reach an emergency path, and a workflow in incident mode should reach only the accommodations its scope, authority, and expiry allow. Governance becomes an enforceable runtime property the platform can check at execution time.</p>



<p class="wp-block-paragraph">Return to the opening incident. With operating mode as runtime state, the emergency route opens only inside a declared exception: scoped to the affected segment and workflow, owned by the service owner, and stamped with an expiry tied to incident closure. When the incident closes, the mode returns to normal and the routing gate stops handing that route to the segment, ahead of any manual cleanup. Closure then runs as a check. The platform replays the exception’s scope against live routing, approval, tool, and queue configuration, and confirms that no path still resolves to the emergency behavior. No one has to remember to retire the route; it was bounded by state, and the platform can show it is gone.</p>



<h2 class="wp-block-heading"><strong>A common operating model for multi-agent systems</strong></h2>



<p class="wp-block-paragraph">The problem compounds across collaborating agents. Customer-facing, orchestration, and execution agents may share a workflow while disagreeing about state, so one keeps applying emergency routing after another has returned to standard controls. A shared operating state gives them a single governance boundary: The exception is represented once and read consistently everywhere. As agent ecosystems grow more autonomous, shared operational state matters as much as shared identity and authorization. Fragmented state produces fragmented accountability.</p>



<h2 class="wp-block-heading"><strong>Making exception drift observable</strong></h2>



<p class="wp-block-paragraph">The payoff is observability. These conditions have historically been hard to see because accommodations scatter across workflow definitions, approval policies, routing configurations, and tool permissions. Explicit operating state makes them measurable at runtime. Closure can trigger automated validation, and the platform can watch for residual exception behavior between closures. The revealing checks are direct: Is the exception’s routing path still reachable, do its temporary approvals or elevated permissions still resolve, and does any expired exception still touch behavior? Tracking how many exceptions are open, how long they stay open, and how often they harden into permanent change turns drift from an audit finding into a monitored signal.</p>



<h2 class="wp-block-heading"><strong>From adaptive agents to governed systems</strong></h2>



<p class="wp-block-paragraph">Table 3 captures the shift. Traditional governance documents exceptions and trusts that they are retired. An exception-aware platform represents them as runtime state that can be propagated, validated, monitored, and closed.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Traditional approach</strong></td><td><strong>Exception-aware approach</strong></td></tr><tr><td>Exceptions are documented.</td><td>Exceptions are represented as runtime state.</td></tr><tr><td>Closure is procedural.</td><td>Closure is validated.</td></tr><tr><td>Audit relies on evidence collection.</td><td>Audit relies on observable state.</td></tr><tr><td>Exception behavior can persist silently.</td><td>Drift becomes detectable.</td></tr><tr><td>Agents infer context.</td><td>Agents consume authoritative state.</td></tr></tbody></table><figcaption class="wp-element-caption"><em>Table 3. Traditional versus exception-aware platforms</em></figcaption></figure>



<p class="wp-block-paragraph">The test is whether the platform can demonstrate that the exception stayed bounded to its purpose and duration.</p>



<p class="wp-block-paragraph">None of this demands a new governance model. Organizations already know how to govern identity, permissions, change, and operational risk, and the recommendation is to extend those disciplines to operating state. Once operating mode is authoritative, observable, and testable, drift becomes detectable, closure verifiable, and recovery an engineering result. The aim is a platform that can make its own operating conditions explicit, hold every agent to them, and demonstrate a clean return to normal. In that model, temporary accommodations stay temporary, governance lives in the architecture, and enterprise agents earn trust at scale.</p>



<h2 class="wp-block-heading">References</h2>


<ol class="wp-block-footnotes"><li id="43d0be2b-7142-441d-8688-c7d7330419a3">ISO, “ISO 22301:2019: Security and resilience—Business continuity management systems—Requirements,” International Organization for Standardization, 2019. <a href="https://www.iso.org/standard/75106.html" target="_blank" rel="noopener">https://www.iso.org/standard/75106.html</a> <a href="#43d0be2b-7142-441d-8688-c7d7330419a3-link" aria-label="Jump to footnote reference 1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li><li id="a7938071-bb84-4b6d-9725-635d25fd7d4a">Axelos, “ITIL 4: Change enablement,” IT service management practice, 2019. <a href="https://www.axelos.com" target="_blank" rel="noopener">https://www.axelos.com</a> <a href="#a7938071-bb84-4b6d-9725-635d25fd7d4a-link" aria-label="Jump to footnote reference 2"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li><li id="62832dbf-4d5b-43db-ac83-1b7733aadd68">LaunchDarkly, “Target with Flags,” LaunchDarkly Documentation. <a href="https://launchdarkly.com/docs/home/flags/target" target="_blank" rel="noopener">https://launchdarkly.com/docs/home/flags/target</a> <a href="#62832dbf-4d5b-43db-ac83-1b7733aadd68-link" aria-label="Jump to footnote reference 3"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li><li id="85e1cb9a-a808-4096-b8eb-781117dfca72">ServiceNow, “Change Management,” ServiceNow Product Documentation. <a href="https://docs.servicenow.com" target="_blank" rel="noopener">https://docs.servicenow.com</a> <a href="#85e1cb9a-a808-4096-b8eb-781117dfca72-link" aria-label="Jump to footnote reference 4"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li><li id="23b1a122-6973-458e-a111-acd5104ee895">PagerDuty, “Maintenance Windows,” PagerDuty Support Documentation. <a href="https://support.pagerduty.com/main/docs/maintenance-windows" target="_blank" rel="noopener">https://support.pagerduty.com/main/docs/maintenance-windows</a> <a href="#23b1a122-6973-458e-a111-acd5104ee895-link" aria-label="Jump to footnote reference 5"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li></ol>]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/operating-mode-as-runtime-state-a-contract-for-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>When Content Is Free, Trust Is the Product</title>
		<link>https://www.oreilly.com/radar/when-content-is-free-trust-is-the-product/</link>
				<comments>https://www.oreilly.com/radar/when-content-is-free-trust-is-the-product/#respond</comments>
				<pubDate>Thu, 10 Sep 2026 16:00:50 +0000</pubDate>
					<dc:creator><![CDATA[Julie Baron]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19630</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/When-content-is-free_adjusted4.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="818" 
				height="630" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/When-content-is-free_adjusted4-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[There is more technical content available today than any human being could read in a thousand lifetimes. Every topic has a dozen YouTube videos, three Substack posts, a GitHub repo, and a Reddit thread, most created in the last six months and, in many cases, technically accurate. And yet most of the professionals I talk [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">There is more technical content available today than any human being could read in a thousand lifetimes. Every topic has a dozen YouTube videos, three Substack posts, a GitHub repo, and a Reddit thread, most created in the last six months and, in many cases, technically accurate. And yet most of the professionals I talk to say they don’t know what to trust. They can’t tell what’s important to read first, or which of 10 plausible answers is the one that holds up. That was true before AI, and AI has made it more true.</p>



<p class="wp-block-paragraph">For most of the history of technical publishing, editing and verification were the same process, and that process was slow and expensive. Getting a book out took years. We found an author, vetted them, had them work with an editor, and checked their claims with technical reviewers. A lot of that time went into separating what was correct and useful from what was confusing or only sounded right. It was laborious, but it meant a reader could depend on the claims on the page. The credibility of the book, and of the publisher behind it, mattered as much as the information itself.</p>



<p class="wp-block-paragraph">When the cost of production drops to zero, that credibility becomes worth more, not less. Content is easier to make than ever, but without a transparent process behind it, readers have no idea where the knowledge came from or whether it holds up. As Jasmine Sun puts it in “<a href="https://on.substack.com/p/the-independent-writers-advantage" target="_blank" rel="noopener">The Independent Writer’s Advantage in the Age of AI</a>,” “Trust is not about information and its quality alone. It’s about the messenger. It’s about who says it and their track record and what they’ve told me before.” A practitioner has confidence in a source because someone she respects has put their reputation on the line for it. They believe what the author is saying because the publisher has a history of being right and of correcting itself when it isn’t, and because the work is attributed and verifiable.</p>



<p class="wp-block-paragraph">The corpus matters, but it’s the assurances around it that are hard to replicate, and that comes not just from the people who produce the content but from the people whose judgment vouches for it. Sometimes a creator brings their own credibility with them. Other times, the publisher spots someone unknown and lends them its own. The art critic Dave Hickey said this about gallery owners in <em>Air Guitar</em>: They gain status from the famous artists they represent and share it with emerging talent who have something to offer but who haven’t had the chance to earn a reputation. This is what O’Reilly has done for nearly half a century, build a network of experts who vouch for what’s worth knowing.</p>



<h2 class="wp-block-heading"><strong>Expertise is alive, and it compounds</strong></h2>



<p class="wp-block-paragraph">Expertise is a living thing, continuously expanding. Content starts to decay the moment it’s published, because frameworks evolve, libraries deprecate, and yesterday’s best practice becomes today’s security incident. Keeping expertise alive requires a pipeline of people who stay current and an editorial layer that notices when something has gone stale, and either retires it or calls for a fix.</p>



<p class="wp-block-paragraph">That pipeline isn’t something you switch on when an author has a book to ship. At O’Reilly, we’ve always prided ourselves on living at the bleeding edge, finding what Tim O’Reilly calls “the alpha geeks” and spreading what they know to everyone else. Content sits at the center of our platform, but we think about it in pace layers. Some advice is timeless, some moves but has a long shelf life (some of our books are still in print after nearly 50 years!), and some changes weekly. We work with experts at each pace layer, capturing what lasts while doing our best to keep pace with an industry that seems to have changed every time we wake up. We have relationships with hundreds of the best practitioners in the world, and our job is to keep them engaged continuously, with quick takes when something breaks, structured responses when major research drops, and live sessions on emerging topics while they’re still emerging.</p>



<p class="wp-block-paragraph">An institution doesn’t stamp trust onto content. In a technical community, trust is conferred in both directions. A practitioner earns standing because people who already have standing engage with her work, cite it, argue with it, and build on it. That insight was the whole idea behind PageRank, Google’s first great innovation. A page mattered because other pages that mattered linked to it. Reputation works the same way.</p>



<p class="wp-block-paragraph">The audience isn’t just consuming reputation signals; it’s generating them. When a senior engineer whose judgment others respect says out loud that something is worth reading, she spends a little of her own credibility; the author gains a little; and everyone watching recalibrates whom to trust next time. O’Reilly plugs into that existing economy of reputation. When we put our mark on someone’s work, we aren’t the sole source of its credibility. We’re amplifying a judgment the community is already making and adding our own track record to it. The reader who finds it reliable hands status back to the source.</p>



<h2 class="wp-block-heading"><strong>When the readers are machines</strong></h2>



<p class="wp-block-paragraph">Human practitioners aren’t the only ones who need trusted engineering knowledge. The AI systems now sitting in every workflow, the coding and debugging agents and architecture advisors, need it just as badly since most of them are built on scraped web data and documentation that was stale before it was ever indexed. They’re fluent, but they’re wrong often enough that you can’t just take their word for it.</p>



<p class="wp-block-paragraph">The stakes grow with AI increasingly being used to generate not just provably correct types of content like code, which either works or it doesn’t, but persuasive documents in fuzzier areas like hiring, strategy, and so on. Like everyone else leaning on these tools, we at O’Reilly are reckoning with the consequences of the ability to talk to a model and get back something that looks smart at a glance. A few rounds in, the slop is still there. In the last few months, maybe 10 times as many documents have crossed our desks, from new product ideas to strategic plans and proposals. But the ease of generating the text hides the fact that either the model or the person prompting it doesn’t actually know what they’re talking about. Knowledge workers need ways to ground their work in insights from human experts, particularly when that work is AI-assisted. So we’re building tools that let agents draw on our repository of expertise to support their proposed decisions.</p>



<p class="wp-block-paragraph">Credible sources are particularly important when thinking through and justifying important choices. Our CTO, Andrew Odewahn, describes the shift this way: “18 months ago, it was all about how to get engineers to be more productive, but now it’s about how to get organizations to make better decisions. The engineering tasks are moving away from coding output to planning.” For planning tasks like comparing implementation approaches, you need <a href="https://www.oreilly.com/radar/building-organizational-intelligence/" target="_blank" rel="noopener">expert-over-your-shoulder guidance</a> for contextual decision-making. You can’t just rely on an LLM’s best guess to solve your problem, which is why we see great opportunity for new products like <a href="https://www.oreilly.com/online-learning/expert-intelligence.html" target="_blank" rel="noopener">O’Reilly’s Expert Intelligence offering</a> that delivers grounded knowledge embedded in your AI tools and your workflows to help navigate what you do. Trust is foundational because the expertise behind it stays genuine, practical, and human.</p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/when-content-is-free-trust-is-the-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Generative AI in the Real World: Local Voice AI with Pete Warden</title>
		<link>https://www.oreilly.com/radar/podcast/generative-ai-in-the-real-world-local-voice-ai-with-pete-warden/</link>
				<comments>https://www.oreilly.com/radar/podcast/generative-ai-in-the-real-world-local-voice-ai-with-pete-warden/#respond</comments>
				<pubDate>Thu, 10 Sep 2026 13:05:06 +0000</pubDate>
					<dc:creator><![CDATA[Ben Lorica and Pete Warden]]></dc:creator>
						<category><![CDATA[Generative AI in the Real World]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?post_type=podcast&#038;p=19629</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2024/01/Podcast_Cover_GenAI_in_the_Real_World-scaled.png" 
				medium="image" 
				type="image/png" 
				width="2560" 
				height="2560" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2024/01/Podcast_Cover_GenAI_in_the_Real_World-160x160.png" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[Pete Warden has spent his career on the frontier of small, local AI, first as one of deep learning&#8217;s earliest engineers (he coined the term “TinyML”) and now as founder of Useful Sensors and Moonshine AI, where he builds voice models that run entirely on-device. Pete joined Ben to make the case that local AI [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pete Warden has spent his career on the frontier of small, local AI, first as one of deep learning&#8217;s earliest engineers (he coined the term “<a href="https://learning.oreilly.com/library/view/tinyml/9781492052036/" target="_blank" rel="noopener">TinyML</a>”) and now as founder of Useful Sensors and <a href="https://www.moonshine.ai/" target="_blank" rel="noopener">Moonshine AI</a>, where he builds voice models that run entirely on-device. Pete joined Ben to make the case that local AI no longer has to be a compromise. They get into what it actually takes to run a capable model on a laptop today; why the voice interface’s bad reputation is a consequence of rough, early implementations rather than a reflection of current capabilities; and where he stands in the ongoing debate between general “end-to-end” models and the compound AI approach of chaining specialized models together. Pete also explains why he thinks browser-based inference could be an &#8220;iPhone moment&#8221; for local AI and why more and more enterprises are considering self-hosted local models over commercial options. &#8220;The shape of [LLMs] is perfect for running locally,&#8221; Pete says, and local models could be a boon to enterprises worried about cost, privacy, and stability.</p>



<p class="wp-block-paragraph">About the <em>Generative AI in the Real World</em> podcast: In 2023, ChatGPT put AI on everyone’s agenda. In 2026, the challenge will be turning those agendas into reality. In Generative AI in the Real World, Ben Lorica interviews leaders who are building with AI. Learn from their experience to help put AI to work in your enterprise.</p>



<p class="wp-block-paragraph">Check out other episodes of this podcast on the <a href="https://learning.oreilly.com/playlists/42123a72-1108-40f1-91c0-adbfb9f4983b/" target="_blank" rel="noopener">O’Reilly learning platform</a> or follow us on <a href="https://www.youtube.com/playlist?list=PL055Epbe6d5YcJUhZbsVW9dlMueIuOxK_" target="_blank" rel="noopener">YouTube</a>, <a href="https://open.spotify.com/show/5C9oof8TFkP65lDUcEy5jT" target="_blank" rel="noopener">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/generative-ai-in-the-real-world/id1835476293" target="_blank" rel="noopener">Apple</a>, or wherever you get your podcasts.</p>



<h2 class="wp-block-heading">Takeaways</h2>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=_s_bkRFWY32x2B_Q&amp;t=86" target="_blank" rel="noopener">01.26</a> <strong>The usability gap is smaller than the marketing gap.</strong> The capabilities of local models are only a few months behind those from the big commercial companies, but because there&#8217;s no subscription revenue model behind local models, they often go unpromoted. “It&#8217;s very hard to make money off local models,” Pete explains, so the big companies aren’t focused on selling them. “Every company is going to go for the [product] that has an easy subscription revenue model. And that means you have a massive ton of marketing around all of these tools that are kind of like, ‘Oh, let&#8217;s have a little text box on a website.’ And so it means mostly that people have never heard of these local models.”</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=XRT5wEYWefyCByQS&amp;t=260" target="_blank" rel="noopener">04.20</a> <strong>Local models are already good enough for most use cases.</strong> Pete compares the moment to the early web, when free alternatives like Apache eventually overtook expensive commercial servers. “All of these alternatives, once people actually had time to look around and they had a little bit of time to improve, they just wiped the floor with the commercial [offerings],” he points out. “I don&#8217;t know if we&#8217;re going to quite get there, but that&#8217;s the kind of pattern that I&#8217;m seeing.”</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=I-PXcTiTr1kiwDUg&amp;t=446" target="_blank" rel="noopener">07.26</a> <strong>“The hardware barriers are a lot lower than people think.”</strong> Ben and Pete discuss what hardware you actually need to get up and running, from parameter counts, quantization (Q4, 8-bit), and VRAM requirements to the new Apple M5 Studio&#8217;s unified memory as a way to run very large models locally at usable speed. “The key thing is whether you can fit [your model] into your graphics card’s memory,” Pete says. “So with weight quantization, 9 billion [parameters] if it was 8 bits is like 9 GB. A lot of mid-end decent laptops that are shipping now have more than that.”</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=Fi_lijHznr0shXSg&amp;t=1113" target="_blank" rel="noopener">18.33</a> <strong>“It&#8217;s not that people don&#8217;t like voice interfaces. It&#8217;s that people don&#8217;t like</strong> <strong><em>bad</em></strong> <strong>voice interfaces.”</strong> We’ve solved most of the big problems, like dealing with background noise, phrasing, and speech in a range of accents—or at least have improved tools’ capabilities. However, “there&#8217;s no commercial incentive to kind of pull them all together,” Pete says. Most tools feel like they haven&#8217;t caught up to the LLM era, but “open source can be a really strong lever” to updating them, argues Pete.</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=u8ckswyAFV_kQFol&amp;t=1706" target="_blank" rel="noopener">28.26</a> <strong>We’re navigating the split between &#8220;LLM maximalist&#8221; end-to-end models (favored by big AI companies with the most capital) and the &#8220;compound AI&#8221; approach of chaining together specialized models from different sources.</strong> “If the future is end-to-end models, then only the people with the most money can actually build and train them,” Pete notes. Compound AI lets you “actually train all of the models independently” to accomplish your particular goals. While the performance of end-to-end models continues to improve, especially for multimodal models like Qwen or Gemma, using one can be a bit like choosing a Swiss Army knife over a tool specially designed to accomplish a single specific task, to use Pete’s metaphor. It may get the job done, but it’s probably not the most effective way to do it.</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=pm48yBtzCEUGA10u&amp;t=2170" target="_blank" rel="noopener">36.10</a> <strong>Voice capabilities in the browser could be a game changer.</strong> Embedding a model directly in the browser—Chrome has a built-in ~4B parameter model that’s accessible from any website via JavaScript, for instance—makes it part of the operating system. “Once you are able to transcribe fast and accurately in the browser, it&#8217;s a way for people to easily start experimenting with this stuff,” Pete explains. Could this be an iPhone moment for LLMs?</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=4URUsxUIM6tFFeza&amp;t=2398" target="_blank" rel="noopener">39:58</a> <strong>The “gravitational pull” is toward on-prem.</strong> Unlike most recent technological advances that depend on the cloud to function, LLMs are well-suited to running locally, even with no internet connectivity. Enterprises are grappling with concerns about cost, privacy, capabilities changing with no notice, or even the models they depend on disappearing. Hosting your own model, whether on your laptop or in your corporate infrastructure, gives you the stability to plan for the long term.</p>



<p class="wp-block-paragraph"><a href="https://youtu.be/4R0X9dURfFg?si=5bx1_JfzzWZm-h2G&amp;t=2661" target="_blank" rel="noopener">44:21</a> <strong>GPUs are fantastic for training but “complete overkill for inference.”</strong> Pete likens it to “trying to use an oil tanker to go and do your shopping.” Memory bandwidth is the real limiting factor, and it’s a problem that companies like Apple, with its new chip designs and unified memory bandwidth, are working on solving. “Even if you&#8217;re running on the CPU, if you have something that&#8217;s got high-enough bandwidth to pull 27 billion weights in a fraction of a second, then the rest of it is fairly easy in terms of actually doing the processing,” Pete says. “I think we&#8217;re going to see a lot of really imaginative solutions now that people understand what the workload looks like.”</p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/podcast/generative-ai-in-the-real-world-local-voice-ai-with-pete-warden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Own the Outer Loop</title>
		<link>https://www.oreilly.com/radar/own-the-outer-loop/</link>
				<comments>https://www.oreilly.com/radar/own-the-outer-loop/#respond</comments>
				<pubDate>Wed, 09 Sep 2026 15:55:23 +0000</pubDate>
					<dc:creator><![CDATA[Addy Osmani]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19597</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Own-the-outer-loop.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Own-the-outer-loop-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[Why loop engineering needs a human at the boundary]]></custom:subtitle>
		
				<description><![CDATA[The following article originally appeared on Addy Osmani’s blog and is being republished here with the author’s permission. In the past year, the conversation around agentic engineering has moved to harnesses and loops, fleets and software factories. My 2 cents is engineers need to own the outer loop—the accountability for these systems. This only gets [&#8230;]]]></description>
								<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>The following article originally appeared on</em> <em><a href="https://addyo.substack.com/p/own-the-outer-loop" target="_blank" rel="noopener">Addy Osmani’s blog</a></em> <em>and is being republished here with the author’s permission.</em></p>
</blockquote>



<p class="wp-block-paragraph">In the past year, the conversation around <strong>agentic engineering</strong> has moved to <strong>harnesses</strong> and <strong><a href="https://x.com/addyosmani/article/2064127981161959567?lang=en" target="_blank" rel="noopener">loops</a></strong>, <strong>fleets</strong> and <strong>software factories</strong>. My 2 cents is engineers need to <strong>own the outer loop</strong>—the <strong>accountability</strong> for these systems. This only gets more true as powerful models like Fable and GPT-5.6 become available.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image.jpeg" alt="The future of engineering" class="wp-image-19598" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Agents have leverage, and leverage creates obligations. <strong>Someone must be able to explain exactly what changed, why it was safe, and what will happen if they’re wrong.</strong> Otherwise, their actions can’t be justified. Which makes it unlikely their organization will ask for them in the first place.</p>



<p class="wp-block-paragraph">And so I want to talk about three terms. The first, <strong>Quality</strong>, refers to all the checks we install before we let the system loose. Those checks produce evidence, and from that evidence we derive a Verdict.</p>



<p class="wp-block-paragraph">The second, <strong>Verdict</strong>, refers to the final decision we make before work enters our dependent system: I’m the line-producer of this content. I run the team whose work is shipped under my name. The model may write the line, but the Verdict is mine. The work of my team will not enter our dependent systems without my decision. A Verdict is the production decision: Should we ship, block, redirect, narrow the response, add a guardrail, or reject outright?</p>



<p class="wp-block-paragraph">The third, <strong>Answerability</strong>, refers to the guarantee that if someone asks, I can explain why.</p>



<p class="wp-block-paragraph">To say this another way: Our agent (which I define as a model plus a harness of files, tools, memory, skills, sandboxes, permissions, observability, and recovery) is what runs our loop (which I define as investigation, implementation, verification, and repeat). And it’s what creates our software factory.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1.jpeg" alt="Harness engineering" class="wp-image-19599" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">The model is just the engine. The harness—tools, memory, permissions, sandboxes, tests—is the car you build around it so it can do real work safely.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2.jpeg" alt="Loop engineering" class="wp-image-19600" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">The loop is how one good run becomes a process you can trust to run again. Wrap that harness in a repeatable cycle—investigate, implement, verify, repeat—where an independent check, not the model’s own say-so, decides when the work is done.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3.jpeg" alt="Agentic software factory" class="wp-image-19601" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-3-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Now run many loops at once. A factory is loops at scale: The agents ship the work inside, while humans own the decisions at the boundary.</p>



<p class="wp-block-paragraph">And <strong>at the heart of that factory is a careful boundary between what’s inside the system and what’s outside it</strong>. Inside the system we collect inputs (from the product team’s intent, or knowledge of previously shipped work, or of recent incidents, or of specific feedback from users). The agent loop investigates the task, implements a plan, and verifies the result. Then, evidence crosses that boundary. A human, who owns the dependent system, sees the evidence and decides whether to proceed.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4.jpeg" alt="The loop boundary is evidence" class="wp-image-19602" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-4-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">And that, friends, is the shift we’re trying to make. Before, our agents were doing the inner loop of the execution loop. Now they run the inner execution loop. <strong>Engineers own the outer loop.</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5.jpeg" alt="What &quot;high agency&quot; means now" class="wp-image-19603" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-5-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Inside the system, there’s really just one kind of thing our agents are doing: capability. The capability to investigate tasks, implement plans, test their results, and report back. That’s the capability of a model. And as we’ve said, that future is already here.</p>



<p class="wp-block-paragraph"><strong>Outside the system, there’s a single kind of thing: agency. The agency to decide, verify, approve, and own.</strong></p>



<p class="wp-block-paragraph">We’re still talking about code, you see. It just needs to live in a place and be performed by people who know what they’re doing.</p>



<p class="wp-block-paragraph">The potential for AI code is no longer marginal. In a Sonar 2026 survey, we asked teams about the share of their commits that were AI-assisted. It was small but nontrivial. And several of the respondents said they expect the share of AI-assisted commits to grow substantially.</p>



<p class="wp-block-paragraph"><a href="https://www.sonarsource.com/state-of-code-developer-survey-report.pdf" target="_blank" rel="noopener">Sonar’s <em>2026 State of Code</em> report</a> found that 42% of committed code was AI-generated or significantly AI-assisted, with expectations for that share to keep growing rather than plateauing.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6.jpeg" alt="AI code share is no longer marginal" class="wp-image-19604" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-6-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Creation, in other words, is getting cheaper. Scarcer resources are review, validation, understanding, and maintenance.</p>



<p class="wp-block-paragraph">We moved the speed of generation faster than we moved the speed of control, and so we have a trust-verification gap. A lot of people we talk to still express some degree of distrust in AI code. Yet fewer of them seem to consistently build that distrust into their verification processes.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7.jpeg" alt="Trust without capacity" class="wp-image-19605" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-7-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">That’s a dangerous place to be. We’re going to need cheaper, clearer ways to verify the trustworthiness of AI code.</p>



<p class="wp-block-paragraph">If you look at the GitLab June 2026 report, you’ll see that governance questions have shifted.</p>



<p class="wp-block-paragraph"><a href="https://ir.gitlab.com/news/news-details/2026/GitLab-Research-Reveals-Organizations-Are-Generating-AI-Code-Faster-Than-They-Can-Control-It/default.aspx" target="_blank" rel="noopener">GitLab’s June 2026 AI accountability research</a> shows that review and validation are the current bottlenecks when using AI and, more worryingly, that governance usually happens after code creation, after we’ve accepted the risk and lost control over ownership. Today, it’s not just about control. It’s about what constraints we set on the system. It’s about how we’ll check the work with evidence, and how we’ll hold teams accountable. It’s about who will own what part of the AI lifecycle.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8.jpeg" alt="The governance gap" class="wp-image-19606" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-8-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">So the final distinction in this series is between process and quality. Quality is the concept of backpressure. We mean it literally. <strong>We don’t want to grant our agents as much autonomy as they can possibly exercise.</strong> We want to grant them just enough autonomy that we have enough backpressure to stop them, regulate them, check their work, and ensure our humanity.</p>



<p class="wp-block-paragraph">Ordinary engineering holds up a lot of signals that indicate that the work being done is doing the right thing. Type checks, tests, hooks, sandbox limits, audit logs, monitors. Our engineering systems are full of these kinds of signals, and they’re designed to provide enough backpressure to keep the system honest.</p>



<p class="wp-block-paragraph">And so as long as our agents are emitting these same signals, we can trust our ordinary engineering to provide appropriate backpressure.</p>



<p class="wp-block-paragraph"><strong>Trusting our systems doesn’t mean we don’t want a human in the loop.</strong> It just means that the human doesn’t need to be in the inner loop. <strong>We want them in the constraints loop</strong> (What inputs, architectures, instructions, or invariants should we set?), <strong>the sampling loop</strong> (How much output should we sample and review?), <strong>the audit loop</strong> (What evidence should we keep, and how do we make sure our audit log is effective?), <strong>and the ownership loop</strong> (What part of the production boundary should we own?).</p>



<p class="wp-block-paragraph">But the human doesn’t need to be in the inner loop.</p>



<p class="wp-block-paragraph">The agent can ship more than you can review.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9.jpeg" alt="The agent can ship more than you can review" class="wp-image-19607" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-9-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">And the scarce resource is your own core human judgment, informed by quality signals like logs or tests.</p>



<p class="wp-block-paragraph">The AI June 2026 report shows that, in the experimental setting, agentic delegation along hour-scale time horizons is essentially here. The work by <a href="https://openai.com/index/how-agents-are-transforming-work/" target="_blank" rel="noopener">OpenAI this year on agents and the future of work</a> was a great source for these ideas. So we need to start thinking about how to establish this ownership boundary, as our systems start shipping more than we can review.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10.jpeg" alt="" class="wp-image-19608" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-10-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">And that’s where the answerability comes in.</p>



<p class="wp-block-paragraph">Because with long-horizon agents, the decisions made over hour-scale time horizons are just that—decisions. And not all the decisions are going to be recorded. You can’t trace them all back to input tokens. If all you’re doing is trusting that the output you get is the correct choice for the problem at hand, the hundreds or even thousands of human hours of work you’re going to need to reconstruct the chain of decisions that lead to it become impossible. And so, again, <strong>answerability becomes something that must be at the core of our system design</strong>.</p>



<h2 class="wp-block-heading"><strong>Three hidden costs</strong></h2>



<p class="wp-block-paragraph">And there are three hidden costs:</p>



<p class="wp-block-paragraph"><strong>Cognitive surrender ~ blindly accepting what AI gives you.</strong> When you delegate work to an agent, the work itself may appear to be the work of the agent. But it’s actually your work. It’s your reputation. It’s your responsibility. And it’s your software that suffered the defects in the output. And it’s your software that needs to be changed to reflect that output. So the agent’s output becomes your answer. And with it comes all the accountability. The <a href="https://executiveeducation.wharton.upenn.edu/thought-leadership/wharton-at-work/2026/05/thinking-fast-slow-and-artificially/" target="_blank" rel="noopener">Wharton study</a> that put this together is reassuring when the AI is right. But when it’s wrong, the news isn’t great. When the AI was wrong, nearly three-quarters of people accepted it anyway, and felt more confident than they would have without the AI.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-11.jpeg" alt="Cognitive surrender" class="wp-image-19609" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-11.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-11-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-11-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph"><strong>Cognitive debt ~ erosion of your understanding and memory of how to solve problems.</strong> When you delegate work to an agent, you’re offloading all the thought work to the agent. And while thinking it all out yourself takes time and energy, thinking it out on a massive codebase takes resources that aren’t available when you’re trying to run up the learning curve. So the output you get is often unattainable by you. And the longer the time horizon of the agentic planning, the bigger the gap between the code the agent produces and your understanding of it becomes. The gap compounds. The debt accumulates. And the cost of climbing the learning curve grows almost exponentially.</p>



<p class="wp-block-paragraph">There’s a <a href="https://www.anthropic.com/research/AI-assistance-coding-skills" target="_blank" rel="noopener">randomized controlled trial from Anthropic</a> looking at whether engineers who lean on AI to write code understand it as well as engineers who write it themselves. The conclusion was gloomy: On a comprehension quiz, the engineers who worked through AI scored 17 percentage points lower than those who didn’t, 50% versus 67%.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12.jpeg" alt="Cognitive debt" class="wp-image-19610" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-12-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">And then there’s the <strong>orchestration tax: It’s easy to spin up lots of agents now, but your cognitive bandwidth doesn’t parallelize in the same way.</strong> Steering your agent away from the worst behaviors, sorting the work the agent produces to identify the ones that need your attention, directing it to focus on the work you care about first, verifying your most important constraints and your most dangerous assumptions before you let it run. . .</p>



<p class="wp-block-paragraph">All of that takes work, and it can’t be automated. There’s no substitute for human judgment.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13.jpeg" alt="Orchestration tax" class="wp-image-19611" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-13-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Brownfield systems are especially dangerous here, because the system behavior you have to audit doesn’t live in the code. It lives in the scars.</p>



<p class="wp-block-paragraph">Fixes? Make attention the priority in your architectural decisions. Use worktrees, scopes, and evidence to reduce the coupling between your initial plan and the work that emerges from it. Time-box the effort to resolve unactionable steps. And make change in your software strictly an opt-in permission.</p>



<p class="wp-block-paragraph"><strong>Alpha, decay, and taste: These are the three core patterns that shape careers and performances across domains.</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15.jpeg" alt="Alpha is the gap" class="wp-image-19613" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-15-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Alpha is the lead part taken up by the highest achiever in the competition, when you’re playing your highest-value game move. Decays are established patterns that everyone learns through repetition and watching others (plateaus, if you like). Taste is the earliest we can sense the lead in an alpha or the change in a decay. It’s our judgment of what’s coming before we have any evidence that anything is happening.</p>



<p class="wp-block-paragraph"><a href="https://paulgraham.com/taste.html" target="_blank" rel="noopener">Paul Graham’s point</a> is that when anyone can make anything, choosing what to make matters more, and <a href="https://x.com/mitchellh/article/2070665127331037290" target="_blank" rel="noopener">Mitchell Hashimoto’s definition</a> is the operational one: making high-quality qualitative judgments where no objective metric exists yet. From now on, taste drives everything. Alpha shifts are taste changes. And decays fade out because we start to taste something different.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16.jpeg" alt="Taste is he judgment before the metric exists" class="wp-image-19614" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-16-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Next step? Operationalize your taste. How? Give it a name that reflects what you’re trying to move from limbic to conscious. Practice it in critique and examples. Make its rationale explicit.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17.jpeg" alt="The test: Is it a capability? Then it decays" class="wp-image-19615" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-17-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">And keep making the move that delivers the most durable competitive advantage in your industry. What’s that? Keep moving the edge up from just doing the task to teaching it, systematizing it, deciding when it should be done, and owning the result.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-18.jpeg" alt="One question: What can the agent do?" class="wp-image-19616" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-18.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-18-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-18-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Everyone is a developer, but not everyone is an engineer. Engineering is what a developer turns into when they embrace a work discipline that is more strict: thorough and logically sound reasoning, consideration of constraints and tradeoffs, recognition of risk and exposure, and practical accountability.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-19.jpeg" alt="Everyone is a developer now." class="wp-image-19617" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-19.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-19-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-19-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">In the future, people will leave the administrative work of engineering and embrace new roles that emerge as engineering becomes more demanding. Roles that are unbundled from the spirit of craft but make clear what each person does. There will be those who prototype. Those who build. Those who sweep. Those who grow. Those who maintain.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-20.jpeg" alt="The future of careers" class="wp-image-19618" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-20.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-20-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-20-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">The humans hold the edge of the system in the other direction too. Increasing the alpha: choosing what is worth doing, defining the constraints within which it should be done, deciding if the evidence is sufficient to proceed, and caring for the result. Whether it’s a single team or a hundred teams, this is the edge that only humans can hold.</p>



<p class="wp-block-paragraph"><strong>Accountability will scale the factory.</strong> Like attention and taste, accountability is also one of the three dualities that makes everything work. <strong>Without accountability, there are no rules.</strong> No wrangling with questioners. No trade-offs. No risks. No safety nets. If nobody owns the consequence of a decision, then high agency can only bring chaos.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-21.jpeg" alt="Accountability scales the factory" class="wp-image-19619" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-21.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-21-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-21-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">The half-life of an edge is one release, but the half-life of a signature is a career. A signature is your name on the work, such that you feel you can stand behind what was shipped. Skills get you leverage; accountability turns leverage into trust.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-22.jpeg" alt="What decays, what doesn't" class="wp-image-19620" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-22.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-22-767x432.jpeg 767w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-22-300x169.jpeg 300w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Only people can choose. Only people inherit consequence. Agents can be asked to choose, route, merge, and escalate safely inside a policy, but they cannot inherit the consequences.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="815" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-24.jpeg" alt="The agent can choose." class="wp-image-19622" style="aspect-ratio:1.7862232779097387;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-24.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-24-300x168.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-24-766x429.jpeg 766w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">Every codebase should perhaps come with some kind of accountability contract that explicitly states the checklist that was understood when the change was accepted, the evidence that went into the decision, who was accountable for the change, and the system status after the change was blocked. Just like:</p>



<ul class="wp-block-list">
<li>Your attention and taste</li>



<li>Your evidence, verdict, and ownership</li>



<li>Your alpha, decay, and taste</li>
</ul>



<h2 class="wp-block-heading"><strong>High agency</strong></h2>



<p class="wp-block-paragraph">In a typical agentic workflow, <strong>high agency is the art of knowing when to delegate, when to inspect, when to stop, and when to own the result of a process</strong>. The ladder of agency runs from low to high: flag a potential problem, investigate it, execute against it, diagnose it, propose solutions, recommend fixes, and resolve the issue. A high rung on the agency ladder is discernment: found it, it’s not worth fixing, moving on.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-25.jpeg" alt="The agency ladder" class="wp-image-19623" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-25.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-25-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-25-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<h2 class="wp-block-heading"><strong>The 12 pillars that hold up the software factory</strong></h2>



<p class="wp-block-paragraph">Brownfield is the frontier for factories that hope to scale. All those clever little innovations may not feel like much yet, but the production environment is a lot. When building an entirely new system, it’s much easier to plan and implement sufficient backpressure mechanisms because you have full control. When you’re adding intelligent agents to a legacy system, however, it’s another matter entirely.</p>



<p class="wp-block-paragraph">Legacy systems include the entirety of production behavior, future expectations from customers, migration histories, release and budget cycle durations, unspoken assumptions, edge cases, data weirdness, runbook procedurals, and all the scars that accumulated without the will to care for the system.</p>



<p class="wp-block-paragraph">To be a steward of brownfield requires a form of durable engineering. Work has to be done to turn implicit knowledge into explicit constraints, keep it coherent across teams and through generations, formalize that knowledge into test procedures and functional specifications, and tie that knowledge to objective evidence. All while ratcheting failure into more learning. Because if the system doesn’t get the care it has always received, everything will come crashing down.</p>



<h2 class="wp-block-heading"><strong>New work is real work</strong></h2>



<p class="wp-block-paragraph"><strong>The work will get more interesting as you scale. Because when everything else is built, people will want to build new things.</strong> They’ll want to employ the alpha and taste they have developed through their craft to design new loops that can be grafted onto the software factory. Or they’ll want to build greenfield systems that employ all the knowledge of the software factory to one elegant, well-meaning, principled effort. They’ll want to design and implement new forms of evidence that will rise to the level of verification for the new systems. They’ll want to take care of brownfield systems that are now so complex they need dedicated attention. They’ll want to design and manage new backpressure mechanisms. They’ll want to design new agents. And they’ll want to build agency.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1456" height="820" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-26.jpeg" alt="Automation moves the floor" class="wp-image-19624" style="aspect-ratio:1.7777777777777777;width:752px;height:auto" title="Image" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-26.jpeg 1456w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-26-300x169.jpeg 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-26-767x432.jpeg 767w" sizes="auto, (max-width: 1456px) 100vw, 1456px" /></figure>
</div>


<p class="wp-block-paragraph">And, as they do, they’ll come to see that all this is real work. That’s a good thing.</p>



<p class="wp-block-paragraph">Automation creates bottlenecks. Bottlenecks in production that are worth owning. Because automation gives us control over industrial scale. But there’s also new bottlenecks that arise from industrial scale. <strong>The bottleneck moves from “Can we build this?” to “Should this exist? Can we answer for it?”</strong></p>



<p class="wp-block-paragraph">What I’m suggesting is a practical operating model for scaling agentic engineering. There’s inner and outer loops. The inner loop is where the work is done. Loops are designed to be as independent as possible. <strong>Put all quality assurances and verification inside the loop. Once you’ve designed and validated the loop itself, the only thing you have left to do is to grant autonomy by putting in place a back-pressure mechanism that acts to control the rate at which the loop is run and its scope of operation. And put humans in their rightful place, on the right decisions.</strong> Don’t treat understanding as a hand-off or a release gate but rather as a point of decision where humans are primed to provide their insight. And then for every artifact that exists and is fed back into production and into new teams and engineers, leave behind better artifacts.</p>



<p class="wp-block-paragraph"><strong>Build the factory; keep the lights on; make work legible, verifiable, owned.</strong></p>



<p class="wp-block-paragraph">An agent can write it. But before it reaches users, someone must explain why it should exist, why it’s safe enough to be part of production, and what they will do when it is wrong.</p>



<p class="wp-block-paragraph">That’s agentic engineering at the outer loop—that’s the work now.</p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/own-the-outer-loop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>LLMs Reward Expertise</title>
		<link>https://www.oreilly.com/radar/llms-reward-expertise/</link>
				<comments>https://www.oreilly.com/radar/llms-reward-expertise/#respond</comments>
				<pubDate>Wed, 09 Sep 2026 10:57:18 +0000</pubDate>
					<dc:creator><![CDATA[Sean Goedecke]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19594</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/LLMs-reward-expertise.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="2304" 
				height="1792" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/LLMs-reward-expertise-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[The following article originally appeared on Sean Goedecke’s blog and is being republished here with the author’s permission. In the 2010s, if you had technical gaps (say, you couldn’t write CSS), you had to either rely on a skilled colleague or just hope that the answer to your exact problem was out there on the [&#8230;]]]></description>
								<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>The following article originally appeared on</em> <em><a href="https://www.seangoedecke.com/llms-reward-expertise/" target="_blank" rel="noopener">Sean Goedecke’s blog</a></em> <em>and is being republished here with the author’s permission.</em></p>
</blockquote>



<p class="wp-block-paragraph">In the 2010s, if you had technical gaps (say, you couldn’t write CSS), you had to either rely on a skilled colleague or just hope that the answer to your exact problem was out there on the internet. Today, everyone can write sort-of-okay CSS by delegating the task to an LLM. LLMs make everybody into a generalist.</p>



<p class="wp-block-paragraph">Because of this, lots of people don’t think there’s any skill involved in working with LLMs. If you want the product that LLMs can deliver—PhD-level mathematics, pretty good but sometimes tasteless computer code, or awkward LinkedIn-style writing—you can simply ask for it. Since everyone is talking to the same models, “skilled prompters” are getting the same results as people touching LLMs for the first time.</p>



<p class="wp-block-paragraph">This is wrong. <strong>The most important skill in prompting is expertise in the domain you’re prompting for.</strong></p>



<p class="wp-block-paragraph">A good illustration of this is <a href="https://en.wikipedia.org/wiki/Terence_Tao" target="_blank" rel="noopener">Terence Tao’s conversation with ChatGPT</a> about the recently discovered counterexample to the Jacobian conjecture. This is not the same ChatGPT I talk to! I couldn’t get to where Tao gets, even with unlimited tokens to burn.</p>



<p class="wp-block-paragraph">There’s a lot to learn about good prompting from Tao’s conversation. Here are a few observations:</p>



<ul class="wp-block-list">
<li>Tao’s messages are very short and to the point. He doesn’t respond point by point to the model, just to the gist.</li>



<li>The model outputs are much more concise than when I try to talk to GPT-5.6 Sol about mathematics. By signalling expertise, Tao shunts the model into “talking-to-mathematicians” mode, not “explaining-to-amateurs” mode.</li>



<li>Tao pushes back when the model’s responses look wrong, but he doesn’t directly contradict; instead, he says things like “This looks more complex than I was hoping for.”</li>



<li>Tao makes several leaps and suggestions himself. He almost never takes the model’s advice about where to go next.</li>
</ul>



<p class="wp-block-paragraph">However, you can’t prompt like Tao on mathematical questions just by following these tips. The key to his technique is actually understanding the mathematics: pulling the relevant idea out of ChatGPT’s multiparagraph response, suggesting alternate approaches or formulations, and identifying what “looks weird.”</p>



<p class="wp-block-paragraph">Terence Tao is a better mathematician than I am a programmer. But the idea here—that <strong>domain knowledge makes you better at using LLMs</strong>—is something I’ve also experienced in my own work. If you have a good <a href="https://www.seangoedecke.com/programming-with-ai-agents-as-theory-building/" target="_blank" rel="noopener">theory of your codebase</a>, you can push the LLM <em>much</em> harder than if you have no familiarity. Because you have your own sense of what a good solution might look like, you can say, “No, I think it could be simpler here” or “But don’t we already do X?” or “Can we express this problem in these familiar terms?”</p>



<p class="wp-block-paragraph">This touches on an idea I’ve <a href="https://www.seangoedecke.com/you-cant-design-software-you-dont-work-on/" target="_blank" rel="noopener">written about before</a>: that system design problems are dominated by concrete specifics, not generic principles. Of course both are useful, but I’d rather have familiarity with the codebase than a deep general understanding of software systems. In his conversation, Terence Tao asks a lot of specific questions like “Does X work here?” or “Given Y and Z, why A?” I can’t ask those questions about the Jacobian conjecture, but I can ask them about the systems I own at GitHub.</p>



<p class="wp-block-paragraph">If you have no domain knowledge, you can cling onto the LLM to at least get <em>something</em>. That’s <a href="https://www.seangoedecke.com/ai-makes-weak-engineers-less-harmful/" target="_blank" rel="noopener">not bad</a>! But if you have domain knowledge, you can wring far more value out of the same LLM by steering it hard in the direction you want. Most of us will have to do a mix of both these approaches, since we have domain knowledge in some areas but not others.</p>



<p class="wp-block-paragraph">The usefulness of domain knowledge suggests that human expertise will continue to be useful even as models get stronger. For many tasks, <strong>the human is the bottleneck, not the model</strong>, because the difficult part is in communicating to the model exactly what kind of solution the human wants. The information is “in the model” already, but it takes a very smart human to pull it out.</p>



<p class="wp-block-paragraph"><em>This post got many</em> <em><a href="https://news.ycombinator.com/item?id=49161518" target="_blank" rel="noopener">comments</a></em> <em>on Hacker News.</em> <em><a href="https://news.ycombinator.com/item?id=49163331" target="_blank" rel="noopener">Some commenters</a></em> <em><a href="https://news.ycombinator.com/item?id=49161777" target="_blank" rel="noopener">share</a></em> <em><a href="https://news.ycombinator.com/item?id=49162234" target="_blank" rel="noopener">their anecdotes</a></em> <em>about how expertise has helped and lack of expertise has hurt.</em> <em><a href="https://news.ycombinator.com/item?id=49162433" target="_blank" rel="noopener">Other commenters</a></em> <em>say it’s plausible, but they have a sensible suspicion of a view that’s reassuring them about how they’re still valuable. I agree with that, though I suspect by the time we get around to studying this, the landscape will have changed under our feet again.</em> <em><a href="https://news.ycombinator.com/item?id=49161669" target="_blank" rel="noopener">Some commenters</a></em> <em>point out that OpenAI’s math prompts were inexpert, and so expertise isn’t required. Here I’d respond that OpenAI does have a team of expert mathematicians that checked and filtered the model’s suggested discoveries, and that you cannot currently skip that step.</em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/llms-reward-expertise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Zero to Agent in 30 Minutes: Build a Supply Chain for Agent Context with Maxim Salnikov</title>
		<link>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-supply-chain-for-agent-context-with-maxim-salnikov/</link>
				<comments>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-supply-chain-for-agent-context-with-maxim-salnikov/#respond</comments>
				<pubDate>Tue, 08 Sep 2026 18:09:53 +0000</pubDate>
					<dc:creator><![CDATA[Michelle Smith]]></dc:creator>
						<category><![CDATA[Zero to Agent in 30 Minutes]]></category>
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">https://www.oreilly.com/radar/?p=19587</guid>

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/08/USE_THIS_zero-to-agent-radar-1600x840-1.png" 
				medium="image" 
				type="image/png" 
				width="1600" 
				height="840" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/08/USE_THIS_zero-to-agent-radar-1600x840-1-160x160.png" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[Use Agent Package Manager (APM) to bring version control and policy enforcement to your AI agent skills]]></custom:subtitle>
		
				<description><![CDATA[We still haven’t solved the problem of keeping track of everything we’re feeding our AI agents. Developers now install agent skills, instructions, and other customizations from public repositories by the dozens, and those files end up scattered across user profiles, application folders, and codebases with no record of where they came from or whether they&#8217;ve [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">We still haven’t solved the problem of keeping track of everything we’re feeding our AI agents. Developers now install agent skills, instructions, and other customizations from public repositories by the dozens, and those files end up scattered across user profiles, application folders, and codebases with no record of where they came from or whether they&#8217;ve changed since they were first installed.</p>



<p class="wp-block-paragraph">In this episode of <em>Zero to Agent in 30 Minutes</em>, Microsoft senior solution engineer Maxim Salnikov walked through the <a href="https://microsoft.github.io/apm/" target="_blank" rel="noopener">Agent Package Manager (APM)</a>, a terminal-driven open source product from Microsoft that treats agent context the way modern software already treats its dependencies: versioning it, pinning it, and checking it before it ships. It’s a technical session, but rather than building an AI agent, you’ll discover how to manage all the customizations you’ve installed for your agents and make them portable, secure, and governed by policies you or your company define.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Zero to Agent in 30 Minutes: Build a Supply Chain for Agent Context with Maxim Salnikov" width="500" height="281" src="https://www.youtube.com/embed/wAcLOEhXPKM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading"><strong>How to build a supply chain for agent context</strong></h2>



<p class="wp-block-paragraph">Maxim demoed the process of setting up and using APM step-by-step. Here&#8217;s how it works.</p>



<ol class="wp-block-list">
<li><strong>Keep every customization in your codebase.</strong> Agent skills, custom instructions, and hooks tend to spread across a developer&#8217;s machine, a harness&#8217;s install folder, and enterprise-level defaults. Maxim recommends storing them in the codebase instead so that anyone on a new machine or using a new harness ends up with the same setup as everyone else. Yes, your codebase will be bigger, but the trade-off for consistency is worth it. But be sure that skills and other customizations are secure <em>before</em> adding them to your codebase. Consider building your very own enterprise repository of the customizations you’ve identified as safe to use. (See step 5.)</li>



<li><strong>Install APM and initialize a project.</strong> APM works like npm for AI agent customizations. Running <code>apm init</code> sets up an <code>apm.yaml</code> file targeting one or more harnesses, such as GitHub Copilot, Claude Code, or Cursor, and <code>apm install</code> pulls a skill from a repository into the right location for each one. When you install a skill, APM also creates a log file documenting the entire resolution history.</li>



<li><strong>Pin to a version or a commit hash.</strong> Once a skill is installed, pin it the way you&#8217;d pin a library dependency. Doing so protects against a scenario where a legitimate skill later gets compromised and a bad actor slips malicious content into a new version under the same name. APM also scans files for hidden Unicode characters that may contain malicious instructions.</li>



<li><strong>Reproduce the exact setup with a lock file.</strong> APM logs every file and hash it installs. Running <code>apm install --frozen</code> rebuilds that exact environment from the log instead of reresolving everything from apm.yaml, so a teammate&#8217;s machine ends up with precisely the same setup as yours.</li>



<li><strong>Source customizations from a vetted registry, and set a policy for it.</strong> Public repositories work for experimentation, but Maxim suggests enterprises build a private, gated registry of reviewed skills. APM policy files enforce which sources are approved, so a customization from an unvetted location gets flagged.</li>



<li><strong>Audit for drift, then enforce it in CI.</strong> The <code>apm audit</code> command checks installed customizations against policy and catches unauthorized sources or content that has changed since installation. Run that same audit as a gate in a CI/CD pipeline to protect the entire organization against skill drift and bad actors.</li>
</ol>



<p class="wp-block-paragraph">The software supply chain already has decades of tooling behind it. That discipline hasn&#8217;t caught up with agentic AI, but APM is attempting to close that gap. Explore the <a href="https://github.com/microsoft/apm" target="_blank" rel="noopener">project GitHub repo</a> and <a href="https://microsoft.github.io/apm/quickstart/" target="_blank" rel="noopener">get started</a>.</p>



<h2 class="wp-block-heading"><strong>Coming up next</strong></h2>



<p class="wp-block-paragraph">On September 9, Menyala’s Sajal Sharma joins <em>Zero to Agent in 30 Minutes</em> to build a shared knowledge base that acts as a common brain across agents. He&#8217;ll show how a single repository of research, daily logs, and notes can give Claude Code, Codex, OpenClaw, and Hermes access to the same accumulated information instead of starting from zero with every new session.</p>



<p class="wp-block-paragraph"><em>Follow along with</em> Zero to Agent in 30 Minutes <em>on</em> <em><a href="https://www.oreilly.com/radar/topics/zero-to-agent-in-30-minutes/" target="_blank" rel="noopener">Radar</a>, or watch the latest episode on</em> <em><a href="https://www.youtube.com/playlist?list=PLMJ6moSi2Cgg" target="_blank" rel="noopener">YouTube</a>,</em> <em><a href="https://open.spotify.com/show/033SYd1qhhBAQuMpgJUVTt" target="_blank" rel="noopener">Spotify</a>,</em> <em><a href="https://podcasts.apple.com/us/podcast/zero-to-agent-in-30-minutes/id6793216641" target="_blank" rel="noopener">Apple</a>, or wherever you get your podcasts. If you’re an O’Reilly member, you can watch live.</em> <em><a href="https://www.oreilly.com/live-events/zero-to-agent-in-30-minutes/0642572392338/" target="_blank" rel="noopener">Save your seat</a>.</em></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-supply-chain-for-agent-context-with-maxim-salnikov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 102/110 objects using Memcached
Page Caching using Disk: Enhanced (Page is feed) 
Minified using Memcached

Served from: www.oreilly.com @ 2026-09-18 18:05:22 by W3 Total Cache
-->