mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
8bf4235f4e
* support code skills * address pr review comments * address package and syntax checks * address pr review comments * address pr review comment * address failed check * rename agentskill and agetnskillprovider * move agent skills related assets to _skills.py * address pr review comments * address review comments * support kwargs * address pr review feedback
2.2 KiB
2.2 KiB
Code-Defined Agent Skills Sample
This sample demonstrates how to create Agent Skills in Python code, without needing SKILL.md files on disk.
What are Code-Defined Skills?
While file-based skills use SKILL.md files discovered on disk, code-defined skills let you define skills entirely in Python using Skill and SkillResource classes. Three patterns are shown:
- Basic Code Skill — Create a
Skilldirectly with static resources (inline content) - Dynamic Resources — Attach callable resources via the
@skill.resourcedecorator that generate content at invocation time - Dynamic Resources with kwargs — Attach a callable resource that accepts
**kwargsto receive runtime arguments passed viaagent.run(), useful for injecting request-scoped context (user tokens, session data)
All patterns can be combined with file-based skills in a single SkillsProvider.
Project Structure
code_skill/
├── code_skill.py
└── README.md
Running the Sample
Prerequisites
- An Azure AI Foundry project with a deployed model (e.g.
gpt-4o-mini)
Environment Variables
Set the required environment variables in a .env file (see python/.env.example):
AZURE_AI_PROJECT_ENDPOINT: Your Azure AI Foundry project endpointAZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: The name of your model deployment (defaults togpt-4o-mini)
Authentication
This sample uses AzureCliCredential for authentication. Run az login in your terminal before running the sample.
Run
cd python
uv run samples/02-agents/skills/code_skill/code_skill.py
Examples
The sample runs two examples:
- Code style question — Uses Pattern 1 (static resources): the agent loads the
code-styleskill and reads thestyle-guideresource to answer naming convention questions - Project info question — Uses Patterns 2 & 3 (dynamic resources with kwargs): the agent reads the dynamically generated
team-rosterresource and theenvironmentresource which receivesapp_versionvia runtime kwargs