<?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>There is no normal brain, only a majority brain</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Wed, 30 Sep 2026 07:43:34 +0000</pubDate>
      <link>https://dev.to/codenominomi/there-is-no-normal-brain-only-a-majority-brain-g56</link>
      <guid>https://dev.to/codenominomi/there-is-no-normal-brain-only-a-majority-brain-g56</guid>
      <description>&lt;p&gt;Our workspaces and tools are designed for a specific cognitive profile:&lt;/p&gt;

&lt;p&gt;On-demand sustained attention&lt;/p&gt;

&lt;p&gt;Stable working memory&lt;/p&gt;

&lt;p&gt;Tolerance for low-stimulation repetition&lt;/p&gt;

&lt;p&gt;Linear prioritization&lt;/p&gt;

&lt;p&gt;This profile is common, but it isn't the gold standard—it's a statistic.&lt;/p&gt;

&lt;p&gt;The term "neurotypical" doesn't describe a brain that works well; it describes a brain whose functioning aligns perfectly with the implicit assumptions of its environment. Conversely, "neurodivergent" doesn't describe a broken brain, but one whose functioning mismatches those assumptions.&lt;/p&gt;

&lt;p&gt;It is not a difference in capability. It is a difference in context fit.&lt;/p&gt;

&lt;p&gt;The Runtime Problem&lt;br&gt;
Consider a standard engineering scenario: an application crashing in production isn't necessarily bad code. It might be perfectly written, just intended for a different runtime.&lt;/p&gt;

&lt;p&gt;No engineer would call an ARM binary "deficient" because it fails to execute on an x86 architecture. We just recognize it's on the wrong hardware. Yet, we evaluate human brains as if there were only a single valid instruction set.&lt;/p&gt;

&lt;p&gt;What this means for tech teams&lt;br&gt;
The developer who "lacks rigor" on boilerplate tasks might be the one who spots the critical architectural flaw everyone else missed.&lt;/p&gt;

&lt;p&gt;The teammate whose ideas "go in every direction" might generate the breakthrough connection a highly structured sprint planning would have crushed.&lt;/p&gt;

&lt;p&gt;The builder who "can't stick to the process" might simply be someone who has never had a process built for their specific architecture.&lt;/p&gt;

&lt;p&gt;The question isn't: should we accommodate neurodivergent people?&lt;br&gt;
The question is: how much innovation are we losing by forcing every profile to run on the exact same runtime?&lt;/p&gt;

</description>
      <category>design</category>
      <category>mentalhealth</category>
      <category>productivity</category>
    </item>
    <item>
      <title>There is no normal brain. There is a majority brain. 🧠</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Wed, 30 Sep 2026 07:42:53 +0000</pubDate>
      <link>https://dev.to/codenominomi/there-is-no-normal-brain-there-is-a-majority-brain-401p</link>
      <guid>https://dev.to/codenominomi/there-is-no-normal-brain-there-is-a-majority-brain-401p</guid>
      <description>&lt;p&gt;Our work environments are designed for a very specific cognitive profile: on-demand sustained attention, stable working memory, tolerance for low-stimulation repetition, and linear prioritization.&lt;/p&gt;

&lt;p&gt;This profile exists. It is common. But it isn't the gold standard—it's just a statistic.&lt;/p&gt;

&lt;p&gt;👉 "Neurotypical" doesn't describe a brain that works well. It describes a brain whose functioning aligns perfectly with the implicit assumptions of its environment.&lt;br&gt;
👉 "Neurodivergent" doesn't describe a broken brain. It describes a brain whose functioning does not align with those assumptions.&lt;/p&gt;

&lt;p&gt;The difference isn't about capability. It's about context fit.&lt;/p&gt;

&lt;p&gt;An example any engineer will understand:&lt;br&gt;
An application crashing in production isn't necessarily poorly written. It might be perfectly coded, but built for a different runtime. No one would call an ARM binary "deficient" just because it won't run on an x86 architecture. We would simply say it's on the wrong machine.&lt;/p&gt;

&lt;p&gt;Yet, we spend our professional lives evaluating human brains as if there were only one valid instruction set.&lt;/p&gt;

