mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
eaad042241
* 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
4.4 KiB
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-corecontains 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.pyfiles - Types: Always specify return types and parameter types; use
Type | NonenotOptional - Logging:
from agent_framework import get_logger(neverimport 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
- 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())
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
- anthropic - Anthropic Claude API
- bedrock - AWS Bedrock
- claude - Claude Agent SDK
- foundry_local - Azure AI Foundry Local
- ollama - Local Ollama inference
Azure Integrations
- azure-ai - Azure AI Foundry agents
- azure-ai-search - Azure AI Search RAG
- azurefunctions - Azure Functions hosting
Protocols & UI
- a2a - Agent-to-Agent protocol
- ag-ui - AG-UI protocol
- chatkit - OpenAI ChatKit integration
- devui - Developer UI for testing
Storage & Memory
Infrastructure
- copilotstudio - Microsoft Copilot Studio
- declarative - YAML/JSON agent definitions
- durabletask - Durable execution
- github_copilot - GitHub Copilot extensions
- purview - Data governance
Experimental
- lab - Experimental features