mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
* dotnet: refresh Foundry sample guidance Carry forward the still-relevant sample guidance and Foundry-specific documentation fixes from the old stacked sample migration work, adapted to the current repo layout and policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: rename Foundry sample env vars Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: remove persistent provider sample Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: drop SAMPLE_GUIDELINES.md from this PR Defer the guidelines doc and its cross-link to a follow-on PR to avoid broken-link failures in CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: add DefaultAzureCredential warning to remaining samples Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: address PR review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Mixed Agent Skills Sample (Advanced)
This sample demonstrates an advanced scenario: combining multiple skill types in a single agent using AgentSkillsProviderBuilder.
Tip: For simpler, single-source scenarios, use the
AgentSkillsProviderconstructors directly — see Step01 (file-based), Step02 (code-defined), or Step03 (class-based).
What it demonstrates
- Combining file-based, code-defined, and class-based skills in one provider
- Using
UseFileSkillandUseSkillon the builder to register different skill types - Aggregating skills from all sources into a single provider with automatic deduplication
When to use AgentSkillsProviderBuilder
The builder is intended for advanced scenarios where the simple AgentSkillsProvider constructors are insufficient:
| Scenario | Builder method |
|---|---|
| Mixed skill types — combine file-based, code-defined, and class-based skills | UseFileSkill + UseSkill / UseSkills |
| Multiple file script runners — use different script runners for different file skill directories | UseFileSkill / UseFileSkills with per-source scriptRunner |
| Skill filtering — include/exclude skills using a predicate | UseFilter(predicate) |
Skills Included
unit-converter (file-based)
Discovered from skills/unit-converter/SKILL.md on disk. Converts miles↔km, pounds↔kg.
volume-converter (code-defined)
Defined as AgentInlineSkill in Program.cs. Converts gallons↔liters.
temperature-converter (class-based)
Defined as TemperatureConverterSkill class in Program.cs. Converts °F↔°C↔K.
Running the Sample
Prerequisites
- .NET 10.0 SDK
- Azure OpenAI endpoint with a deployed model
Setup
export AZURE_OPENAI_ENDPOINT="https://your-endpoint.openai.azure.com/"
export AZURE_OPENAI_DEPLOYMENT_NAME="gpt-5.4-mini"
Run
dotnet run
Expected Output
Converting with mixed skills (file + code + class)
------------------------------------------------------------
Agent: Here are your conversions:
1. **26.2 miles → 42.16 km** (a marathon distance)
2. **5 gallons → 18.93 liters**
3. **98.6°F → 37.0°C**