Files
agent-framework/python/samples/02-agents/skills/code_defined_skill
T
Giles Odigwe 7c2dae8855 Python: Fix sample bugs: incorrect API params, wrong client types, and invalid options (#4983)
* Fix sample bugs: incorrect API params, wrong client types, and invalid options

- typed_options.py: Fix AnthropicClient model->model_id, wrap raw strings in Message objects for get_response(), fix reasoning_effort->reasoning dict, fix budget_tokens minimum (1024), use OpenAIChatClient not FoundryChatClient, remove unused import

- client_reasoning.py: Fix deprecated model_id to model param

- client_with_hosted_mcp.py: Remove invalid store=True kwarg from Agent.run()

- code_defined_skill.py: Fix precision kwarg to use function_invocation_kwargs

- Various other samples: Fix deprecated API usage and incorrect params

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

* Address PR review comments

- client_with_hosted_mcp.py: Fix remaining store=True kwarg on line 68 to use options dict

- client_with_session.py: Change store=True to store=False to match in-memory persistence demo intent

- typed_options.py: Remove non-existent import and model key from docstring example

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

* new sample fixes

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
7c2dae8855 · 2026-03-31 16:58:51 +00:00
History
..

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