Agent Design Is Still Hard

December 2, 2025

Dark blue graphic with the text "Agent Design Is Still Hard" in large font and "My Agent abstractions keep breaking somewhere I don't expect." in smaller font below; bottom right shows a small circular profile photo and the name "Armin Ronacher."

TL;DR: Building agents is still messy. SDK abstractions break once you hit real tool use. Caching works better when you manage it yourself, but differs between models. Reinforcement ends up doing more heavy lifting than expected, and failures need strict isolation to avoid derailing the loop. Shared state via a file-system-like layer is an important building block. Output tooling is surprisingly tricky, and model choice still depends on the task.

Source: Agent Design Is Still Hard | Armin Ronacher’s Thoughts and Writings

If you’re considering building your own agent, the comprehensive article by Armin Ronacher will be very useful. You might also find this recent conversation on the Pragmatic Engineer podcast with Armin to be worth a listen.