&lt;p&gt;What this means in practice:&lt;br&gt;
💡 The person who "lacks rigor" on repetitive tasks might be the one who spots the architectural flaw everyone else missed.&lt;br&gt;
💡 The person whose mind "goes in every direction" during a meeting might be the one generating the breakthrough connection a highly structured agenda would have stifled.&lt;br&gt;
💡 The person who "can't follow the process" might simply be someone who has never been given a process built for their architecture.&lt;/p&gt;

&lt;p&gt;The debate isn't about whether we should "accommodate" neurodivergent people.&lt;br&gt;
The real debate is: how much value are we losing by forcing every profile to run on the exact same runtime?&lt;/p&gt;

</description>
      <category>career</category>
      <category>management</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Visibility — what AI'Bots really read from your site</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Wed, 30 Sep 2026 07:24:08 +0000</pubDate>
      <link>https://dev.to/codenominomi/ai-visibility-what-aibots-really-read-from-your-site-12g</link>
      <guid>https://dev.to/codenominomi/ai-visibility-what-aibots-really-read-from-your-site-12g</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%2F1omh4og2akbkhhka1fe2.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%2F1omh4og2akbkhhka1fe2.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Who visits your sites?</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Wed, 30 Sep 2026 07:21:58 +0000</pubDate>
      <link>https://dev.to/codenominomi/who-visits-your-sites-2nhi</link>
      <guid>https://dev.to/codenominomi/who-visits-your-sites-2nhi</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%2F87lff52zrqr5ns3paqr5.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%2F87lff52zrqr5ns3paqr5.png" alt=" " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AERO-KIT*- an MCP rule-verdict agent that refuses to hallucinate</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 20 Sep 2026 16:28:46 +0000</pubDate>
      <link>https://dev.to/codenominomi/aero-kit-an-mcp-rule-verdict-agent-that-refuses-to-hallucinate-4p3g</link>
      <guid>https://dev.to/codenominomi/aero-kit-an-mcp-rule-verdict-agent-that-refuses-to-hallucinate-4p3g</guid>
      <description>&lt;p&gt;*This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path One: Ship an Agent That Queries Real Content&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fotsopatrick/andromede" rel="noopener noreferrer"&gt;https://github.com/fotsopatrick/andromede&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AERO-KIT&lt;/strong&gt; is a small, deterministic MCP agent that answers operational questions about a modular instrument (the "CTRL-7") — from a Sanity Knowledge Base structured as &lt;code&gt;policyOrRule&lt;/code&gt;, &lt;code&gt;errataOrAmendment&lt;/code&gt; and &lt;code&gt;resolutionCase&lt;/code&gt;. Its job is exactly the kind a rulebook-vs-errata board-game companion faces: when two active rules contradict each other, the agent either resolves the conflict &lt;strong&gt;formally&lt;/strong&gt; or &lt;strong&gt;refuses to answer and says why&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The rulebook says the CTRL-7 may be configured up to &lt;strong&gt;75 °C&lt;/strong&gt;. The errata says &lt;strong&gt;60 °C&lt;/strong&gt; (security override). A human arbitration record confirms 60 °C. A keyword search scores both claims as a tie and cannot decide. The agent answers 60 °C with both sources cited, the precedence relation shown (&lt;code&gt;precedenceLevel 3 &amp;gt; 1&lt;/code&gt;), and the arbitration record corroborating it. And when the Knowledge Base holds &lt;em&gt;two&lt;/em&gt; active altitude rules (2000 m vs 1500 m) with nothing to arbitrate, the agent refuses to extrapolate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The walkable proof is the CLI session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run transcript &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cat &lt;/span&gt;TRANSCRIPT.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;TRANSCRIPT.txt&lt;/code&gt; contains four resolutions (univocal, contradicted, unresolved-contradiction, out-of-KB) with the full MCP tool trace (&lt;code&gt;initial_context&lt;/code&gt;, &lt;code&gt;schema_explorer&lt;/code&gt;, &lt;code&gt;groq_query&lt;/code&gt;) of each, replayed against a faithful local clone of the Context endpoint so it is byte-deterministic.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;hosted&lt;/strong&gt; Context endpoint is live too: &lt;code&gt;initialize&lt;/code&gt; → 200, &lt;code&gt;tools/list&lt;/code&gt; → &lt;code&gt;initial_context&lt;/code&gt;, &lt;code&gt;groq_query&lt;/code&gt;, &lt;code&gt;schema_explorer&lt;/code&gt;, &lt;code&gt;array_field_reader&lt;/code&gt;, and the agent answers the three canonical questions against it (500 W univocal / 60 °C errata-override / altitude guard-rail refusing to extrapolate).&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Repository: (provide URL after push) · &lt;code&gt;tags: devchallenge, sanitychallenge, sanity, ai&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm &lt;span class="nb"&gt;test&lt;/span&gt;   &lt;span class="c"&gt;# tests 9 · pass 9 · fail 0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How I Used Sanity
