<?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, 11 Sep 2026 17:31:23 +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>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 fetchpriority="high" 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="(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 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="(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 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="(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>
		<item>
		<title>Experience Mapping Matters More the Faster You Move</title>
		<link>https://www.oreilly.com/radar/experience-mapping-matters-more-the-faster-you-move/</link>
				<comments>https://www.oreilly.com/radar/experience-mapping-matters-more-the-faster-you-move/#respond</comments>
				<pubDate>Tue, 08 Sep 2026 14:25:20 +0000</pubDate>
					<dc:creator><![CDATA[Jim Kalbach]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

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

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Experience-mapping-matters-more-the-faster-you-move.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/Experience-mapping-matters-more-the-faster-you-move-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[AI is changing how fast organizations can move. Ideas that used to take months to build now take days, sometimes hours. That sounds like good news, and it is. But it creates a new problem. When execution is fast, teams can move in many directions at once. Marketing can ship a new campaign, product can [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">AI is changing how fast organizations can move. Ideas that used to take months to build now take days, sometimes hours. That sounds like good news, and it is. But it creates a new problem. When execution is fast, teams can move in many directions at once. Marketing can ship a new campaign, product can deliver a new feature, and support can change its scripts with the blink of an eye. Each team moves quickly and independently, because they can. Sure, activity moves quickly. But there’s also the chance of chaos. When everyone can move fast on their own, the need for people to move together only grows. Collaboration, cocreation, and alignment need to increase, not decrease, as execution speed increases.</p>



<h2 class="wp-block-heading"><strong>Dashboards don’t interpret themselves</strong></h2>



<p class="wp-block-paragraph">AI and real-time data give organizations more information than ever. Dashboards. Live metrics. Instant customer feedback. All of it moving fast. But data doesn&#8217;t make decisions. People do. A dashboard can tell you that cart abandonment jumped 12% this week. It can&#8217;t tell you why, and it definitely can&#8217;t tell your marketing, product, and support teams what to do about it together. That takes a conversation. It takes people in a room—virtual or real—looking at the same thing, arguing about what it means and what to do next.</p>



<h2 class="wp-block-heading"><strong>The map freezes a moment so you can talk about it</strong></h2>



<p class="wp-block-paragraph">Experience mapping is a broad field of visualizing human experiences. You’re probably familiar with things like journey maps, service blueprints, and other similar diagrams of the experiences. But none of them hand you an answer. What they do is take a fast-moving, chaotic situation and freeze it for a moment. It gives a team something to point at, argue about, and align around.</p>



<p class="wp-block-paragraph">Picture a typical working session. People from different parts of the business sit down around a map of the customer experience. Each of them already knows a piece of the picture. None of them has the whole picture, together, at the same time. That&#8217;s what the map provides. That&#8217;s usually the moment something surprising surfaces. Not because the map contains secret information but because it puts scattered knowledge in one place, in front of the people who each hold a piece of it. The visual aspect of maps is critical. Laying out an abstract concept like a “customer experience” allows teams to engage with it in new ways and reach new conclusions that are hard to get from a spreadsheet or data alone. Grasping cause and effect in one visual overview helps teams find the patterns of behavior that matter the most and to conceive of viable interventions.</p>



<p class="wp-block-paragraph">AI can surface these kinds of patterns in seconds. But it cannot create the moment when a cross-functional team collectively recognizes how its silos are hurting customers. Only people, looking at the same picture, can do that.</p>



<h2 class="wp-block-heading"><strong>The map isn’t the point</strong></h2>



<p class="wp-block-paragraph">Some claim that journey mapping is dead. That static maps can&#8217;t keep up with real-time data and AI-driven personalization. This confuses the artifact with the activity. A map that gets built, presented once, and filed away never helps anyone. It fails for the same reason a report fails: Nobody&#8217;s talking about it anymore. The value was never in the diagram. It&#8217;s in the conversation the diagram makes possible.</p>



<p class="wp-block-paragraph">Take how I got that team to reach their own conclusions about the invoice problem rather than just telling them about it. After scoping the customer type and situation we wanted to understand better, I interviewed a dozen or so customers about their billing experience. Nothing unusual came up at first. People described the routine steps: get an invoice, check it, pay it. But a few mentioned something in passing. They&#8217;d disputed a charge and kept getting late payment warnings anyway, even while the dispute was still open.</p>



<p class="wp-block-paragraph">From those interviews, I built a draft map of the invoicing journey. I called it a draft on purpose. I didn&#8217;t want to hand stakeholders a finished diagram and ask them to approve it. I wanted them to lean into it, question it, and add to it. Then I scheduled a working session. The room included people who&#8217;d never worked together before, despite being at the same company for years: billing, support, and product.</p>



<p class="wp-block-paragraph">We didn&#8217;t rush through the map. We slowed down, section by section, and used structured exercises to pinpoint the moments that mattered most to customers. That&#8217;s when someone in the room realized: A customer who&#8217;s actively disputing an invoice can still get a warning notice for that same invoice. Nobody had designed it that way on purpose. It fell through the gap between two systems that never talked to each other. But once it was visible, laid out in front of the people who owned each part of the process, it became impossible to ignore. The room got quiet, then loud. People were genuinely upset, not at each other, but at what customers were going through.</p>



<p class="wp-block-paragraph">Of course, I had uncovered this already in my research. And sure, it was also visible on the map. But my diagram wasn’t about giving a magic answer. The process of learning together is the point. That reaction didn&#8217;t come from a dashboard. It came from people confronting the evidence together, in the same room, at the same time.</p>



<h2 class="wp-block-heading"><strong>What actually changed</strong></h2>



<p class="wp-block-paragraph">Before the workshop, this problem was invisible in a specific way. Support knew customers complained about warning notices. Billing knew disputes existed. Product knew the systems didn&#8217;t sync. But no one held all three pieces at once. The map put all three in the same field of view. That&#8217;s the mechanism. Mapping doesn&#8217;t create new information. It puts existing, scattered information into one shared picture, at the same time, in front of the people who each hold a piece of it.</p>



<p class="wp-block-paragraph">What changed after that: Billing and product agreed to flag disputed invoices so no warning could go out. Support got a way to check dispute status before responding to a complaint. And the three teams kept meeting monthly, something none of them had done before. The map didn&#8217;t do any of that. The conversation the map created did.</p>



<h2 class="wp-block-heading"><strong>What good collaboration looks like</strong></h2>



<p class="wp-block-paragraph">We started with customer evidence and a deliberately unfinished map. We included people who owned different parts of the experience and asked them to question what the map showed, identify what they knew and what they were assuming, and examine the gaps between their systems. The session ended with specific commitments, and the teams continued meeting as they learned more.</p>



<p class="wp-block-paragraph">That is what getting collaboration right requires: the right people, shared evidence, visible disagreement, clear ownership of the next decision, and a cadence for revisiting what the team thinks it knows. Without those conditions, mapping can easily become another workshop that produces an attractive artifact but little change.</p>



<h2 class="wp-block-heading"><strong>What this means for your team</strong></h2>



<p class="wp-block-paragraph">As AI speeds up execution, don&#8217;t cut the time you spend aligning as a team. Protect it. Expand it. AI won&#8217;t give you an edge. Your competitors have access to the same models you do, trained on much of the same data, producing much of the same output. If everyone moves at the same speed, speed stops being an advantage. It becomes the minimum bar for staying in the game. AI also works like a spotlight, amplifying whatever&#8217;s already happening in your organization. If your teams collaborate well, AI makes that strength visible fast. If they&#8217;re siloed, AI exposes it just as fast.  Now is the time to get collaboration right, while staying focused on the customer. Waiting until AI forces the issue is waiting too long.</p>



<p class="wp-block-paragraph">In the end, AI can help with customer discovery and accelerate insights. But it doesn&#8217;t replace human judgment and decision making. Rallying around a map—a visual depiction of customer experiences—provides a natural forum for discussion, debate, and shared understanding to align before acting. The tools will keep getting faster. The organizations that win won&#8217;t be the ones with the best dashboards. They&#8217;ll be the ones who are best at coming together, again and again, to make sense of what those dashboards show them.</p>



<p class="wp-block-paragraph"><em>If you want to dive deeper into mapping, join Jim on October 9 for his Beyond the Book conversation about the latest edition of</em> <em><a href="https://learning.oreilly.com/library/view/mapping-experiences-3rd/0642572266486/" target="_blank" rel="noopener">Mapping Experiences</a>. He and host Vicki Reyzelman will chat about how experience mapping has evolved from a UX technique into a strategic capability for organizations, how AI is transforming the way we create and analyze maps, and how you can use mapping to align business goals with customer needs, facilitate collaboration across teams, and drive transformation at scale. It’s free to attend.</em> <em><a href="https://www.oreilly.com/live/beyond-the-book-jim-kalbach.html" target="_blank" rel="noopener">Register now</a>.</em><br></p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/experience-mapping-matters-more-the-faster-you-move/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>This Week in AI: The Frontier Is Getting Bigger</title>
		<link>https://www.oreilly.com/radar/this-week-in-ai-the-frontier-is-getting-bigger/</link>
				<comments>https://www.oreilly.com/radar/this-week-in-ai-the-frontier-is-getting-bigger/#respond</comments>
				<pubDate>Fri, 04 Sep 2026 16:15:58 +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=19579</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[Claude helps train itself, China’s open models surge, and AI starts learning physics]]></custom:subtitle>
		
				<description><![CDATA[Host Christina Stathopoulos, founder of Dare to Data and a former data scientist at Google and Waze, returned to This Week in AI with developments that stretched from Claude testing ways to improve model safety to Chinese open weight models gaining developer traffic and new systems learning to model physics. She also examined what Anthropic [&#8230;]]]></description>
								<content:encoded><![CDATA[
<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="This Week in AI: The Frontier Is Getting Bigger with Christina Stathopoulos" width="500" height="281" src="https://www.youtube.com/embed/crZhUc1_5Z8?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">Host Christina Stathopoulos, founder of Dare to Data and a former data scientist at Google and Waze, returned to <em>This Week in AI</em> with developments that stretched from Claude testing ways to improve model safety to Chinese open weight models gaining developer traffic and new systems learning to model physics. She also examined what Anthropic and OpenAI’s business moves, workforce forecasts, and debates over access reveal about how quickly the AI landscape is broadening.</p>



<h2 class="wp-block-heading"><strong>Claude is taking on more of the research process</strong></h2>



<p class="wp-block-paragraph">Anthropic provided an early example of <a href="https://www.anthropic.com/research/automated-researchers-mitigate-alignment-failures" target="_blank" rel="noopener">AI helping improve future AI systems</a>. In research Christina highlighted, Claude searched existing work, proposed methods, generated training data, and repeatedly tested and refined its approaches to reduce unwanted model behaviors. The experiments covered 10 such behaviors, including deception, hallucination, prompt injection, privacy violations, and reward hacking. Anthropic reported improvements across all 10 without degrading the model’s broader capabilities.</p>



<p class="wp-block-paragraph">For deception, Claude tested more than 150 methods and eventually closed 85% of the measured safety gap. Human safety researchers closed only 20% in Anthropic’s comparison. Christina emphasized that this wasn’t a direct contest because Claude could run and refine experiments much faster and at a much greater scale. She also cautioned that the work didn’t amount to full recursive self-improvement.</p>



<p class="wp-block-paragraph">This showed how AI could increasingly handle experimentation in model development, changing the pace and scale of research while humans still set the goals and evaluate the results.</p>



<h2 class="wp-block-heading"><strong>Model performance is only one part of the frontier race</strong></h2>



<p class="wp-block-paragraph">Competition among AI labs increasingly involves business performance, infrastructure, and deployment options alongside model quality. Anthropic estimates that the market for its systems <a href="https://fortune.com/2026/08/26/anthropic-wants-investors-to-believe-its-market-is-worth-30-trillion-nearly-40-of-the-entire-us-stock-market/" target="_blank" rel="noopener">could eventually reach $30 trillion</a>, a long-term estimate that Christina treated skeptically because it approaches the size of the entire US economy. She also highlighted more concrete evidence of momentum in how Anthropic’s annualized revenue run rate rose from less than half of OpenAI’s at the start of the year to surpassing it within several months. Both companies are preparing for possible public offerings.</p>



<p class="wp-block-paragraph">OpenAI faces a different set of pressures, and Christina highlighted its 14 executive departures this year. That <a href="https://techcrunch.com/2026/08/26/how-do-we-explain-openais-executive-exodus/" target="_blank" rel="noopener">sustained leadership turnover</a> could raise questions about the company’s ability to execute consistently. OpenAI is also trying to gain more control over its infrastructure. Its Jalapeño inference chip, developed with Broadcom, delivered up to 1.9 times more AI work per watt and up to 3.6 times lower latency than comparable NVIDIA systems in OpenAI’s own testing.</p>



<p class="wp-block-paragraph">Chinese open weight models are widening the field further. Christina cited an AI gateway where open weight models recently reached as much as 62% of developer traffic on a single day, compared with an average of roughly 10% in April. The competition now spans benchmark performance, capital, infrastructure, cost, deployment flexibility, and organizational execution.</p>



<h2 class="wp-block-heading"><strong>Physics models could extend AI beyond language and images</strong></h2>



<p class="wp-block-paragraph">Christina closed with <a href="https://news.mit.edu/2026/ai-models-simulate-wider-range-of-real-world-scenarios-0810" target="_blank" rel="noopener">research aimed at helping AI systems model physics</a>. Researchers from MIT and Tsinghua University developed a pretraining approach that learned from more than one million synthetic interactions between moving particles and complex 3D objects, then applied those patterns to simulations involving wind, water, collisions, and light. The researchers described physics as a potential &#8220;third modality&#8221; for AI alongside language and pixels.</p>



<p class="wp-block-paragraph">She also covered <a href="https://www.reuters.com/business/ai-founders-who-walked-away-bezos-backed-prometheus-model-universe-2026-08-25/" target="_blank" rel="noopener">Accelerated Understanding</a>, a startup that recently emerged from stealth with an architecture based on neural operators rather than transformers. The company is targeting problems involving enormous physical datasets, including chip design, robotics, extreme-weather forecasting, and geological exploration.</p>



<p class="wp-block-paragraph">By learning directly from physical systems, these models could become valuable for simulation, engineering, robotics, forecasting, and other work that depends on understanding complex real-world environments.</p>



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



<p class="wp-block-paragraph">Christina also examined who could benefit from these advances. She discussed <a href="https://www.gatesnotes.com/a-turbulent-ai-era-and-critical-choices-to-make" target="_blank" rel="noopener">Bill Gates’s argument</a> that access, deployment, policy, and distribution will shape AI’s social impact, and brought in new US Bureau of Labor Statistics projections showing <a href="https://www.axios.com/2026/08/28/job-growth-aging-health-care" target="_blank" rel="noopener">job growth in areas including technical services and healthcare</a>, while office and administrative roles face greater pressure from automation.</p>



<p class="wp-block-paragraph">Her larger point was that access, workforce preparation, and public policy will determine how AI’s benefits and disruptions are distributed.</p>



<p class="wp-block-paragraph">Due to the Labor Day holiday, <em>This Week in AI</em> will return on Monday, September 14, 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>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/this-week-in-ai-the-frontier-is-getting-bigger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Inside a Software Factory</title>
		<link>https://www.oreilly.com/radar/inside-a-software-factory/</link>
				<comments>https://www.oreilly.com/radar/inside-a-software-factory/#respond</comments>
				<pubDate>Fri, 04 Sep 2026 10:54:10 +0000</pubDate>
					<dc:creator><![CDATA[Paul Iusztin]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Commentary]]></category>

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

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Inside-a-software-factory-image-provided-by-author.jpg" 
				medium="image" 
				type="image/jpeg" 
				width="512" 
				height="286" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Inside-a-software-factory-image-provided-by-author-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[Go from vibe coding to generating clean, maintainable code]]></custom:subtitle>
		
				<description><![CDATA[As a software engineer with more than seven years of experience before the coding-agent era, I never liked the idea of vibe coding. But I knew there was a clear line between it and using coding agents to generate clean, maintainable code. That line, where good software principles meet coding agents, is defined by software [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">As a software engineer with more than seven years of experience before the coding-agent era, I never liked the idea of vibe coding. But I knew there was a clear line between it and using coding agents to generate clean, maintainable code. That line, where good software principles meet coding agents, is defined by software factories.</p>



<p class="wp-block-paragraph">That’s why, three months ago, I built my own software factory, <a href="https://github.com/iusztinpaul/squid" target="_blank" rel="noopener">Squid</a>, to ship all of Decoding AI’s small and medium projects with minimal human intervention. The first version was so overbuilt I stopped using it.</p>



<p class="wp-block-paragraph">Meanwhile, I kept seeing people obsess over the next “_____ engineering” label, instead of focusing on actionable outcomes. Prompt engineering, then context engineering, then harness engineering. So far, so good. But in the last few weeks (July 2026 as I write this), things got off track with loop engineering and graph engineering, which already read more like marketing talk than like anything that solves real problems. Graph engineering overtheorizes how teams have built AI applications since the LangGraph era kicked off in ~2024. Don’t get me wrong. The terms aren’t wrong (Boris Cherny, who leads Claude Code at Anthropic, <a href="https://x.com/addyosmani/status/2064127981161959567" target="_blank" rel="noopener">says, “My job is to write loops”</a>), but we’re overexplaining intuitive things we started doing years ago.</p>



<p class="wp-block-paragraph">While you’re defining what counts as a loop, you’re not thinking about the processes that actually deliver software.</p>



<p class="wp-block-paragraph">The right frame is the software factory, which was one of the core themes at AI Engineer World’s Fair 2026, where Tereza Tížková (growth at Factory.ai) defined one as “<a href="https://www.latent.space/p/aiewf-daily-dispatch-loops" target="_blank" rel="noopener">the whole loop, the whole lifecycle of developing software with autonomy</a>.”</p>



<p class="wp-block-paragraph">I bet you already have an intuitive sense of what a software factory is. In this article, I want to further formalize it and map it onto the software development lifecycle (SDLC). We’ll explore how big your software factory should be, and when to stop automating before it adds more friction than value. Most importantly, I want to highlight where the human belongs in this process, and where I believe they’ll still belong even in a world where all the code is generated by AI.</p>



<p class="wp-block-paragraph">So…what’s worth automating? Where does the human bring the most value? What’s worth building, and what’s worth buying?</p>



<h2 class="wp-block-heading">The design of a software factory</h2>



<p class="wp-block-paragraph">Like a physical factory, a software factory automates software creation with minimal human input. Raw work (bug reports, feature ideas, incidents) goes in. Shipped software comes out. It needs a few highly qualified people making high-leverage decisions, and defined gates that work can’t pass through without them.</p>



<p class="wp-block-paragraph"><a href="https://factory.ai" target="_blank" rel="noopener">Factory.ai</a> pitches “a self-improving system for your Software Development Life Cycle (SDLC).” Addy Osmani frames the stack as loop, harness, factory: “The loop is the atom”; a factory is “<a href="https://x.com/addyosmani/status/2079442194449232227" target="_blank" rel="noopener">an org chart made of loops</a>.” Warp’s CEO, Zach Lloyd, states that “<a href="https://www.latent.space/p/aiewf-daily-dispatch-loops" target="_blank" rel="noopener">software engineering will become factory engineering</a>.”</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1200" height="309" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image.png" alt="The software factory line. Eight stages over one shared context layer, with production signals looping back as new tasks." class="wp-image-19569" style="aspect-ratio:3.875776397515528;width:624px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image.png 1200w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-300x77.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-765x197.png 765w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption"><em>The software factory line. Eight stages over one shared context layer, with production signals looping back as new tasks.</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">The factory is made up of eight stages that can be divided into three buckets:</p>



<p class="wp-block-paragraph"><strong>What to build.</strong> <em>Triage/intake</em> classifies, deduplicates, and routes incoming work. <em>Brainstorming</em> finds high-impact features through market analysis, user data, and technical research. <em>Planning</em>, the most important stage, turns that research into a polished plan, refines it by letting the agent grill you, and tracks decisions in an ADR (Architecture Decision Record) log plus a glossary. The outputs of this stage are tickets backed by documentation that a team of agents can implement, which can be tracked in plain files or a project management tool, such as GitHub Issues, Linear, or Notion.</p>



<p class="wp-block-paragraph">At this stage, the agent plans in read-only mode, going through the code, the AGENTS.md file, and most importantly the context layer.</p>



<p class="wp-block-paragraph"><strong>Actual building and checking</strong>. <em>Implementing</em> is a software engineer and QA agent loop that goes through the tasks and supporting documentation. <em>Review</em> checks the PR diff against product, architecture, and code standards. <em>Review-CI</em> runs the test suite, and failures trigger a fixing agent. <em>Release</em> handles CD to staging/production with human deployment checks.</p>



<p class="wp-block-paragraph"><strong>Self-improving</strong>. <em>Monitor/incident response</em> feeds production signals (alerts, errors, incidents) back into triage as fresh input on what to build next, closing the loop.</p>



<p class="wp-block-paragraph">Orthogonal to the eight stages, we have the context layer. The layer is especially important at the front of the line. Brainstorming is limited to the data it sees: user analytics, competitor analysis, research, transcripts, and documentation. At this stage, a poor context layer directly limits the space of possibilities you can explore. It has a similar impact on planning, where transforming the raw idea into technical specs and tasks depends heavily on how good the examples in the context layer are. If you want to implement a new product-recommendation feature, and you have zero examples, the LLM will just predict the most common thing to do, which often isn’t the best solution for your product.</p>



<p class="wp-block-paragraph">The context layer can take many forms. One strategy that is becoming increasingly popular is the <a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f" target="_blank" rel="noopener">LLM Wiki</a>, a term coined by Andrej Karpathy. It’s basically a strategy to transform your data into a structured knowledge base, just by using files, instead of a database. Factory, via its <a href="https://factory.ai/open-source-wikis" target="_blank" rel="noopener">AutoWiki feature</a>, transforms popular codebases into a structured knowledge base that agents can query instead of parsing the codebase itself. LangChain recently released <a href="https://github.com/langchain-ai/openwiki" target="_blank" rel="noopener">OpenWiki</a>, a CLI tool to manage wikis for agent memory. If you’re curious, in <a href="https://www.decodingai.com/p/llm-wiki-agent-memory" target="_blank" rel="noopener">this article</a> I detail how I turn my data from Obsidian, Readwise, and Google Drive into agent memory via LLM wikis.</p>



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



<p class="wp-block-paragraph">To see where the human belongs, let’s walk through the factory with an end-to-end example. We’ll build a feature for a shopping-assistant agent on an ecommerce platform similar to Amazon’s. The scenario is that usage data says users aren’t engaging with its recommendations, and we have to ship an improvement.</p>



<p class="wp-block-paragraph"><strong>Brainstorm</strong> is where taste lives. Agents do the grunt work: They analyze user activity, scan competitors’ assistants, and pull research into the knowledge base. Then a member of the technical staff starts looking at the data, understands why people are not engaging with the recommendations, explores how the competition implements their solution, and proposes a fix as a feature spec. At this stage, the spec solves a business problem. It doesn’t need to prescribe a technical solution yet.</p>



<p class="wp-block-paragraph"><strong>Plan</strong> is where a human, with the help of the software factory, transforms the feature spec into an implementation plan. Let’s assume that we want to make a change to the recommender engine algorithm. The human chats with the knowledge base, figures out whether it’s feasible, and thinks through architecture, interfaces, data flow, cost, and latency. They then let the agent scan the codebase and grill them until the plan is properly refined into something that fits the codebase. The output is a bunch of tickets plus an ADR explaining the algorithm change and an update to the glossary.</p>



<p class="wp-block-paragraph">The agent can help within these two stages by quickly scanning through a ton of data and improving the plan, but the human is still central.</p>



<p class="wp-block-paragraph">Use the strongest model (Fable) for brainstorming and planning. These stages burn fewer tokens than implementation itself, but everything downstream depends on them. A well-written plan lets cheaper models (Opus, Sonnet) execute without reasoning their way out of dead ends. A weak plan makes them retry until the extra tokens erase the price gap.</p>



<p class="wp-block-paragraph">With a weak plan, I’ve watched Sonnet on high reasoning out-cost Opus on the same task: The smaller model needs more attempts to reach the same goal. Total cost is tokens × price, not model tier. So more failures equals more reasoning, more tokens, and more cost.</p>



<p class="wp-block-paragraph">From here on, we move into “loop” and “graph” engineering territory.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1200" height="429" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1.png" alt="A strong planning session makes cheap executors actually cheap, while a weak plan makes them expensive." class="wp-image-19570" style="aspect-ratio:2.798206278026906;width:624px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1.png 1200w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1-766x274.png 766w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-1-300x107.png 300w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption"><em>A strong planning session makes cheap executors actually cheap, while a weak plan makes them expensive.</em></figcaption></figure>
</div>


<p class="wp-block-paragraph"><strong>Implement</strong> runs a software engineer agent that picks up every ticket that’s ready to go. As the loop is scoped to a feature, it takes only the associated tickets. After each ticket is implemented, a QA agent tries to find bugs by stress-testing the application. As agents tend to have a positive bias towards their own work, the split between the software engineer and QA agents matters. As Addy Osmani puts it, the model that wrote the code is “<a href="https://x.com/addyosmani/status/2064127981161959567" target="_blank" rel="noopener">way too nice grading its own homework</a>.” This loop, at solo scale, can be as simple as a bunch of terminals pulling tickets. At larger scale, it runs on remote agents working 24/7.</p>



<p class="wp-block-paragraph">The loop only works if agents can interact with the app. The QA agent needs one command that starts the whole stack reproducibly. From there, it drives the app in the browser, calls the data or fine-tuning pipelines, or hits your server’s API. Whatever your app’s interface is, the agent needs access to it, the same way a human user would.</p>



<p class="wp-block-paragraph">The key idea is to integrate feedback loops as natively as possible into your software factory. Ideally, you want multiple levels, depending on how expensive it is to run them: linting, unit tests, integration tests, and end-to-end tests. When the loop keeps failing, the root cause is almost always missing plumbing, not the agents.</p>



<p class="wp-block-paragraph"><strong>Review</strong> has three steps. Step one checks the product and architecture requirements against the ticket and the ADR. Any discrepancy becomes a new ticket passed back to the implement loop. Step two ensures code quality (modularity, naming) and guards against AI slop such as verbose comments or cryptic function names. Step three looks at the CI/CD pipeline. At every step, any failure auto-creates a task picked up by the software agent.</p>



<p class="wp-block-paragraph">Not every project needs all three steps. The “factory” ends with a PR that you as a human need to review and merge. But in reality, if you spend enough time creating a strong plan, the PR that reaches you is usually ready to ship as-is.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1200" height="489" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2.png" alt="The dynamics between what humans and agents own in the software factory line." class="wp-image-19571" style="aspect-ratio:2.447058823529412;width:624px;height:auto" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2.png 1200w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2-300x122.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/image-2-766x312.png 766w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption"><em>The dynamics between what humans and agents own in the software factory line.</em></figcaption></figure>
</div>


<p class="wp-block-paragraph"><strong>So where does the human belong?</strong> You’re indispensable during brainstorming and planning, and you return for the final check. Agents own everything in between. <a href="https://openai.com/index/harness-engineering/" target="_blank" rel="noopener">OpenAI took this to the extreme</a>: ~1M lines and ~1,500 merged PRs over five months with zero hand-written lines. Their framing is “Humans steer. Agents execute.”</p>



<h2 class="wp-block-heading">Don’t overbuild the factory</h2>



<p class="wp-block-paragraph">With my first Squid version (my own software factory), I got greedy and chased full autonomy: big remote workflows, parallel agents, and one grand pipeline running end to end. It worked, until something went offscript. Which it usually does. I couldn’t debug it, couldn’t halt it mid-run, and couldn’t redirect it without throwing the run away. It was a big monolith that took me too far out of the loop, and I couldn’t control it.</p>



<p class="wp-block-paragraph">I realized you need two options. The first is granular commands that let you grill your plan, implement a specific task, or review one particular step. The second, for when you’re comfortable giving the agent 24/7 autonomy, is an end-to-end command that chains all the smaller ones into a fully autonomous graph, such as one big <code>/plan</code> and <code>/implement-review-all command</code>. Basically, each step is a “loop,” while the whole pipeline is the “graph” of your software factory. Still, note how planning and the rest are split into two different commands, as planning is, and always will be, human-driven (at least if you want the result to stay aligned with what you actually want).</p>



<p class="wp-block-paragraph">Bottom line. You need to be able to step in, halt it, redirect it, and interrupt it, while still having the option to go fully autonomous.</p>



<p class="wp-block-paragraph">The bottleneck is me, and that’s by design. To be honest, I’ve worked mostly solo since the AI coding agent boom, and I don’t understand who the people shipping 100 features in parallel are. Most of my features (per project) build on one another, which makes them impossible to parallelize. As the project grows, you can find more and more independent features that can be implemented in parallel, but I still believe that number is limited.</p>



<p class="wp-block-paragraph">That’s why, when I parallelize, I only use local agents, each running in an isolated codebase via worktrees. So far, I’ve never felt the need for 24/7 remote agents, or wanted the overhead of managing them.</p>



<p class="wp-block-paragraph">A big team can justify more automation, but it has to earn it. So as with any other software product, start small, start by automating the most time-consuming bottlenecks, and add complexity gradually as people get comfortable with the system. Don’t be like me, with my Squid experiment.</p>



<h2 class="wp-block-heading">Build vs. buy</h2>



<p class="wp-block-paragraph">In all scenarios, you’ll start with a prebuilt coding harness. The most popular vendor-locked ones are Claude Code and Codex. Or go open source with OpenCode or Pi, which took off thanks to its minimalist, extensible architecture that lets you easily build on top of it.</p>



<p class="wp-block-paragraph">But picking a harness isn’t the same as knowing how to configure it and wire it into your software factory. That’s why everyone needs to know, at least intuitively, how a coding agent works under the hood: the agent loop running in your terminal, what changes when it runs remotely, how you evaluate it, and which context engineering strategies keep it cheap without making it dumber. If you want to learn more about building a coding agent from scratch, consider exploring my <a href="https://github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course" target="_blank" rel="noopener">open source course</a> on GitHub. Even if you never plan to build your own harness, that intuition is what lets you become a power user.</p>



<p class="wp-block-paragraph">For a small team, you’ll get extremely far just by defining a set of skills and agents that encode <em>your</em> process on top of the coding harness (a.k.a. your software factory). To keep it simple, this is what I did with <a href="https://github.com/iusztinpaul/squid" target="_blank" rel="noopener">Squid</a>, which I use to implement all my projects.</p>



<p class="wp-block-paragraph">There are other off-the-shelf “software factories” powered just by skills and agents defined in .md files, such as Matt Pocock’s <a href="https://github.com/mattpocock/skills/tree/main" target="_blank" rel="noopener">skills</a> repository or the <a href="https://github.com/bmad-code-org/bmad-method" target="_blank" rel="noopener">BMad method</a>.</p>



<p class="wp-block-paragraph">But remember that the factory is mostly about processes, not tools: A factory that doesn’t fit how your team already works adds friction, never gets adopted, and ends up useless.</p>



<p class="wp-block-paragraph">You cross the buy line the moment engineers you don’t personally supervise run agents. Observability, tracing, cost tracking, and pay-per-token billing stop being optional and become someone’s full-time job. Agent swarms wired into Linear, Slack, and CI across distributed infrastructure are a logistical hell that isn’t your product. That’s when it makes sense to look into off-the-shelf solutions such as <a href="https://factory.ai" target="_blank" rel="noopener">Factory.ai</a> (that comes with the Droid agent), or <a href="https://www.warp.dev/oz" target="_blank" rel="noopener">Warp’s Oz</a>. In Warp CEO Zach Lloyd’s words, “<a href="https://www.latent.space/p/software-factories" target="_blank" rel="noopener">Most of the factory is not necessarily a new interface. It is an integration into people’s existing workflows</a>.”</p>



<p class="wp-block-paragraph">At the other end of the spectrum, you cross back to building when the platform’s constraints cost more than the team it would take to replace it, as <a href="https://openai.com/index/harness-engineering/" target="_blank" rel="noopener">OpenAI’s report on its Codex-built product</a> shows.</p>



<p class="wp-block-paragraph">The smallest builds, the middle buys, and the largest builds again.</p>



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



<p class="wp-block-paragraph">Someone is already coining next quarter’s “_____ engineering” term as we speak. But the software engineering processes you use to output real code won’t change that often. That’s why you should be open-minded but at the same time focus on actionable outcomes, not on overthinking how to label things.</p>



<p class="wp-block-paragraph">As Zach Lloyd suggests: Find one “annoying part of your job” and <a href="https://www.latent.space/p/software-factories" target="_blank" rel="noopener">build the smallest loop that handles it</a>.</p>



<p class="wp-block-paragraph">The harsh reality is that software factories are just at the beginning. They’re far from perfect, and especially far from being fully “autonomous.” Usually, when someone claims they’ve cracked the software factory problem, they either haven’t tested the idea enough or are trying to sell it to you. I’m confident we’ll reach the point where almost the entire software development lifecycle is automated (with the exception of brainstorming and planning), but at the moment we’re still figuring things out.</p>



<p class="wp-block-paragraph">But here’s what I’m wondering:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Which stage of your factory still needs you the most? I keep automating mine, and the bottleneck stubbornly stays at planning.</p>
</blockquote>



<h2 class="wp-block-heading">Explore next</h2>



<ol class="wp-block-list">
<li>Osmani, A. (2025). “Loop Engineering.” X. <br><a href="https://x.com/addyosmani/status/2064127981161959567" target="_blank" rel="noopener">https://x.com/addyosmani/status/2064127981161959567</a></li>



<li>MacManus, R. (2026). “AIEWF Daily Dispatch: Loops, Software Factories &amp; Forward Deployed Engineers.” <em>Latent Space</em>. <br><a href="https://www.latent.space/p/aiewf-daily-dispatch-loops" target="_blank" rel="noopener">https://www.latent.space/p/aiewf-daily-dispatch-loops</a></li>



<li>Factory.ai. (n.d.). Agent-Native Software Development Platform. <a href="https://factory.ai" target="_blank" rel="noopener">https://factory.ai</a></li>



<li>Osmani, A. (2025). “Software Factories, Light and Dark.” X. <br><a href="https://x.com/addyosmani/status/2079442194449232227" target="_blank" rel="noopener">https://x.com/addyosmani/status/2079442194449232227</a></li>



<li>Karpathy, A. (n.d.). LLM-Wiki. GitHub. <br><a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f" target="_blank" rel="noopener">https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f</a></li>



<li>Abboud, M. (n.d.). “How Coding Agents Actually Work: Inside OpenCode.” <br><a href="https://cefboud.com/posts/coding-agents-internals-opencode-deepdive/" target="_blank" rel="noopener">https://cefboud.com/posts/coding-agents-internals-opencode-deepdive/</a></li>



<li>Kapoor, S. (n.d.). “Building and Evaluating AI Agents.” <em>AI Engineer</em>. <br><a href="https://youtube.com/watch?v=d5EltXhbcfA" target="_blank" rel="noopener">https://youtube.com/watch?v=d5EltXhbcfA</a></li>



<li>OpenAI. (n.d.). “Harness Engineering: Leveraging Codex in an Agent-First World.” <br><a href="https://openai.com/index/harness-engineering/" target="_blank" rel="noopener">https://openai.com/index/harness-engineering/</a></li>



<li>Parsons, C. (n.d.). “Ralph Loops: Build Dumb AI Loops That Ship.” <em>AI Engineer</em>. <br><a href="https://www.youtube.com/watch?v=2TLXsxkz0zI" target="_blank" rel="noopener">https://www.youtube.com/watch?v=2TLXsxkz0zI</a></li>



<li>Pocock, M. (n.d.). “Software Fundamentals Matter More Than Ever.” <em>AI Engineer</em>. <br><a href="https://www.youtube.com/watch?v=v4F1gFy-hqg" target="_blank" rel="noopener">https://www.youtube.com/watch?v=v4F1gFy-hqg</a></li>



<li>MacManus, R. (2026). “Warp CEO Zach Lloyd on Why Software Factories Are the Next Phase of Coding.” <em>Latent Space</em>.<br><a href="https://www.latent.space/p/software-factories" target="_blank" rel="noopener">https://www.latent.space/p/software-factories</a></li>



<li>Iusztin, P. (2026). “Building a Coding Agent From Scratch: Harness Architecture.” <em>Decoding AI</em>.<br><a href="https://www.decodingai.com/p/building-a-coding-agent-from-scratch-system-design" target="_blank" rel="noopener">https://www.decodingai.com/p/building-a-coding-agent-from-scratch-system-design</a></li>



<li>Iusztin, P. (2026). Building a Coding Agent from Scratch Course. GitHub. <br><a href="https://github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course" target="_blank" rel="noopener">https://github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course</a></li>



<li>Iusztin, P., &amp; Bouchard, L.-F. (2026). “LLM Wikis as Living Memory for AI Agents.” <em>Decoding AI</em>.<br><a href="https://www.decodingai.com/p/llm-wiki-agent-memory" target="_blank" rel="noopener">https://www.decodingai.com/p/llm-wiki-agent-memory</a></li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Join 44,000+ engineers eager to learn how to build their own software factories by subscribing to</em> <a href="https://www.decodingai.com/">Decoding AI Magazine</a>!</p>
</blockquote>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/inside-a-software-factory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Zero to Agent in 30 Minutes: Build a Content Engine with Max Johnson</title>
		<link>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-content-engine-with-max-johnson/</link>
				<comments>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-build-a-content-engine-with-max-johnson/#respond</comments>
				<pubDate>Thu, 03 Sep 2026 16:32:49 +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=19566</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[Turn repetitive content work into a single automated workflow]]></custom:subtitle>
		
				<description><![CDATA[Max Johnson, founder of the AI agency briix, regularly publishes practical AI guidance for business owners and founders to help them get the most out of AI. Max has used some of that know-how to streamline his own day-to-day work, turning what used to be a manual content creation process—researching topics, judging their relevance, and [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">Max Johnson, founder of the AI agency briix, regularly publishes practical AI guidance for business owners and founders to help them get the most out of AI. Max has used some of that know-how to streamline his own day-to-day work, turning what used to be a manual content creation process—researching topics, judging their relevance, and developing hooks and drafting scripts—into a single automated workflow using Claude Code. In this episode of <em>Zero to Agent in 30 Minutes</em>, he shows you how to do the same while remaining in the loop to make the final calls.</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 Content Engine with Max Johnson" width="500" height="281" src="https://www.youtube.com/embed/QRXJ-9yPb0w?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">How to build a content creation agent</h2>



<ol class="wp-block-list">
<li><strong>Give the system the context it needs to generate relevant content.</strong> Max started with a small knowledge base containing information about himself and his business, details about his audience, sample scripts, and notes on his writing voice. These files gave Claude Code reference material for evaluating topics and generating scripts that reflected his brand and style.</li>



<li><strong>Explain the process in plain English and let AI take it from there</strong>. As Max pointed out, “Vibe coding is describing what you want clearly and let[ting] the model handle the entire building process for you.” However, you’re still ultimately responsible for what’s built. Claude Code may have generated the implementation, but Max set the context, approved permissions, reviewed results, and answered clarifying questions along the way.</li>



<li><strong>Build the individual stages of your pipeline.</strong> Max wrote a list of prompts to take Claude Code through the process of researching topics (stage 1), scoring them and selecting the most relevant one (stage 2), then generating three hooks and expanding the strongest option into a full script based on the knowledge base and sample content (stage 3). He ran them through Claude Code and ended up with a working three-part pipeline, with each stage triggered manually.</li>



<li><strong>Connect the stages into a single workflow you can run with one command.</strong> Max had Claude Code combine research, scoring, hook generation, and script writing into a unified content engine that produces a structured JSON file he uses in the next stage. “This is the actual moment that it stops being a few separate prompts and starts becoming an agent,” Max says.</li>



<li><strong>Add a browser-based interface.</strong> Max built a local dashboard that displays the generated topics, scores, hooks, and scripts. This lets him inspect the results and start new runs from a browser instead of returning to the terminal each time. Here’s a tip from Max on creating a dashboard you’ll actually want to use as your mission control: Be as creative as you want, but “make it look like something designed on purpose, not a default template.”</li>



<li><strong>Test the workflow and extend it.</strong> The first version Max created had two limitations: It produced scripts only for the top-ranked topic, and starting a new research run still required the terminal. Max solved this by asking Claude Code to generate hooks and scripts for all five topics and add a button that could start a new run from the dashboard. The revised system produced three scripts for each topic, giving him 15 script options per run.</li>
</ol>



<p class="wp-block-paragraph">If you’re building something similar, Max recommends starting with a repetitive task you can describe clearly. Build a working version with your preferred coding tool, use it, and then extend it in response to what you learn.</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-content-engine-with-max-johnson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Hey AI, Can You Just Give Me a Hat Tip Please?</title>
		<link>https://www.oreilly.com/radar/hey-ai-can-you-just-give-me-a-hat-tip-please/</link>
				<comments>https://www.oreilly.com/radar/hey-ai-can-you-just-give-me-a-hat-tip-please/#respond</comments>
				<pubDate>Thu, 03 Sep 2026 10:55:19 +0000</pubDate>
					<dc:creator><![CDATA[Andrew Stellman]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Commentary]]></category>

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

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/Hey-AI-can-you-just-give-me-a-hat-tip-please_1.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/Hey-AI-can-you-just-give-me-a-hat-tip-please_1-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[Sometime in the next few months, Anthropic is supposed to send me a check. Around $9,000 for me, about the same for my longtime coauthor Jenny Greene, and roughly $18,000 for O’Reilly, our publisher. The reason is that pirated copies of the books Jenny and I wrote, along with a huge amount of other people’s [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">Sometime in the next few months, Anthropic is supposed to send me a check. Around $9,000 for me, about the same for my longtime coauthor Jenny Greene, and roughly $18,000 for O’Reilly, our publisher. The reason is that pirated copies of the books Jenny and I wrote, along with a huge amount of other people’s work, got swept into the data used to train Claude, and a court settlement is now paying authors and publishers whose work was taken that way. It works out to a little over $3,000 for each of our books, split between all of us, and every edition is counted separately, no matter how the book sold or what was in it. (Assuming the money ever shows up. The settlement won final court approval in July 2026, but a payout this size grinds through a long administrative process, so we’ll see if the check ever actually arrives.)</p>



<p class="wp-block-paragraph">I don’t especially care about the check. (Okay, that’s not true, nine grand is a lot of money, but hopefully you’ll get my point.) Jenny and I didn&#8217;t write those books to get rich, and nobody who’s met a working author would mistake the job for a path to wealth. But one thing I very much care about, and I suspect almost all authors would agree, is getting credit for the work I’ve done. If you ask ChatGPT, Claude, or Gemini (or especially Google AI overviews) a question that it partly learned to answer from one of my books, I would love for it to be able to say so. Something like “Some of this comes from Andrew Stellman’s work, and if you want to go deeper, that’s where to look.” In other words, what I’m asking for is a hat tip.</p>



<p class="wp-block-paragraph">All of this sits inside a much bigger question, one that usually goes by the name <strong>attribution</strong>. In the broadest terms, attribution means knowing where a piece of work or knowledge came from, and being able to trace it back to the person who made it. That might sound like a narrow, technical matter, but right now it’s one of the biggest live questions in AI. At Foo Camp recently, it came up constantly, quite possibly the most talked-about topic of the whole weekend, and everyone there seemed to have something to say about it. It’s also a tangled subject, part technical and part legal, and more than either of those, deeply emotional. I want to take a little time to pull those threads apart.</p>



<h2 class="wp-block-heading"><strong>Why so many people are angry</strong></h2>



<p class="wp-block-paragraph">Before any of the technical or legal questions, there’s a simpler reason attribution is such a live wire right now: People are angry, and to be perfectly honest, they have good reason to be. Artists have watched models learn to imitate their style from work that got scraped without anyone asking. Writers have found their books sitting in training sets we never agreed to (even though that’s <em>not</em> the reason Anthropic has to pay us). A lot of people are simply afraid that the work they do for a living is about to be done by a machine that learned part of the job from them. Their work got taken, which may be fair use but almost never included asking the author for permission, and often without any way to even find out it happened. And that for many of us feels really uncomfortable.</p>



<p class="wp-block-paragraph">A lot of that anger ends up funneled into legalistic arguments about copyright, which is notoriously misunderstood and misapplied. People reach for it for understandable reasons. It feels tangible in a way the rest of this doesn’t, and while many of us feel like it was written to protect authors and artists and creators, it’s actually much more nuanced, especially when it comes to fair use. But I don’t think copyright is the right move for anyone who actually wants attribution, and I’ll go further: I think creators will get a lot more mileage working with the AI labs than fighting them in court.</p>



<p class="wp-block-paragraph">Underneath all of it, what most of us want is simple enough: We want the work to still be ours, and we want that to be visible. That’s an attribution problem. And before anyone can argue about whether AI can solve it, it helps to be clear about what attribution even is, because it’s a slipperier word than it looks.</p>



<h2 class="wp-block-heading"><strong>What attribution actually is</strong></h2>



<p class="wp-block-paragraph">At its simplest, attribution is the link between something and where it came from. When you read a fact in a book, there’s a chain running from that sentence back to the author, and back again to whatever they drew on. That chain is how credit works, and how trust works, and how you know what to go read next when something grabs you. For as long as people have made things, you could usually follow it back to a person.</p>



<p class="wp-block-paragraph">You see attribution everywhere once you start noticing it. Bibliographies and references are attribution. So is every footnote on a Wikipedia page, and so is every time one news story credits another, the way you’ll read that “<em>Business Insider</em> is reporting” something before another site passes it along (that is, when we remember to do it). For authors it runs deeper than that: Attribution underpins almost everything we do, and the whole system of academic publishing rests on it, because the entire point is to show exactly whose work each new piece is built on.</p>



<p class="wp-block-paragraph">AI is the first technology that takes in essentially all of it, every book and article and repository it can reach, and hands back answers with the chain erased. And while that may be technically allowed under fair use, it shouldn’t be the end of the discussion. The knowledge comes out; the line back to whoever produced it does not. That erasure, underneath the lawsuits, is what people are really reacting to. The model learned from their work and gives no sign of it, and the trail that used to lead back to them is gone. Attribution is just the name for putting that thread back.</p>



<p class="wp-block-paragraph">The catch is that people use the word for at least three pretty different things. The cheap version, the one people reach for first, is resemblance: Does the answer look like my work? That’s easy to check and mostly beside the point, because two people can write nearly the same sentence about a for-loop without either one copying the other. What actual products ship is citation, the little source links under a chatbot’s answer, which credit the page the system fetched while it was answering, not the books it learned from years earlier. Those links are the result of retrieval, not memory, where the system went out and fetched a live page mid-answer. There aren’t any technical challenges in adding an attribution for those live retrieval results, and the fact that the AI labs are fine with that attribution gives them a template to follow if model-based attribution becomes technically feasible.</p>



<p class="wp-block-paragraph">We’ve got a really good real-world example of how this can work. O’Reilly&#8217;s learning platform has an AI engine that answers questions out of the books on the platform, tells you which ones it drew on, and pays the authors and publishers behind them. It works because the corpus is small and everything in it is licensed, which is precisely the condition the frontier models don’t have. Because the version that actually matters is the third one, causal: Did my work shape the part of the model that produced this answer? That’s the honest meaning of the word, and by far the hardest to compute.</p>



<p class="wp-block-paragraph">Notice that none of that is about money. Paying me would mean working out what a given answer is worth and what share of it is mine, which is a hard allocation problem nobody has really solved (and, to be honest, probably works out to a tiny fraction of a cent in any given answer). Attribution asks a smaller question: Did this come from my work, or didn’t it? A hat tip is only that identification, not necessarily a required payment, and it’s still the thing everyone tells you is impossible.</p>



<h2 class="wp-block-heading"><strong>Trying it on a tiny model</strong></h2>



<p class="wp-block-paragraph">I may be an author, but I’m a developer too, and when someone tells us something is impossible, our first urge is always to build that thing. A lot of the time “impossible” just means nobody has worked out how yet, and every so often it means it would be inconvenient for someone if they did. In this case, some really smart people actually have worked out how, at least some important parts of it, and it’s worth understanding both why the problem is hard and how they’re tackling it.</p>



<p class="wp-block-paragraph">Start with why it’s hard. When a model trains on your book, it doesn’t file the book away somewhere you can later point to, because <em>models are not databases of books and other source material</em>. What it learns gets spread across billions of numbers, tangled up with everything else it ever read, and no single weight says, “This part came from Stellman.” There’s no receipt anywhere that records which source contributed what. The obvious way to check whether your book mattered would be to pull it out, train the model over again, and see what changed, but nobody is going to retrain a frontier model from scratch a billion times. The upshot is that the knowledge is still in there, it’s just smeared across the whole model with no index back to where it came from, and that’s why a lot of people have called attribution impossible.</p>



<p class="wp-block-paragraph">It may not be quite as impossible as it seems from that particular approach, though.</p>



<p class="wp-block-paragraph">Researchers have been chipping away at exactly this, and the approaches run from cheap and rough to expensive and precise. At the precise end is leave-one-out: remove a source, retrain, and measure how far the answer falls. It’s about as close to ground truth as you can get, and hopeless at scale for the reason I just gave. The interesting work is on cheaper stand-ins that approximate that result without all that retraining. The one I find most compelling is TracIn, described by four Google researchers in 2020 in “<a href="https://arxiv.org/abs/2002.08484" target="_blank" rel="noopener">Estimating Training Data Influence by Tracing Gradient Descent</a>”: As the model trains, it saves snapshots of itself, and TracIn measures how much each training example pushed the model toward a given answer by comparing gradients at those snapshots, with no retraining required.</p>



<p class="wp-block-paragraph">It belongs to a broader family. Influence functions, which Pang Wei Koh and Percy Liang introduced in 2017 in “<a href="https://proceedings.mlr.press/v70/koh17a.html" target="_blank" rel="noopener">Understanding Black-Box Predictions via Influence Functions</a>,” are the older, heavier cousin, and Anthropic scaled them up to models with tens of billions of parameters in a 2023 paper, “<a href="https://arxiv.org/abs/2308.03296" target="_blank" rel="noopener">Studying Large Language Model Generalization with Influence Functions</a>.” A newer method, <a href="https://arxiv.org/abs/2303.14186" target="_blank" rel="noopener">TRAK</a> from MIT’s Madry Lab, takes on a weakness they share, where near-duplicate sources muddy the accounting. None of it is settled, and TracIn in particular is contested at frontier scale, but the direction is real and the people pushing it have far bigger budgets than mine.</p>



<p class="wp-block-paragraph">So I wanted to see it work with my own eyes. I asked an AI to build me the smallest real language model that could still run one of these methods, and about 20 minutes later I had a working one, which I called <a href="https://github.com/andrewstellman/tiny-provenance" target="_blank" rel="noopener">tiny-provenance</a>: a language model small enough, around 37,000 parameters, that I can retrain it from scratch in a few seconds. That size is the whole point, because it let me run the expensive leave-one-out check for real, as ground truth, and set the cheap TracIn approximation next to it to see whether they agreed.</p>



<p class="wp-block-paragraph">They did. I gave it a trick question, “Who designed the Analytical Engine?” with a look-alike line about Babbage and the Difference Engine sitting right next to the correct one in the training data. The cheap resemblance check, the kind of thing real products lean on, took the bait and confidently credited the wrong line. Leave-one-out and TracIn both ignored the look-alike and pointed straight at the source the model actually used. The lazy method everyone reaches for was confident and wrong, the honest ones were right, and the whole thing ran in about two minutes on a laptop.</p>



<p class="wp-block-paragraph">I proved it at a size where I can retrain the model at will, which is exactly what nobody can do at frontier scale, so I won’t pretend I showed it holds up there. Attribution works best at the extremes, where a model has nearly memorized a passage or leaned hard on a single source, and it stays hard in the muddy middle where an almost unimaginable number of books <em>may</em> each have added a tiny little bit to the model. The fair summary is that attribution isn’t impossible. It’s just currently expensive, and more importantly, really impractical with today’s technology.</p>



<p class="wp-block-paragraph">The whole repo is public, and since this is an article about showing where things came from, it seemed only right to be transparent about where the demo came from too. The README walks through exactly how I built it, prompts and all.</p>



<h2 class="wp-block-heading"><strong>The legal hurdle</strong></h2>



<p class="wp-block-paragraph">I’ll put my own cards on the table: I think copyright is the wrong tool for the fight we’re having about AI. My first job out of college was at EMI Records, working on the system that tracked their music contracts, so I learned early how tangled copyright and trademark and mechanical royalties and the rest of it can get.</p>



<p class="wp-block-paragraph">Here’s the analogy I keep coming back to. If a student copies a paragraph out of Wikipedia word for word, that’s plagiarism. If the student reads it, understands it, and rewrites it in their own words, usually it isn’t, though that depends on what got rewritten, because plagiarism is about the ideas and not only the words. A physics student writing “F=ma” in a paper isn’t plagiarizing, even if they copied the formula straight out of a textbook. On the other hand, paraphrasing a specific result from somebody’s research paper without saying where it came from is still plagiarism, even if you technically changed the words. And it gets even more complicated. If you copy text word for word but credit the source, you’re not plagiarizing, but you could still have a copyright problem. We throw around the term “fair use” a lot, but that’s actually a very thorny legal area. More importantly, reducing these ideas to a legal argument doesn’t really get to the core of the problem, because laws are often imperfect and dictated by decades of (sometimes conflicting) precedent, so what’s legal doesn’t always match up with what’s the right thing to do. What a model does is a step further from copying than the rewrite: It turns the text into an enormous pile of numbers that stand in for the concepts, and there’s no paragraph left anywhere to find. So far, the courts that have looked at this, including the one behind the Anthropic settlement, have called that use “exceedingly transformative” (those are the Anthropic judge’s words, and lawyers on both sides recognized that as quite a statement). What they mean is that it changes the work into something new enough, and for a different enough purpose, that it isn’t simply a copy of the original. I think they basically got it right.</p>



<p class="wp-block-paragraph">Basically, I’m not getting a check from Anthropic because they used my work without permission; I’m getting a check because they literally used a stolen book downloaded from a pirated website, instead of paying O’Reilly for a copy or getting it from another legitimate source.</p>



<p class="wp-block-paragraph">But I don’t get to wave copyright away entirely, because there’s a real case on the other side, and it’s one I feel personally. Someone who wants to learn C# or study for a project management exam can now ask an AI and get an answer that came partly from books I wrote, without ever buying the book. The model learned from my books (and many others on the same topics I write about), and now it competes with them, in the exact market they were written for, using what it took from them to do it.</p>



<p class="wp-block-paragraph">The worry that AI tools compete with the very material they trained on isn’t theoretical. Stack Overflow, the question-and-answer site where a generation of programmers went for help, has lost roughly three-quarters of its question volume since ChatGPT launched, as developers ask the AI instead. And the AI answers them well in part because it trained on Stack Overflow’s answers in the first place. And even that whole issue is highly nuanced, especially since the material on Stack Overflow itself is written by its users and released to the public under a Creative Commons license.</p>



<p class="wp-block-paragraph">That goes to the center of what copyright is meant to protect. One of the things courts weigh in a fair-use case is the effect on the market for the original, and a free substitute trained on the original is about as direct a market effect as there is. A judge has already pointed right at it. In the case a group of authors including Sarah Silverman brought against Meta, the court <a href="https://www.authorsalliance.org/2025/06/26/meta-wins-on-fair-use-for-now-but-court-leaves-door-open-for-market-dilution/" target="_blank" rel="noopener">handed Meta a win on fair use</a>. But the judge then went out of his way to hint that the the authors may have lost because they’d argued it wrong, and that this market-dilution theory, the flood of cheap substitutes, is exactly the one that could win on a better record. The judge also said there was “no serious question” that the use of the technology was “highly transformative” in his ruling, and again, lawyers consider that very strong language. I’m not a lawyer, and this is only how the case reads to me as a layman, but I think it’s the strongest argument the other side has. Between that and the piracy, the bigger question is a long way from settled.</p>



<p class="wp-block-paragraph">This is where it comes back to the hat tip, and the solution I’d like to see for all of these complex, nuanced problems. In a calm world, credit would be a simple courtesy. But we aren’t in a calm world. Copyright sets statutory damages of up to $150,000 per work for willful infringement, and a lot of lawyers see that number and essentially see a bounty, and their whole case turns on escalating litigation and trying to increase a damage award (of which they receive a substantial cut) by trying to sweep in as many works as they possibly can. In other words, they have a huge financial incentive to show that one of the AI labs creating models knew whose work it was using, knew that it was infringing, and did it anyway. Now look at what a hat tip is. The moment an AI lab prints “This answer draws on Andrew Stellman’s book,” it has stated, in writing, “We knew we were using Andrew Stellman’s book,” and a good plaintiff’s attorney could easily turn that around and make it exhibit A. Would a judge see that as willful infringement? I have no idea. But I’m not sure I would bet the entire future of a company like Anthropic or OpenAI.</p>



<p class="wp-block-paragraph">If credit that would cost a lab almost nothing to give carries a legal risk that dwarfs the cost of crediting no one, then the rational move, the one any lawyer would advise, is to say nothing and admit nothing. The threat of a potential lawsuit could be enough to convince a lab that they can’t safely open the conversation about voluntary attribution at all, because anything it offers in good faith can be turned into ammunition. That’s the worst outcome for everybody, authors included, because the one technology that might be able to finally tell you where an idea came from ends up legally better off staying silent about it.</p>



<p class="wp-block-paragraph">If you build with these tools, or just lean on them all day the way I do, this is a key reason the answers you get will almost never tell you where they came from, even if the technology to trace them keeps getting better. The people who build these tools could add that little “Here’s who this came from” line tomorrow. What likely stops them is a legal system that makes giving it to you too dangerous to try.</p>



<h2 class="wp-block-heading"><strong>What I actually want</strong></h2>



<p class="wp-block-paragraph">There’s a smaller version of the hat tip that doesn’t run into any of the legal or technical issues I’ve been talking about. Even when a model can’t say which book an answer came from, when it honestly can’t be traced, it can still point you to the authoritative sources on the subject, the ones worth reading to go deeper. That isn’t attribution in the strict sense; nobody has proven those books shaped that answer. But a model trained on a topic was almost certainly trained on the standard works for it, so the correlation is strong. For the reader it does the useful thing anyway by saying where to go next, and it’s something the AI labs can do today.</p>



<p class="wp-block-paragraph">Which brings me back to that check from Anthropic I may or may not be about to cash. I meant it when I said I’d rather have the credit. What my writing has done for my career matters more to me than what it’s done for my bank account, and I would happily cut that settlement check in half if it meant twice as many people found their way to the work. A hat tip does exactly that, and it’s what I actually want, if it opens up new exposure to my work and new opportunities for authors like me.</p>



<p class="wp-block-paragraph">The part I keep turning over is that the hat tip is more possible than the people who say “impossible” want to admit. I made a toy version, and researchers at AI labs are pushing these ideas a great deal further than I can. A key part of what stands in the way now is a legal question: whether good faith can survive contact with $150,000 a work. I don’t know how that one comes out. But I’m fairly sure it isn’t the math, and the math was supposed to be the hard part.</p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/hey-ai-can-you-just-give-me-a-hat-tip-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>What a User Story Actually Costs in a Dark Code Factory</title>
		<link>https://www.oreilly.com/radar/what-a-user-story-actually-costs-in-a-dark-code-factory/</link>
				<comments>https://www.oreilly.com/radar/what-a-user-story-actually-costs-in-a-dark-code-factory/#respond</comments>
				<pubDate>Wed, 02 Sep 2026 11:03:21 +0000</pubDate>
					<dc:creator><![CDATA[François-Xavier Martin]]></dc:creator>
						<category><![CDATA[AI & ML]]></category>
		<category><![CDATA[Commentary]]></category>

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

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2026/09/What-a-user-story-actually-costs-in-a-dark-code-factory.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-a-user-story-actually-costs-in-a-dark-code-factory-160x160.jpg" 
				width="160" 
				height="160" 
			/>
		
		
				<description><![CDATA[Between March and July 2026, I built a production application of 861,601 lines of code. This included 696 user stories and 779 merged pull requests over 105 days, but I can’t tell you what it cost. The first version of an autonomous SDLC framework driving Claude Code did the work. That generation didn’t record usage, [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">Between March and July 2026, I built a production application of 861,601 lines of code. This included 696 user stories and 779 merged pull requests over 105 days, but I can’t tell you what it cost.</p>



<p class="wp-block-paragraph">The first version of an autonomous SDLC framework driving Claude Code did the work. That generation didn’t record usage, and Claude Code’s default 30-day transcript retention erased the only other record. The bill isn’t approximately known because it’s gone. If measurement isn’t part of the pipeline, it doesn’t exist.</p>



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



<p class="wp-block-paragraph">The second generation of the factory persists its own bill as it works. Every stage attempt writes its tokens (input, output, cache read, cache write), its cost, its model, and its failure category to a ledger. That first-generation application left no records because its framework kept none; this one cannot run without keeping them.</p>



<p class="wp-block-paragraph">I should define the unit before pricing anything. In this pipeline, a story is the agile artifact we know. It’s a small requirement decomposed from an epic with acceptance criteria that give the agent its stopping condition. The Definition of Done is how the machine knows it’s finished. We humans batched stories into sprints to manage the delivery. In this pipeline, a story-build is just a story going through its own full delivery cycle. This includes writing tests first, the build, a coverage gate, review by a dedicated reviewer agent, and the merge. It also includes bugfixes and repeat requests when an agent’s reply is malformed. Up to five stories are in flight at once in isolated git worktrees. The dataset for this article covers every story the factory built in one repository between June 25 and July 18, 2026. This includes 17 runs, 193 story-builds, 374 stage attempts, and 336 session logs. The June runs used Claude Opus 4.8 and the July runs used Claude Fable 5, while Claude Haiku 4.5 handled smaller parts.</p>



<p class="wp-block-paragraph">Usage lives in the ledger and the raw session logs, but they disagree. The logs are the ground truth for a reason I’ll explain later. The factory (claude-code-config) and the repository it built (local-code-bench) are both public. The methodology section includes the CSVs and extraction script so you can check every number. The production application from the opening remains private, so only its ghost appears here.</p>



<h2 class="wp-block-heading">What a story costs</h2>



<p class="wp-block-paragraph">The factory consumed 595.7 million tokens to ship 77 stories, 7.7 million tokens per delivered story: at list prices for those models, $837.53, or $10.88 per story. The numerator includes every token thrown away, the five stories that ended FAILED, the 22 failed stage attempts, the bugfix and re-ask loops, and the retries; the denominator counts only stories that shipped.</p>



<p class="wp-block-paragraph">In a previous <a href="https://medium.com/@fxmartin/the-dark-code-factory-6faae62abcb1" target="_blank" rel="noopener">essay</a> I estimated my factory’s stories at “a few dollars to a few tens of dollars.” The meter’s answer is $3.02 to $43.24 with a median of $9.56, so my estimates were valid. Two findings in the table surprised me. Story points barely predict cost because the medium and large bands are only 8% apart at the median. The most expensive story was $43.24 for a 3-pointer that hit a review retry and a bugfix loop. The wall-clock mean is roughly two and a half times the median because the overnight run hit the subscription plan’s rate-limit window twice and stalled for hours. This was a billing artifact rather than an agent one.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>View</td><td>Median</td><td>Mean</td><td>Min</td><td>Max</td></tr><tr><td>Tokens per story (millions)</td><td>6.55</td><td>7.84</td><td>1.99</td><td>24.48</td></tr><tr><td>Wall-clock per delivered story (minutes)</td><td>19.7</td><td>48.8</td><td>7.6</td><td>296.0</td></tr><tr><td>Cost per story (USD, API-equivalent)</td><td>9.56</td><td>11.02</td><td>3.02</td><td>43.24</td></tr></tbody></table><figcaption class="wp-element-caption"><em>Table 1. Per story-build with attributable cost (n = 76, including the 5 that failed; six delivered stories returned no usage envelope and appear only in the headline denominator).</em></figcaption></figure>



<p class="wp-block-paragraph">Prices reflect Anthropic’s list rates as of the run dates.</p>



<p class="wp-block-paragraph">696 stories of the ghost application at this rate is roughly 5.4 billion tokens. We’ll never know.</p>



<h2 class="wp-block-heading">The factory is a reading machine</h2>



<p class="wp-block-paragraph">Here&#8217;s where my estimates were off. In that essay’s worked example, I priced a story as if cache writes were free. They aren&#8217;t, and they aren&#8217;t even small.</p>



<p class="wp-block-paragraph">An agent resends the same instructions and repository context on every turn. The API caches that stable context, which makes a cached reread cost a tenth of fresh input, though it charges a premium to write new content into the cache.</p>



<p class="wp-block-paragraph">95.4% of all tokens are cache reads. The factory rereads about 73 cached tokens for every new token it writes or receives. A dark code factory is mostly a reading machine that occasionally types.</p>



<p class="wp-block-paragraph">The cost side of Table 2 shows where my estimate broke. Cache writes are only 3.3% of tokens but 31.2% of the bill. Cache traffic overall is 77% of the cost. Fresh input is merely a rounding error at 1.6% of the cost.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>Class</td><td>Share of tokens</td><td>Share of converted cost (USD)</td></tr><tr><td>Cache reads</td><td>95.4%</td><td>45.9%</td></tr><tr><td>Cache writes</td><td>3.3%</td><td>31.2%</td></tr><tr><td>Output</td><td>0.9%</td><td>21.3%</td></tr><tr><td>Fresh input</td><td>0.4%</td><td>1.6%</td></tr></tbody></table><figcaption class="wp-element-caption"><em>Table 2. Token classes across all 374 stage attempts.</em></figcaption></figure>



<p class="wp-block-paragraph">This shape is not a quirk of one pipeline. The cache-read share is 96.4% in my interactive framework-development sessions and 91.9% in the ghost’s surviving scraps: three independent samples, two framework generations, two working modes, same shape. It looks like a property of how agentic development consumes compute.</p>



<p class="wp-block-paragraph">The practical consequence surprised me most: Cost optimization in an agentic pipeline is cache management, not prompt shortening. Context discipline, cache-tier awareness, and orchestrators that don’t stuff their own windows move the bill. Trimming your prompt wording does not.</p>



<h2 class="wp-block-heading">The honest denominator</h2>



<p class="wp-block-paragraph">There are two ways to read the failure number. The narrow reading, attempts marked FAILED, is 5.0% of tokens. The honest reading, all rework, retries, bugfix and re-ask loops, plus the crashed sessions that streamed tokens and died, is about 13%. Public cost claims rarely say which reading they use.</p>



<p class="wp-block-paragraph">Only 34 of 76 stories were clean first-pass, but rework stays cheap because retries are small relative to builds. I count the 13% as a quality bill because the gates catch problems.</p>



<p class="wp-block-paragraph">I found a bug while dissecting the raw data that showed my meter lied. The ledger missed a sixth of real consumption, recording $694.65 against the logs’ $837.53. When a result envelope failed validation, the controller’s re-ask overwrote the original stage row’s usage. This erased the expensive failed session from the books, and crashed sessions never wrote back at all. 57 attempts were affected, which is why the session logs are the ground truth.</p>



<p class="wp-block-paragraph">The measurement system needed auditing just like the code it measures. So I filed the bug against my own factory and let its fix pipeline handle it. It decomposed the report into three defects and repaired the overwrite and the model recording in one merged PR (<a href="https://github.com/fxmartin/claude-code-config/issues/480" target="_blank" rel="noopener">issue #480</a>, <a href="https://github.com/fxmartin/claude-code-config/pull/482" target="_blank" rel="noopener">PR #482</a>, 3,200 tests passing). The factory audited its own meter and fixed most of it, while the work to recover spend from crashed sessions is queued as <a href="https://github.com/fxmartin/claude-code-config/issues/481" target="_blank" rel="noopener">open work</a>.</p>



<h2 class="wp-block-heading">Who actually pays</h2>



<p class="wp-block-paragraph">The marginal bill for all of this was zero. I run a $200-per-month Max 20x subscription, which is why every dollar in this piece is labeled API-equivalent.</p>



<p class="wp-block-paragraph">The subscription’s real currency is quota rather than money. The overnight run stalled twice on the 5-hour rate-limit window, and ten dispatches waited 3.3 to 4.2 hours before auto-resuming. On a flat monthly fee, time is the fence.</p>



<p class="wp-block-paragraph">One rolling month of measured work across all three codebases totals about $1,088 API-equivalent against the $200 fee, more than five to one, and that&#8217;s a floor, because older transcripts are purged. This proves a pricing asymmetry against list rates, not a subsidy: List price isn’t Anthropic’s cost; it includes their margin.</p>



<p class="wp-block-paragraph">Can a professional, or a small firm, legitimately run on these flat fees? Nothing in the plan terms stops them. There&#8217;s no revenue test and no company-size cap. The line Anthropic draws is contractual, not financial. Individual seats run under consumer terms; a Team premium seat at $125 buys business terms and central administration, but roughly half the quota per dollar. Climbing the subscription ladder buys governance, not tokens.</p>



<p class="wp-block-paragraph">This flat-fee window won&#8217;t stay open forever; quotas tighten and tiers reprice. A factory that meters itself will notice the day the trade turns. One that doesn’t will simply feel slower and poorer, without knowing why.</p>



<h2 class="wp-block-heading">What the meter changes</h2>



<p class="wp-block-paragraph">I discovered while analyzing the data for this article that every number was produced with model routing switched off. Mechanical merges burned premium-model prices on Haiku-grade work, which accounted for 12.3% of all tokens. This means 7.7 million tokens per delivered story is the unoptimized rate. The article you’re reading found the bug, and the fix is already in the factory’s backlog.</p>



<p class="wp-block-paragraph">A second find came from pointing the meter at myself. Writing the factory’s specifications—its epics and stories, in interactive sessions—consumed about 190 million tokens, which is roughly 25 stories’ worth of consumption (about $160 in converted terms). When implementation is this cheap, the code is no longer the expensive artifact. The difference between the $10.88 story and the unknowable 861,601 lines is that one pipeline wrote its bill down.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Methodology</strong></td></tr><tr><td>Dataset, extraction script, and assumptions A1 to A10:<br>&#8211; <a href="http://gist.github.com/fxmartin/979da2a47fbbbac6d72d238073e23491">gist.github.com/fxmartin/979da2a47fbbbac6d72d238073e23491</a>.Project-a = local-code-bench (full data in the gist); project-b = claude-code-config (aggregates only; session detail reserved for a companion piece); project-c = a private production repo, withheld.Ground truth is each session’s modelUsage envelope, with the ledger as fallback; 317 of 374 attempts are fully priced; unmeasured attempts are documented, never imputed.<br>Prices are Anthropic list, fetched 2026-07-19: Opus 4.8 $5/$25 per million tokens in/out, Fable 5 $10/$50, Haiku 4.5 $1/$5; cache reads at 0.1x the input rate; 1-hour cache writes at 2x.<br>All waste is included in every total; the per-story figure divides total spend by 77 delivered stories ($10.88, or $11.80 excluding six deliveries that returned no usage envelope).<br>The ledger’s model column was NULL on historical rows; attribution comes from session logs, and model recording is fixed for future runs in PR #482.<br>Primary figures are in tokens; dollar figures are conversions at the prices listed. All dollars are API-equivalent; actual billing was a flat-fee subscription.</td></tr></tbody></table></figure>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/what-a-user-story-actually-costs-in-a-dark-code-factory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Radar Trends to Watch: September 2026</title>
		<link>https://www.oreilly.com/radar/radar-trends-to-watch-september-2026/</link>
				<comments>https://www.oreilly.com/radar/radar-trends-to-watch-september-2026/#respond</comments>
				<pubDate>Tue, 01 Sep 2026 10:55:33 +0000</pubDate>
					<dc:creator><![CDATA[Mike Loukides]]></dc:creator>
						<category><![CDATA[Radar Trends]]></category>
		<category><![CDATA[Commentary]]></category>

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

		
					<media:content 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2023/06/radar-1400x950-4.png" 
				medium="image" 
				type="image/png" 
				width="1400" 
				height="950" 
			/>

			<media:thumbnail 
				url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2023/06/radar-1400x950-4-160x160.png" 
				width="160" 
				height="160" 
			/>
		
				<custom:subtitle><![CDATA[Developments in AI models, infrastructure &amp; ops, security, and more]]></custom:subtitle>
		
				<description><![CDATA[Coauthored with Claude Midway through each month, I think “The next Trends is going to be small. Not much is happening.” This is the first time that I’ve been right. Was everyone on vacation in August? Am I becoming jaded? There were many model releases, though few of them seemed significant. Then again, it may [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Coauthored with Claude</em></p>



<p class="wp-block-paragraph">Midway through each month, I think “The next Trends is going to be small. Not much is happening.” This is the first time that I’ve been right. Was everyone on vacation in August? Am I becoming jaded? There were many model releases, though few of them seemed significant. Then again, it may be time to get over the one-upmanship by the frontier vendors and spend more time thinking about the myriad small and open-weight models. Every month, the best laptop-scale models (30B and smaller) seem closer to the leading frontier models. And every month, we’re seeing organizations realize that paying premium per-token prices for the latest frontier models gives at best a small advantage over the best open-weight models.</p>



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



<p class="wp-block-paragraph"><em>Capability and model size are decoupling. Several models here run comfortably on a laptop or a single accelerator while claiming performance close to much larger frontier systems. While it can be hard to work with a smaller model without thinking that you’re choosing “second best,” the biggest model isn’t always the right choice. Major releases aside, the most important news from August might be Anthropic’s deployment of watermarks for text. If the watermarking scheme works, it will be possible to tell which parts of an article like this were written by AI.</em></p>



<ul class="wp-block-list">
<li>OpenAI has <a href="https://openai.com/index/our-decision-on-cursor-following-its-acquisition-by-spacex/" target="_blank" rel="noopener">announced</a> that, beginning November 12, 2026, Cursor will no longer have access to their models.</li>



<li>A mysterious model named Ox Alpha quickly became the most heavily used model on <a href="https://openrouter.ai/stealth/ox-alpha" target="_blank" rel="noopener">OpenRouter</a>. <a href="http://z.ai" target="_blank" rel="noopener">Z.ai</a> recently confirmed that Ox Alpha was <a href="https://z.ai/blog/glm-5.3-flash" target="_blank" rel="noopener">GLM-5.3-Flash</a>, a 320B open weight model that claims performance similar to Opus 4.8 and that has been deployed running entirely on Chinese chips.</li>



<li>IBM’s <a href="https://research.ibm.com/blog/introducing-granite-4-2" target="_blank" rel="noopener">Granite 4.2</a> is a small open-weight <a href="https://arstechnica.com/ai/2026/08/ibms-new-granite-4-2-models-ride-the-wave-of-interest-in-local-llms/" target="_blank" rel="noopener">reasoning model</a> that has been tuned for multistep tasks. It comes in 3B, 8B, and 30B sizes. It’s another model making the argument that small local models can be competitive with frontier models.&nbsp;</li>



<li>The team that developed <a href="https://ornith.ai/ornith_1_5.html" target="_blank" rel="noopener">Ornith-1.5</a> claims that they have made a major step toward self-improvement. The model supports a self-improvement loop in which it proposes new tasks, generates solutions, and uses reinforcement learning to apply the results to itself.</li>



<li><a href="https://api-docs.deepseek.com/guides/vision/" target="_blank" rel="noopener">DeepSeek-V4-Flash-Vision</a> adds vision to DeepSeek V4’s capabilities. Images can be mixed with text; the model can describe images, extract text from images, and do other things that we expect from a leading LLM.</li>



<li>Anthropic is now <a href="https://thenewstack.io/anthropic-claude-text-watermark/" target="_blank" rel="noopener">embedding watermarks</a> <a href="https://www.anthropic.com/news/claude-text-watermark" target="_blank" rel="noopener">into all of the text that its models generate</a> or edit. The watermarks are apparently based on word choice; the algorithm “changes the source of randomness used to pick words.” We don’t (yet) know of any tools to detect the presence of a watermark, but there are already tools that claim to <a href="https://thenextweb.com/news/anthropic-watermark-remover-tools-backlash" target="_blank" rel="noopener">remove them</a>. It isn’t clear that these tools work.</li>



<li>A <a href="https://thenewstack.io/ai-agents-refactoring-benchmarks/" target="_blank" rel="noopener">new benchmark</a>, <a href="https://arxiv.org/abs/2608.09802" target="_blank" rel="noopener">SWE-Bench ProMax</a>, tests the ability of LLMs to do large-scale refactoring. It’s a multilingual benchmark based on real-world code in seven languages.</li>



<li><a href="https://huggingface.co/Qwen/Qwen3.8-27B" target="_blank" rel="noopener">Qwen3.8-27B</a> is a small open-weight model that claims performance similar to Opus 4.6 max. It runs easily on a reasonably well-equipped laptop.</li>



<li>Google has <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-3-7-flash/" target="_blank" rel="noopener">released</a> Gemini 3.7 Flash, claiming improved coding and debugging.</li>



<li><a href="http://z.ai" target="_blank" rel="noopener">Z.ai</a> has <a href="https://z.ai/blog/glm-5.3" target="_blank" rel="noopener">released</a> GLM-5.3. It’s very similar to GLM-5.2, differing only in that it has received additional post-training. Z.ai claims that it’s better at code generation and long-running tasks.</li>



<li>NVIDIA has <a href="https://developer.nvidia.com/blog/nvidia-nemotron-3-5-lightning-delivers-fast-accurate-specialized-task-execution-for-long-running-agents/" target="_blank" rel="noopener">released</a> Nemotron 3.5 Lightning, an open-weight mixture-of-experts model with 30B parameters and 3B active parameters. Like many recent models, it’s optimized for long-running agents such as OpenClaw.</li>



<li>Cactus Compute has released <a href="https://cactuscompute.com/needle" target="_blank" rel="noopener">Needle 2</a>, another small model that’s worth a look. It’s a 45B-parameter model that has been designed for “tool calling, device use, and structured extraction.” Needle requires only 28 MB of RAM, so it will run on many laptops and small devices and microcontrollers.</li>



<li>Meta open-sourced <a href="https://research.meta.ai/blog/introducing-muse-glimmer-open-agentic-model" target="_blank" rel="noopener">Muse Glimmer</a>, a 30B model designed for agentic applications. It can run on consumer hardware. Meta also <a href="https://research.meta.ai/blog/introducing-muse-code-and-muse-spark-1-2" target="_blank" rel="noopener">released</a> Muse Code and Muse Spark 1.2. Muse Code is a model designed for code generation. It implements an agent loop and a local event log that allows exact replays and restarts. Spark is a general-purpose model with near-frontier performance—Meta describes it as “a step towards the frontier.”</li>
</ul>



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



<p class="wp-block-paragraph"><em>Features that we associate with agents or harnesses, such as the ability to spawn subagents and delegate tasks to less-expensive models, are continuing to find their way into the models themselves. There’s also a countertrend: Individuals and organizations are building their own agents that are closely integrated into their working environment. Are we headed for walled gardens controlled by the leading providers? Or will a thousand flowers bloom, each reflecting an idiosyncratic way of working with AI? Don’t avoid tools from the major AI labs, like Claude Code and Codex, but don’t lock yourself into thinking that they’re the only option.</em></p>



<ul class="wp-block-list">
<li>DeepSeek has <a href="https://thenewstack.io/deepseek-harness-open-source-plugins/" target="_blank" rel="noopener">open-sourced</a> <a href="https://github.com/deepseek-ai/deepseek-harness" target="_blank" rel="noopener">Harness</a>, its agent harness. What makes Harness unique is that almost everything is a plugin, so it’s extremely flexible. It can be used with many models, and can delegate work to Claude Code and Codex.</li>



<li><a href="https://thenewstack.io/truefoundry-trueforge-claude-managed-agents/" target="_blank" rel="noopener">TrueForge</a> is an open source agent harness that can be used with any model. It includes tools to debug and govern agents in production.</li>



<li><a href="https://learn.chatgpt.com/docs/customization/computer-history" target="_blank" rel="noopener">Computer History</a> is a <a href="https://thenewstack.io/openai-chatgpt-computer-history/" target="_blank" rel="noopener">new feature</a> of ChatGPT Work and Codex that records how you use your computer. It’s similar to Microsoft’s controversial <a href="https://en.wikipedia.org/wiki/Windows_Recall" target="_blank" rel="noopener">Windows Recall</a>, but it’s based on key clicks and other actions rather than screenshots. Data is stored locally rather than sent to OpenAI. It’s off by default.</li>



<li>Zed’s <a href="https://zed.dev/blog/introducing-delta" target="_blank" rel="noopener">Delta</a> is a “multiplayer environment for coding with agents and reviewing what they build.” It&#8217;s a new take on Git and GitHub, designed specifically for the AI world. The company’s big insight is that the conversation about the code is as important as the code itself, and must be captured along with the source.</li>



<li>Companies are now <a href="https://thenewstack.io/enterprise-ai-agent-harness/" target="_blank" rel="noopener">building their own agents</a> (a.k.a. harnesses). While they’re still using AI services from Anthropic, OpenAI, and other providers, many organizations are finding that custom agents are a useful way to incorporate their own workflows into an AI-driven development process.</li>



<li>Anthropic has added <a href="https://code.claude.com/docs/en/cross-session-messaging" target="_blank" rel="noopener">cross-session messaging</a> to Claude Code. Messaging allows one agent to inform others about actions it has taken that might affect another agent’s work, reducing the need for a programmer to act as a communications medium.</li>



<li><a href="https://agent-plugins.org/" target="_blank" rel="noopener">Agent Plugins</a> is a standard for extending agents with plugins built from reusable components. It’s supported by OpenAI, Microsoft, Cursor, and AWS, though not by Google or Anthropic.</li>



<li>OpenAI now has a hardware product. <a href="https://openai.com/supply/co-lab/work-louder/" target="_blank" rel="noopener">Codex Micro</a> is a small terminal (certainly the wrong word) for remote AI work; it has 13 keys, a rotary encoder, a touch sensor, a joystick, and some status lights, and it hints at voice control (though I see no mention of a microphone). Its purpose is to allow you to control Codex workflows remotely.</li>



<li>“Just because a feature is easy to build doesn’t mean that it is worth shipping”: <a href="https://thenewstack.io/doist-ai-automation-code/" target="_blank" rel="noopener">Good advice on using AI effectively</a> for software development.</li>



<li>An <a href="https://arstechnica.com/ai/2026/07/with-a-stateless-makeover-new-mcp-spec-targets-enterprise-scale/" target="_blank" rel="noopener">update</a> to the <a href="https://modelcontextprotocol.io/specification/2026-07-28/changelog" target="_blank" rel="noopener">Model Context Protocol</a> (MCP) addresses one of the most significant barriers to adoption by making it stateless.</li>



<li>Software developers who didn’t grow up with Linux frequently haven’t discovered the art of the command line. Atomic Object <a href="https://spin.atomicobject.com/4-terminal-tools/" target="_blank" rel="noopener">recommends</a> four terminal tools: <a href="https://ghostty.org/" target="_blank" rel="noopener">Ghostty</a>, <a href="https://github.com/tmux/tmux/wiki" target="_blank" rel="noopener">tmux</a>, <a href="https://lazygit.dev/" target="_blank" rel="noopener">lazygit</a>, and <a href="https://lazydocker.com/" target="_blank" rel="noopener">lazydocker</a>. Try one of them—or all.</li>
</ul>



<h2 class="wp-block-heading"><strong>Infrastructure and operations</strong></h2>



<p class="wp-block-paragraph"><em>Optimizing AI usage has become its own discipline, sometimes called “tokenomics.” Tokenomics can’t be separated from safety, which has also been much in the news. Disposable containers built for agents, GPU scheduling that treats accelerators as a heterogeneous pool, and infrastructure providers publishing how they actually serve open models at scale all match workloads to hardware without waste or risk. AI performance isn’t just about models; it’s about infrastructure. Understanding how the model is run will prove more important than the model’s specs and benchmarks.</em></p>



<ul class="wp-block-list">
<li><a href="https://taalas.com/" target="_blank" rel="noopener">Taalas</a> has built a <a href="https://kernel.pryanic.com/posts/two-bets-on-standing-still-and-a-dark-horse" target="_blank" rel="noopener">chip that incorporates</a> Llama 3.1 8B. All the weights are on the chip, which can’t be used for any other models. It’s extremely fast. Whether single-model chips make sense when new models are released almost daily is a good question.</li>



<li>Docker <a href="https://www.docker.com/products/docker-sandboxes/" target="_blank" rel="noopener">Sandboxes</a> are isolated disposable containers that are designed for running AI agents safely.</li>



<li>Kubernetes’s Device Resource Allocation (DRA) makes it much <a href="https://thenewstack.io/kubernetes-dra-gpu-scheduling/" target="_blank" rel="noopener">easier</a> to schedule jobs on heterogeneous clusters of GPUs.</li>



<li>Cloudflare has published a <a href="https://blog.cloudflare.com/smaller-faster-safer-models/" target="_blank" rel="noopener">description</a> about how it runs the Kimi and GLM models at scale. It’s worth reading.</li>



<li><a href="https://github.com/sqliteai/waste" target="_blank" rel="noopener">WARP</a> (formerly Waste) is an inference engine with one purpose: run Kimi K3 on a laptop. K3 is a 2.8T parameter model with 104B active parameters, typically requiring a small fleet of GPUs. WARP requires a 64 GB Macbook Pro with a few TB of disk. It’s slow (about 0.5 tokens/second), but it runs.</li>
</ul>



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



<p class="wp-block-paragraph"><em>Security work is inseparable from AI development, not a layer added afterward—but security professionals have been saying that about traditional software for years. Artificial intelligence is spawning new attacks as well as new defenses. While it’s always fascinating to look at new attacks, the most significant shift is in defense: rethinking security in terms of actions and resources rather than user identities, a change we’ve also covered</em> <em><a href="https://docs.google.com/document/d/12gKSQ2kQQia32cqu0F3XiZ2JQr1VdgAs599qn6ajKsI/edit?tab=t.0" target="_blank" rel="noopener">on the Radar blog</a>.</em></p>



<ul class="wp-block-list">
<li>Anthropic, OpenAI, Google and many other AI companies have signed an <a href="https://openai.com/collective-cyberdefense/" target="_blank" rel="noopener">open letter</a> saying that defense against cyberattacks has to become a priority for governments, and that governments and organizations need to act collectively to build defenses.&nbsp;</li>



<li>The Chrome browser has <a href="https://arstechnica.com/security/2026/08/chrome-adopts-what-may-be-the-best-protection-yet-against-account-takeovers/" target="_blank" rel="noopener">adopted</a> device-bound service credentials (DBSC) to prevent session cookie theft, a critical step in account takeovers. DBSC stores an encryption key in a secure enclave or other trusted storage.</li>



<li>There is now a Python library that <a href="https://blog.trailofbits.com/2026/06/30/shipping-post-quantum-cryptography-to-python/" target="_blank" rel="noopener">supports</a> ML-KEM and ML-DSA, NIST-standard key encapsulation and digital signature algorithms for postquantum cryptography.</li>



<li>Simon Willison has published a <a href="https://simonwillison.net/2026/Aug/7/openai-timeline/#atom-everything" target="_blank" rel="noopener">timeline</a> of OpenAI’s inadvertent attack against HuggingFace. His timeline is based on a postmortem that OpenAI <a href="https://www.youtube.com/watch?v=87DyyMV0kCY&amp;t=12s" target="_blank" rel="noopener">presented</a> at Black Hat. OpenAI has <a href="https://openai.com/index/hugging-face-incident-and-the-road-ahead/" target="_blank" rel="noopener">published</a> a full incident report.</li>



<li>The <a href="https://www.bleepingcomputer.com/news/security/massive-chaindrop-npm-supply-chain-attack-infects-hundreds-of-packages/" target="_blank" rel="noopener">ChainDrop credential stealing malware</a> has compromised over 1,300 packages on npm, the Node package manager. The malware is self-propagating, and <a href="https://thenewstack.io/npm-supply-chain-worm-attack/" target="_blank" rel="noopener">compromised packages appear to have legitimate provenance</a>.</li>



<li>OpenAI has <a href="https://runtimewire.com/article/openai-open-sources-codex-security-cli-typescript-sdk" target="_blank" rel="noopener">open-sourced</a> <a href="https://github.com/openai/codex-security" target="_blank" rel="noopener">Codex Security</a>, a command-line tool and API that uses ChatGPT to analyze code for vulnerabilities. Their documentation says that the CLI and API are both in “<a href="https://learn.chatgpt.com/docs/security" target="_blank" rel="noopener">limited beta</a>,” possibly because of the model used to do the analysis.</li>



<li><a href="https://enklypesalt.com/posts/context-collapse-part1-poisoning-copilot-memory/" target="_blank" rel="noopener">Context Collapse</a> is a three-part series that discusses context poisoning attacks against Copilot, culminating with self-propagating attacks against Word. Microsoft collaborated on the analysis and mitigations.</li>



<li>Google has introduced <a href="https://blog.google/security/going-beyond-zero-a-new-paradigm-for-enterprise-security/" target="_blank" rel="noopener">Beyond Zero</a>, a new security model that takes zero trust a step further. Beyond Zero makes decisions on the basis of specific actions and resources, not just users or applications. Decisions are governed by both static policies and dynamic controls that can respond to changes in the environment.</li>
</ul>



<h2 class="wp-block-heading"><strong>People and Organizations</strong></h2>



<p class="wp-block-paragraph"><em>How do people use AI? Does AI use lead to greater productivity? We know surprisingly little about either question. We’re still learning how to use AI effectively; the best metric isn’t a simple measure of productivity but whether you can do things you couldn’t do before.</em></p>



<ul class="wp-block-list">
<li>The <a href="https://www.technologyreview.com/2026/08/18/1142226/how-people-use-ai/" target="_blank" rel="noopener">AI Observatory</a> collects data about how people use AI. What we know about the ways people use AI is surprisingly limited. We know that usage patterns vary from model to model, but model providers only publish the data they want to see; we still don’t understand the big picture.</li>



<li>How do you measure AI productivity? “<a href="https://hackernoon.com/why-ai-productivity-is-a-faulty-metric" target="_blank" rel="noopener">Why AI Productivity Is a Faulty Metric</a>” has some good ideas. Develop metrics around code quality and whether AI-generated code survives review, rather than counting lines of code.</li>
</ul>



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



<p class="wp-block-paragraph"><em>There’s now a specialized version of ChatGPT for teens; a site that serves different content to scrapers and humans; and an AI-generated animation of the start of</em> The Lord of the Rings<em>. The web is proving that it can adapt to anything that’s thrown at it. It’s where we learn and play, and AI isn’t changing that.</em></p>



<ul class="wp-block-list">
<li>OpenAI has launched <a href="https://help.openai.com/en/articles/20001421-chatgpt-for-teens" target="_blank" rel="noopener">ChatGPT for Teens</a>, a specialized mode for users between 13 and 17 years old. This new product stresses learning and studying rather than using AI to get answers, has stronger content safeguards, and tries not to become a surrogate for human interaction.</li>



<li>A <a href="https://theremin.bizibah.com/" target="_blank" rel="noopener">theremin in the browser</a> is something you don’t see every day! Use your mouse or your webcam to control it.</li>



<li><em>TIME</em> magazine has <a href="https://www.vincentschmalbach.com/time-serves-ai-bots-a-different-website/" target="_blank" rel="noopener">started</a> giving AI scrapers a minimal Markdown version of articles with additional advertisements. The site’s behavior depends on the User-Agent HTTP header. Some user agents are denied access, while humans are given HTML with graphics and layout.</li>



<li>Tired of pelicans on bicycles? Andrej Karpathy had Claude Opus <a href="https://xcancel.com/karpathy/status/2083749667410727319" target="_blank" rel="noopener">animate</a> the <a href="https://karpathy.ai/lotr-movie/" target="_blank" rel="noopener">first paragraph of <em>The Lord of the Rings</em></a> with Three.js. The result isn’t great, but it’s certainly fun and points to some areas where the best current models aren’t yet strong enough.</li>
</ul>



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



<ul class="wp-block-list">
<li>The National University of Singapore’s Life Sciences Institute now has a server rack where the computational power comes from <a href="https://www.techtimes.com/articles/324670/20260817/worlds-first-brain-cell-server-rack-opens-singapore-neurons-expire-six-months.htm" target="_blank" rel="noopener">16 million lab-grown human neurons</a>. Life support is a problem, but power consumption is a small fraction of the power required by GPUs.</li>



<li>Claude has successfully run a complete <a href="https://www.anthropic.com/research/Claude-accelerates-protein-design" target="_blank" rel="noopener">protein design workflow</a>, generating new designs for proteins that have been synthesized and tested in labs.</li>



<li>There could be a <a href="https://github.com/DenisSergeevitch/desktop-fly" target="_blank" rel="noopener">fly on your desktop</a>. This one is driven by a simulation of over 23,000 neurons from a fly’s connectome. It behaves like the real thing (macOS only).</li>
</ul>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/radar-trends-to-watch-september-2026/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Zero to Agent in 30 Minutes: Building a Financial News Agent with Jayeeta Putatunda</title>
		<link>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-building-a-financial-news-agent-with-jayeeta-putatunda/</link>
				<comments>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-building-a-financial-news-agent-with-jayeeta-putatunda/#respond</comments>
				<pubDate>Mon, 31 Aug 2026 15:55:06 +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=19546</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[A multi-agent workflow that turns scattered financial news into analyst briefings]]></custom:subtitle>
		
				<description><![CDATA[In this episode of Zero to Agent in 30 Minutes, Jayeeta Putatunda, forward deployed AI engineering lead at Turing, builds a multi-agent workflow that turns a daily flood of financial headlines into a structured analyst briefing. Financial analysts already have deep internal research, coverage assignments, and market views, but keeping that context current as new [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p class="wp-block-paragraph">In this episode of <em>Zero to Agent in 30 Minutes</em>, Jayeeta Putatunda, forward deployed AI engineering lead at Turing, builds a multi-agent workflow that turns a daily flood of financial headlines into a structured analyst briefing. Financial analysts already have deep internal research, coverage assignments, and market views, but keeping that context current as new information arrives every day and surfacing which of it actually deserves an analyst’s attention is a harder problem.</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: Building a Financial News Agent with Jayeeta Putatunda" width="500" height="281" src="https://www.youtube.com/embed/x9Y6dx1G3cs?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 source-backed briefing agent, step by step</strong></h2>



<ol class="wp-block-list">
<li><strong>Define the scope.</strong> Start by setting the analyst’s focus area, research questions, and time window, whether that’s the last one day, seven days, or 30 days. Narrowing the scope up front, including a list of preferred sources, keeps the agent’s web searches directional instead of generic.</li>



<li><strong>Plan the coverage.</strong> A coverage planner agent breaks the research question into discrete sections, such as market backdrop or company catalysts, so the search that follows can run in parallel rather than one long sequential query.</li>



<li><strong>Search and gather.</strong> A news researcher agent runs multiple queries against the preferred sources first, then falls back to a general search if the preferred sources don’t return enough results.</li>



<li><strong>Validate the sources.</strong> A validation agent checks each link for a working, clickable URL and a correct publication date, removes duplicate stories covering the same news, and filters out paywalled pages that won’t return usable content.</li>



<li><strong>Generate the briefing.</strong> A briefing writer agent assembles the validated developments into a set structure, including an executive summary, key bullet points, and a section-by-section breakdown of what each development means for the analyst and what to watch next.</li>



<li><strong>Capture feedback into memory.</strong> A feedback agent logs corrections such as formatting or terminology preferences and saves them to a memory database, so the next briefing run applies those preferences automatically instead of requiring the analyst to re-prompt.</li>
</ol>



<p class="wp-block-paragraph">Jayeeta built the entire stack on open source models so newcomers can run it without an API key, and she recommends starting with a smaller model before scaling up. The takeaway extends well beyond finance. Building single-purpose agents rather than one large agent that handles every task means a failure at one stage doesn’t force a restart of the whole pipeline, and each agent’s output stays easier to trace and debug.</p>



<p class="wp-block-paragraph">The full code base, including the sample data and the UI shown in the demo, is available in Jayeeta’s <a href="https://github.com/JayeetaP/zero-to-agent-30-Oreilly-FinanceAgent" target="_blank" rel="noopener">GitHub repo</a>, so readers can clone it and run the briefing agent on their own systems.</p>



<h3 class="wp-block-heading"><strong>Coming this week</strong></h3>



<p class="wp-block-paragraph">This week, Maxim Salnikov joins <em>Zero to Agent in 30 Minute</em>s to build a supply chain for agent context. He’ll show how to source approved packages from a trusted registry, pin and hash-verify them on any harness, and enforce org policy with a CI gate that can’t be bypassed.</p>
]]></content:encoded>
							<wfw:commentRss>https://www.oreilly.com/radar/zero-to-agent-in-30-minutes-building-a-financial-news-agent-with-jayeeta-putatunda/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 84/89 objects using Memcached
Page Caching using Disk: Enhanced (Page is feed) 
Minified using Memcached

Served from: www.oreilly.com @ 2026-09-11 17:31:24 by W3 Total Cache
-->