Files
agent-framework/python/AGENTS.md
T
Eduard van Valkenburg eaad042241 .NET: Python: Add AGENTS.md files and update coding standards (#3644)
* Add AGENTS.md files and update coding standards for Python

- Add root python/AGENTS.md with project structure and package links
- Add AGENTS.md for each package describing purpose and main classes
- Update .github/copilot-instructions.md with improved structure
- Update python/CODING_STANDARD.md with API review guidance:
  - Future annotations convention (#3578)
  - TypeVar naming convention (#3594)
  - Mapping vs MutableMapping (#3577)
  - Avoid shadowing built-ins (#3583)
  - Explicit exports (#3605)
  - Exception documentation guidelines (#3410)
- Simplify python/.github/instructions/python.instructions.md to reference AGENTS.md
- Remove AGENTS.md from .gitignore

* Fix purview import path in AGENTS.md

* Address PR review comments and restructure instructions

- Slim down .github/copilot-instructions.md to reference language-specific docs
- Add ADR section explaining templates and purpose
- Create dotnet/AGENTS.md with .NET-specific build commands, conventions, and sample guidance
- Update Python build/test instructions for core vs isolated changes
- Fix Microsoft.Extensions.AI package references
- Update kwargs guidance per issue #3642
- Fix Python sample helper placement (top, not bottom)
- Document new 'typing' poe task in DEV_SETUP.md

* Add 'typing' poe task to run both pyright and mypy

* Add kwargs guidelines from issue #3642 to CODING_STANDARD.md

* Clarify that connector packages pull in core as dependency
2026-02-05 10:27:46 +00:00

4.4 KiB

AGENTS.md

Instructions for AI coding agents working in the Python codebase.

Key Documentation:

  • DEV_SETUP.md - Development environment setup and available poe tasks
  • CODING_STANDARD.md - Coding standards, docstring format, and performance guidelines

Maintaining Documentation

When making changes to a package, check if the package's AGENTS.md file needs updates. This includes:

  • Adding/removing/renaming public classes or functions
  • Changing the package's purpose or architecture
  • Modifying import paths or usage patterns

Quick Reference

Run uv run poe from the python/ directory to see available commands. See DEV_SETUP.md for detailed usage.

Project Structure

python/
├── packages/
│   ├── core/                 # agent-framework-core (main package)
│   │   ├── agent_framework/  # Public API exports
│   │   └── tests/
│   ├── azure-ai/             # agent-framework-azure-ai
│   ├── anthropic/            # agent-framework-anthropic
│   ├── ollama/               # agent-framework-ollama
│   └── ...                   # Other provider packages
├── samples/                  # Sample code and examples
└── tests/                    # Integration tests

Package Relationships

  • agent-framework-core contains core abstractions and OpenAI/Azure OpenAI built-in
  • Provider packages (azure-ai, anthropic, etc.) extend core with specific integrations
  • Core uses lazy loading via __getattr__ in provider folders (e.g., agent_framework/azure/)

Import Patterns

# Core imports
from agent_framework import ChatAgent, ChatMessage, tool

# Provider imports (lazy-loaded)
from agent_framework.openai import OpenAIChatClient
from agent_framework.azure import AzureOpenAIChatClient, AzureAIAgentClient

Key Conventions

  • Copyright: # Copyright (c) Microsoft. All rights reserved. at top of all .py files
  • Types: Always specify return types and parameter types; use Type | None not Optional
  • Logging: from agent_framework import get_logger (never import logging)
  • Docstrings: Google-style for public APIs
  • Tests: Do not use @pytest.mark.asyncio (auto mode enabled); run only related tests, not the entire suite
  • Line length: 120 characters
  • Comments: Avoid excessive comments; prefer clear code
  • Formatting: Format only files you changed, not the entire codebase

Sample Structure

  1. Copyright header: # Copyright (c) Microsoft. All rights reserved.
  2. Required imports
  3. Module docstring: """This sample demonstrates..."""
  4. Helper functions
  5. Main function(s) demonstrating functionality
  6. Entry point: if __name__ == "__main__": asyncio.run(main())

When modifying samples, update associated README files in the same or parent folders.

Package Documentation

Core

  • core - Core abstractions, types, and built-in OpenAI/Azure OpenAI support

LLM Providers

Azure Integrations

Protocols & UI

  • a2a - Agent-to-Agent protocol
  • ag-ui - AG-UI protocol
  • chatkit - OpenAI ChatKit integration
  • devui - Developer UI for testing

Storage & Memory

  • mem0 - Mem0 memory integration
  • redis - Redis storage

Infrastructure

Experimental

  • lab - Experimental features