mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
6851a9cdc8
* Add dynamic tool expansion sample * Address PR comments * Remove tool names from tool call response to avoid confusing LLM
1.5 KiB
1.5 KiB
Dynamic Function Tools
This sample demonstrates how to dynamically expand the set of function tools available to an agent during a function-calling loop.
What it demonstrates
- The agent starts with only a single
RequestToolsfunction - When the model needs capabilities it doesn't have, it calls
RequestToolswith a description of the functionality needed - The
RequestToolsfunction uses the ambientFunctionInvokingChatClient.CurrentContextto accessChatOptions.Toolsand add new tools at runtime - The agent then uses the newly added tools in subsequent iterations of the same function-calling loop
How it works
- A tool catalog maps keywords (e.g. "weather", "time", "temperature") to pre-built
AIFunctioninstances - The
RequestToolsfunction matches the description against catalog keywords and adds matching tools toChatOptions.Tools FunctionInvokingChatClientautomatically picks up the new tools on the next iteration of its loop
Prerequisites
- .NET 10 SDK or later
- Azure OpenAI service endpoint and deployment configured
- Azure CLI installed and authenticated (for Azure credential authentication)
- User has the
Cognitive Services OpenAI Contributorrole for the Azure OpenAI resource
Running the sample
Set the required environment variables:
$env:AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
$env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-5.4-mini" # Optional, defaults to gpt-5.4-mini
Run the sample:
dotnet run