<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>mainLog: AI &amp; agentic architectures</title><description>What it takes to make agents reliable enough to run in production. The focus is the runtime around the model, and the design choices that keep failures contained once an agent acts on real systems.</description><link>https://mainlog.dev/</link><language>en</language><item><title>What an agent should remember</title><link>https://mainlog.dev/posts/agent-memory/</link><guid isPermaLink="true">https://mainlog.dev/posts/agent-memory/</guid><description>Agent memory stores mostly decide what to forget by time: a TTL, or deleting what hasn&apos;t been used. In a 90-day scripted scenario, that kept a cancelled booking alive for weeks and stored a restaurant&apos;s sentence as the user&apos;s preference. Two fields fix both: who wrote the memory, and which event would make it false.</description><pubDate>Mon, 26 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Handing off between agents</title><link>https://mainlog.dev/posts/agent-handoff/</link><guid isPermaLink="true">https://mainlog.dev/posts/agent-handoff/</guid><description>A handoff carries two things: the words the next model reads, and the state the next runtime has to enforce. Every common handoff style moves only the words. In a small scripted demo, even the full transcript, 1,838 bytes, left the restaurant holding two tables, because the key that names the in-doubt booking was never in it. A 310-byte record written by the sending runtime fixed it.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The agent event bus</title><link>https://mainlog.dev/posts/agent-event-bus/</link><guid isPermaLink="true">https://mainlog.dev/posts/agent-event-bus/</guid><description>When one agent calls another with a sentence, the caller&apos;s model writes the callee&apos;s prompt, and a stranger&apos;s note can ride along. In a small scripted demo a bus seemed to fix that, but a typed fact sent by call was just as safe, and a bus event with a note was not. What the bus adds is that one agent being down doesn&apos;t leave another&apos;s work half done.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>What a state machine buys an agent</title><link>https://mainlog.dev/posts/agent-state-machines/</link><guid isPermaLink="true">https://mainlog.dev/posts/agent-state-machines/</guid><description>The same dinner booking, sent to Claude as a free-form tool loop and as a state machine. Per-state tool lists sent 61% fewer tokens, but with prompt caching on they cost 23% more on input, and with output counted the two came out about even. The real saving was code running the steps that need no model, 8 calls down to 2 and about 72% off the total, plus a table of every state against every event.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Circuit breakers for inference</title><link>https://mainlog.dev/posts/agent-cost-control/</link><guid isPermaLink="true">https://mainlog.dev/posts/agent-cost-control/</guid><description>Timeouts, retries and budgets for model calls that finish too slowly, produce unusable answers or keep repeating themselves. With the real Anthropic SDK, timeout=3.0 let an 18-second stream finish. In a simulated support chat, with invented failure rates, five checks took the conversations waiting over two minutes from 249 to 0.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Diagrams worth reading</title><link>https://mainlog.dev/posts/agent-architecture-diagrams/</link><guid isPermaLink="true">https://mainlog.dev/posts/agent-architecture-diagrams/</guid><description>My agent could already write Mermaid. Diagrams worth reading took a skill that chooses the picture, keeps the facts intact, and checks the drawing before handing it back.</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SFU, MCU, and the participant that has to decode</title><link>https://mainlog.dev/posts/participant-that-decodes/</link><guid isPermaLink="true">https://mainlog.dev/posts/participant-that-decodes/</guid><description>Put an AI agent in a group call and two questions decide the design: does the model hear each person, or one blend, and who has to hold the keys? Both come down to where the agent&apos;s audio gets decoded.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate></item><item><title>When a turn doesn&apos;t start with the user</title><link>https://mainlog.dev/posts/turn-without-the-user/</link><guid isPermaLink="true">https://mainlog.dev/posts/turn-without-the-user/</guid><description>Agent runtimes are built around the user&apos;s message, so every input ends up acting with the user&apos;s authority. A restaurant&apos;s webhook, a timer and a second message mid-task each break that, and each gets a rule, shown in a small runtime you can run.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>When the user changes their mind mid-task</title><link>https://mainlog.dev/posts/user-changes-their-mind/</link><guid isPermaLink="true">https://mainlog.dev/posts/user-changes-their-mind/</guid><description>The user says “actually, Saturday” while the agent is still booking Friday. Cancelling the task and starting again leaves the restaurant holding two tables. What a runtime has to do instead: find out what the old plan already did, secure the new one, then undo the old, and tell the user what happened.</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate></item></channel></rss>