<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Florian JUDITH Blog</title>
        <link>https://florian.testruction.io/en/blog</link>
        <description>Florian JUDITH Blog</description>
        <lastBuildDate>Sat, 03 Oct 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[You can't deploy cohesion]]></title>
            <link>https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas</link>
            <guid>https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas</guid>
            <pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A former offshore outsourcer, I spent years crossing the distance in person to build cohesion. I resigned when DevOps, the cloud and containers made it obsolete. Covid made me switch that muscle back on earlier than expected. Agents switch it on for good — by recreating a distance no one can fly out to close anymore.]]></description>
            <content:encoded><![CDATA[<p>I was an offshore outsourcer. For years, my job wasn't to govern delivery centers from afar: it was to go set them up, then fly back — physically, regularly — for a reason no SOW could ever put into words. Cohesion. Making the team over there and the team over here feel like they belonged to the same project. You don't steer that from a dashboard. You get on a plane.</p>
<p>Eleven years ago, I resigned. Not out of weariness: out of clarity. I could see DevOps, the twelve-factor app, the cloud and containerization dissolving the very problem I was paid to solve. Distance was becoming cheap to cross. Proximity — co-located squads, <em>you build it you run it</em>, the product owner in the room — was winning the war. My job, the guy you send to rebuild connection across the boundary, was becoming a relic. I was right to leave. I'm starting to think I was wrong to believe the muscle had died with it.</p>
<!-- -->
<p>Covid was the first reminder. Overnight, entire organizations went back to managing opaque, distant, instrument-governed teams — and I felt the old reflex switch back on, before most people grasped what was happening. The distance agile thought it had killed wasn't dead. It had just been hidden by the shared office.</p>
<p>Agents are the second reminder, and the harsher one. Deploying a fleet of agents means reinstating the exact distance I spent my career crossing — except there's no one on the other side to visit anymore. You don't grab a coffee with an agent. You don't align a fleet over a team dinner. The thesis of this post, stated bluntly: <strong>agile won the proximity war so completely that it destroyed the muscle that managed distance — and we are now redeploying distance without the tool that used to close it.</strong> You can't deploy cohesion.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="forget-the-offshore-you-think-you-know">Forget the offshore you think you know<a href="https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas#forget-the-offshore-you-think-you-know" class="hash-link" aria-label="Direct link to Forget the offshore you think you know" title="Direct link to Forget the offshore you think you know" translate="no">​</a></h2>
<p>Before we go further, I have to kill a lazy reading, because it's the one that will make you tune out. When I write "offshore," you probably hear "cheap labor, far away, to drive costs down." That's the decorative version. It isn't the useful one here, and it isn't even the one that made delivery centers live or die.</p>
<p>What offshore actually produced was a <strong>social machinery</strong>: the whole set of rituals, templates and gestures we invented to collaborate across an opaque boundary with someone we couldn't watch work. The real problem was never the hourly rate. That was the line in the business case. The real problem — the one that sank a twenty-million-dollar center while another ran fine — was trust, alignment and knowledge transfer across a distance. Cost was the sales pitch; distance was the job.</p>
<p>And that's precisely the distinction agile blurred by winning. By removing the physical distance — co-located squads, embedded QA, continuous delivery — it made the social machinery invisible, then superfluous, then forgotten. We didn't decide that managing distance was pointless. We simply stopped having any distance to manage. The skill didn't expire: it lost its training ground. For a decade, nobody needed to board a plane to rebuild connection, because everyone was already in the same room — or one video call away from it.</p>
<p>Deploying agents reopens that ground. You suddenly inherit an industrialized, opaque workforce "on the other side" — and you discover that the gestures to manage it have been unlearned. Worse: some of them don't replay at all. That's where the inventory begins — what transfers, what has to be reinvented, and the one reflex that will betray you.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="what-transfers">What transfers<a href="https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas#what-transfers" class="hash-link" aria-label="Direct link to What transfers" title="Direct link to What transfers" translate="no">​</a></h2>
<p>Two offshore disciplines replay almost unchanged on a fleet of agents.</p>
<p><strong>Trust across opacity.</strong> I never watched an offshore developer code. I built rituals to manufacture a trust I couldn't observe directly: acceptance criteria, milestone reviews, quality gates, reporting. Exactly what you're rebuilding today around an agent — eval gates, human review, the approval ritual. The problem is identical: producing trust without seeing the work. The offshore reflex transfers with no retrofit, and it arrives pre-trained.</p>
<p><strong>Knowledge transfer into the box.</strong> The SOW we wrote until it hurt, the runbook, the spec "so detailed it stings" — that's your context, your prompt, your agent spec, reincarnated. Same discipline, and above all <strong>same failure mode</strong>: under-specify, and the box produces something plausible and wrong, exactly the way the offshore center delivered a badly written instruction to the letter. Anyone who suffered through a sloppy SOW already knows why your agent goes off the rails — and knows the answer isn't "a better model," it's "a better instruction."</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="what-has-to-be-reinvented">What has to be reinvented<a href="https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas#what-has-to-be-reinvented" class="hash-link" aria-label="Direct link to What has to be reinvented" title="Direct link to What has to be reinvented" translate="no">​</a></h2>
<p>Here the transfer stops cold, and this is the heart of what I have to say.</p>
<p>The part of my job that had nothing to do with steering was cohesion: the travel, the team dinner, the physical presence that made two teams six thousand kilometers apart feel like they belonged to the same project. That gesture <strong>has no agent equivalent.</strong> You don't fly out to align a fleet. There's no one to shake hands with, no one to put at ease, no one whose cultural deference hides a disagreement a good dinner would draw out.</p>
<p>Which means cohesion, on the agent side, doesn't transfer: it gets reinvented, and it moves. It no longer lives between you and the box — there's nothing in the box to align. It lives <strong>between the humans in contact with the box.</strong> Your developers, your QA, your operators who each prompt, correct and approve a little differently. The drift I used to fight — twelve onshore principals, twelve subtly different instructions to a single center — replays in full, but entirely on the onshore side. The cultural boundary is no longer between here and there. It's between you and your colleague next to you, mediated by an agent that amplifies your divergences instead of absorbing them. The muscle to reinvent isn't "govern the agent." It's <strong>govern the coherence of the humans holding it</strong> — without the tool that used to work, proximity, since it's already there and solved nothing.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="what-betrays-you">What betrays you<a href="https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas#what-betrays-you" class="hash-link" aria-label="Direct link to What betrays you" title="Direct link to What betrays you" translate="no">​</a></h2>
<p>That leaves one reflex, a single one, and it's the most dangerous because it's just close enough to seem transferable.</p>
<p>Offshore trained me for <strong>dilated time.</strong> The correction loop was expensive and slow: time-zone gaps, overnight round-trips, loss of real-time feedback. Hence the reflex: over-specify up front, batch the feedback, because a late correction is prohibitively costly. Twenty years of distributed delivery carved that reflex into a generation of managers.</p>
<p>The agent inverts all of it. The loop is <strong>collapsed</strong>: correction is free and instant. The manager who replays the offshore reflex will over-specify and under-iterate — write the giant SOW, launch, wait, inspect — exactly where the agent's economics reward the opposite: thin spec, fast loop, correct in the moment. And the irony closes: collapsed time is precisely the reflex agile sold me eleven years ago. The one I resigned for. The synthesis nobody holds yet is <strong>offshore-style trust governance running at agile cadence</strong> — the muscle of distance, but wired onto the short loop. Neither the offshore veteran nor the pure agilist has it: the first has the governance but the wrong tempo, the second has the tempo but forgot the governance.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-role-we-deleted">The role we deleted<a href="https://florian.testruction.io/en/blog/la-cohesion-ne-se-deploie-pas#the-role-we-deleted" class="hash-link" aria-label="Direct link to The role we deleted" title="Direct link to The role we deleted" translate="no">​</a></h2>
<p>Look at your org chart. The platform team owns the plumbing. The data team owns the models. Who owns the coherence of the humans in contact with the box — the drift across ten operators, the alignment of instructions, the trust you can't observe? Nobody. The box is empty.</p>
<p>It wasn't always empty. It had a name: the delivery manager, the service transition lead, the person you sent to rebuild connection across the boundary. Agile deleted that role because it had deleted the boundary — and it was right, as long as the boundary stayed deleted. Except we've just reopened it. We erased the role exactly as it became load-bearing again, and today we hand the hardest part — coordinating opacity — to the team least trained for it, convinced it's a tooling problem.</p>
<p>So here's the bet, dated, that you can throw back in my face in eighteen months: <strong>the teams that succeed at agent deployment at scale won't be the ones with the best platform, but the ones that rebuilt the muscle of distance — and they'll go find it among the very people agile declared obsolete.</strong> Not for their platform. For their scar tissue.</p>
<p>I left eleven years ago certain this job was finished. I'm starting to put my certainties away. You can deploy a fleet in an afternoon; you can't deploy the trust that holds it together. That one you still have to go and get — and there's no plane to catch anymore. You can't deploy cohesion. That's the whole problem, and it's yours now.</p>]]></content:encoded>
            <category>AI</category>
            <category>Management</category>
            <category>Offshore</category>
        </item>
        <item>
            <title><![CDATA[Agent as producer, agent as product: two platforms, one word]]></title>
            <link>https://florian.testruction.io/en/blog/agent-producteur-agent-produit</link>
            <guid>https://florian.testruction.io/en/blog/agent-producteur-agent-produit</guid>
            <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Does my map of agentic platforms hold up against the CNCF, platform engineering, and the analysts? It converges, diverges on two points, and reveals a distinction nobody makes: the agent you produce versus the agent that produces.]]></description>
            <content:encoded><![CDATA[<p>In an <a class="" href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques">earlier post</a>, I laid out a map: seven layers, two cross-cutting concerns, enough to place each term and know which layer your next problem belongs to. A homemade map. The question is whether it holds up against what the ecosystem describes on its own side.</p>
<p>The short answer: it converges with the CNCF and platform engineering on almost every boundary, it diverges on one point I stand by — and it runs up against a distinction few people make explicitly, even though it decides everything: <strong>the agent you produce is not the agent that produces.</strong> That is the thesis of this post. The rest is the supporting case.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-convergence-nobody-draws-the-same-layers-everybody-describes-the-same-tensions">The convergence: nobody draws the same layers, everybody describes the same tensions<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#the-convergence-nobody-draws-the-same-layers-everybody-describes-the-same-tensions" class="hash-link" aria-label="Direct link to The convergence: nobody draws the same layers, everybody describes the same tensions" title="Direct link to The convergence: nobody draws the same layers, everybody describes the same tensions" translate="no">​</a></h2>
<p>The first surprise when confronting the map with the sources: layered models abound, but none is authoritative in the strict sense.</p>
<p>The documents that <em>do</em> carry authority don't draw layers. The <a href="https://tag-app-delivery.cncf.io/whitepapers/platforms/" target="_blank" rel="noopener noreferrer" class="">CNCF Platforms White Paper</a> lists <em>capabilities</em>, not strata. Gartner reasons in terms of supervision planes and goes so far as to write that static reference models are useless against agents that move at nanosecond speed — a position flatly opposed to the cartographic exercise. The authority exists, but it refuses to draw the map.</p>
<p>The models that <em>do</em> draw layers aren't authoritative: they come from independent analysts and vendor blogs. <a href="https://aimultiple.com/agentic-ai-stack" target="_blank" rel="noopener noreferrer" class="">AIMultiple</a> also proposes seven layers, with a moat/commoditization reading close to my buy-chart — but stacks governance as layer 7 instead of treating it as cross-cutting. The Letta/a16z stack, picked up by <a href="https://www.oreilly.com/radar/the-ai-agents-stack-2026-edition/" target="_blank" rel="noopener noreferrer" class="">O'Reilly</a>, holds in five layers oriented toward <em>building an agent</em>. Only <a href="https://www.catio.tech/blog/agentic-ai-reference-architecture" target="_blank" rel="noopener noreferrer" class="">Catio</a> shares my stance: separating the components (perception, reasoning, memory, action) from the <em>cross-cutting planes</em> (orchestration, observability, security, governance).</p>
<p>So the exact breakdown varies from one map to another. What doesn't vary are the tensions described: model access to centralize, protocols to standardize, state to manage, cost to bound, governance to make omnipresent. My map discovers nothing; it files these tensions in a defensible order.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="platform-engineering-names-the-assumption-that-breaks">Platform engineering names the assumption that breaks<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#platform-engineering-names-the-assumption-that-breaks" class="hash-link" aria-label="Direct link to Platform engineering names the assumption that breaks" title="Direct link to Platform engineering names the assumption that breaks" translate="no">​</a></h2>
<p>The most useful shift comes from an older discipline. The Platforms White Paper sets out two principles that apply to my map without alteration: the internal platform is a product, and you build <strong>the thinnest possible layer</strong> on top of managed implementations. Translated: layers 1, 2, and 5 are bought, 3 is built, the rest must stay replaceable.</p>
<p>Then, in <a href="https://www.cncf.io/blog/2026/07/21/platform-engineering-for-the-agentic-enterprise-managing-applications-resources-and-ai-agents/" target="_blank" rel="noopener noreferrer" class="">"Platform engineering for the agentic enterprise"</a> (July 2026), the CNCF names the implicit assumption of ten years of <em>Internal Developer Platforms</em>: <strong>the platform's consumer is a human developer</strong>. The agent breaks that assumption. It provisions, deploys, investigates incidents, triggers workflows. It becomes a consumer in its own right, with one additional requirement: its own identity, restricted permissions, an audit trail. The conclusion is explicit — not a separate platform for AI, but an extension of the existing platform.</p>
<p>Two consequences for my map:</p>
<ul>
<li class=""><strong>Layer 7 is broader than I had said.</strong> Portal, CLI, GitOps, and MCP server are four surfaces of the same platform. If they don't share the same governance model, you don't have one platform with four surfaces — you have two.</li>
<li class=""><strong>Context becomes a capability, not an accessory.</strong> Topology, ownership, dependencies, deployment history: the agent diagnosing a failure needs to know <em>who owns what</em>, not just to retrieve a document. That is more demanding than layer 5's RAG.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-standards-are-hardening-in-the-direction-of-the-map">The standards are hardening, in the direction of the map<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#the-standards-are-hardening-in-the-direction-of-the-map" class="hash-link" aria-label="Direct link to The standards are hardening, in the direction of the map" title="Direct link to The standards are hardening, in the direction of the map" translate="no">​</a></h2>
<p>On the standardization side, three dated signals confirm the trends the map announced:</p>
<ul>
<li class=""><strong>Layer 1 — conformance is arriving.</strong> The <a href="https://www.cncf.io/announcements/2025/11/11/cncf-launches-certified-kubernetes-ai-conformance-program-to-standardize-ai-workloads-on-kubernetes/" target="_blank" rel="noopener noreferrer" class="">Kubernetes AI Conformance Program</a>, launched in November 2025, defines a minimal baseline for running AI workloads. The <a href="https://www.cncf.io/announcements/2026/03/24/cncf-nearly-doubles-certified-kubernetes-ai-platforms/" target="_blank" rel="noopener noreferrer" class="">March 2026 revision</a> hardened the requirements (codified as <em>Kubernetes AI Requirements</em>) and took certified platforms from 18 to 31. A layer that gets certified is a layer that becomes commoditized: my "high" maturity rating is confirmed, and the risk shifts there toward the gateway rather than the runtime.</li>
<li class=""><strong>Layers 4 and 6 — protocol governance changes the lock-in calculus.</strong> MCP was <a href="https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation" target="_blank" rel="noopener noreferrer" class="">donated to the Agentic AI Foundation</a> under the Linux Foundation in December 2025, <a href="https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation" target="_blank" rel="noopener noreferrer" class="">joined by A2A in August 2026</a>. My "low if standard protocol" is no longer a bet: both protocols are under neutral governance. What remains open is layer 6 itself — no standard yet describes how to <em>orchestrate</em> agents, only how they <em>talk</em> to each other.</li>
<li class=""><strong>Cross-cutting planes A and B — the work is already framed.</strong> The <a href="https://www.cncf.io/blog/2026/03/23/cloud-native-agentic-standards/" target="_blank" rel="noopener noreferrer" class="">Cloud native agentic standards</a> document (CNCF AI TCG, March 2026) opens four workstreams: communication, observability, governance, security. Two points to keep as-is. <strong>The agent's identity is not the user's</strong>: the moment an agent acts outside a session or beyond its principal's perimeter, it needs its own workload identity (SPIFFE/SPIRE, scoped service accounts, short-lived tokens), otherwise the audit means nothing. And agentic observability is not application observability: tokens, inference cost, execution time, trajectories — <a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/" target="_blank" rel="noopener noreferrer" class="">OpenTelemetry's GenAI semantic conventions</a> already provide enough to instrument.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-divergence-i-stand-by-wall-not-foundational-layer">The divergence I stand by: wall, not foundational layer<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#the-divergence-i-stand-by-wall-not-foundational-layer" class="hash-link" aria-label="Direct link to The divergence I stand by: wall, not foundational layer" title="Direct link to The divergence I stand by: wall, not foundational layer" translate="no">​</a></h2>
<p>On one point, I don't follow the CNCF. It reasons from Kubernetes and treats governance as a <strong>mandatory foundational layer</strong> — without it, nothing starts. My map makes it a <strong>cross-cutting wall</strong>.</p>
<p>The nuance isn't cosmetic. A foundational layer is underneath: you lay it down, then you stack. A wall runs the full height: it applies to <em>every</em> layer, from inference to the interface. Treating governance as a base risks believing that once laid, it's secured. Treating it as a wall is a reminder that a permission governs the tool call (layer 4) just as much as the interface surface (layer 7), and that no layer is exempt from it.</p>
<p>Their framing is stricter than mine — "nothing starts without governance" is a good rule. But it's born of a Kubernetes context where the base is literal. Outside that context, the wall describes reality better: governance isn't a step, it's a permanent requirement.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-vendor-framework-platform-engineering-20">The vendor framework: Platform Engineering 2.0<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#the-vendor-framework-platform-engineering-20" class="hash-link" aria-label="Direct link to The vendor framework: Platform Engineering 2.0" title="Direct link to The vendor framework: Platform Engineering 2.0" translate="no">​</a></h2>
<p>A third body of work is circulating, and it calls for a reading precaution. <a href="https://platformengineering.org/blog/introducing-platform-engineering-2-0-an-evolution-for-the-ai-era" target="_blank" rel="noopener noreferrer" class="">Platform Engineering 2.0</a> (June 2026) is a directional framework commissioned by Broadcom, co-written with VMware. Neither standard nor certification: <a href="https://moorinsightsstrategy.com/field-notes/platform-engineering-must-modernize-for-agentic-ai/" target="_blank" rel="noopener noreferrer" class="">Moor Insights puts it bluntly</a>, it's a vendor argument, partly forward-looking, whose proposed implementation happens to sell infrastructure. Its five pillars remain largely product-independent — but you don't read them as a neutral foundational document.</p>
<p>They are, moreover, <strong>pillars, not layers</strong>. The versions that present them stacked up as a stack have rebuilt the model. Two of these pillars correct my map:</p>
<ul>
<li class=""><strong>Embedded FinOps.</strong> In my previous post, "the bill blows up" was attributed to the absence of per-call metering at layer 1. That's true but incomplete. Current cost tooling is retrospective: it tells you what you spent <em>afterward</em>. The pillar proposes surfacing cost <em>at provisioning time</em>, with its alternatives. Measuring isn't enough; you have to decide beforehand. Layer 1 was only half the answer.</li>
<li class=""><strong>"Shift-down" security.</strong> Shift-left hasn't failed, but the agentic attack surface — prompt injection, inference leakage, unreviewed execution — is a runtime problem a pipeline scan doesn't see. Hence isolation pushed down into the substrate: microVM and sandbox (Firecracker, gVisor, Kata Containers) rather than a shared container, the moment layer 4 runs code nobody has read.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-distinction-nobody-makes-producing-an-agent-producing-with-an-agent">The distinction nobody makes: producing an agent, producing with an agent<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#the-distinction-nobody-makes-producing-an-agent-producing-with-an-agent" class="hash-link" aria-label="Direct link to The distinction nobody makes: producing an agent, producing with an agent" title="Direct link to The distinction nobody makes: producing an agent, producing with an agent" translate="no">​</a></h2>
<p>This is where the confrontation becomes genuinely useful. Alongside PE 2.0, the category of <strong>agentic development platforms</strong> (ADP) has settled in, to which <a href="https://www.forrester.com/blogs/launching-the-agentic-development-platforms-vendor-landscape-q3-2026/" target="_blank" rel="noopener noreferrer" class="">Forrester has devoted a vendor landscape since the third quarter of 2026</a>: platforms where humans and agents develop side by side.</p>
<p>That is not what my map is about. And yet both carry the same adjective — "agentic." Two different platforms, one word:</p>
<ul>
<li class=""><strong>The agent as producer</strong> (ADP, PE 2.0): the agent <em>writes the software</em>. The bottleneck shifts from writing to shipping — PE 2.0 cites code volumes multiplied by two to ten. The platform has to absorb a throughput of PRs, reviews, and ephemeral environments it never had to handle.</li>
<li class=""><strong>The agent as product</strong> (my map): the agent <em>is the delivered software</em>. What matters becomes memory, recovery after compaction, coordination.</li>
</ul>
<p>The two share their base — layers 1 and 2 — and their two walls, then diverge sharply. No high-throughput delivery layer appears in my map, and that is deliberate: it belongs to the producer world. Symmetrically, layer 5 (memory, knowledge) is nearly absent from ADP models, and that's consistent — an agent that produces code doesn't need persistent memory; an agent you put in production does.</p>
<p>This distinction explains half the meeting-room misunderstandings. "We're going to put an agent on this" doesn't point to the same platform depending on who's speaking: one is thinking of a copilot that speeds up the team, the other of an autonomous service in production. Same words, different budgets, risks, and owners.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="what-the-confrontation-will-have-served">What the confrontation will have served<a href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit#what-the-confrontation-will-have-served" class="hash-link" aria-label="Direct link to What the confrontation will have served" title="Direct link to What the confrontation will have served" translate="no">​</a></h2>
<p>My map comes out neither invalidated nor sanctified. It converges with the ecosystem where it matters, diverges on governance-as-wall for good reasons, and gains two useful corrections — the cost decided beforehand, the security that descends into the substrate.</p>
<p>But the real gain is the producer/product distinction. It appears on none of the neighboring maps, and it's the one that decides whether your next "agent" needs a layer 5 or a high-throughput delivery layer. Before choosing a platform, ask yourself which of the two agents you're building. The word won't tell you.</p>]]></content:encoded>
            <category>Agentic Platforms</category>
            <category>Architecture</category>
            <category>AI</category>
        </item>
        <item>
            <title><![CDATA[Anatomy of an Agentic Platform]]></title>
            <link>https://florian.testruction.io/en/blog/couches-plateformes-agentiques</link>
            <guid>https://florian.testruction.io/en/blog/couches-plateformes-agentiques</guid>
            <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[LLM, agent, agentic, MCP: a seven-layer map to place each term and figure out which layer your next problem is coming from.]]></description>
            <content:encoded><![CDATA[<p>"Let's just slap an agent on top of that."</p>
<p>Same meeting: for one person, it's an LLM call with a system prompt. For another, it's a multi-agent orchestrator with persistent memory and an execution sandbox. Nobody flinches. Everybody nods.</p>
<p>LLM, agent, agentic, long- / medium- / short-term memory, MCP, RAG, A2A… how do you file all of this, and what should I prioritize: buy, build, host, rent, distribute, centralize?</p>
<p>Hence this map: <strong>seven layers, two cross-cutting concerns</strong>. No ranking, no vendor to recommend to you — just enough to place each term and understand <strong>which layer</strong> your next problem is coming from.</p>
<p>Be warned, this is not a neutral model. Two biases run through it — treating security and observability as <em>walls</em> rather than as layers, and reading the same map in two opposite ways — and I own both further down. Other maps exist; this one has a point of view.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-map">The map<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#the-map" class="hash-link" aria-label="Direct link to The map" title="Direct link to The map" translate="no">​</a></h2>
<p>Let's go back to the shelf. Seven levels stacked up, one for each kind of toy: a spot on each shelf, and the rule that holds everywhere — <em>nothing gets left lying on the floor</em>. Tidying up isn't shoving things in at random; it's knowing which shelf each thing belongs on.</p>
<p>Seven stacked slabs, then, and two walls running their full height alongside them: the cross-cutting concerns. Each slab carries its typical components painted on the floor, color-coded by their nature — a differentiating brick to build, a managed service, infrastructure, an open standard, a user-facing surface, or a still-emerging component.</p>
<p><img decoding="async" loading="lazy" alt="Isometric view of seven stacked slabs, from 01 Compute and inference at the bottom to 07 Interface and surfaces at the top. Each slab carries its typical components, color-coded by their nature: a differentiating brick to build, a managed service, infrastructure, an open standard, a user-facing surface, an emerging component. Two translucent walls run the full height of the stack: A Security and governance, B Observability and evaluation." src="https://florian.testruction.io/en/assets/images/agentic-ai-architecture-layers-v1.0-6fb3b229ba4c0e1922fe9d0e66d2d1e3.png" width="1800" height="1800" class="img_Q6x2"></p>
<p>Why are security and observability <strong>cross-cutting</strong> rather than layers of their own? Because they don't slip in <em>between</em> two strata: they apply <em>to each one</em>. A permission governs the tool call (layer 4) just as much as the interface surface (layer 7); a trace instruments inference (layer 1) just as much as multi-agent coordination (layer 6). Filing them into a layer demotes them to the rank of a mere module — and you realize too late that they should have been everywhere. The "nothing gets left lying on the floor" rule doesn't live on one shelf: it holds for all of them.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="the-seven-layers">The seven layers<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#the-seven-layers" class="hash-link" aria-label="Direct link to The seven layers" title="Direct link to The seven layers" translate="no">​</a></h2>
<table><thead><tr><th>#</th><th>Layer</th><th>Responsibility</th><th>Typical components</th></tr></thead><tbody><tr><td>1</td><td>Compute &amp; inference</td><td>Run the models and route requests</td><td>Accelerators (GPU/TPU), serving (vLLM, TGI), model gateways, multi-model routing</td></tr><tr><td>2</td><td>Models</td><td>Provide reasoning/generation capability</td><td>Foundation models, fine-tunes, small specialized models (SLM)</td></tr><tr><td>3</td><td>Orchestration / runtime</td><td>Run the agentic loop and manage state</td><td>Act-observe-verify loop, planning, state management, session memory</td></tr><tr><td>4</td><td>Tools &amp; integrations</td><td>Give the agent the ability to act</td><td>Function calling, MCP, connectors, execution sandbox</td></tr><tr><td>5</td><td>Memory &amp; knowledge</td><td>Provide durable, retrievable context</td><td>RAG, vector stores, knowledge graphs, persistent memory</td></tr><tr><td>6</td><td>Multi-agent coordination</td><td>Make several agents collaborate</td><td>Orchestrator/workers, delegation, sub-agents, protocols (A2A)</td></tr><tr><td>7</td><td>Interface &amp; surfaces</td><td>Expose the agent to humans and systems</td><td>Chat, IDE, dashboards, scheduled execution (cron), webhooks</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="where-it-breaks">Where it breaks<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#where-it-breaks" class="hash-link" aria-label="Direct link to Where it breaks" title="Direct link to Where it breaks" translate="no">​</a></h2>
<p>The map becomes genuinely useful when you use it as a diagnostic grid. A tidy shelf messes itself up the moment nobody knows which shelf anything belongs on anymore — each symptom below is a toy put back on the wrong level, or left on the floor.</p>
<table><thead><tr><th>Symptom</th><th>Layer at fault</th></tr></thead><tbody><tr><td>The bill explodes and nobody knows why</td><td><strong>1</strong> — no gateway, so no per-call metering</td></tr><tr><td>Switching models forces you to touch business code</td><td><strong>1</strong> — model access not centralized</td></tr><tr><td>The agent "forgets" in the middle of a long task</td><td><strong>3</strong> — no state after context compaction</td></tr><tr><td>Every tool costs you a bespoke integration</td><td><strong>4</strong> — no standard protocol</td></tr><tr><td>The agent did something destructive</td><td><strong>A</strong> — unbounded blast radius, no approval</td></tr><tr><td>Impossible to tell whether v2 beats v1</td><td><strong>B</strong> — without evals, reliability is an opinion</td></tr><tr><td>Adding a channel (cron, webhook) = rewrite everything</td><td><strong>7</strong> — agentic logic coupled to the surface</td></tr></tbody></table>
<p>If several rows ring true, there's a good chance they don't point to the same owner in your organization. And that, often, is the real problem.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="two-readings-of-the-same-map">Two readings of the same map<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#two-readings-of-the-same-map" class="hash-link" aria-label="Direct link to Two readings of the same map" title="Direct link to Two readings of the same map" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_tyhp" id="if-you-own-the-architecture">If you own the architecture<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#if-you-own-the-architecture" class="hash-link" aria-label="Direct link to If you own the architecture" title="Direct link to If you own the architecture" translate="no">​</a></h3>
<p><em>What you're trying to optimize: coherence, managed debt, legible dependencies.</em></p>
<ul>
<li class=""><strong>Layer 1 — the gateway is the only point that lasts.</strong> Centralizing model access behind a single interface decouples everything else from the vendor. Three days of work that save you thirty.</li>
<li class=""><strong>Layer 3 — this is where the product is decided.</strong> What differentiates you isn't the orchestration framework, it's state management: recovery after compaction, step idempotency. The framework, you can swap out; a poorly thought-out state, you pay for.</li>
<li class=""><strong>Layer 4 — MCP turns "N agents × M tools" into "N + M".</strong> And sandboxing stops being negotiable the moment the agent executes code.</li>
<li class=""><strong>Layer 7 — this is your maturity test.</strong> If the agentic logic knows which surface it's running on, every new channel becomes a rewrite. Decoupling the runtime from the surface is exactly what separates a real platform from a demo.</li>
<li class=""><strong>Cross-cutting — reframe the question.</strong> Not "is the agent safe?" but "what's its worst possible action, and who approves it?".</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_tyhp" id="if-you-own-the-buying-decision">If you own the buying decision<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#if-you-own-the-buying-decision" class="hash-link" aria-label="Direct link to If you own the buying decision" title="Direct link to If you own the buying decision" translate="no">​</a></h3>
<p><em>What you're trying to optimize: risk, total cost, dependency, maturity.</em></p>
<table><thead><tr><th>Layer</th><th>Build vs Buy</th><th>Dominant cost</th><th>Lock-in</th><th>Maturity</th></tr></thead><tbody><tr><td>1. Compute &amp; inference</td><td>Buy</td><td>Usage (tokens / GPU hour)</td><td>High without a gateway</td><td>High</td></tr><tr><td>2. Models</td><td>Buy / Build (fine-tunes)</td><td>Price per token, fine-tuning</td><td>Medium (portable via gateway)</td><td>High</td></tr><tr><td>3. Orchestration / runtime</td><td>Build or OSS framework</td><td>Internal engineering</td><td>Medium to high if proprietary</td><td>Medium</td></tr><tr><td>4. Tools &amp; integrations</td><td>Buy + standard (MCP)</td><td>Integration &amp; maintenance</td><td>Low with a standard protocol</td><td>Medium</td></tr><tr><td>5. Memory &amp; knowledge</td><td>Buy / Build</td><td>Storage + vector queries</td><td>Medium</td><td>Medium-high</td></tr><tr><td>6. Multi-agent coordination</td><td>Build</td><td>Engineering</td><td>Low</td><td>Low (early)</td></tr><tr><td>7. Interface &amp; surfaces</td><td>Buy / Build</td><td>Per-seat licenses</td><td>Medium</td><td>High</td></tr></tbody></table>
<p><strong>Five questions to ask before signing anything:</strong></p>
<ul>
<li class="">Does model access go through a standard gateway?</li>
<li class="">Do tools go through an open protocol (MCP)?</li>
<li class="">Is memory exportable — and in what format?</li>
<li class="">Do traces and costs export to the observability you already have in place?</li>
<li class="">Are security and audit native, or sold later as an add-on?</li>
</ul>
<p>A fuzzy answer on one of the five is fine. Two is a pattern.</p>
<h2 class="anchor anchorTargetStickyNavbar_tyhp" id="what-this-map-doesnt-say">What this map doesn't say<a href="https://florian.testruction.io/en/blog/couches-plateformes-agentiques#what-this-map-doesnt-say" class="hash-link" aria-label="Direct link to What this map doesn't say" title="Direct link to What this map doesn't say" translate="no">​</a></h2>
<p>What it gives you is modest, but useful: a shared vocabulary. The day the architect says "that's a layer 3 problem" and the buyer understands why it won't be fixed by switching vendors, the map has done its job. The room is never tidied once and for all — but at least everyone finally knows which shelf anything belongs on.</p>
<p><strong>A word on standards, while we're at it.</strong> Beneath layer 2, an ISO standard already exists: <em>ISO/IEC 23053</em> breaks down the anatomy of a machine learning system — model, training, inference, task. It's the normative dictionary for your layer 2, and the edge of layer 1. But it <strong>stops at the model</strong>: the agentic loop, MCP, multi-agent coordination, the surfaces (layers 3 through 7) have <strong>no ISO equivalent</strong>. As for the two walls, they fall under other standards in the same family (SC 42) — <em>42001</em> for governance, <em>23894</em> for risk — not 23053. In other words: the bottom half of the shelf has an official dictionary, the agentic half doesn't yet. That's not a hole in the map, it's <em>why</em> it's useful.</p>
<p>One question it doesn't settle remains: does it hold up against what the CNCF, platform engineering, and the analysts describe on their side? It converges with them on most of the boundaries, diverges on two points that I own — and stumbles on a distinction nobody really makes: the one between the agent you <em>produce</em> and the agent that <em>produces</em>. <a class="" href="https://florian.testruction.io/en/blog/agent-producteur-agent-produit">That's exactly the subject of a second post.</a></p>]]></content:encoded>
            <category>Agentic Platforms</category>
            <category>Architecture</category>
            <category>AI</category>
        </item>
    </channel>
</rss>