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
6851a9cdc8
ยท
2026-04-23 15:10:57 +00:00
History
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