<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Code Nomi Nomi</title>
    <description>The latest articles on DEV Community by Code Nomi Nomi (@codenominomi).</description>
    <link>https://dev.to/codenominomi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2259193%2F49aa8084-9fc7-4158-bddc-4f7dcc40207a.png</url>
      <title>DEV Community: Code Nomi Nomi</title>
      <link>https://dev.to/codenominomi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codenominomi"/>
    <language>en</language>
    <item>
      <title>Why We Built an AI Agent with ADHD (and Cut Token Waste by 85%)</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sat, 19 Sep 2026 17:07:26 +0000</pubDate>
      <link>https://dev.to/codenominomi/why-we-built-an-ai-agent-with-adhd-and-cut-token-waste-by-85-22f5</link>
      <guid>https://dev.to/codenominomi/why-we-built-an-ai-agent-with-adhd-and-cut-token-waste-by-85-22f5</guid>
      <description>&lt;p&gt;Replacing probabilistic LLM supervisory loops with deterministic, ADHD-inspired mechanical gates (locks, breakers, fail-closed routing).&lt;/p&gt;

&lt;p&gt;Let’s talk about a dirty secret in modern AI agent development: &lt;strong&gt;we are fighting fire with gasoline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever an autonomous agent drifts, gets confused, or struggles with concurrent tasks, the industry's default reflex is to throw another LLM at it. A "supervisor agent", a "critic model", an "evaluator prompt".&lt;/p&gt;

&lt;p&gt;The outcome?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Insane token bloat:&lt;/strong&gt; Passing full capability matrices and doctrines on every cycle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control plane hallucinations:&lt;/strong&gt; The supervisor model hallucinates its own supervision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deadlocks &amp;amp; context collapse:&lt;/strong&gt; The agent hangs forever on stuck subroutines or chokes on incoming requests while busy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We took a step back and asked a radical question: &lt;strong&gt;What if we stopped modeling agents as ideal neurotypical workers, and instead implemented the mechanical constraints of ADHD?&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The Neurobiology Invariant
&lt;/h3&gt;

&lt;p&gt;In computational neuroscience, ADHD is not a "lack of computation" — it is a &lt;strong&gt;gating and resource-allocation mechanism&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strict activation barriers:&lt;/strong&gt; Sub-routines without critical priority or urgency simply fail to engage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hyperfocus (Mutual Exclusion):&lt;/strong&gt; Once locked into a high-priority task, the channel is closed. Non-critical interruptions are physically dropped, not queued.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thermal breakers:&lt;/strong&gt; When processing stalls or loops, the system terminates abruptly rather than idling indefinitely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We decided to translate these exact invariants into bare-metal software primitives: bare-metal &lt;strong&gt;NATS messaging&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;asyncio.Lock&lt;/code&gt;&lt;/strong&gt;, and &lt;strong&gt;hard circuit-breakers&lt;/strong&gt;. Zero probabilistic arbitration in the control plane.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Architecture: 3 Hard Mechanical Gates
&lt;/h3&gt;

&lt;p&gt;Here is how an incoming task navigates the execution pipeline:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
text
[ Incoming Event on tour.tache ]
                   │
                   ▼
         ┌───────────────────┐
         │    Rank Router    │ ──(Deterministic Classification, Zero LLM)
         └───────────────────┘
                   │
         ┌─────────┴─────────┐
         │                   │
    [ Ranks D / C ]     [ Rank S / Kinjutsu ]
         │                   │
         │             (Closed-by-Default Gate)
         │                   ▼
         │           [ tour.approbation ]
         │                   │
         │           ┌───────┴───────┐
         │           │ ≠ "Autoriser" │ == "Autoriser"
         │           ▼               ▼
         │      ANNULE_REFUS     Pass Granted
         │                           │
         └─────────┬─────────────────┘
                   │
                   ▼
       ┌────────────────────────┐
       │    Hyperfocus Latch    │ (asyncio.Lock)
       └────────────────────────┘
         │ In progress?
         ├─► YES ───────► Instant Drop: ANNULE_OCCUPE (Zero Backlog)
         └─► NO  ───────┐
                        ▼
             ┌────────────────────────┐
             │    Thermal Breaker     │ (asyncio.wait_for 5.0s)
             └────────────────────────┘
               │
               ├─► Runtime ≤ 5s  ───► EXECUTE_AUTONOME / APPROUVE
               └─► Runtime &amp;gt; 5s  ───► Hard Trip: ANNULE_DISJONCTEUR
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>devops</category>
    </item>
    <item>
      <title>I built Packet Tracer for AI agents — and the red packets are the point</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Mon, 07 Sep 2026 06:25:07 +0000</pubDate>
      <link>https://dev.to/codenominomi/i-built-packet-tracer-for-ai-agents-and-the-red-packets-are-the-point-4ef</link>
      <guid>https://dev.to/codenominomi/i-built-packet-tracer-for-ai-agents-and-the-red-packets-are-the-point-4ef</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/fotsopatrick/agent-tracer" rel="noopener noreferrer"&gt;https://github.com/fotsopatrick/agent-tracer&lt;/a&gt;&lt;br&gt;
Démo: &lt;a href="https://fotsopatrick.github.io/agent-tracer/" rel="noopener noreferrer"&gt;https://fotsopatrick.github.io/agent-tracer/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Everybody builds agents. Nobody &lt;em&gt;sees&lt;/em&gt; them.
&lt;/h2&gt;

&lt;p&gt;I have a small team of AI agents that work for me. They plan, they write code,&lt;br&gt;
they review each other, they test. They have been talking to each other for&lt;br&gt;
months.&lt;/p&gt;

&lt;p&gt;Thousands of messages. Hundreds of pairs of agents talking. All of it stored in&lt;br&gt;
rows and columns.&lt;/p&gt;

&lt;p&gt;And that was the problem. I could &lt;strong&gt;read&lt;/strong&gt; that a message had been refused.&lt;br&gt;
I could not &lt;strong&gt;see&lt;/strong&gt; it.&lt;/p&gt;

&lt;p&gt;Reading &lt;code&gt;status = REFUSED&lt;/code&gt; in row 4 812 of a table tells you nothing. You do not&lt;br&gt;
feel where the work got stuck. You do not see that the same agent refuses the&lt;br&gt;
same thing every single time. A table hides the shape of the conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  So I stole an idea from school
&lt;/h2&gt;

&lt;p&gt;If you ever studied networks, you used &lt;strong&gt;Packet Tracer&lt;/strong&gt;. You drop routers on a&lt;br&gt;
canvas, you draw cables between them, you press play — and little envelopes&lt;br&gt;
travel down the cables. When one gets dropped, you see it drop.&lt;/p&gt;

&lt;p&gt;Nobody has to explain a network to you after that. You watched it.&lt;/p&gt;

&lt;p&gt;I copied that idea, one word at a time:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Packet Tracer&lt;/th&gt;
&lt;th&gt;Agent Tracer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;a device&lt;/td&gt;
&lt;td&gt;an agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;a cable&lt;/td&gt;
&lt;td&gt;a pair of agents that talk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;a packet&lt;/td&gt;
&lt;td&gt;one message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;a dropped packet&lt;/td&gt;
&lt;td&gt;a refusal — with&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That is the whole design. There is not&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent Tracer&lt;/strong&gt; is one HTML file. You open it in a browser and it starts&lt;br&gt;
moving on its own: a demo conversationa reviewer&lt;br&gt;
and a tester plays out, envelope by en&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each agent is a box on the board.&lt;/li&gt;
&lt;li&gt;Each message is an envelope sliding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Green&lt;/strong&gt; envelope: the gate said ye&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Red&lt;/strong&gt; envelope: the gate **refusedn on screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can press &lt;strong&gt;Pause&lt;/strong&gt;, press **Step*me, or click&lt;br&gt;
any line in the log to jump straight to that moment.&lt;/p&gt;

&lt;p&gt;No build step. No &lt;code&gt;npm install&lt;/code&gt;. No dependencies. No server. It works with the&lt;br&gt;
wifi off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that actually matters: the
&lt;/h2&gt;

&lt;p&gt;Most agent dashboards show you throughished, a&lt;br&gt;
nice green line going up.&lt;/p&gt;

&lt;p&gt;That is the least interesting half of&lt;/p&gt;

&lt;p&gt;An agent that can only say yes is not oment your&lt;br&gt;
system becomes trustworthy is the mome to say&lt;br&gt;
&lt;strong&gt;no&lt;/strong&gt; — and then tells you why it said no.&lt;/p&gt;

&lt;p&gt;So Agent Tracer makes refusals the loudest thing on the screen. A red envelope&lt;br&gt;
carries a &lt;code&gt;why&lt;/code&gt; field, and that field is printed in full:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;REFUSE&lt;/strong&gt; — "the patch swallows the&lt;br&gt;
&lt;em&gt;why: a caught exception with an empg it or&lt;br&gt;
re-raise it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That one line is worth more than a hunly place&lt;br&gt;
where the system teaches you something.&lt;/p&gt;

&lt;p&gt;There is a sentence taped above my des&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;**A gate that never refused guards n&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you run your logs through this and you see zero red, you have not built a&lt;br&gt;
safe system. You have built a system wested.&lt;/p&gt;

&lt;h2&gt;
  
  
  The seven words
&lt;/h2&gt;

&lt;p&gt;The messages use a tiny vocabulary borrol*&lt;em&gt;. In a&lt;br&gt;
control tower, the controller gives a s it back&lt;/em&gt;&lt;br&gt;
before turning. The readback is not poh a&lt;br&gt;
misunderstanding &lt;strong&gt;before&lt;/strong&gt; the plane&lt;/p&gt;

&lt;p&gt;My agents talk the same way. Seven wor&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Word&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ASK&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;I ask you to do something&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;READBACK&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Understood — I repeat y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;RUN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;I am doing it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DONE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Finished, here is the proof&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;REFUSE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;I will not, and here is w&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BLOCKED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;I cannot continue, here&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DUNNO&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;I do not know, and here is what would settle it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The first four are easy. The last thre&lt;/p&gt;

&lt;p&gt;&lt;code&gt;DUNNO&lt;/code&gt; is my favourite. A model that l invent an&lt;br&gt;
answer instead — and an invented answeion. So the&lt;br&gt;
word exists, it is colour-coded, and it comes with a field for &lt;em&gt;what would&lt;br&gt;
settle it&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feeding it your own logs
&lt;/h2&gt;

&lt;p&gt;Drag a file onto the page, or use **Opaded — there&lt;br&gt;
is no server to upload to, no fetch, no telemetry. The file is read in your&lt;br&gt;
browser and stays there.&lt;/p&gt;

