Keep agent tools narrow and boring
Expose only the small, specific capabilities the agent needs for the current workflow.
Expose only the small, specific capabilities the agent needs for the current workflow.
Capture queryable fields first so dashboards are built on data, not text search.
Treat prompt changes like code changes: measure the behavior before deciding whether the edit helped.
Citations should point back to the retrieved evidence, not to sources the model guessed after answering.
How to make Microsoft Agent Framework behavior visible in production with OpenTelemetry traces, token usage, model calls, tool calls, Aspire local debugging, and Application Insights monitoring.
Embed a small typed Python capability in .NET when an HTTP service would be more boundary than value.
Create configured HttpClient instances through the factory instead of scattering clients and handlers.
Do not cache a GET response unless the cache key matches the user, tenant, and permission boundary that shaped it.
Give workloads and people the narrow Azure role they need instead of defaulting to Contributor.
Watch for small per-item allocations inside loops, parsers, serializers, and request paths.