| name | python-samples |
| description | Guidelines for creating and modifying sample code in the Agent Framework Python codebase. Use this when writing new samples or updating existing ones.
|
Python Samples
File Structure
Every sample file follows this order:
- PEP 723 inline script metadata (if external dependencies needed)
- Copyright header:
# Copyright (c) Microsoft. All rights reserved.
- Required imports
- Module docstring:
"""This sample demonstrates..."""
- Helper functions
- Main function(s) demonstrating functionality
- Entry point:
if __name__ == "__main__": asyncio.run(main())
External Dependencies
Use PEP 723 inline script metadata for
external packages not in the dev environment:
Do not add sample-only dependencies to the root pyproject.toml dev group.
Syntax Checking
uv run poe syntax -S
uv run poe pyright -S
uv run poe syntax -S -C
Documentation
Samples should be over-documented:
- Include a README.md in each set of samples
- Add a summary docstring under imports explaining the purpose and key components
- Mark code sections with numbered comments:
...
...
- Include expected output at the end of the file:
"""
Sample output:
User:> Why is the sky blue?
Assistant:> The sky is blue due to Rayleigh scattering...
"""
Guidelines
- Incremental complexity — start simple, build up (step1, step2, ...)
- Getting started naming:
step<number>_<name>.py
- When modifying samples, update associated README files