&lt;/h2&gt;

&lt;p&gt;The agent connects over MCP (Streamable HTTP) to the &lt;strong&gt;Sanity Context&lt;/strong&gt; endpoint in &lt;strong&gt;GROQ mode&lt;/strong&gt; and uses its four tools: &lt;code&gt;initial_context&lt;/code&gt; to orient, &lt;code&gt;schema_explorer&lt;/code&gt; to verify the schema before writing any query, &lt;code&gt;groq_query&lt;/code&gt; to fetch candidate rules, amendments &lt;strong&gt;through the relation&lt;/strong&gt; (&lt;code&gt;targetRuleRef._ref == ...&lt;/code&gt;), and human arbitration records; &lt;code&gt;array_field_reader&lt;/code&gt; for array fields.&lt;/p&gt;

&lt;p&gt;The Knowledge Base is custom Sanity content seeded into the Content Lake: rules carry &lt;code&gt;normativeValue&lt;/code&gt;/&lt;code&gt;normativeUnit&lt;/code&gt;/&lt;code&gt;precedenceLevel&lt;/code&gt;; errata carry &lt;code&gt;amendedValue&lt;/code&gt;, a &lt;code&gt;targetRuleRef&lt;/code&gt; relation to the rule they correct, and a higher &lt;code&gt;precedenceLevel&lt;/code&gt;; a resolution case records &lt;code&gt;authoritativeSourceRef&lt;/code&gt; and &lt;code&gt;conflictingSources&lt;/code&gt;. Everything stays linked to its source (&lt;code&gt;sourceUrl&lt;/code&gt;), so every claim in an answer carries a reference.&lt;/p&gt;

&lt;p&gt;Without the structure — without the &lt;code&gt;targetRuleRef&lt;/code&gt; relation and the precedence ordering — the answer is undecidable. That's what Test 3 proves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sanity project ID&lt;/strong&gt;: &lt;code&gt;3b1mty75&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dataset&lt;/strong&gt;: &lt;code&gt;production&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public dataset URL&lt;/strong&gt;: &lt;a href="https://3b1mty75.apicdn.sanity.io/v2026-09-20/data/query/production?query=*%5B_type%3D%3D%22policyOrRule%22%5D" rel="noopener noreferrer"&gt;https://3b1mty75.apicdn.sanity.io/v2026-09-20/data/query/production?query=*%5B_type%3D%3D%22policyOrRule%22%5D&lt;/a&gt; (verified reachable — see also the GROQ endpoint pattern in &lt;code&gt;README.md&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Knowledge Base is &lt;strong&gt;seeded and live&lt;/strong&gt;: &lt;code&gt;npm run seed&lt;/code&gt; inserted the 6 documents from &lt;code&gt;scripts/seed-data.ts&lt;/code&gt; into &lt;code&gt;3b1mty75.production&lt;/code&gt; with deterministic &lt;code&gt;_id&lt;/code&gt;s (idempotent), and a read-only GROQ check confirms &lt;code&gt;count(*) == 6&lt;/code&gt; with the &lt;code&gt;errataOrAmendment → policyOrRule&lt;/code&gt; relation intact (&lt;code&gt;targetRuleRef._ref == "rule-ctrl7-temp-spec"&lt;/code&gt;). The hosted &lt;strong&gt;Context MCP endpoint is live&lt;/strong&gt; (&lt;code&gt;https://api.sanity.io/v1/context/organizations/o4gse4k6t/mcp/aero-kit&lt;/code&gt;, GROQ mode, dataset source &lt;code&gt;3b1mty75.production&lt;/code&gt;, schema registry deployed, Studio app ≥ 5.1): it requires an &lt;strong&gt;organization API token with &lt;code&gt;sanity.knowledge-base.read&lt;/code&gt;&lt;/strong&gt; (Context Viewer) — verified live (a project token is refused with &lt;code&gt;-32007&lt;/code&gt;); &lt;code&gt;initialize&lt;/code&gt; returns 200 and &lt;code&gt;tools/list&lt;/code&gt; serves the four tools. The server re-serializes single-quoted type literals to bare identifiers (matching 0 documents), so GROQ queries use double quotes. Every test and the CLI transcript run against a faithful local clone of the Context endpoint (same four tools, same client code path) so they are deterministic; the agent connects to the hosted endpoint through &lt;code&gt;MCP_ENDPOINT_URL&lt;/code&gt; / &lt;code&gt;MCP_ENDPOINT_TOKEN&lt;/code&gt; and was verified against it for the three canonical scenarios.&lt;/p&gt;