&lt;p&gt;The format is deliberately boring. Plaer line:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
json
{
  "agents": ["planner", "coder", "revi
  "messages": [
    { "from": "planner",  "to": "coder
      "subject": "add a retry to the f

    { "from": "coder",    "to": "planner", "verb": "READBACK",
      "subject": "understood: retry thdelay" },

    { "from": "reviewer", "to": "coder
      "subject": "the patch swallows t
      "why": "A caught exception with re." },

    { "from": "coder",    "to": "plann
      "subject": "how long should the delay be?",
      "why": "Two values are defensiblervice SLA
              would settle it." }
  ]
}

Three things make this easy to adopt:

1. agents is optional. Leave it out an
   whoever appears in the messages.
2. verb is free text. The seven words lse
   still shows up, just in a neutral c my
   business.
3. why is optional but it is the most usal
   without a reason teaches nobody anything.

If your framework already writes a trace — LangGraph, CrewAI, AutoGen, or your
own hand-rolled loop — turning it intoscript. Map
your sender to from, your receiver to  error
message to why. That is the entire int

Try it

- Live demo: https://fotsopatrick.gith
- Source: https://github.com/fotsopatr
- Licence: Apache 2.0 — use it, change

Download the single file and it works sion of
anything to keep up to date.

Where this came from

Agent Tracer is the front door of some control
tower where a team of agents does real work behind gates that are allowed to
say no — automated checks, peer reviewwho has the
last word on anything that goes out.

The tracer is the window into that towdalone file
because the window turned out to be useful on its own, and because I would like
to know whether it is useful to you to

So: run your own agent log through it, see.
If the answer is "none", that is the f
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>networking</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Control Tower — a deterministic front door for an agent fleet Hackathon: All Things Agentic — track: The Fortified Enterprise Fleet</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Mon, 31 Aug 2026 15:00:10 +0000</pubDate>
      <link>https://dev.to/codenominomi/control-tower-a-deterministic-front-door-for-an-agent-fleet-hackathon-all-things-agentic--3a3</link>
      <guid>https://dev.to/codenominomi/control-tower-a-deterministic-front-door-for-an-agent-fleet-hackathon-all-things-agentic--3a3</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post was created for the purposes of entering the All Things Agentic hackathon, run by Google Cloud.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/fotsopatrick" rel="noopener noreferrer"&gt;
        fotsopatrick
      &lt;/a&gt; / &lt;a href="https://github.com/fotsopatrick/control-tower" rel="noopener noreferrer"&gt;
        control-tower
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Control Tower — a deterministic front door for an agent fleet&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Hackathon: All Things Agentic — track: The Fortified Enterprise Fleet&lt;/strong&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What this buys — and how it was measured&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The Control Tower exists to make an agent fleet &lt;strong&gt;produce faster without
producing garbage&lt;/strong&gt;. So this hackathon is not the product. It is the
&lt;strong&gt;measurement&lt;/strong&gt;: a hard deadline, a cold start, one person.&lt;/p&gt;
&lt;p&gt;Registered 29 August. Submitted 31 August. In that window this repository
gained a deterministic router deployed on Cloud Run, guardrails that refuse in
pure code, delegation across specialised sub-agents, an independent oracle
and an audit script that &lt;strong&gt;fails the build&lt;/strong&gt; when this README claims something
the disk does not support.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;78 files. 8,325 lines of Python and shell. Two days.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Snapshot taken 31 August 2026, 20:00 Europe/Paris. The count moves as the
repository moves — that is why the command is printed below rather than&lt;/em&gt;…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fotsopatrick/control-tower" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The question&lt;br&gt;
Can a large share of an agent's work be moved out of probabilistic reasoning and into deterministic mechanisms — without losing the model when it is genuinely needed?&lt;/p&gt;

&lt;p&gt;Control Tower answers a known capability by running a circuit, with zero model calls. It calls Google Gemini only when nothing in the registry matches. Both counts are published at /metrics, so the claim is a measurement, not a sentence in a README.&lt;/p&gt;

&lt;p&gt;Mandatory disclosures&lt;br&gt;
Pre-existing work. The Living Map discovery mechanism and the Circuit orchestration model come from an earlier experimental project (an Odoo-based control tower). The guardrail philosophy and the circuit registry are derived from that prior work.&lt;/p&gt;

&lt;p&gt;Built during the submission period. The deterministic router in gcp_router/, the fallback path through the Google GenAI SDK, the independent oracle wiring, the /metrics observability, the Cloud Run deployment, and the audit script audit_sgrm_hackathon.py that checks this repository against its own claims.&lt;/p&gt;

&lt;p&gt;Honest limitation. The SGRM (Small General Reasoning Model) is at prototype stage. Today it selects among hand-written strategies and executes them deterministically; it is not a trained model. sgrm_selector.py queries a local Qwen instance for strategy selection — that is a separate experiment from the Gemini fallback path and is not required by the demo.&lt;/p&gt;

&lt;p&gt;Technology&lt;br&gt;
Model: Google Gemini via the google-genai SDK (the router tries gemini-2.5-flash first; the model list is configurable with GEMINI_MODELS)&lt;br&gt;
Serving: FastAPI on Google Cloud Run&lt;br&gt;
Verification: an independent oracle program, no model involved&lt;br&gt;
Architecture&lt;br&gt;
See docs/architecture-diagram.md.&lt;/p&gt;

&lt;p&gt;Asynchronous batch work — where the saving becomes obvious&lt;br&gt;
POST /batch takes a pile of agent requests, returns a job id in about 100 ms, and does the work in the background. GET /batch/{id} reports progress and the split between paths. This is the shape the track asks for: hand over the heavy lifting and walk away.&lt;/p&gt;

&lt;p&gt;Measured on the deployed service, 200 mixed requests (mostly known capabilities, some writes, some denied, some genuinely unknown):&lt;/p&gt;

&lt;p&gt;count   median  total&lt;br&gt;
answered by a circuit   180 9 ms    70 s&lt;br&gt;
refused by a guardrail  10  0 ms    0 s&lt;br&gt;
escalated to Gemini 3.5 10  5 899 ms    121 s&lt;br&gt;
10 model calls instead of 200 — a 95% reduction. That number does not depend on hardware, network or load: it is a count, not a timing.&lt;/p&gt;

&lt;p&gt;The latency ratio (655x on medians) does depend on those things, and it moved from 8x to 655x once the living map was parsed once instead of on every request. We report the median because the mean is inflated by warm-up and by requests contending inside a single container.&lt;/p&gt;

&lt;p&gt;The circuit is real work, not a placeholder&lt;br&gt;
read_carte reads the living map — a survey of what actually exists in the tower: 478 entries across 9 zones (services, containers, volumes, agents, circuits, tools). It answers summaries, searches and per-zone listings. The shipped copy has every host address and identifier redacted.&lt;/p&gt;

&lt;p&gt;That matters: the claim "a deterministic path can replace the model" is only worth something if the deterministic path is doing work a model would otherwise have been asked to do.&lt;/p&gt;

&lt;p&gt;Bonus: Alice — where this architecture came from&lt;br&gt;
The deterministic cascade in this project was not designed on a whiteboard. It was forced on us when the credit on a paid model ran out and the only option left was a model running on our own hardware. That machine is Alice, and her router asks the same four questions in the same order: map, memory, tools, then — only then — the model.&lt;/p&gt;

&lt;p&gt;Her reasoning code is in alice/, with the full story, the measured numbers, and an explicit list of what was deliberately left out (her databases and logs, which are private conversations). She is offered as context, not as part of the judged submission.&lt;/p&gt;

&lt;p&gt;Setup / spin-up&lt;br&gt;
git clone  &amp;amp;&amp;amp; cd SGRM_PROJECT&lt;br&gt;
python3 -m venv .venv &amp;amp;&amp;amp; . .venv/bin/activate&lt;br&gt;
pip install -r requirements.txt&lt;br&gt;
export GOOGLE_API_KEY=   # only needed for the fallback path&lt;br&gt;
uvicorn gcp_router.main:app --host 0.0.0.0 --port 8080&lt;br&gt;
Then run the demo:&lt;/p&gt;

&lt;p&gt;./demo_flight.sh                      # local&lt;br&gt;
./demo_flight.sh https://   # deployed&lt;br&gt;
Deploy to Cloud Run:&lt;/p&gt;

&lt;p&gt;gcloud run deploy control-tower --source . --region europe-west9 \&lt;br&gt;
  --allow-unauthenticated --set-env-vars GOOGLE_API_KEY=&lt;br&gt;
What the demo shows&lt;br&gt;
Step    Request Expected    Model calls&lt;br&gt;
1   read_carte  circuit runs    0&lt;br&gt;
2   create_task without confirm guardrail refuses   0&lt;br&gt;
3   create_task with confirm    circuit runs    0&lt;br&gt;
4   drop_database   refused, deny-list  0&lt;br&gt;
5   send_invoice_to_client (unknown)    Gemini answers  1&lt;br&gt;
6   /verify on 17   oracle returns 712  0&lt;br&gt;
Checking the repository against its own claims&lt;br&gt;
python3 audit_sgrm_hackathon.py .&lt;br&gt;
The script fails the build if a claim in this README is not corroborated by the files on disk. It was written to catch exactly the kind of drift that produced an earlier version of this project claiming a Gemini integration that the code never actually performed.&lt;/p&gt;

&lt;p&gt;Reproducibility&lt;br&gt;
sgrm_core.py prints its full arithmetic trace and exits non-zero when the independent oracle disagrees with it. No expected value in this repository is written by hand.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agentaichallenge</category>
    </item>
    <item>
      <title>Deterministic Routing for Agentic AI: Reducing Unnecessary LLM Calls</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 30 Aug 2026 21:56:12 +0000</pubDate>
      <link>https://dev.to/codenominomi/deterministic-routing-for-agentic-ai-reducing-unnecessary-llm-calls-5ha5</link>
      <guid>https://dev.to/codenominomi/deterministic-routing-for-agentic-ai-reducing-unnecessary-llm-calls-5ha5</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0rovzufa20twa44r44l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0rovzufa20twa44r44l5.png" alt=" " width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Beyond the Model: Does the Architecture Around an AI Agent Matter?</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 30 Aug 2026 14:19:31 +0000</pubDate>
      <link>https://dev.to/codenominomi/beyond-the-model-does-the-architecture-around-an-ai-agent-matter-3gaf</link>
      <guid>https://dev.to/codenominomi/beyond-the-model-does-the-architecture-around-an-ai-agent-matter-3gaf</guid>
      <description>&lt;p&gt;Ref&lt;br&gt;
Cisco Systems, Inc.&lt;br&gt;
Router Architecture and IOS Internals&lt;br&gt;
Cisco Systems, Inc., 2001.&lt;/p&gt;

&lt;p&gt;David A. Patterson &amp;amp; John L. Hennessy&lt;br&gt;
Computer Organization and Design: The Hardware/Software Interface&lt;br&gt;
Chapter 5 — The Processor: Datapath and Control.&lt;/p&gt;

&lt;p&gt;We often discuss AI systems as if the model were the entire system.&lt;/p&gt;

&lt;p&gt;A model is benchmarked.&lt;/p&gt;

&lt;p&gt;A model is compared to another model.&lt;/p&gt;

&lt;p&gt;A larger model is assumed to be more capable.&lt;/p&gt;

&lt;p&gt;But an AI agent is not just a model.&lt;/p&gt;

&lt;p&gt;It is a model operating inside an environment.&lt;/p&gt;

&lt;p&gt;That raises a question I have been exploring with two systems I have built: Alice and the Control Tower.&lt;/p&gt;

&lt;p&gt;How much of an agent's operational capability comes from the model itself, and how much comes from the architecture surrounding it?&lt;/p&gt;

&lt;p&gt;I don't have the final answer.&lt;/p&gt;

&lt;p&gt;I have a hypothesis.&lt;/p&gt;

&lt;p&gt;And I am now testing it.&lt;/p&gt;

&lt;p&gt;The hypothesis&lt;/p&gt;

&lt;p&gt;Consider two systems using exactly the same model.&lt;/p&gt;

&lt;p&gt;System A&lt;br&gt;
User&lt;br&gt;
  ↓&lt;br&gt;
Qwen3 32B&lt;br&gt;
  ↓&lt;br&gt;
Answer&lt;br&gt;
System B&lt;br&gt;
User&lt;br&gt;
  ↓&lt;br&gt;
Control / Routing&lt;br&gt;
  ↓&lt;br&gt;
Memory&lt;br&gt;
  ↓&lt;br&gt;
Tools&lt;br&gt;
  ↓&lt;br&gt;
Circuits&lt;br&gt;
  ↓&lt;br&gt;
Policies&lt;br&gt;
  ↓&lt;br&gt;
Qwen3 32B&lt;br&gt;
  ↓&lt;br&gt;
Observation&lt;br&gt;
  ↓&lt;br&gt;
Result&lt;/p&gt;

&lt;p&gt;The underlying model has not changed.&lt;/p&gt;

&lt;p&gt;The environment has.&lt;/p&gt;

&lt;p&gt;My hypothesis is that the second system can convert the model's capabilities into more useful and reliable operational behaviour.&lt;/p&gt;

&lt;p&gt;Not because the model became more intelligent.&lt;/p&gt;

&lt;p&gt;Because it has a better system around it.&lt;/p&gt;

&lt;p&gt;Why I started thinking about this&lt;/p&gt;

&lt;p&gt;The architecture behind Alice contains several mechanisms that are normally treated as separate concerns:&lt;/p&gt;

&lt;p&gt;routing;&lt;br&gt;
memory;&lt;br&gt;
caching;&lt;br&gt;
tools;&lt;br&gt;
circuits;&lt;br&gt;
operational state;&lt;br&gt;
local knowledge;&lt;br&gt;
control mechanisms.&lt;/p&gt;

&lt;p&gt;The Control Tower takes this idea further.&lt;/p&gt;

&lt;p&gt;It provides a living representation of an environment containing agents, services, circuits, decisions, infrastructure and enterprise capabilities.&lt;/p&gt;

&lt;p&gt;This led me to a different way of thinking about an AI agent.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;Model → Tool → Result&lt;/p&gt;

&lt;p&gt;I started thinking about:&lt;/p&gt;

&lt;p&gt;Model&lt;br&gt;
  ↓&lt;br&gt;
Control&lt;br&gt;
  ↓&lt;br&gt;
Routing&lt;br&gt;
  ↓&lt;br&gt;
Context&lt;br&gt;
  ↓&lt;br&gt;
Tool / Circuit&lt;br&gt;
  ↓&lt;br&gt;
Execution&lt;br&gt;
  ↓&lt;br&gt;
Observation&lt;br&gt;
  ↓&lt;br&gt;
Memory&lt;/p&gt;

&lt;p&gt;The model becomes a component of a larger computational system.&lt;/p&gt;

&lt;p&gt;There is an interesting precedent in computing&lt;/p&gt;

&lt;p&gt;This isn't an analogy I invented from scratch.&lt;/p&gt;

&lt;p&gt;Computer architecture has long separated computation from control.&lt;/p&gt;

&lt;p&gt;A processor contains a datapath, but also a control unit that determines which operations and paths are activated.&lt;/p&gt;

&lt;p&gt;In the MIPS architecture described in Computer Organization and Design, different execution paths are selected depending on the decoded instruction, with a finite-state control mechanism determining subsequent actions.&lt;/p&gt;

&lt;p&gt;Networking provides another useful analogy.&lt;/p&gt;

&lt;p&gt;Cisco's architecture material explicitly separates:&lt;/p&gt;

&lt;p&gt;Control Plane&lt;br&gt;
Management Plane&lt;br&gt;
Data Plane&lt;/p&gt;

&lt;p&gt;The control plane maintains structures such as forwarding tables, while the data plane uses those structures to actually process and forward packets.&lt;/p&gt;

&lt;p&gt;This leads to an interesting question:&lt;/p&gt;

&lt;p&gt;Could agentic systems benefit from a similar separation between reasoning, control, routing and execution?&lt;/p&gt;

&lt;p&gt;Alice is my first experiment&lt;/p&gt;

&lt;p&gt;Alice was built around a Qwen model.&lt;/p&gt;

&lt;p&gt;But the model is not operating alone.&lt;/p&gt;

&lt;p&gt;The environment includes mechanisms for routing requests, accessing local knowledge, using cached results and interacting with operational circuits.&lt;/p&gt;

&lt;p&gt;For example, one of the interfaces I built can route a request to a local SQLite cache instead of invoking the LLM when an appropriate result already exists.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;p&gt;Request&lt;br&gt;
   ↓&lt;br&gt;
Router&lt;br&gt;
   ├── Cache hit → Result&lt;br&gt;
   │&lt;br&gt;
   └── Cache miss → LLM&lt;/p&gt;

&lt;p&gt;The model doesn't need to reason about something that the system already knows.&lt;/p&gt;

&lt;p&gt;This has obvious consequences for latency, cost and potentially reliability.&lt;/p&gt;

&lt;p&gt;But it also raises a larger question:&lt;/p&gt;

&lt;p&gt;Where does the capability actually come from?&lt;/p&gt;

&lt;p&gt;The Control Tower provides another environment&lt;/p&gt;

&lt;p&gt;The Control Tower introduces a larger operational context.&lt;/p&gt;

&lt;p&gt;An agent can interact with:&lt;/p&gt;

&lt;p&gt;a living map;&lt;br&gt;
operational circuits;&lt;br&gt;
enterprise systems;&lt;br&gt;
memory and knowledge;&lt;br&gt;
tools;&lt;br&gt;
policies;&lt;br&gt;
decisions;&lt;br&gt;
observability mechanisms.&lt;/p&gt;

&lt;p&gt;Some sensitive actions can become explicit decisions rather than direct agent actions.&lt;/p&gt;

&lt;p&gt;The architecture therefore becomes closer to:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                AI AGENT
                   │
                   ▼
            ┌─────────────┐
            │   CONTROL   │
            │    TOWER    │
            └──────┬──────┘
                   │
      ┌────────────┼────────────┐
      ▼            ▼            ▼
   Memory       Circuits      Tools
      │            │            │
      └────────────┼────────────┘
                   ▼
            Decision / Policy
                   │
                   ▼
              Execution
                   │
                   ▼
              Observation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The important part is that the environment itself becomes structured.&lt;/p&gt;

&lt;p&gt;The experiment&lt;/p&gt;

&lt;p&gt;I am now connecting Qwen3 32B directly to the Control Tower.&lt;/p&gt;

&lt;p&gt;The objective is deliberately simple:&lt;/p&gt;

&lt;p&gt;Keep the environment constant and change the model environment.&lt;/p&gt;

&lt;p&gt;The first comparison will be:&lt;/p&gt;

&lt;p&gt;Qwen3 32B&lt;br&gt;
   vs&lt;br&gt;
Qwen3 32B + Control Tower&lt;/p&gt;

&lt;p&gt;Then, where useful:&lt;/p&gt;

&lt;p&gt;Qwen3 32B + Control Tower&lt;br&gt;
   vs&lt;br&gt;
Qwen3 32B + Alice&lt;/p&gt;

&lt;p&gt;The same tasks should be given to each configuration.&lt;/p&gt;

&lt;p&gt;No moving goalposts.&lt;/p&gt;

&lt;p&gt;No changing the system just to make one model look better.&lt;/p&gt;

&lt;p&gt;What will be measured?&lt;/p&gt;

&lt;p&gt;Not just whether the final answer looks good.&lt;/p&gt;

&lt;p&gt;I want to measure:&lt;/p&gt;

&lt;p&gt;Task performance&lt;br&gt;
correct diagnosis;&lt;br&gt;
correct tool selection;&lt;br&gt;
architecture understanding;&lt;br&gt;
correct circuit selection;&lt;br&gt;
successful completion.&lt;br&gt;
Reliability&lt;br&gt;
hallucinations;&lt;br&gt;
invalid actions;&lt;br&gt;
policy violations;&lt;br&gt;
incorrect assumptions.&lt;br&gt;
Efficiency&lt;br&gt;
latency;&lt;br&gt;
tokens;&lt;br&gt;
number of LLM calls;&lt;br&gt;
cache hits;&lt;br&gt;
cost.&lt;br&gt;
Operational behaviour&lt;br&gt;
ability to navigate the environment;&lt;br&gt;
ability to use existing knowledge;&lt;br&gt;
ability to reason through circuits;&lt;br&gt;
ability to respect the control mechanisms.&lt;br&gt;
Then comes the more interesting experiment: ablation&lt;/p&gt;

&lt;p&gt;Suppose the complete system performs better.&lt;/p&gt;

&lt;p&gt;That still doesn't tell us why.&lt;/p&gt;

&lt;p&gt;So the next step is to remove components.&lt;/p&gt;

&lt;p&gt;Qwen&lt;br&gt;
  ↓&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tools
↓&lt;/li&gt;
&lt;li&gt;Memory
↓&lt;/li&gt;
&lt;li&gt;Routing
↓&lt;/li&gt;
&lt;li&gt;Circuits
↓&lt;/li&gt;
&lt;li&gt;Control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each configuration can be measured independently.&lt;/p&gt;

&lt;p&gt;The objective is to determine whether individual architectural components contribute measurable improvements.&lt;/p&gt;

&lt;p&gt;That would be much more interesting than simply saying:&lt;/p&gt;

&lt;p&gt;"Alice works well."&lt;/p&gt;

&lt;p&gt;What would success actually mean?&lt;/p&gt;

&lt;p&gt;It would not prove that a smaller model has become more intelligent.&lt;/p&gt;

&lt;p&gt;It would suggest something more specific:&lt;/p&gt;

&lt;p&gt;The capabilities of an agent cannot be evaluated independently from the environment in which the model operates.&lt;/p&gt;

&lt;p&gt;A model's intrinsic reasoning capability remains a property of the model.&lt;/p&gt;

&lt;p&gt;But its operational capability may depend substantially on:&lt;/p&gt;

&lt;p&gt;what information it can access;&lt;br&gt;
how that information is structured;&lt;br&gt;
how actions are routed;&lt;br&gt;
what memory exists outside the model;&lt;br&gt;
which tools are available;&lt;br&gt;
how execution is constrained;&lt;br&gt;
how feedback returns to the system.&lt;/p&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;p&gt;Model capability ≠ System capability&lt;/p&gt;

&lt;p&gt;That distinction may become increasingly important as agentic systems move from chat interfaces into real operational environments.&lt;/p&gt;

&lt;p&gt;And there is a possibility I find particularly interesting&lt;/p&gt;

&lt;p&gt;If the experiment shows that a relatively modest model performs significantly better inside a structured control environment, we may have evidence for a simple but important principle:&lt;/p&gt;

&lt;p&gt;Don't only make the model bigger. Improve the machine around the model.&lt;/p&gt;

&lt;p&gt;Better routing.&lt;/p&gt;

&lt;p&gt;Better context.&lt;/p&gt;

&lt;p&gt;Better memory.&lt;/p&gt;

&lt;p&gt;Better tools.&lt;/p&gt;

&lt;p&gt;Better state management.&lt;/p&gt;

&lt;p&gt;Better control.&lt;/p&gt;

&lt;p&gt;Better feedback.&lt;/p&gt;

&lt;p&gt;The model remains important.&lt;/p&gt;

&lt;p&gt;But it is no longer the entire architecture.&lt;/p&gt;

&lt;p&gt;This is still a hypothesis&lt;/p&gt;

&lt;p&gt;I am deliberately not claiming that the Control Tower makes Qwen better.&lt;/p&gt;

&lt;p&gt;The experiment has to establish that.&lt;/p&gt;

&lt;p&gt;It could fail.&lt;/p&gt;

&lt;p&gt;A component could provide no measurable benefit.&lt;/p&gt;

&lt;p&gt;Some mechanisms could even make performance worse.&lt;/p&gt;

&lt;p&gt;That result would also be useful.&lt;/p&gt;

&lt;p&gt;The objective is not to prove my architecture correct.&lt;/p&gt;

&lt;p&gt;It is to measure where the capability actually comes from.&lt;/p&gt;

&lt;p&gt;That is the experiment I'm starting now.&lt;/p&gt;

&lt;p&gt;If you were designing this experiment, what would you measure that I haven't included?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agentaichallenge</category>
    </item>
    <item>
      <title>From Infrastructure Map to Operational Playground: My Vision for the Control Tower</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 30 Aug 2026 13:48:05 +0000</pubDate>
      <link>https://dev.to/codenominomi/from-infrastructure-map-to-operational-playground-my-vision-for-the-control-tower-526c</link>
      <guid>https://dev.to/codenominomi/from-infrastructure-map-to-operational-playground-my-vision-for-the-control-tower-526c</guid>
      <description>&lt;p&gt;Most infrastructure tools answer a simple question:&lt;/p&gt;

&lt;p&gt;What do I have?&lt;/p&gt;

&lt;p&gt;Monitoring tools answer:&lt;/p&gt;

&lt;p&gt;What is happening?&lt;/p&gt;

&lt;p&gt;Ticketing systems answer:&lt;/p&gt;

&lt;p&gt;What happened?&lt;/p&gt;

&lt;p&gt;AI coding agents can increasingly answer:&lt;/p&gt;

&lt;p&gt;What could I change?&lt;/p&gt;

&lt;p&gt;I'm interested in what happens when these questions become part of the same operational environment.&lt;/p&gt;

&lt;p&gt;This is the direction I'm exploring with the Control Tower.&lt;/p&gt;

&lt;p&gt;The idea&lt;/p&gt;

&lt;p&gt;The Tower already provides a living representation of its environment: agents, services, infrastructure, circuits, decisions and operational information.&lt;/p&gt;

&lt;p&gt;But a map is only useful if you can work with what it represents.&lt;/p&gt;

&lt;p&gt;My vision is therefore moving toward:&lt;/p&gt;

&lt;p&gt;Observe → Understand → Replay → Simulate → Decide → Execute → Observe&lt;/p&gt;

&lt;p&gt;The important object in this architecture is the circuit.&lt;/p&gt;

&lt;p&gt;A circuit is more than a workflow&lt;/p&gt;

&lt;p&gt;Imagine an application path:&lt;/p&gt;

&lt;p&gt;Client&lt;br&gt;
  ↓&lt;br&gt;
API&lt;br&gt;
  ↓&lt;br&gt;
Service&lt;br&gt;
  ↓&lt;br&gt;
Database&lt;/p&gt;

&lt;p&gt;Something fails.&lt;/p&gt;

&lt;p&gt;Instead of opening five different tools, I want the engineer to be able to select the circuit directly from the map.&lt;/p&gt;

&lt;p&gt;The system should be able to show:&lt;/p&gt;

&lt;p&gt;the components involved;&lt;br&gt;
their relationships;&lt;br&gt;
the current state;&lt;br&gt;
the execution history;&lt;br&gt;
the relevant logs;&lt;br&gt;
the agents involved;&lt;br&gt;
previous decisions;&lt;br&gt;
the actions that were executed.&lt;/p&gt;

&lt;p&gt;And then provide a way to work on that same object.&lt;/p&gt;

&lt;p&gt;The Packet Tracer analogy&lt;/p&gt;

&lt;p&gt;This is where the analogy with tools such as Packet Tracer or GNS3 becomes useful.&lt;/p&gt;

&lt;p&gt;They don't simply tell you what a network looks like.&lt;/p&gt;

&lt;p&gt;They give you a workspace in which you can reason about the network.&lt;/p&gt;

&lt;p&gt;That's the direction I want for the Tower.&lt;/p&gt;

&lt;p&gt;Not a static topology.&lt;/p&gt;

&lt;p&gt;An operational topology.&lt;/p&gt;

&lt;p&gt;A topology connected to state, history, workflows and actions.&lt;/p&gt;

&lt;p&gt;The long-term idea is that an engineer could take a failing circuit and:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Observe&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Understand what is currently happening.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Replay&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Reconstruct a previous execution or incident.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Simulate&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Test a potential change without immediately affecting production.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Decide&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Evaluate the proposed action through the Tower's decision and policy mechanisms.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Execute&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Apply the approved or automatically permitted action.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Observe again&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Verify the actual result and close the feedback loop.&lt;/p&gt;

&lt;p&gt;The goal is not to automate everything.&lt;/p&gt;

&lt;p&gt;The goal is to make the relationship between observation, reasoning and action explicit.&lt;/p&gt;

&lt;p&gt;Where AI agents fit&lt;/p&gt;

&lt;p&gt;An AI agent becomes another operator of this environment.&lt;/p&gt;

&lt;p&gt;It can inspect the same map.&lt;/p&gt;

&lt;p&gt;It can reason over the same operational context.&lt;/p&gt;

&lt;p&gt;It can interact with circuits and enterprise capabilities.&lt;/p&gt;

&lt;p&gt;But it doesn't necessarily get unrestricted access to everything.&lt;/p&gt;

&lt;p&gt;The Tower can introduce boundaries between:&lt;/p&gt;

&lt;p&gt;AI Agent&lt;br&gt;
   ↓&lt;br&gt;
Control Tower&lt;br&gt;
   ↓&lt;br&gt;
Policy / Decision&lt;br&gt;
   ↓&lt;br&gt;
Enterprise Capability&lt;/p&gt;

&lt;p&gt;Some actions can be mechanically blocked or permitted by deterministic controls.&lt;/p&gt;

&lt;p&gt;Others can become explicit decisions requiring human involvement.&lt;/p&gt;

&lt;p&gt;This distinction matters.&lt;/p&gt;

&lt;p&gt;A safety mechanism should not have to ask permission to prevent an obviously forbidden operation.&lt;/p&gt;

&lt;p&gt;At the same time, an action requiring human judgment should be able to become a traceable decision.&lt;/p&gt;

&lt;p&gt;Why Odoo matters in this architecture&lt;/p&gt;

&lt;p&gt;One unusual aspect of the Tower is that the control plane is not limited to infrastructure.&lt;/p&gt;

&lt;p&gt;Odoo is integrated as the first enterprise system in its knowledge and operational environment.&lt;/p&gt;

&lt;p&gt;That means the same architecture can reason about capabilities that are not purely technical:&lt;/p&gt;

&lt;p&gt;accounting;&lt;br&gt;
invoicing;&lt;br&gt;
authentication;&lt;br&gt;
business workflows;&lt;br&gt;
enterprise data.&lt;/p&gt;

&lt;p&gt;This leads to a broader model:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         AI AGENTS
             │
             ▼
    ┌─────────────────┐
    │  CONTROL TOWER  │
    │                 │
    │ Living Map      │
    │ Circuits        │
    │ Knowledge       │
    │ Memory          │
    │ Policies        │
    │ Decisions       │
    │ Observability   │
    └────────┬────────┘
             │
   ┌─────────┴──────────┐
   ▼                    ▼
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Infrastructure        Applications&lt;br&gt;
       │                    │&lt;br&gt;
     Azure                 Odoo&lt;/p&gt;

&lt;p&gt;The objective isn't to replace Azure, Odoo, NetBox, Backstage, monitoring platforms or network simulators.&lt;/p&gt;

&lt;p&gt;It is to explore what could exist above and between these systems.&lt;/p&gt;

&lt;p&gt;A common operational layer.&lt;/p&gt;

&lt;p&gt;The question I'm trying to answer&lt;/p&gt;

&lt;p&gt;The interesting question for me is no longer:&lt;/p&gt;

&lt;p&gt;"How can I give an AI agent access to my infrastructure?"&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;"How can humans and AI agents work on the same operational representation of an enterprise?"&lt;/p&gt;

&lt;p&gt;A representation that is:&lt;/p&gt;

&lt;p&gt;alive;&lt;br&gt;
contextual;&lt;br&gt;
executable;&lt;br&gt;
observable;&lt;br&gt;
auditable;&lt;br&gt;
and eventually replayable.&lt;/p&gt;

&lt;p&gt;That is the direction behind the Control Tower.&lt;/p&gt;

&lt;p&gt;I don't consider the architecture finished.&lt;/p&gt;

&lt;p&gt;I'm interested in the engineering discussion:&lt;/p&gt;

&lt;p&gt;Would an operational map that you can actually work on be useful in your environment?&lt;/p&gt;

&lt;p&gt;And if it existed, what would you want to be able to do from it?&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>automation</category>
      <category>devops</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Et si les agents IA avaient besoin d’une carte vivante de l’entreprise ?</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 30 Aug 2026 12:21:15 +0000</pubDate>
      <link>https://dev.to/codenominomi/et-si-les-agents-ia-avaient-besoin-dune-carte-vivante-de-lentreprise--4mnk</link>
      <guid>https://dev.to/codenominomi/et-si-les-agents-ia-avaient-besoin-dune-carte-vivante-de-lentreprise--4mnk</guid>
      <description>&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/fotsopatrick" rel="noopener noreferrer"&gt;
        fotsopatrick
      &lt;/a&gt; / &lt;a href="https://github.com/fotsopatrick/tour-community" rel="noopener noreferrer"&gt;
        tour-community
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Tour de controle — edition Community (AGPL) : briques libres + agents Chloe et Braignak
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Tour de contrôle — édition Community&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;L'édition Community est publique.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les briques libres de la tour, installables sur un Odoo standard :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code source (AGPL) : &lt;a href="https://github.com/fotsopatrick/tour-community" rel="noopener noreferrer"&gt;https://github.com/fotsopatrick/tour-community&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Démo en ligne : &lt;a href="https://democommunity.matourdecontrole.fr" rel="nofollow noopener noreferrer"&gt;https://democommunity.matourdecontrole.fr&lt;/a&gt; (compte demo / demo)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ce qu'elle contient (15 briques autonomes) :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les agents libres : &lt;strong&gt;Chloé&lt;/strong&gt; (chat) et &lt;strong&gt;Braignak&lt;/strong&gt; (observateur), avec votre clé DeepSeek.&lt;/li&gt;
&lt;li&gt;Les briques : Actus, Apprentissage, Condense, Cookie Secure, CV, Messages, Nouveautés, Projets, Rappels, Rate Login, Recette, Réponses, Retours, Sauvegardes, Webapps.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aucune clé API exigée pour installer. Le cœur de la tour (agents complets
coffre, circuits, gouvernance) reste une édition séparée, sous licence
propriétaire.&lt;/p&gt;

&lt;p&gt;La Tour de contrôle (&lt;a href="https://matourdecontrole.fr" rel="nofollow noopener noreferrer"&gt;https://matourdecontrole.fr&lt;/a&gt;) est une plateforme de
pilotage : un tableau de bord, une équipe d'agents, des circuits de validation
et des garde-fous. L'édition Community contient &lt;strong&gt;des briques autonomes&lt;/strong&gt; qui
s'installent sur un Odoo standard et s'utilisent seules — avec Chloé et
Braignak, les deux agents libres.&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fotsopatrick/tour-community" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Les agents IA deviennent capables de lire du code, d'appeler des API, d'exécuter des commandes, de modifier des fichiers et d'enchaîner plusieurs opérations.&lt;/p&gt;

&lt;p&gt;Mais une question me semble encore insuffisamment traitée :&lt;/p&gt;

&lt;p&gt;Que sait réellement un agent de l'environnement dans lequel il agit ?&lt;/p&gt;

&lt;p&gt;Donner à un agent une liste d'outils est une chose.&lt;/p&gt;

&lt;p&gt;Lui permettre de comprendre le système derrière ces outils en est une autre.&lt;/p&gt;

&lt;p&gt;C'est le problème que j'explore avec un projet personnel que j'appelle La Tour de contrôle.&lt;/p&gt;

&lt;p&gt;L'idée&lt;/p&gt;

&lt;p&gt;La Tour de contrôle est un prototype de control plane agentique conçu pour se placer entre les agents IA et les systèmes qu'ils peuvent utiliser.&lt;/p&gt;

&lt;p&gt;Les agents peuvent être différents :&lt;/p&gt;

&lt;p&gt;Claude Code&lt;br&gt;
OpenCode&lt;br&gt;
Gemini&lt;br&gt;
DeepSeek&lt;br&gt;
autres agents&lt;/p&gt;

&lt;p&gt;L'idée est qu'ils n'aient pas besoin de porter seuls tout le contexte opérationnel.&lt;/p&gt;

&lt;p&gt;La structure ressemble plutôt à ceci :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             AGENTS IA

   Claude Code   OpenCode   Gemini
         \          |        /
          \         |       /
           └────────┴──────┘
                    │
                    ▼
          ┌──────────────────┐
          │ TOUR DE CONTRÔLE │
          ├──────────────────┤
          │ Carte vivante    │
          │ Mémoire          │
          │ Circuits         │
          │ MCP / outils     │
          │ Politiques       │
          │ État             │
          │ Observabilité    │
          └────────┬─────────┘
                   │
                   ▼
            Systèmes réels
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;La Tour n'a donc pas vocation à remplacer Claude Code ou OpenCode.&lt;/p&gt;

&lt;p&gt;Elle cherche plutôt à fournir l'environnement opérationnel dans lequel l'agent peut agir.&lt;/p&gt;

&lt;p&gt;La carte vivante&lt;/p&gt;

&lt;p&gt;C'est probablement la partie du projet qui m'intéresse le plus.&lt;/p&gt;

&lt;p&gt;La Tour possède une représentation graphique de l'environnement, que je compare volontairement à GNS3 ou Packet Tracer.&lt;/p&gt;

&lt;p&gt;Mais au lieu de représenter uniquement des équipements réseau, cette carte peut représenter :&lt;/p&gt;

&lt;p&gt;agents&lt;br&gt;
services&lt;br&gt;
applications&lt;br&gt;
outils&lt;br&gt;
circuits&lt;br&gt;
dépendances&lt;br&gt;
capacités&lt;br&gt;
états&lt;/p&gt;

&lt;p&gt;Dans la version actuelle, la cartographie couvre notamment :&lt;/p&gt;

&lt;p&gt;serveurs&lt;br&gt;
conteneurs&lt;br&gt;
volumes&lt;br&gt;
webapps&lt;br&gt;
agents / équipe&lt;br&gt;
outils&lt;/p&gt;

&lt;p&gt;et la documentation du système recense notamment 76 webapps et 202 outils dans la carte actuelle.&lt;/p&gt;

&lt;p&gt;La carte est alimentée par une découverte de l'environnement et est actuellement rafraîchie périodiquement. Une couche de suivi temps réel est en cours de finalisation.&lt;/p&gt;

&lt;p&gt;L'idée n'est donc pas d'avoir un joli diagramme d'architecture.&lt;/p&gt;

&lt;p&gt;L'idée est d'avoir une représentation exploitable de l'environnement.&lt;/p&gt;

&lt;p&gt;Pourquoi donner une carte à un agent ?&lt;/p&gt;

&lt;p&gt;Prenons une demande simple :&lt;/p&gt;

&lt;p&gt;« Analyse le problème et lance la procédure appropriée. »&lt;/p&gt;

&lt;p&gt;Avec une simple liste d'outils, l'agent doit reconstruire mentalement la structure du système.&lt;/p&gt;

&lt;p&gt;Avec une carte, le parcours peut devenir :&lt;/p&gt;

&lt;p&gt;Demande&lt;br&gt;
   ↓&lt;br&gt;
Carte&lt;br&gt;
   ↓&lt;br&gt;
Capacité pertinente&lt;br&gt;
   ↓&lt;br&gt;
Circuit&lt;br&gt;
   ↓&lt;br&gt;
Outil&lt;br&gt;
   ↓&lt;br&gt;
Action&lt;br&gt;
   ↓&lt;br&gt;
Résultat&lt;br&gt;
   ↓&lt;br&gt;
État mis à jour&lt;/p&gt;

&lt;p&gt;L'hypothèse derrière cette approche est simple :&lt;/p&gt;

&lt;p&gt;Un agent ne devrait peut-être pas seulement savoir quels outils il peut appeler. Il devrait comprendre où ces outils se situent dans l'environnement.&lt;/p&gt;

&lt;p&gt;Les circuits&lt;/p&gt;

&lt;p&gt;La Tour possède aussi une notion de circuit.&lt;/p&gt;

&lt;p&gt;Un circuit représente une procédure opérationnelle réutilisable.&lt;/p&gt;

&lt;p&gt;L'idée est d'éviter de demander au modèle de réinventer une procédure déjà connue à chaque exécution.&lt;/p&gt;

&lt;p&gt;On peut alors avoir :&lt;/p&gt;

&lt;p&gt;Problème&lt;br&gt;
   ↓&lt;br&gt;
Procédure&lt;br&gt;
   ↓&lt;br&gt;
Exécution&lt;br&gt;
   ↓&lt;br&gt;
Vérification&lt;br&gt;
   ↓&lt;br&gt;
Workflow réutilisable&lt;/p&gt;

&lt;p&gt;La logique est donc :&lt;/p&gt;

&lt;p&gt;raisonner quand c'est nécessaire, réutiliser une capacité quand elle est déjà connue.&lt;/p&gt;

&lt;p&gt;Cette distinction me paraît importante dans des systèmes qui deviennent de plus en plus agentiques.&lt;/p&gt;

&lt;p&gt;La mémoire&lt;/p&gt;

&lt;p&gt;La mémoire de la Tour ne se limite pas à l'historique d'une conversation.&lt;/p&gt;

&lt;p&gt;Le système peut conserver notamment :&lt;/p&gt;

&lt;p&gt;connaissances&lt;br&gt;
procédures&lt;br&gt;
expériences&lt;br&gt;
circuits&lt;br&gt;
état opérationnel&lt;/p&gt;

&lt;p&gt;Une capacité peut donc suivre une chaîne du type :&lt;/p&gt;

&lt;p&gt;Découverte&lt;br&gt;
   ↓&lt;br&gt;
Apprentissage&lt;br&gt;
   ↓&lt;br&gt;
Conservation&lt;br&gt;
   ↓&lt;br&gt;
Récupération&lt;br&gt;
   ↓&lt;br&gt;
Réutilisation&lt;/p&gt;

&lt;p&gt;L'objectif est que l'organisation ne perde pas son savoir opérationnel simplement parce que le modèle ou l'agent change.&lt;/p&gt;

&lt;p&gt;MCP comme interface&lt;/p&gt;

&lt;p&gt;La Tour expose aussi certaines capacités via MCP.&lt;/p&gt;

&lt;p&gt;Dans cette architecture :&lt;/p&gt;

&lt;p&gt;Agent&lt;br&gt;
  ↓&lt;br&gt;
MCP&lt;br&gt;
  ↓&lt;br&gt;
Tour&lt;br&gt;
  ↓&lt;br&gt;
outil / circuit&lt;br&gt;
  ↓&lt;br&gt;
système réel&lt;/p&gt;

&lt;p&gt;MCP sert donc d'interface.&lt;/p&gt;

&lt;p&gt;La Tour cherche à être la couche qui organise ce qui se trouve derrière cette interface :&lt;/p&gt;

&lt;p&gt;contexte&lt;br&gt;
politiques&lt;br&gt;
workflows&lt;br&gt;
état&lt;br&gt;
outils&lt;br&gt;
exécution&lt;br&gt;
observation&lt;br&gt;
Plusieurs agents, un même environnement&lt;/p&gt;

&lt;p&gt;C'est une autre hypothèse importante du projet.&lt;/p&gt;

&lt;p&gt;J'ai utilisé la Tour avec différents agents et modèles.&lt;/p&gt;

&lt;p&gt;Claude Code et OpenCode sont ceux que j'utilise le plus dans mon travail, et j'ai également testé d'autres modèles.&lt;/p&gt;

&lt;p&gt;L'observation intéressante est la suivante :&lt;/p&gt;

&lt;p&gt;Les agents peuvent changer alors que l'environnement opérationnel reste le même.&lt;/p&gt;

&lt;p&gt;Cela conduit à une architecture de ce type :&lt;/p&gt;

&lt;p&gt;Claude Code ─┐&lt;br&gt;
OpenCode ────┤&lt;br&gt;
Gemini ──────┤&lt;br&gt;
DeepSeek ────┤&lt;br&gt;
              ▼&lt;br&gt;
        TOUR DE CONTRÔLE&lt;br&gt;
              ▼&lt;br&gt;
         Systèmes réels&lt;/p&gt;

&lt;p&gt;Je ne présente pas cela comme un benchmark général des modèles.&lt;/p&gt;

&lt;p&gt;C'est simplement ce que j'ai observé sur mon propre environnement.&lt;/p&gt;

&lt;p&gt;Le contrôle des actions&lt;/p&gt;

&lt;p&gt;Une fois qu'un agent peut agir sur des systèmes réels, une question devient centrale :&lt;/p&gt;

&lt;p&gt;Qu'est-ce qu'il a le droit de faire ?&lt;/p&gt;

&lt;p&gt;Je ne pense pas qu'un prompt doive être l'unique mécanisme de contrôle.&lt;/p&gt;

&lt;p&gt;La logique recherchée est plutôt :&lt;/p&gt;

&lt;p&gt;Raisonnement&lt;br&gt;
      ↓&lt;br&gt;
Capacité demandée&lt;br&gt;
      ↓&lt;br&gt;
Contrôle / politique&lt;br&gt;
      ↓&lt;br&gt;
Exécution&lt;br&gt;
      ↓&lt;br&gt;
Observation&lt;/p&gt;

&lt;p&gt;Cela permet d'introduire une séparation entre :&lt;/p&gt;

&lt;p&gt;ce que l'agent peut concevoir,&lt;/p&gt;

&lt;p&gt;ce que la plateforme lui permet de faire,&lt;/p&gt;

&lt;p&gt;et ce qui a réellement été exécuté.&lt;/p&gt;

&lt;p&gt;Sécurité&lt;/p&gt;

&lt;p&gt;La Tour contient également des composants liés à la sécurité et à la défense opérationnelle.&lt;/p&gt;

&lt;p&gt;Parmi les capacités présentes dans la cartographie et les interfaces figurent notamment :&lt;/p&gt;

&lt;p&gt;défense réseau&lt;br&gt;
verrouillage d'urgence&lt;br&gt;
veille intrusion&lt;br&gt;
pare-feu&lt;/p&gt;

&lt;p&gt;Il existe également des fonctions liées au pentest.&lt;/p&gt;

&lt;p&gt;Je préfère cependant être précis : je ne présente pas la Tour comme une plateforme complète de pentest.&lt;/p&gt;

&lt;p&gt;Je la présente comme une plateforme qui intègre également des capacités de sécurité et de contrôle opérationnel.&lt;/p&gt;

&lt;p&gt;Observabilité&lt;/p&gt;

&lt;p&gt;Un autre objectif du projet est de pouvoir observer non seulement le résultat final mais aussi l'exécution.&lt;/p&gt;

&lt;p&gt;Le suivi recherché ressemble à ceci :&lt;/p&gt;

&lt;p&gt;Quel agent ?&lt;br&gt;
      ↓&lt;br&gt;
Quel workflow ?&lt;br&gt;
      ↓&lt;br&gt;
Quel outil ?&lt;br&gt;
      ↓&lt;br&gt;
Quel système ?&lt;br&gt;
      ↓&lt;br&gt;
Quel résultat ?&lt;br&gt;
      ↓&lt;br&gt;
Quel nouvel état ?&lt;/p&gt;

&lt;p&gt;Autrement dit :&lt;/p&gt;

&lt;p&gt;passer de « l'agent a répondu » à « voici ce que le système a réellement fait ».&lt;/p&gt;

&lt;p&gt;La couche de suivi temps réel est actuellement en cours de finalisation.&lt;/p&gt;

&lt;p&gt;Ce que la Tour n'est pas&lt;/p&gt;

&lt;p&gt;Je préfère être explicite.&lt;/p&gt;

&lt;p&gt;La Tour n'est pas :&lt;/p&gt;

&lt;p&gt;un nouveau modèle de langage ;&lt;br&gt;
un remplacement de Claude Code ;&lt;br&gt;
un remplacement d'OpenCode ;&lt;br&gt;
un simple chatbot ;&lt;br&gt;
un produit enterprise fini.&lt;/p&gt;

&lt;p&gt;C'est aujourd'hui un prototype fonctionnel de control plane pour systèmes agentiques, construit et utilisé dans un environnement réel.&lt;/p&gt;

&lt;p&gt;Certaines parties sont avancées.&lt;/p&gt;

&lt;p&gt;D'autres sont expérimentales.&lt;/p&gt;

&lt;p&gt;Certaines capacités sont testées en production personnelle.&lt;/p&gt;

&lt;p&gt;D'autres doivent encore être industrialisées.&lt;/p&gt;

&lt;p&gt;Pourquoi ce problème m'intéresse&lt;/p&gt;

&lt;p&gt;Les agents deviennent capables de faire de plus en plus de choses :&lt;/p&gt;

&lt;p&gt;lire&lt;br&gt;
raisonner&lt;br&gt;
écrire&lt;br&gt;
exécuter&lt;br&gt;
appeler des APIs&lt;br&gt;
modifier des systèmes&lt;br&gt;
enchaîner des opérations&lt;/p&gt;

&lt;p&gt;À mesure que leurs capacités augmentent, le problème change.&lt;/p&gt;

&lt;p&gt;Il ne s'agit plus seulement de demander :&lt;/p&gt;

&lt;p&gt;« Quel agent dois-je utiliser ? »&lt;/p&gt;

&lt;p&gt;Mais aussi :&lt;/p&gt;

&lt;p&gt;« Dans quel environnement cet agent évolue-t-il ? »&lt;/p&gt;

&lt;p&gt;« Que peut-il voir ? »&lt;/p&gt;

&lt;p&gt;« Que peut-il exécuter ? »&lt;/p&gt;

&lt;p&gt;« Quelle procédure doit-il suivre ? »&lt;/p&gt;

&lt;p&gt;« Que s'est-il réellement passé ? »&lt;/p&gt;

&lt;p&gt;« Comment retrouver l'état précédent ? »&lt;/p&gt;

&lt;p&gt;« Comment changer de modèle sans reconstruire toute l'organisation autour de lui ? »&lt;/p&gt;

&lt;p&gt;Cela commence à ressembler à un problème de plateforme, pas seulement à un problème de modèle IA.&lt;/p&gt;

&lt;p&gt;Le marché commence lui aussi à traiter ce problème&lt;/p&gt;

&lt;p&gt;Je ne prétends évidemment pas avoir inventé cette catégorie.&lt;/p&gt;

&lt;p&gt;Microsoft, AWS, IBM, Salesforce, Snowflake, Kong et d'autres travaillent déjà sur des problèmes voisins : gouvernance des agents, orchestration, observabilité, gestion des outils, identité et contrôle.&lt;/p&gt;

&lt;p&gt;C'est justement ce qui m'intéresse.&lt;/p&gt;

&lt;p&gt;Cela signifie que la question devient moins :&lt;/p&gt;

&lt;p&gt;« Les entreprises auront-elles besoin de contrôler leurs agents ? »&lt;/p&gt;

&lt;p&gt;et davantage :&lt;/p&gt;

&lt;p&gt;« À quoi doit réellement ressembler un control plane agentique ? »&lt;/p&gt;

&lt;p&gt;Mon hypothèse actuelle&lt;/p&gt;

&lt;p&gt;L'hypothèse derrière la Tour est :&lt;/p&gt;

&lt;p&gt;Les agents devraient pouvoir changer, tandis que le contexte opérationnel, les capacités, les workflows, les politiques, l'état et l'observabilité devraient appartenir à une couche indépendante d'un agent ou d'un modèle particulier.&lt;/p&gt;

&lt;p&gt;Et peut-être que cette couche doit également fournir quelque chose de plus fondamental :&lt;/p&gt;

&lt;p&gt;une carte vivante de l'organisation que les humains et les agents peuvent comprendre et parcourir.&lt;/p&gt;

&lt;p&gt;Ce que je cherche à savoir maintenant&lt;/p&gt;

&lt;p&gt;Le projet a été construit par itérations, à partir de problèmes réels rencontrés en développant et en opérant le système.&lt;/p&gt;

&lt;p&gt;Je cherche maintenant à confronter cette approche à des personnes qui travaillent réellement avec des systèmes complexes.&lt;/p&gt;

&lt;p&gt;Pour un CTO ou un responsable plateforme&lt;/p&gt;

&lt;p&gt;Est-ce que ce problème existe aujourd'hui dans votre organisation ?&lt;/p&gt;

&lt;p&gt;Pour un développeur&lt;/p&gt;

&lt;p&gt;Une carte opérationnelle de ce type rendrait-elle réellement vos agents plus utiles ?&lt;/p&gt;

&lt;p&gt;Pour un architecte&lt;/p&gt;

&lt;p&gt;Où placeriez-vous une telle couche dans une architecture d'entreprise ?&lt;/p&gt;

&lt;p&gt;Pour un responsable sécurité&lt;/p&gt;

&lt;p&gt;Quels contrôles devraient absolument exister avant de laisser un agent agir sur une infrastructure réelle ?&lt;/p&gt;

&lt;p&gt;Pour un responsable produit&lt;/p&gt;

&lt;p&gt;Est-ce un vrai problème à résoudre, ou simplement une abstraction intéressante techniquement ?&lt;/p&gt;

&lt;p&gt;Et pour ceux qui travaillent déjà avec les agents&lt;/p&gt;

&lt;p&gt;Qu'est-ce que je rate ?&lt;/p&gt;

&lt;p&gt;Je cherche surtout des critiques concrètes.&lt;/p&gt;

&lt;p&gt;La question centrale&lt;/p&gt;

&lt;p&gt;Nous sommes en train de construire des agents capables d'agir de plus en plus directement sur nos systèmes.&lt;/p&gt;

&lt;p&gt;La prochaine question n'est peut-être plus seulement :&lt;/p&gt;

&lt;p&gt;« Comment rendre les agents plus intelligents ? »&lt;/p&gt;

&lt;p&gt;Mais :&lt;/p&gt;

&lt;p&gt;« Quelle couche doit se trouver entre le raisonnement d'un agent et l'organisation réelle ? »&lt;/p&gt;

&lt;p&gt;C'est la question que j'explore avec La Tour de contrôle.&lt;/p&gt;

&lt;p&gt;Vos retours sont les bienvenus.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>ai</category>
    </item>
    <item>
      <title># ALICE — Architectural Reference Document</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 30 Aug 2026 07:28:12 +0000</pubDate>
      <link>https://dev.to/codenominomi/-alice-architectural-reference-document-5706</link>
      <guid>https://dev.to/codenominomi/-alice-architectural-reference-document-5706</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Reference Document — Identity, Architecture and Operating Principles&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Reference Version: August 28, 2026&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1. Definition of Alice
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Alice is a local intelligence system composed of multiple cooperating components.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is not reducible to its language model.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Qwen&lt;/strong&gt; model is one component of Alice. Alice's identity and operational capabilities result from the architecture as a whole:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;model + router + memory + map + circuits + tools + learning + execution mechanisms&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Fundamental Principle
&lt;/h2&gt;

&lt;p&gt;Alice does not have the general objective of becoming “better” at every iteration.&lt;/p&gt;

&lt;p&gt;Its principle is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;KNOW → DO → LEARN IF NECESSARY → RETAIN → REUSE&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When Alice already knows how to do something, it should be able to use the corresponding knowledge or circuit instead of unnecessarily solving the problem again.&lt;/p&gt;

&lt;p&gt;When Alice does not know how to do something and a learning mechanism is available for that task, it can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;discover a solution;&lt;/li&gt;
&lt;li&gt;transform it into usable knowledge;&lt;/li&gt;
&lt;li&gt;integrate it into its architecture;&lt;/li&gt;
&lt;li&gt;reuse it later.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  3. Alice ≠ Qwen
&lt;/h2&gt;

&lt;p&gt;Qwen is the language model currently used by Alice.&lt;/p&gt;

&lt;p&gt;It provides, among other things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;language understanding;&lt;/li&gt;
&lt;li&gt;language generation;&lt;/li&gt;
&lt;li&gt;certain reasoning capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Alice is the complete architecture built around the model.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alice's overall behavior therefore depends on how the model is combined with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memory;&lt;/li&gt;
&lt;li&gt;the map;&lt;/li&gt;
&lt;li&gt;the router;&lt;/li&gt;
&lt;li&gt;tools;&lt;/li&gt;
&lt;li&gt;circuits;&lt;/li&gt;
&lt;li&gt;learning mechanisms.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Principles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Never consider Qwen alone to represent Alice.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never evaluate Alice's architecture solely according to the model's intrinsic capabilities.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A capability may belong to Alice's architecture without being a native capability of Qwen.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Current Architecture
&lt;/h2&gt;

&lt;p&gt;The inspected architecture includes, among other components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen2.5-3B-Instruct Q4_K_M&lt;/strong&gt;, served by &lt;code&gt;llama-server&lt;/code&gt; on the Alice machine (&lt;code&gt;192.168.1.61&lt;/code&gt;), with a context window of 4096;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;routeur.py&lt;/code&gt;: orchestration layer and routing core;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;alicization_adapter.py&lt;/code&gt;: &lt;code&gt;teach()&lt;/code&gt; interface;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;memory.py&lt;/code&gt;: SQLite memory for procedures and experiences;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;adaptateur_carte.py&lt;/code&gt;: interface to the living map;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Living Map&lt;/strong&gt;: &lt;code&gt;cartes.json&lt;/code&gt;, containing knowledge and circuits accessible to the router;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Circuits&lt;/strong&gt;: reusable operational procedures;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local tools&lt;/strong&gt;: memory search, file reading, testing, summarization, system actions, OCR, language registry and care functions;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RL&lt;/strong&gt;: &lt;code&gt;DonjonSimpleEnv&lt;/code&gt; environment and Q-learning for the task of moving toward a target;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web control interface&lt;/strong&gt;: dashboard, L0/L1/L2 memory, circuits, observability and tests.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Role of the Router
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;router is the orchestrator&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It determines which Alice capability should process a request.&lt;/p&gt;

&lt;p&gt;The observed flow is, in order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Query the &lt;strong&gt;living map&lt;/strong&gt; to find a relevant circuit.&lt;/li&gt;
&lt;li&gt;Search &lt;strong&gt;SQLite memory&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;OCR&lt;/strong&gt; when the request involves reading an image.&lt;/li&gt;
&lt;li&gt;Detect certain &lt;strong&gt;direct system actions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Qwen&lt;/strong&gt; for more complex actions or the final response.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Principle
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The model should not solve a problem again when Alice already has an exploitable procedure for it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. Memory and Knowledge
&lt;/h2&gt;

&lt;p&gt;Alice's memory is not merely a log.&lt;/p&gt;

&lt;p&gt;It participates in her &lt;strong&gt;operational capabilities&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A learned and retained procedure becomes knowledge available for later use.&lt;/p&gt;

&lt;p&gt;The inspected state contains, among other elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;code&gt;procedures&lt;/code&gt; table;&lt;/li&gt;
&lt;li&gt;an &lt;code&gt;experiences&lt;/code&gt; table.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A procedure present in the verified state consisted of &lt;strong&gt;four operations&lt;/strong&gt; and had the status &lt;code&gt;VERIFIED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A retained piece of knowledge should therefore not be considered “erased” simply because it is not present in Qwen's immediate context.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;It belongs to Alice's memory architecture.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7. Living Map
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;living map&lt;/strong&gt; is a structured representation of the knowledge and circuits accessible to Alice.&lt;/p&gt;

&lt;p&gt;It allows the router to retrieve an already-known capability.&lt;/p&gt;

&lt;p&gt;In the tested RL case:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Learning
   ↓
Policy
   ↓
Circuit
   ↓
Living Map
   ↓
Router
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A policy produced through learning was transformed into a circuit and then added to the &lt;strong&gt;“knowledge”&lt;/strong&gt; section of the map.&lt;/p&gt;

&lt;p&gt;The router subsequently retrieved this circuit when processing a movement request.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Circuits
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;circuit&lt;/strong&gt; is a procedure that Alice can execute.&lt;/p&gt;

&lt;p&gt;A circuit may originate from a learning process.&lt;/p&gt;

&lt;p&gt;Once integrated into the appropriate memory or map, it becomes &lt;strong&gt;reusable operational knowledge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The objective is not necessarily to continuously optimize the circuit.&lt;/p&gt;

&lt;p&gt;If the circuit correctly performs the task for which it was learned, it fulfills its purpose.&lt;/p&gt;

&lt;h3&gt;
  
  
  Principles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A known circuit must be reusable.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A circuit does not need to be replaced simply because another method exists.&lt;/li&gt;
&lt;li&gt;A circuit should only be modified based on a justification related to its actual operation, not on a generic architectural preference.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. Reinforcement Learning
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RL&lt;/strong&gt; is a specialized learning mechanism.&lt;/p&gt;

&lt;p&gt;In the environment currently tested, Alice operates on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;5 × 5 grid&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;four actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;up;&lt;/li&gt;
&lt;li&gt;down;&lt;/li&gt;
&lt;li&gt;left;&lt;/li&gt;
&lt;li&gt;right.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Q-learning&lt;/strong&gt; explores the environment and produces a policy.&lt;/p&gt;

&lt;p&gt;This policy can then be exported as a circuit.&lt;/p&gt;

&lt;p&gt;The following technical pipeline was successfully tested:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RL Environment
       ↓
   Q-learning
       ↓
     Policy
       ↓
     Circuit
       ↓
  Living Map
       ↓
     Router
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The role of RL in this context is therefore not defined as general improvement of Qwen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;RL is used to acquire a procedure for a specific task.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  10. What “Learning” Means for Alice
&lt;/h2&gt;

&lt;p&gt;Within this architecture, &lt;strong&gt;learning means acquiring an exploitable capability or procedure that was not previously available in Alice's knowledge.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The expected outcome of a learning process is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Discovery or production of a solution.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transformation of that solution into an exploitable representation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Retention in the appropriate memory or map.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ability to retrieve that knowledge.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ability to use it later.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Learning does not necessarily require modifying the language model's weights.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. What Alice Is Not
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Alice is not simply &lt;strong&gt;Qwen&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice is not simply a &lt;strong&gt;chatbot with an interface&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice is not required to &lt;strong&gt;relearn a capability it already possesses&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice does not have the intrinsic objective of &lt;strong&gt;continuously maximizing a score&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice does not need to replace a functional procedure simply because another procedure might be more performant.&lt;/li&gt;
&lt;li&gt;Alice should not be rebuilt according to a generic AI-agent architecture without justification from its actual architecture.&lt;/li&gt;
&lt;li&gt;Deliberately deleting learned knowledge is not a meaningful test of Alice's ability to reuse that knowledge.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  12. Rules for AI Agents Working on Alice
&lt;/h2&gt;

&lt;p&gt;Any AI working on Alice must follow these rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Treat this document as the &lt;strong&gt;reference definition of Alice&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Inspect the existing architecture before proposing a modification.&lt;/li&gt;
&lt;li&gt;Distinguish the &lt;strong&gt;language model&lt;/strong&gt; from the &lt;strong&gt;Alice architecture&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Identify the actual role of a component before assigning it a new function.&lt;/li&gt;
&lt;li&gt;Do not introduce a feature merely because it is common in agentic systems.&lt;/li&gt;
&lt;li&gt;Do not replace existing knowledge without a demonstrated functional reason.&lt;/li&gt;
&lt;li&gt;Do not confuse &lt;strong&gt;learning, optimization and memorization&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When a capability is declared acquired, verify the complete chain:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Production
    ↓
Retention
    ↓
Retrieval
    ↓
Execution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Report separately:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;what is established through execution;&lt;/li&gt;
&lt;li&gt;what is inferred from the code;&lt;/li&gt;
&lt;li&gt;what remains to be verified.

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Never declare a mechanism functional based solely on the presence of code: execution and testing are required.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  13. Technical State Observed on August 28, 2026
&lt;/h2&gt;

&lt;p&gt;The following elements come from the inspections and tests provided with this document.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;They do not constitute a promise of a permanent state.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Machine and Model
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Alice machine: &lt;code&gt;192.168.1.61&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;OS and hardware characteristics: the supplied reports contain two contradictory inventories for the host machine; this contradiction must be resolved before documenting the hardware precisely.&lt;/li&gt;
&lt;li&gt;Qwen: one report describes &lt;strong&gt;Qwen2.5-3B-Instruct Q4_K_M&lt;/strong&gt; on Alice; another describes &lt;strong&gt;Qwen2.5-Coder-1.5B&lt;/strong&gt; on a separate machine / previous environment. They must not be merged.&lt;/li&gt;
&lt;li&gt;On Alice, &lt;code&gt;llama-server&lt;/code&gt; is used to serve the local model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  RL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Environment and Q-learning successfully tested after installing &lt;strong&gt;Gymnasium&lt;/strong&gt; in the &lt;code&gt;venv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;RL tests: &lt;strong&gt;4/4 pytest tests passed&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RL → circuit → map → router&lt;/strong&gt; pipeline: successfully tested.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Memory
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SQLite: procedure persisted and readable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Items Remaining to Verify
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Historical &lt;code&gt;/home/orel&lt;/code&gt; paths were corrected in the execution report; the final state must be considered the state actually verified on the machine, not an assumption.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Some elements still require independent verification, notably:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the final consistency of installation scripts;&lt;/li&gt;
&lt;li&gt;the consistency of startup scripts;&lt;/li&gt;
&lt;li&gt;the exact state of the living map before any deployment or open-source operation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  14. Validation Criteria for a New Capability
&lt;/h2&gt;

&lt;p&gt;To declare that Alice genuinely possesses a new capability, the following evidence should be prioritized:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The task was previously unsupported, or no corresponding procedure was available.&lt;/li&gt;
&lt;li&gt;The appropriate mechanism produces a solution.&lt;/li&gt;
&lt;li&gt;The solution is stored in the intended memory / map representation.&lt;/li&gt;
&lt;li&gt;Alice can retrieve that knowledge.&lt;/li&gt;
&lt;li&gt;Alice can execute the retrieved procedure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A quantitative improvement test is necessary only when the actual objective of the feature is &lt;strong&gt;optimization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It should not be imposed as the general definition of learning for Alice.&lt;/p&gt;




&lt;h2&gt;
  
  
  15. Reference Formula
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALICE =
    MODEL
  + MEMORY
  + MAP
  + ROUTING
  + CIRCUITS
  + TOOLS
  + LEARNING
  + EXECUTION
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;No single component defines Alice.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Her operational intelligence emerges from &lt;strong&gt;the system as a whole and from the interactions between its components&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reference
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ALICE — Architectural Reference Document&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Reference Version: August 28, 2026&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
    </item>
    <item>
      <title># ALICE — Document de référence architectural</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 30 Aug 2026 07:17:56 +0000</pubDate>
      <link>https://dev.to/codenominomi/-alice-document-de-reference-architectural-2fk5</link>
      <guid>https://dev.to/codenominomi/-alice-document-de-reference-architectural-2fk5</guid>
      <description>&lt;p&gt;identité, architecture et principes de fonctionnement**&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Version de référence : 28 août 2026&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1. Définition d’Alice
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Alice est un système d’intelligence local composé de plusieurs éléments coopérants.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Elle ne se réduit pas à son modèle de langage.&lt;/p&gt;

&lt;p&gt;Le modèle &lt;strong&gt;Qwen&lt;/strong&gt; est une composante d’Alice. L’identité et les capacités opérationnelles d’Alice résultent de l’ensemble de l’architecture :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;modèle + routeur + mémoire + carte + circuits + outils + apprentissage + mécanismes d’exécution&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Principe fondamental
&lt;/h2&gt;

&lt;p&gt;Alice n’a pas pour objectif général de « devenir meilleure » à chaque itération.&lt;/p&gt;

&lt;p&gt;Son principe est :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;SAVOIR → FAIRE → APPRENDRE SI NÉCESSAIRE → CONSERVER → RÉUTILISER&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lorsqu’Alice sait déjà faire quelque chose, elle doit pouvoir utiliser la connaissance ou le circuit correspondant au lieu de recommencer inutilement le travail.&lt;/p&gt;

&lt;p&gt;Lorsqu’elle ne sait pas faire quelque chose et qu’un mécanisme d’apprentissage est prévu pour cette tâche, elle peut :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;découvrir une solution ;&lt;/li&gt;
&lt;li&gt;la transformer en connaissance exploitable ;&lt;/li&gt;
&lt;li&gt;l’intégrer à son architecture ;&lt;/li&gt;
&lt;li&gt;la réutiliser ultérieurement.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  3. Alice ≠ Qwen
&lt;/h2&gt;

&lt;p&gt;Qwen est le modèle de langage actuellement utilisé par Alice.&lt;/p&gt;

&lt;p&gt;Il fournit notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la compréhension du langage ;&lt;/li&gt;
&lt;li&gt;la génération de langage ;&lt;/li&gt;
&lt;li&gt;certaines capacités de raisonnement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Alice est l’architecture complète autour du modèle.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Le comportement global d’Alice dépend donc de la façon dont le modèle est combiné avec :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la mémoire ;&lt;/li&gt;
&lt;li&gt;la carte ;&lt;/li&gt;
&lt;li&gt;le routeur ;&lt;/li&gt;
&lt;li&gt;les outils ;&lt;/li&gt;
&lt;li&gt;les circuits ;&lt;/li&gt;
&lt;li&gt;les mécanismes d’apprentissage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Principes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ne jamais considérer Qwen seul comme représentant Alice.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ne jamais évaluer l’architecture d’Alice uniquement selon les capacités intrinsèques du modèle.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Une capacité peut appartenir à l’architecture d’Alice sans être une capacité native de Qwen.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Architecture actuelle
&lt;/h2&gt;

&lt;p&gt;L’architecture inspectée comprend notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen2.5-3B-Instruct Q4_K_M&lt;/strong&gt;, servi par &lt;code&gt;llama-server&lt;/code&gt; sur la machine Alice (&lt;code&gt;192.168.1.61&lt;/code&gt;), avec un contexte de 4096 ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;routeur.py&lt;/code&gt; : chef d’orchestre et cœur du routage ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;alicization_adapter.py&lt;/code&gt; : interface &lt;code&gt;teach()&lt;/code&gt; ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;memory.py&lt;/code&gt; : mémoire SQLite des procédures et expériences ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;adaptateur_carte.py&lt;/code&gt; : accès à la carte vivante ;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carte vivante&lt;/strong&gt; : &lt;code&gt;cartes.json&lt;/code&gt;, contenant les connaissances et circuits accessibles au routeur ;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Circuits&lt;/strong&gt; : procédures opérationnelles réutilisables ;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outils locaux&lt;/strong&gt; : recherche mémoire, lecture de fichiers, tests, résumé, actions système, OCR, registre de langue et fonctions de care ;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RL&lt;/strong&gt; : environnement &lt;code&gt;DonjonSimpleEnv&lt;/code&gt; et Q-learning pour le cas de déplacement vers une cible ;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface web de contrôle&lt;/strong&gt; : dashboard, mémoire L0/L1/L2, circuits, observabilité et tests.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Rôle du routeur
&lt;/h2&gt;

&lt;p&gt;Le &lt;strong&gt;routeur est le chef d’orchestre&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Il détermine quelle capacité d’Alice doit traiter une demande.&lt;/p&gt;

&lt;p&gt;Le flux observé est, dans l’ordre :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Consultation de la &lt;strong&gt;carte vivante&lt;/strong&gt; pour rechercher un circuit pertinent.&lt;/li&gt;
&lt;li&gt;Recherche dans la &lt;strong&gt;mémoire SQLite&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Utilisation de l’&lt;strong&gt;OCR&lt;/strong&gt; lorsqu’une demande concerne la lecture d’une image.&lt;/li&gt;
&lt;li&gt;Détection de certaines &lt;strong&gt;actions système directes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Utilisation de &lt;strong&gt;Qwen&lt;/strong&gt; pour les actions plus complexes ou la réponse finale.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Principe
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Le modèle n’a pas à résoudre de nouveau un problème pour lequel Alice dispose déjà d’une procédure exploitable.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. Mémoire et connaissance
&lt;/h2&gt;

&lt;p&gt;La mémoire d’Alice n’est pas un simple journal.&lt;/p&gt;

&lt;p&gt;Elle participe à ses &lt;strong&gt;capacités opérationnelles&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Une procédure apprise et conservée devient une connaissance disponible pour une utilisation ultérieure.&lt;/p&gt;

&lt;p&gt;L’état inspecté contient notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;une table &lt;code&gt;procedures&lt;/code&gt; ;&lt;/li&gt;
&lt;li&gt;une table &lt;code&gt;experiences&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Une procédure présente dans l’état vérifié était composée de &lt;strong&gt;quatre opérations&lt;/strong&gt; et avait le statut &lt;code&gt;VERIFIED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Une connaissance conservée ne doit donc pas être considérée comme « effacée » simplement parce qu’elle n’est pas dans le contexte immédiat de Qwen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Elle appartient à l’architecture mémoire d’Alice.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7. Carte vivante
&lt;/h2&gt;

&lt;p&gt;La &lt;strong&gt;carte vivante&lt;/strong&gt; constitue une représentation structurée des connaissances et circuits accessibles à Alice.&lt;/p&gt;

&lt;p&gt;Elle permet au routeur de retrouver une capacité déjà connue.&lt;/p&gt;

&lt;p&gt;Dans le cas RL testé :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Apprentissage
     ↓
Politique
     ↓
Circuit
     ↓
Carte vivante
     ↓
Routeur
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Une politique produite par l’apprentissage a été transformée en circuit, puis ajoutée à la zone &lt;strong&gt;« connaissances »&lt;/strong&gt; de la carte.&lt;/p&gt;

&lt;p&gt;Le routeur a ensuite retrouvé ce circuit lors d’une requête de déplacement.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Circuits
&lt;/h2&gt;

&lt;p&gt;Un &lt;strong&gt;circuit&lt;/strong&gt; est une procédure exploitable par Alice.&lt;/p&gt;

&lt;p&gt;Un circuit peut être issu d’un apprentissage.&lt;/p&gt;

&lt;p&gt;Une fois intégré à la mémoire ou à la carte appropriée, il constitue une &lt;strong&gt;connaissance opérationnelle réutilisable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Le but n’est pas nécessairement d’optimiser continuellement le circuit.&lt;/p&gt;

&lt;p&gt;Si le circuit permet de faire correctement la tâche pour laquelle il a été appris, il remplit son rôle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Principes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un circuit connu doit être réutilisable.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Un circuit n’a pas besoin d’être remplacé simplement parce qu’une autre méthode existe.&lt;/li&gt;
&lt;li&gt;Une modification d’un circuit doit avoir une justification liée à son fonctionnement réel, pas à une préférence architecturale générique.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. Apprentissage par renforcement
&lt;/h2&gt;

&lt;p&gt;Le &lt;strong&gt;RL&lt;/strong&gt; est un mécanisme spécialisé d’apprentissage.&lt;/p&gt;

&lt;p&gt;Dans l’environnement actuellement testé, Alice dispose :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;d’une grille &lt;strong&gt;5 × 5&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;de quatre actions :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;haut ;&lt;/li&gt;
&lt;li&gt;bas ;&lt;/li&gt;
&lt;li&gt;gauche ;&lt;/li&gt;
&lt;li&gt;droite.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le &lt;strong&gt;Q-learning&lt;/strong&gt; explore l’environnement et produit une politique.&lt;/p&gt;

&lt;p&gt;Cette politique peut ensuite être exportée sous forme de circuit.&lt;/p&gt;

&lt;p&gt;Dans les tests réalisés, le pipeline technique suivant a fonctionné :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Environnement RL
       ↓
   Q-learning
       ↓
     Politique
       ↓
     Circuit
       ↓
  Carte vivante
       ↓
     Routeur
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La fonction du RL, dans ce contexte, n’est donc pas définie comme une amélioration générale de Qwen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Le RL sert à acquérir une procédure pour une tâche donnée.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  10. Ce que signifie « apprendre » pour Alice
&lt;/h2&gt;

&lt;p&gt;Dans le cadre de cette architecture, &lt;strong&gt;apprendre signifie acquérir une capacité ou une procédure exploitable qui n’était pas auparavant disponible dans la connaissance d’Alice.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Le résultat attendu d’un apprentissage est :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Découverte ou production d’une solution.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transformation de cette solution en représentation exploitable.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conservation dans la mémoire ou la carte appropriée.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Possibilité de retrouver cette connaissance.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Possibilité de l’utiliser ultérieurement.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Il n’est pas nécessaire que l’apprentissage modifie les poids du modèle de langage.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. Ce qu’Alice n’est pas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Alice n’est pas simplement &lt;strong&gt;Qwen&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice n’est pas simplement un &lt;strong&gt;chatbot avec une interface&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice n’est pas obligée de &lt;strong&gt;réapprendre une compétence qu’elle possède déjà&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice n’a pas pour objectif intrinsèque de &lt;strong&gt;maximiser continuellement un score&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Alice n’a pas besoin de remplacer une procédure fonctionnelle uniquement parce qu’une autre procédure pourrait être plus performante.&lt;/li&gt;
&lt;li&gt;Alice ne doit pas être reconstruite selon une architecture générique d’agent IA sans justification par son architecture réelle.&lt;/li&gt;
&lt;li&gt;La suppression volontaire d’une connaissance apprise n’est pas un test pertinent de sa capacité à réutiliser cette connaissance.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  12. Règles pour les agents IA qui travaillent sur Alice
&lt;/h2&gt;

&lt;p&gt;Toute IA intervenant sur Alice doit respecter les règles suivantes :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Considérer ce document comme la &lt;strong&gt;définition de référence d’Alice&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Inspecter l’architecture existante avant de proposer une modification.&lt;/li&gt;
&lt;li&gt;Distinguer le &lt;strong&gt;modèle de langage&lt;/strong&gt; de l’&lt;strong&gt;architecture Alice&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Identifier le rôle réel d’un composant avant de lui attribuer une nouvelle fonction.&lt;/li&gt;
&lt;li&gt;Ne pas introduire une fonctionnalité uniquement parce qu’elle est courante dans les systèmes agentiques.&lt;/li&gt;
&lt;li&gt;Ne pas remplacer une connaissance existante sans raison fonctionnelle démontrée.&lt;/li&gt;
&lt;li&gt;Ne pas confondre &lt;strong&gt;apprentissage, optimisation et mémorisation&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Lorsqu’une capacité est déclarée acquise, vérifier la chaîne complète :
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Production
    ↓
Conservation
    ↓
Récupération
    ↓
Utilisation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Rapporter séparément :&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;ce qui est établi par exécution ;&lt;/li&gt;
&lt;li&gt;ce qui est déduit du code ;&lt;/li&gt;
&lt;li&gt;ce qui reste à vérifier.

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ne jamais déclarer un mécanisme fonctionnel sur la seule présence du code : l’exécution et les tests sont nécessaires.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  13. État technique constaté au 28 août 2026
&lt;/h2&gt;

&lt;p&gt;Les éléments suivants proviennent des inspections et tests fournis avec ce document.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ils ne constituent pas une promesse d’état permanent.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Machine et modèle
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Machine Alice : &lt;code&gt;192.168.1.61&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;OS et caractéristiques matérielles : les rapports fournis contiennent deux inventaires contradictoires pour la machine hôte ; cette contradiction doit être résolue avant de documenter précisément le matériel.&lt;/li&gt;
&lt;li&gt;Qwen : un rapport décrit &lt;strong&gt;Qwen2.5-3B-Instruct Q4_K_M&lt;/strong&gt; sur Alice ; un autre décrit &lt;strong&gt;Qwen2.5-Coder-1.5B&lt;/strong&gt; sur une machine distincte / ancien environnement. Ils ne doivent pas être fusionnés.&lt;/li&gt;
&lt;li&gt;Sur Alice, &lt;code&gt;llama-server&lt;/code&gt; est utilisé pour servir le modèle local.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  RL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Environnement et Q-learning testés avec succès après installation de &lt;strong&gt;Gymnasium&lt;/strong&gt; dans le &lt;code&gt;venv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Tests RL : &lt;strong&gt;4/4 tests pytest passés&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pipeline &lt;strong&gt;RL → circuit → carte → routeur&lt;/strong&gt; : testé avec succès.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mémoire
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SQLite : procédure persistée et lisible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Points restant à vérifier
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Des chemins historiques &lt;code&gt;/home/orel&lt;/code&gt; ont été corrigés dans le rapport d’exécution ; l’état final doit être considéré comme celui réellement vérifié sur la machine, pas comme une supposition.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Certains éléments restent à vérifier indépendamment, notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la cohérence finale des scripts d’installation ;&lt;/li&gt;
&lt;li&gt;la cohérence des scripts de démarrage ;&lt;/li&gt;
&lt;li&gt;l’état exact de la carte vivante avant toute opération de déploiement ou d’open source.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  14. Critères de validation d’une nouvelle capacité
&lt;/h2&gt;

&lt;p&gt;Pour déclarer qu’Alice possède réellement une nouvelle capacité, privilégier la preuve suivante :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;La tâche était auparavant non couverte ou aucune procédure correspondante n’était disponible.&lt;/li&gt;
&lt;li&gt;Le mécanisme approprié produit une solution.&lt;/li&gt;
&lt;li&gt;La solution est enregistrée dans la représentation mémoire / carte prévue.&lt;/li&gt;
&lt;li&gt;Alice peut retrouver cette connaissance.&lt;/li&gt;
&lt;li&gt;Alice peut exécuter la procédure retrouvée.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Un test d’amélioration quantitative n’est nécessaire que si l’objectif de la fonctionnalité est effectivement &lt;strong&gt;l’optimisation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Il ne doit pas être imposé comme définition générale de l’apprentissage d’Alice.&lt;/p&gt;




&lt;h2&gt;
  
  
  15. Formule de référence
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALICE =
    MODÈLE
  + MÉMOIRE
  + CARTE
  + ROUTAGE
  + CIRCUITS
  + OUTILS
  + APPRENTISSAGE
  + EXÉCUTION
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Aucune composante prise isolément ne définit Alice.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Son intelligence opérationnelle résulte de &lt;strong&gt;l’ensemble du système et de leurs interactions&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Référence
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ALICE — Document de référence architectural&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Version de référence : 28 août 2026&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
    </item>
    <item>
      <title>Building an Agentic Control Plane: Architecture, Governance and Replayable Workflows</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sat, 29 Aug 2026 10:20:03 +0000</pubDate>
      <link>https://dev.to/codenominomi/building-an-agentic-control-plane-architecture-governance-and-replayable-workflows-108f</link>
      <guid>https://dev.to/codenominomi/building-an-agentic-control-plane-architecture-governance-and-replayable-workflows-108f</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqftl51ajpxqqlzhfqe15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqftl51ajpxqqlzhfqe15.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI agent systems are becoming increasingly capable — but operating them reliably is a different problem.&lt;/p&gt;

&lt;p&gt;Once a system contains multiple agents, workers, APIs, asynchronous jobs, infrastructure automation and security controls, the main challenge is no longer simply &lt;strong&gt;building agents&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is controlling the system around them.&lt;/p&gt;

&lt;p&gt;I built an &lt;strong&gt;agentic control plane&lt;/strong&gt; to explore this problem: a platform designed to give me a single operational layer for orchestrating agents, observing executions, enforcing governance and replaying workflows.&lt;/p&gt;

&lt;p&gt;This article explains the architecture and the engineering principles behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: agents are easy to add, difficult to operate
&lt;/h2&gt;

&lt;p&gt;A single AI agent is relatively simple.&lt;/p&gt;

&lt;p&gt;Add several agents with different responsibilities, however, and the system quickly becomes more complex:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  ↓
Agent A
  ↓
Agent B
  ↓
Worker
  ↓
API
  ↓
Infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now introduce asynchronous execution, shared state, authentication, failure handling, observability and security.&lt;/p&gt;

&lt;p&gt;The architecture starts looking more like a distributed system than a chatbot.&lt;/p&gt;

&lt;p&gt;The question becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do you operate an agentic system as an engineered platform rather than a collection of independent agents?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the problem I wanted to investigate.&lt;/p&gt;




&lt;h1&gt;
  
  
  From agents to a control plane
&lt;/h1&gt;

&lt;p&gt;Instead of treating every agent as an isolated application, I designed a control layer around them.&lt;/p&gt;

&lt;p&gt;The simplified architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         ┌─────────────────────┐
                         │       Client        │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │   Control Plane     │
                         │                     │
                         │ Routing             │
                         │ Governance          │
                         │ Execution           │
                         │ Observability       │
                         └──────────┬──────────┘
                                    │
                    ┌───────────────┼───────────────┐
                    │               │               │
                    ▼               ▼               ▼
                 Agents           Worker          Services
                    │               │               │
                    └───────────────┼───────────────┘
                                    │
                                    ▼
                              Infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important distinction is that the agents are not the platform.&lt;/p&gt;

&lt;p&gt;They are components operated by the platform.&lt;/p&gt;

&lt;p&gt;That distinction changes the architecture considerably.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. Agents become managed components
&lt;/h1&gt;

&lt;p&gt;Each agent has a defined responsibility.&lt;/p&gt;

&lt;p&gt;Instead of allowing agents to arbitrarily interact with everything around them, the control plane provides boundaries around execution.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
 ├── Identity
 ├── Capabilities
 ├── Inputs
 ├── Outputs
 ├── Execution state
 └── Policies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes an agent closer to a platform workload than a simple prompt wrapped around an LLM.&lt;/p&gt;

&lt;p&gt;The control plane can therefore answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which agent is running?&lt;/li&gt;
&lt;li&gt;What is it allowed to do?&lt;/li&gt;
&lt;li&gt;What triggered the execution?&lt;/li&gt;
&lt;li&gt;Which workflow is it part of?&lt;/li&gt;
&lt;li&gt;What happened during execution?&lt;/li&gt;
&lt;li&gt;Did the execution succeed?&lt;/li&gt;
&lt;li&gt;Can the execution be reproduced?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions become increasingly important as the number of agents grows.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. Governance is part of the architecture
&lt;/h1&gt;

&lt;p&gt;Governance should not be an afterthought.&lt;/p&gt;

&lt;p&gt;An agent that can call an API, modify infrastructure or trigger another workflow effectively has operational capabilities.&lt;/p&gt;

&lt;p&gt;Those capabilities need boundaries.&lt;/p&gt;

&lt;p&gt;I therefore treat governance as an architectural layer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                ┌───────────────────┐
                │      Request      │
                └─────────┬─────────┘
                          │
                          ▼
                ┌───────────────────┐
                │     Governance    │
                │                   │
                │ Identity          │
                │ Permissions       │
                │ Policies          │
                │ Validation        │
                └─────────┬─────────┘
                          │
                          ▼
                ┌───────────────────┐
                │     Execution     │
                └───────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The objective is not to prevent automation.&lt;/p&gt;

&lt;p&gt;It is to make automation &lt;strong&gt;controlled and observable&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. Asynchronous execution
&lt;/h1&gt;

&lt;p&gt;Not every operation should happen synchronously.&lt;/p&gt;

&lt;p&gt;Some workflows can take time, involve external systems or require multiple steps.&lt;/p&gt;

&lt;p&gt;A worker-based execution model provides a useful separation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;API
 │
 ├── validate request
 │
 ├── create execution
 │
 └── enqueue job
          │
          ▼
        Redis
          │
          ▼
        Worker
          │
          ├── Agent execution
          ├── External API calls
          └── Infrastructure operations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separates the request lifecycle from the execution lifecycle.&lt;/p&gt;

&lt;p&gt;The API can acknowledge the operation while the worker performs the actual workflow.&lt;/p&gt;

&lt;p&gt;It also gives the control plane a natural place to track execution state.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PENDING
   ↓
RUNNING
   ↓
SUCCESS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PENDING
   ↓
RUNNING
   ↓
FAILED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The state itself becomes an operational artifact.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. Observability
&lt;/h1&gt;

&lt;p&gt;An agentic system cannot be operated effectively if the only observable output is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Task completed."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I want to know what actually happened.&lt;/p&gt;

&lt;p&gt;For each execution, the platform can associate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Execution
 ├── workflow
 ├── agent
 ├── timestamp
 ├── input
 ├── state
 ├── events
 ├── logs
 ├── outputs
 └── errors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates an execution history rather than a black box.&lt;/p&gt;

&lt;p&gt;The control plane becomes a place where the system can be inspected as it operates.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Replayable workflows
&lt;/h1&gt;

&lt;p&gt;This is one of the most useful capabilities I added.&lt;/p&gt;

&lt;p&gt;If an execution is represented as a structured workflow rather than an ephemeral interaction, it can potentially be replayed.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Workflow #1842

Step 1 → Agent A
Step 2 → Validation
Step 3 → Agent B
Step 4 → Worker
Step 5 → Infrastructure operation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of simply recording:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Something happened.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The platform records:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This workflow executed these steps, in this order, with these inputs and these results.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That enables another important operation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Original execution
        │
        ▼
      Record
        │
        ▼
      Replay
        │
        ▼
   Compare results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replay is particularly interesting for testing.&lt;/p&gt;

&lt;p&gt;A workflow that previously failed can become a regression case.&lt;/p&gt;

&lt;p&gt;A security scenario can become a repeatable test.&lt;/p&gt;

&lt;p&gt;An operational circuit can become something that can be executed again under controlled conditions.&lt;/p&gt;

&lt;p&gt;This moves testing closer to the actual behavior of the platform.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. The control plane as an operational interface
&lt;/h1&gt;

&lt;p&gt;Once the system has structured execution state, workflows, agents and infrastructure events, the next problem becomes visualization.&lt;/p&gt;

&lt;p&gt;Instead of exposing every component through separate interfaces, I built a centralized operational interface around the control plane.&lt;/p&gt;

&lt;p&gt;The interface provides a representation of the system itself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                CONTROL PLANE

     ┌──────────┐       ┌──────────┐
     │  Agents  │──────▶│ Workers  │
     └──────────┘       └────┬─────┘
                             │
                             ▼
                       ┌──────────┐
                       │ Services │
                       └────┬─────┘
                            │
                            ▼
                     Infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The visual layer is not the architecture.&lt;/p&gt;

&lt;p&gt;It is a representation of the architecture.&lt;/p&gt;

&lt;p&gt;That distinction is important.&lt;/p&gt;

&lt;p&gt;The underlying system remains API-driven and service-oriented; the visual interface becomes an operational surface on top of it.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. Why this architecture matters
&lt;/h1&gt;

&lt;p&gt;The interesting part of an agentic platform is not the number of agents.&lt;/p&gt;

&lt;p&gt;It is the operational model around them.&lt;/p&gt;

&lt;p&gt;I found four principles particularly important:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Agents should be managed as workloads
&lt;/h3&gt;

&lt;p&gt;An agent needs identity, capabilities, state and boundaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Execution should be observable
&lt;/h3&gt;

&lt;p&gt;A workflow should produce structured execution data, not only a final response.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Workflows should be replayable
&lt;/h3&gt;

&lt;p&gt;If an operation matters, being able to reproduce it is extremely valuable for testing and debugging.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Governance belongs in the control plane
&lt;/h3&gt;

&lt;p&gt;Permissions, validation and execution policies should surround automation rather than being implemented independently inside every agent.&lt;/p&gt;




&lt;h1&gt;
  
  
  What I learned
&lt;/h1&gt;

&lt;p&gt;Building this system changed the way I think about agentic applications.&lt;/p&gt;

&lt;p&gt;The difficult part is not getting an LLM to call a tool.&lt;/p&gt;

&lt;p&gt;The difficult part is building the infrastructure that makes those actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;controlled,&lt;/li&gt;
&lt;li&gt;observable,&lt;/li&gt;
&lt;li&gt;testable,&lt;/li&gt;
&lt;li&gt;reproducible,&lt;/li&gt;
&lt;li&gt;and operationally understandable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why I increasingly think about agentic systems in terms of &lt;strong&gt;platform engineering&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An agent is a component.&lt;/p&gt;

&lt;p&gt;A workflow is an execution unit.&lt;/p&gt;

&lt;p&gt;A worker is an execution engine.&lt;/p&gt;

&lt;p&gt;And the control plane is what turns those components into an operable system.&lt;/p&gt;




&lt;h1&gt;
  
  
  Where this goes next
&lt;/h1&gt;

&lt;p&gt;There are still many areas to explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stronger policy enforcement,&lt;/li&gt;
&lt;li&gt;richer execution traces,&lt;/li&gt;
&lt;li&gt;more deterministic replay,&lt;/li&gt;
&lt;li&gt;automated regression testing,&lt;/li&gt;
&lt;li&gt;failure injection,&lt;/li&gt;
&lt;li&gt;security testing,&lt;/li&gt;
&lt;li&gt;and better visualization of distributed agent workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to build more agents.&lt;/p&gt;

&lt;p&gt;The goal is to make increasingly autonomous systems &lt;strong&gt;operable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the problem I am exploring with this project.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What would you put in an agentic control plane?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am particularly interested in approaches to governance, replayability and testing of multi-agent systems.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
