Files
agent-framework/python/samples/02-agents/skills/code_defined_skill/README.md
T
SergeyMenshykh 23ebfbc937 Python: Support skill scripts execution (#4558)
* support skill scripts execution

* fix mixed line endings

* address comments and fix syntax issues

* use few try/except instead of one

* change samples

* validate either script path or script resource is set not both

* fix: separate LLM args from runtime kwargs in skill script execution

* address pr review comments

* address PR review comments

* Update python/packages/core/agent_framework/_skills.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/core/agent_framework/_skills.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/core/agent_framework/_skills.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* 1. Fixing the caching bug where parameters_schema would re-inspect on every call when the result was None
   2. Updating the arguments tool description to be more generic (not CLI-specific)

* fix failing tests

* address pr review comments

* address pr review comments

* allow resource function returning any instead of sting

* address PR review comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-11 18:28:30 +00:00

1.6 KiB

Code-Defined Agent Skills

This sample demonstrates how to create Agent Skills in Python code, without needing SKILL.md files on disk. A unit-converter skill shows three approaches:

What's Demonstrated

  1. Static Resources — Pass inline content via the resources parameter when constructing a Skill
  2. Dynamic Resources — Attach callable functions via the @skill.resource decorator that return content computed at runtime
  3. Dynamic Scripts — Attach callable scripts via the @skill.script decorator (unit conversion via a single factor parameter)

All three can be combined with file-based skills in a single SkillsProvider.

Project Structure

code_defined_skill/
├── code_defined_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_defined_skill/code_defined_skill.py

Learn More