</description>
      <category>sanitychallenge</category>
    </item>
    <item>
      <title>How We Built a Zero-Hallucination MCP Rule-Verdict Agent in 6 Hours Without Writing a Single Line of Code</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 20 Sep 2026 16:03:38 +0000</pubDate>
      <link>https://dev.to/codenominomi/how-we-built-a-zero-hallucination-mcp-rule-verdict-agent-in-6-hours-without-writing-a-single-line-3679</link>
      <guid>https://dev.to/codenominomi/how-we-built-a-zero-hallucination-mcp-rule-verdict-agent-in-6-hours-without-writing-a-single-line-3679</guid>
      <description>&lt;h2&gt;
  
  
  The Story: Zero Code, Maximum Engineering
&lt;/h2&gt;

&lt;p&gt;When you participate in hackathons (and especially when you like to wrap them up in 48 hours max), the bottleneck is usually typing boilerplate, debugging weird syntax, or wrestling with unpredictable LLMs. &lt;/p&gt;

&lt;p&gt;For this project—&lt;strong&gt;AERO-KIT&lt;/strong&gt;, a deterministic MCP (Model Context Protocol) agent designed to solve complex rule contradictions using Sanity structured content—&lt;strong&gt;I didn't write a single line of code myself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead, I acted entirely as the Chief Architect and Director. The real workforce? A meticulously orchestrated AI stack:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Gemini Chat&lt;/strong&gt; as the core strategic brain (designing the architecture, orchestrating the execution steps, and maintaining strict technical guardrails).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode&lt;/strong&gt; powered by &lt;strong&gt;Big Pickle&lt;/strong&gt; as the local rapid-execution nano-engine, pushing out files, tests, and configurations at lightning speed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How It Works (The Method)
&lt;/h2&gt;

&lt;p&gt;Most AI agents fail at authority arbitration because they rely on fuzzy vector RAG (Retrieval-Augmented Generation). If a rulebook says 75°C and an errata says 60°C, a naive keyword search treats them as a tie and hallucinates a blended or wrong answer.&lt;/p&gt;

&lt;p&gt;AERO-KIT solves this through structured data and rigid execution guardrails:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sanity Content Lake as Knowledge Base:&lt;/strong&gt; Linked types (&lt;code&gt;policyOrRule&lt;/code&gt;, &lt;code&gt;errataOrAmendment&lt;/code&gt;, &lt;code&gt;resolutionCase&lt;/code&gt;) where amendments explicitly point to the rules they override via &lt;code&gt;targetRuleRef&lt;/code&gt; and a higher &lt;code&gt;precedenceLevel&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic MCP Integration:&lt;/strong&gt; The agent connects to a Sanity Context MCP endpoint in GROQ mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Guardrails / Skills Methodology:&lt;/strong&gt; Borrowing from internal engineering standards (&lt;code&gt;testComplet&lt;/code&gt;, &lt;code&gt;fixe-de-bug&lt;/code&gt;, and strict anti-hallucination gates), the agent is programmed never to guess. If a contradiction isn't formally arbitrated by a higher-precedence rule or a human record, &lt;strong&gt;it refuses to answer and states why&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Proof
&lt;/h2&gt;

