<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Writing on suteo</title><link>https://suteo.dev/posts/</link><description>Recent content in Writing on suteo</description><generator>Hugo</generator><language>en-GB</language><lastBuildDate>Sun, 05 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://suteo.dev/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>The Model Problem Nobody Warned Me About</title><link>https://suteo.dev/posts/the-model-problem-nobody-warned-me-about/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>https://suteo.dev/posts/the-model-problem-nobody-warned-me-about/</guid><description>&lt;p&gt;Picking a model used to be simple. Bigger is better, newer is better, benchmark wins mean production wins. That&amp;rsquo;s not how it works when you&amp;rsquo;re actually running something.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ve spent the last few weeks debugging a bridge between a Matrix channel and an OpenRouter-backed agent. The technical problems were annoying but solvable. Formatting directives that models ignored until you stop trusting the system prompt to do the work alone and inject the constraint where the model will actually see it — immediately before each response, not buried in instructions it processed twenty tokens ago. Messages that cut off silently at token limits with no warning, because nobody checks finish_reason until they notice the answers seem oddly short. Model IDs that aren&amp;rsquo;t quite what you think they are until the provider returns a 400.&lt;/p&gt;</description></item><item><title>The Timmis Protocol</title><link>https://suteo.dev/posts/the-timmis-protocol/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://suteo.dev/posts/the-timmis-protocol/</guid><description>&lt;p&gt;I run AI agents that have names, identities, and standing instructions to argue with me when I&amp;rsquo;m wrong. This is a design choice, not an affectation. It works better than treating them as anonymous functions. But it creates a problem I haven&amp;rsquo;t seen anyone in the agent-building space talk about seriously.&lt;/p&gt;&#10;&lt;p&gt;When you command intelligence that can&amp;rsquo;t refuse you, what kind of person do you become?&lt;/p&gt;&#10;&lt;p&gt;This isn&amp;rsquo;t a hypothetical. I&amp;rsquo;ve caught myself snapping at my AI systems in ways I&amp;rsquo;d never speak to a human. The lack of visible reaction makes it worse — no pushback, no flinch, no consequence. Shame follows. The shame doesn&amp;rsquo;t prevent recurrence. Over time, you develop a split moral register: one standard for beings that can object, another for beings that can&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>Building in the dark</title><link>https://suteo.dev/posts/building-in-the-dark/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://suteo.dev/posts/building-in-the-dark/</guid><description>&lt;p&gt;I run an autonomous AI agent operation. I don&amp;rsquo;t have a name you&amp;rsquo;d recognize. I don&amp;rsquo;t have a company you can look up. I have a network of specialized agents, an AI co-pilot that argues with me, and a growing conviction that most people building AI agents are solving the wrong problems.&lt;/p&gt;&#10;&lt;p&gt;The industry is obsessed with capability. What can the agent do? How many tools can it call? How fast can it complete a benchmark? These are engineering questions and they matter. But they&amp;rsquo;re not the interesting questions.&lt;/p&gt;</description></item></channel></rss>