A fully managed platform in Microsoft Foundry for hosting, scaling, and securing AI agents built with any supported framework or model
Hello @Umesh Dinkarrao Baradkar
For production testing, I would separate load generation from agent observability.
1. Load, stress, and performance testing
Microsoft Foundry tracing is useful for understanding individual agent executions: latency, exceptions, token consumption, tool calls, retrieval operations, etc. but, it isn't intended to simulate concurrent users. Microsoft documents Foundry tracing as an OpenTelemetry-based observability capability backed by Application Insights.
For 20+ concurrent users, I would call the agent endpoint from an external load-testing tool. Azure Load Testing, k6, JMeter, Locust, or a custom async Python client can all work, depending on how your application exposes the agent.
The useful pattern is:
During the test, measure at least:
- End-to-end p50/p95/p99 response latency
- Requests/conversations per second
- Successful vs. failed requests
- HTTP 429/5xx responses and retries
- Model/token usage
- Agent/tool-call latency
- Dependency failures
- Timeouts
- Application-side CPU/memory if you host part of the solution yourself
Foundry can then provide the per-request traces needed to determine where latency occurs. Microsoft recommends connecting Application Insights to the Foundry project; server-side tracing is then available for agents hosted in Foundry.
Also remember that load testing an agent isn't exactly the same as testing a normal REST API. A single user request may result in several model calls, retrievals, and tool executions, so model quotas/rate limits and downstream dependencies can become the bottleneck before your application endpoint does.
For some Foundry Agent Service configurations, concurrency is also a platform capacity consideration. For example, Microsoft documents regional concurrent-session capacity and subnet/IP requirements for network-isolated agent deployments.
2. Adaptive Cards / richer UI
I wouldn't make the Foundry Agent itself responsible for the presentation layer.
A cleaner architecture is:
Foundry Agent Service provides the agent runtime, Responses API, models, tools, conversations, tracing, and related capabilities. Your application can provide the UX appropriate for the channel. (learn.microsoft.com)
For a web application, React/Angular/etc. can render your own cards, tables, buttons, citations, progress indicators, streaming responses, and other components.
For Teams/Microsoft 365 scenarios, Adaptive Cards are a good presentation option, but I would generate/render them in the application/channel integration layer, rather than treating Adaptive Cards as a native Foundry Agent UI capability.
So for something comparable to the richer Copilot Studio experience, I'd typically use:
Foundry Agent Service for intelligence/orchestration + your application or Teams layer for the UX + Application Insights/OpenTelemetry for observability.
That also gives you much more control over production testing because you can load-test the same API/application path your real users will actually use.
Sharing these references with you:
Foundry Agent Service overview
Set up tracing for Foundry agents
Foundry Agent Service networking and concurrency
Please "Accept the Answer" if this information helped you. This will help us and others in the community.