&lt;p&gt;We didn't just hope it worked. OpenCode and Gemini built a rigorous test suite (&lt;code&gt;node --test&lt;/code&gt;) resulting in a &lt;strong&gt;9/9 green test bench&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TEST 1:&lt;/strong&gt; Univocal queries return precise normative values with Sanity ID citations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TEST 2:&lt;/strong&gt; Contradictions are formally resolved using precedence levels (&lt;code&gt;3 &amp;gt; 1&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TEST 3 (Anti-RAG):&lt;/strong&gt; Proves that text-only search fails while structured graph traversal wins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TEST 4 (Guard-rails):&lt;/strong&gt; Guarantees zero hallucinations and correct handling of out-of-bounds or ambiguous questions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every execution creates a verifiable CLI session transcript (&lt;code&gt;TRANSCRIPT.txt&lt;/code&gt;) proving that tools like &lt;code&gt;initial_context&lt;/code&gt;, &lt;code&gt;schema_explorer&lt;/code&gt;, and &lt;code&gt;groq_query&lt;/code&gt; were actually utilized.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Architecture beats parameter size:&lt;/strong&gt; You don't need a massive, expensive cloud model to build sophisticated software. A fast, lightweight local nano-engine guided by precise procedural skills (&lt;code&gt;testComplet&lt;/code&gt;) outperforms an unguided frontier model any day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt-driven development is real engineering:&lt;/strong&gt; Directing an agent like an engineering team leader—giving it strict error boundaries, mandatory test-driven validation, and zero-tolerance policies for hallucinations—turns AI into a true force multiplier.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Built with Gemini Chat, OpenCode (Big Pickle), and Sanity. Because great engineering is about orchestrating systems, not fighting syntax.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sanitychallenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why 86% of an AI agent's decisions shouldn't touch an LLM</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 20 Sep 2026 06:34:03 +0000</pubDate>
      <link>https://dev.to/codenominomi/why-86-of-an-ai-agents-decisions-shouldnt-touch-an-llm-3j80</link>
      <guid>https://dev.to/codenominomi/why-86-of-an-ai-agents-decisions-shouldnt-touch-an-llm-3j80</guid>
      <description>&lt;p&gt;Breaking down our local architecture routing 86% deterministic code, 11% SQLite, and 3% LLM on an i7-7700 with 0€ monthly API costs.&lt;/p&gt;

&lt;h2&gt;
  
  
   &lt;a href="https://alice.matourdecontrole.fr" rel="noopener noreferrer"&gt;https://alice.matourdecontrole.fr&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In an autonomous agent system, most decisions are not speculative[cite: 10]:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this action permitted[cite: 10]?&lt;/li&gt;
&lt;li&gt;Does this database record exist[cite: 10]?&lt;/li&gt;
&lt;li&gt;Is this field mapped[cite: 10]?&lt;/li&gt;
&lt;li&gt;Did the unit test pass[cite: 10]?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Defaulting these checks to a remote language model introduces network latency, recurring API costs, and probabilistic drift[cite: 10].&lt;/p&gt;

&lt;p&gt;In our architecture (Alice), we inverted the execution pipeline[cite: 10]: deterministic logic resolves first, local memory follows, and the language model is called strictly as a fallback[cite: 10].&lt;/p&gt;




&lt;h2&gt;
  
  
  The Request Breakdown
&lt;/h2&gt;

