Files
agent-framework/python/samples/02-agents/skills/code_skill
T
SergeyMenshykh 8bf4235f4e Python: Forward runtime kwargs to skill resource functions (#4417)
* 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
8bf4235f4e · 2026-03-05 18:01:25 +00:00
History
..

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:

  1. Basic Code Skill — Create a Skill directly with static resources (inline content)
  2. Dynamic Resources — Attach callable resources via the @skill.resource decorator that generate content at invocation time
  3. Dynamic Resources with kwargs — Attach a callable resource that accepts **kwargs to receive runtime arguments passed via agent.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

Environment Variables

Set the required environment variables in a .env file (see python/.env.example):

  • AZURE_AI_PROJECT_ENDPOINT: Your Azure AI Foundry project endpoint
  • AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: The name of your model deployment (defaults to gpt-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:

  1. Code style question — Uses Pattern 1 (static resources): the agent loads the code-style skill and reads the style-guide resource to answer naming convention questions
  2. Project info question — Uses Patterns 2 & 3 (dynamic resources with kwargs): the agent reads the dynamically generated team-roster resource and the environment resource which receives app_version via runtime kwargs

Learn More