Skip to content

Conversation

@threddy
Copy link
Contributor

@threddy threddy commented Jan 16, 2026

Why?
Today the UX map icons at the tool level, which requires UI changes every time a new tool is added. If we log the server name along with the tool name, we can map icons at the server (workload) level instead. This gives us one icon per workload, and tools automatically inherit the correct icon, so new tools work without UI changes.

What?
Introduce a new "ToolServerName" property in ToolCallDetails in the ExecuteTool scope.

@threddy threddy requested a review from a team as a code owner January 16, 2026 22:56
Copilot AI review requested due to automatic review settings January 16, 2026 22:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new "ToolServerName" property to the ToolCallDetails class to enable icon mapping at the server (workload) level rather than the individual tool level. This improves UX by eliminating the need for UI changes when new tools are added.

Changes:

  • Added optional toolServerName parameter to ToolCallDetails class constructor and corresponding property
  • Added GenAiToolServerNameKey constant to OpenTelemetryConstants for consistent telemetry tagging
  • Updated ExecuteToolScope and ExecuteToolDataBuilder to handle the new property
  • Added comprehensive test coverage for the new functionality

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Observability/Runtime/Tracing/Contracts/ToolCallDetails.cs Added ToolServerName property, constructor parameter, and updated Equals/GetHashCode/Deconstruct methods
src/Observability/Runtime/Tracing/Scopes/OpenTelemetryConstants.cs Added GenAiToolServerNameKey constant for telemetry attribute
src/Observability/Runtime/Tracing/Scopes/ExecuteToolScope.cs Updated to extract and set the toolServerName tag from ToolCallDetails
src/Observability/Runtime/DTOs/Builders/ExecuteToolDataBuilder.cs Updated to include toolServerName in telemetry attributes
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/Tracing/Scopes/ExecuteToolScopeTest.cs Added test to verify ToolServerName is set correctly in the scope
src/Tests/Microsoft.Agents.A365.Observability.Runtime.Tests/DTOs/Builders/ExecuteToolDataBuilderTests.cs Updated tests to verify toolServerName is included in attributes and omitted when null
src/Tests/Microsoft.Agents.A365.Observability.Runtime.IntegrationTests/Agent365ExporterE2ETests.cs Updated E2E test to validate toolServerName in exported telemetry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants