Part 3 of a series on building agents with the Microsoft Work IQ API. For two parts now, our agent has been doing something very specific: delegating. Over A2A, my code hands a whole question to Work IQ — “what meetings do I have today?” — and Work IQ does everything: retrieval, reasoning, synthesis, citations. My agent is essentially a well-authenticated messenger. That’s the right model when you want Copilot-quality answers with zero orchestration on…
In Part 1 I intentionally kept everything as simple as possible. I wanted to understand what was actually happening on the wire before introducing another SDK. That meant building the JSON-RPC envelope myself, sending it with HttpClient, and parsing the response by hand. It was a useful exercise because it helped me understand how Work IQ really works. But after writing it, I knew I wouldn’t want to maintain code like that in a real…
Over the last year, our team has been building a private AI application for clients. The use cases changed from project to project, but the infrastructure underneath them started to look uncomfortably familiar. We needed agents. Then tools for those agents. Then connectors to Microsoft 365 and other systems. Then indexing, retrieval, conversation state, monitoring and permission checks. Every new capability solved a user problem while quietly giving us another component to operate. I saw…
In Part 1, we built a Foundry agent with long-term memory that could remember user preferences, roles, and context across sessions without any custom embedding pipelines. If you haven’t read that post yet, I’d recommend starting there, as this one builds directly on top of that code. But here’s the thing: memory on its own is useful, but it’s not transformative. Knowing that a user prefers bullet-point summaries or works in the finance department is…
If you’ve worked with AI agents in production, you’ve almost certainly run into this problem: a user tells your agent something important in one session, and the next time they come back, the agent has completely forgotten about it. The user has to repeat themselves. Context is lost. The experience feels disjointed. I ran into this exact issue while working on a project where users were interacting with an enterprise agent multiple times throughout the…