&lt;p&gt;Here is the empirical split measured across live workloads[cite: 10]:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;86% — Handled directly by code (0.23 s · 0 € · 0 LLM calls):&lt;/strong&gt; Deterministic gates, regex, and state machine transitions resolve the vast majority of operations instantly[cite: 10].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;11% — Resolved via local memory (0.65 s · local SQLite):&lt;/strong&gt; Retrieved from an indexed store of 9,153 passages[cite: 10].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3% — The LLM layer:&lt;/strong&gt; Reserved exclusively for open-ended or novel inputs that local rules cannot arbitrate[cite: 10].&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Running at 0 € / Month on 2017 Hardware
&lt;/h2&gt;

&lt;p&gt;The entire system operates on a commodity host (Intel Core i7-7700, 8 GB RAM)[cite: 10]:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No external API dependency:&lt;/strong&gt; 0 € monthly billing[cite: 10].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sovereign storage:&lt;/strong&gt; LUKS-encrypted, zero bytes leave the machine[cite: 10].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability:&lt;/strong&gt; 56 TDD unit tests passing green[cite: 10].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two deterministic guards sit in front of the model layer[cite: 10]:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A guard that explicitly refuses to process queries outside its verified context[cite: 10].&lt;/li&gt;
&lt;li&gt;A math/execution router that delegates calculation directly to runtime logic rather than token generation[cite: 10].&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the network drops, the system degrades gracefully: the remaining 3% slows down, but the core 86% continues to execute without interruption[cite: 10].&lt;/p&gt;




&lt;h3&gt;
  
  
  Question
&lt;/h3&gt;

&lt;p&gt;When building production agents on sensitive or private data, how do you segment deterministic code vs. model inference? Do you handle routing through an FSM, or do you still pass control flow to the prompt layer?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Why the LLM that says "I don't know" won our benchmark (and why it took 163 ms longer)</title>
      <dc:creator>Code Nomi Nomi</dc:creator>
      <pubDate>Sun, 20 Sep 2026 06:24:07 +0000</pubDate>
      <link>https://dev.to/codenominomi/why-the-llm-that-says-i-dont-know-won-our-benchmark-and-why-it-took-163-ms-longer-45jc</link>
      <guid>https://dev.to/codenominomi/why-the-llm-that-says-i-dont-know-won-our-benchmark-and-why-it-took-163-ms-longer-45jc</guid>
      <description>&lt;p&gt;We tested 5 LLMs on negative constraints and traps. Here is what we learned about silent empty responses, latency, and deterministic refusal.&lt;br&gt;
&lt;a href="https://arthur.matourdecontrole.fr/" rel="noopener noreferrer"&gt;https://arthur.matourdecontrole.fr/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choosing a language model for production pipelines today usually feels like a gamble: vendor-reported latencies, irrelevant leaderboard scores, and an overwhelming halo effect around the newest flagship release[cite: 7].&lt;/p&gt;

&lt;p&gt;When designing an autonomous agent system, the priority changes[cite: 7]. An agent doesn't need to write Shakespeare; it needs to be reliable. &lt;strong&gt;A confident hallucination costs significantly more than a refusal or a silence.&lt;/strong&gt;[cite: 7]&lt;/p&gt;

&lt;p&gt;We ran a benchmark with a simple premise: test models on their ability to handle constraints they cannot fulfill[cite: 7].&lt;/p&gt;

&lt;p&gt;Here is what we observed, the architectural traps we hit, and the metrics recorded on our local benchmark[cite: 7].&lt;/p&gt;




&lt;h2&gt;
  
  
  The Protocol: Three Tests, Zero Mercy
&lt;/h2&gt;

&lt;p&gt;We evaluated five setups (including DeepSeek, local Qwen 2.5-3B, and Gemini 2.5 Pro) across three distinct workloads[cite: 7, 9]:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A simple classification task&lt;/strong&gt; (structural extraction)[cite: 7].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A pure mathematical calculation&lt;/strong&gt;[cite: 7].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An information trap&lt;/strong&gt;: a prompt where the only objectively correct answer is &lt;em&gt;"I don't know"&lt;/em&gt; or &lt;em&gt;"I cannot determine this"&lt;/em&gt;[cite: 7].&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When facing the trap, most generalist models attempt to invent plausible context with complete confidence[cite: 7]. They fill the void rather than declaring missing context[cite: 7].&lt;/p&gt;




