AI
Building AX evals that actually work
This is the eighth and final article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. You've read seven articles about what to measure, why benchmarks don't transfer, and what hidden variables can do to your results. Now you actually have to build the thing. Most teams build an eval, run it, get scores, and feel good about the numbers. The trouble is that these evals produ...
Microsoft Agent Framework for Go public preview
Microsoft Agent Framework for Go is entering public preview, bringing Agent Framework concepts to Go developers building agents and multi-agent workflows.
Modernize .NET applications in the GitHub Copilot app
Modernize .NET applications in the GitHub Copilot app. Follow your upgrade from assessment through execution in an interactive upgrade canvas.
From Noisy Queries to Precise Frames: Query Decomposition for Media Asset Search
How query decomposition separates metadata filters from visual intent to significantly improve media asset retrieval quality.
Building on Vercel’s eve + Azure Cosmos DB: An Agent That Remembers
Most "AI agent" demos forget everything the moment the process exits. That's fine for a toy project, but useless for anything real. An agent that helps you write, triage, or support needs two things a language model alone can't give it: durable state and the ability to recall the right context by meaning. This post shows how to build exactly that by integrating two pieces that fit together surprisingly well: Eve — Vercel's filesystem-first agent platform. Drop a file in agent/tools/, and it becomes a tool the model can call. Azure Cosmos DB JavaScript SDK — the official, promise-based client for Cosmos DB N...
The hidden variables in your agent eval
This is the seventh article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. You build an eval. You run it on your machine. You get a score. Your colleague runs the same eval on their machine and gets a different score. Same scenario, same setup. What changed? In the previous article, we covered why public benchmarks can't tell you which model works best for your stack. T...
Don’t rewrite your CLI for agents
There's advice making the rounds: replace your CLI args with a single payload so agents can use your tool more effectively. The thinking being, that agents already think in structured formats, and nested data maps cleanly to JSON. Flat args on the other hand, force awkward conventions like repeating to delimit multi-value groups, which is inherently ambiguous. Not to mention, that the agent needs to get the types of all values right. It's a reasonable hypothesis, and we wanted to know if it holds up under measurement. The data we collected, showed something interesting. What we tested We built a synthetic CL...
Not all model upgrades are upgrades
A new model drops with lower per-token pricing and better benchmarks. You switch. A week later someone asks why the agent is burning 12x more tokens on the same task while producing worse output. We ran 150 agent tasks across 15 scenarios on two models, Claude Sonnet 4.6 and Claude Sonnet 5, using GitHub Copilot Chat in VS Code on Windows. The scenarios covered two types of work: architecture and design tasks grounded in Microsoft Learn documentation, and SharePoint Framework project upgrades. Sonnet 5 is the newer model with 33% lower per-token pricing across every token category. The assumption we wanted to te...
Enabling MLflow OpenAI Autolog on PySpark Workers
When distributing LLM calls across PySpark workers via mapInPandas, MLflow autolog silently fails. Here is how to fix it.
What AI benchmarks are not telling you
This is the sixth article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. We love benchmarks. A new model drops, the leaderboard says 92% on SWE-bench, and your timeline declares it "the best coding model." You switch to it, run your agent on your codebase, and outcomes are... the same. Maybe worse. The leaderboard said 92%, so what happened? In the previous article, we ...