Geert Baeke's notebook · since 2011
Hands-on notes on AI agents, Azure and cloud-native.
233 posts. I build something small, break it a few times, and write up what I learned, with the code on GitHub.
Latest
ai · · 15 min read
Agent-driven UI with A2UI 1.0
Most agents answer in text, sometimes with Markdown formatting. That is fine for short answers, but users often want a screen they can scan and interact with when the task is more than a sentence. There are several ways to get there. You can let the model decide the UI, interpret what it returns and…
Read the postRecent
Azure Content Understanding
Many teams extract data from documents in two steps. They convert the document to Markdown with a service like Azure Document Intelligence, then prompt an LLM to pull the fields they need out of that Markdown. It works, but you run two services and write the prompt yourself. You also get no indication of how…
aiagentgateway: an open source AI gateway on Kubernetes
A few days ago I wrote about using Azure API Management as an AI gateway for your agents. API Management is a good fit when your agents run on Azure and you already use it for your other APIs. But plenty of teams run their agents on Kubernetes, sometimes outside Azure, and might rather have…
aiNotes of the week: managed agent harnesses, Microsoft's own models and Claude in the EU
Two things stood out in this week's Notes. Microsoft now runs the agent loop for you in Foundry, with a managed harness, skills and recovery from interruptions. And it keeps widening model choice in two directions at once: its own frontier models from Microsoft AI, and Anthropic's Claude models moving into the EU Data Boundary…
aiWeb search for your agents with Microsoft Web IQ
I wasn't keen on Microsoft retiring the Bing Search APIs. We used them to ground our agents in current information from the web, and they worked from any code you liked. What replaced them in Foundry, Grounding with Bing and the web search tool in Foundry Agent Service, never felt right to me. Both are…
aiDapr Workflow: code that picks up where it left off
Lots of the work I see in projects is a chain of steps: fetch a document, convert it, call a model, write the result somewhere. You write it as a background job that reads from a queue, and it works fine until the process restarts halfway through a 300-page PDF or a model call times…
aiAn AI gateway for your agents with Azure API Management
In my work for Cronos and MbarQ, more and more customers are taking their agents from proof of concept to production. One agent is easy to keep an eye on. Ten agents built by four teams are a different story: which models do they call, which tools can they reach, which other agents do they…
aiHybrid search without a vector database
Last week I added a low-cost chat assistant to this blog. It found posts with BM25, plain keyword search, and I admitted it had a weak spot: ask "How is this blog hosted?" and it misses the post about hosting, because that post never uses the word "hosted". The usual fix is embeddings, and the…
aiAdding a low-cost chat assistant to my blog
Building chatbots is a big part of my day job, so it was a bit odd that my own blog didn't have one. Now that baeke.info is a static site on Azure, adding one was easy. There was one requirement though: it should cost next to nothing. A chat box on a public website is…
aiDeep Agents from zero: seven small examples
A basic agent is a model calling tools in a loop. That's enough for simple tool calls, but it falls apart on longer work: the agent loses track of what it was doing, its context fills up with tool output, and it has nowhere to put intermediate results. 🤷
ai