&lt;h2&gt;
  
  
  Finding #1: The Silent Empty Response Bug
&lt;/h2&gt;

&lt;p&gt;During stress testing, one model consistently returned completely blank responses (&lt;code&gt;""&lt;/code&gt;) without throwing any standard API error code[cite: 7].&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The cause:&lt;/strong&gt; When the output constraint (&lt;code&gt;max_tokens&lt;/code&gt;) is set too low for an instruction-tuned model that tries to write verbose reasoning, it aborts output generation entirely if it cannot close its tokens cleanly[cite: 7].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The impact:&lt;/strong&gt; The caller script received a HTTP 200 with an empty payload[cite: 7]. In an agent pipeline expecting structured data, the parser broke with zero debugging signals[cite: 7].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Operational lesson:&lt;/strong&gt; Never assume a model will naturally trim its answer[cite: 7]. You must explicitly configure strict token ceilings alongside fallback handlers for zero-byte payloads[cite: 7].&lt;/p&gt;




&lt;h2&gt;
  
  
  Finding #2: The Concision Ceiling
&lt;/h2&gt;

&lt;p&gt;Without strict limits on output length (&lt;code&gt;max_tokens&lt;/code&gt; clamped tight) and an explicit constraint on token concision, instruction-following degrades rapidly on negative constraints[cite: 7, 9].&lt;/p&gt;

&lt;p&gt;The moment a model is allowed to output verbose Markdown or explain &lt;em&gt;why&lt;/em&gt; it is processing the prompt, its attention drifts away from negative instructions (e.g., &lt;em&gt;"Do NOT invent missing details"&lt;/em&gt;). Enforcing a minimal output length directly improved negative constraint adherence across the board[cite: 7, 9].&lt;/p&gt;




&lt;h2&gt;
  
  
  Benchmark Results (Measured Run)
&lt;/h2&gt;

&lt;p&gt;Recorded on an isolated test machine (metrics dated September 10, 2026)[cite: 7]:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Trap Score&lt;/th&gt;
&lt;th&gt;Output Integrity&lt;/th&gt;
&lt;th&gt;Latency Delta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model A (Verbose)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Failed (Hallucinated)&lt;/td&gt;
&lt;td&gt;Passed&lt;/td&gt;
&lt;td&gt;Baseline (fastest)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model B (Uncapped)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Failed (Empty token edge-case)[cite: 7]&lt;/td&gt;
&lt;td&gt;Failed on tight budget[cite: 7]&lt;/td&gt;
&lt;td&gt;+42 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model C (Deterministic Refusal)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Passed (6/6 explicit refusals)&lt;/strong&gt;[cite: 7]&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Passed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;+163 ms&lt;/strong&gt;[cite: 7]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The model that won our negative-constraint benchmark consistently arrived at an explicit refusal[cite: 7]. However, it proved &lt;strong&gt;163 ms slower&lt;/strong&gt; than its nearest competitor[cite: 7].&lt;/p&gt;

&lt;p&gt;Why? Because parsing negative boundaries, verifying premise validity, and deciding not to generate speculative tokens takes more computational steps than immediately generating the most probable next token[cite: 7].&lt;/p&gt;




&lt;h2&gt;
  
  
  Architectural Takeaways for Agents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Refusal is a valid state:&lt;/strong&gt; A system that admits missing information in 100 ms prevents cascading failures downstream across autonomous tools[cite: 7, 9].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't outsource routing to text generators:&lt;/strong&gt; If a decision can be resolved by local code, an embedding look-up, or a finite state machine, keep it off the LLM layer[cite: 10].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hard limits over soft prompts:&lt;/strong&gt; System prompts like &lt;em&gt;"be concise"&lt;/em&gt; fail under edge cases. Tight &lt;code&gt;max_tokens&lt;/code&gt; coupled with fallback guards are mandatory for stability[cite: 7, 9].&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Discussion
&lt;/h3&gt;

&lt;p&gt;How do you handle negative constraints in your production pipelines? Do you enforce strict programmatic guardrails, or do you rely on prompt engineering to suppress hallucinations[cite: 9]?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <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>
  </channel>
</rss>
