mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
5fe8941ff9
* dotnet: Add server-side Foundry Toolbox support and fix SDK beta.4 breaking changes Add FoundryToolbox and AIProjectClient extensions to Microsoft.Agents.AI.Foundry.Hosting for server-side toolbox tool integration matching Python's FoundryChatClient.get_toolbox() pattern. Tools are fetched from the Foundry project SDK and passed as server-side tools in the Responses API request. New files: - FoundryToolbox.cs: Core implementation using AgentAdministrationClient SDK - AIProjectClientToolboxExtensions.cs: Extension methods on AIProjectClient - Agent_Step25_ToolboxServerSideTools sample with create helper and combine flow - 19 unit tests covering param validation, conversion, sanitization, and extensions SDK breaking changes (Azure.AI.AgentServer.Responses beta.3 -> beta.4): - FunctionToolCallOutputResource renamed to OutputItemFunctionToolCallOutput - AzureAIAgentServerResponsesModelFactory made internal, replaced with direct constructors - ResponseUsage constructor now requires non-null token details parameters Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: reuse endpoint variable in CreateSampleToolboxAsync Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: pass endpoint through static local functions to avoid capture Static local functions cannot capture top-level variables. Thread the endpoint parameter through Main, CombineToolboxes, and CreateSampleToolboxAsync. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * refactor: remove unused projectClient param from CreateSampleToolboxAsync Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update dotnet/samples/02-agents/AgentsWithFoundry/Agent_Step25_ToolboxServerSideTools/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/02-agents/AgentsWithFoundry/Agent_Step25_ToolboxServerSideTools/Program.cs Co-authored-by: westey <164392973+westey-m@users.noreply.github.com> * Update dotnet/samples/02-agents/AgentsWithFoundry/Agent_Step25_ToolboxServerSideTools/Program.cs Co-authored-by: westey <164392973+westey-m@users.noreply.github.com> * Removing GetToolbocVersion. * Removing tests for GetToolboxVersion * fix: map cached/reasoning token counts in ConvertUsage instead of hardcoding zeros Extract InputTokenDetails.CachedTokenCount and OutputTokenDetails.ReasoningTokenCount from UsageDetails.AdditionalCounts, matching the pattern in AgentResponseExtensions. Also accumulate detail counts when merging with existing usage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: alliscode <bentho@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
65 lines
2.5 KiB
XML
65 lines
2.5 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
|
|
<NoWarn>$(NoWarn);NU1605;NU1903</NoWarn>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.Extensions.Logging" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'">
|
|
<PackageReference Include="Azure.AI.Projects" VersionOverride="2.1.0-beta.1" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
|
|
<PackageReference Include="Azure.AI.AgentServer.Responses" />
|
|
<PackageReference Include="Azure.AI.Projects" VersionOverride="2.1.0-beta.1" />
|
|
<PackageReference Include="Microsoft.AspNetCore.TestHost" />
|
|
<PackageReference Include="OpenTelemetry" />
|
|
<PackageReference Include="OpenTelemetry.Exporter.InMemory" />
|
|
</ItemGroup>
|
|
|
|
<!-- Hosting tests only compile on .NET Core TFMs -->
|
|
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'">
|
|
<Compile Remove="Hosting\**" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\src\Microsoft.Agents.AI.Foundry\Microsoft.Agents.AI.Foundry.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
|
|
<ProjectReference Include="..\..\src\Microsoft.Agents.AI.Foundry.Hosting\Microsoft.Agents.AI.Foundry.Hosting.csproj" />
|
|
</ItemGroup>
|
|
|
|
<!-- FoundryEval tests require net8.0+ (MEAI.Evaluation does not support legacy TFMs) -->
|
|
<ItemGroup Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
|
<Compile Remove="FoundryEvalConverterTests.cs" />
|
|
<Compile Remove="FoundryEvalsTests.cs" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Update="TestData\AgentResponse.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="TestData\AgentVersionResponse.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="TestData\OpenAIDefaultResponse.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="TestData\ToolboxRecordResponse.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="TestData\ToolboxVersionResponse.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="TestData\ToolboxVersionWithDecorationFields.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
</Project>
|