Files
agent-framework/python/samples
T
copilot-swe-agent[bot] 9843355c83 Move Python durable samples to durable directory
- Moved getting_started/durabletask to durable/console_apps
- Moved getting_started/azure_functions to durable/azure_functions
- Updated all paths in README files
- Created durable/README.md with overview
- Updated main samples README.md with new structure

Co-authored-by: larohra <41490930+larohra@users.noreply.github.com>
9843355c83 ยท 2026-01-30 22:25:01 +00:00
History
..
2025-07-28 07:33:42 +00:00

Python Samples

This directory contains samples demonstrating the capabilities of Microsoft Agent Framework for Python.

Agents

A2A (Agent-to-Agent)

File Description
getting_started/agents/a2a/agent_with_a2a.py Agent2Agent (A2A) Protocol Integration Sample

Anthropic

File Description
getting_started/agents/anthropic/anthropic_basic.py Agent with Anthropic Client
getting_started/agents/anthropic/anthropic_advanced.py Advanced sample with thinking and hosted tools.

Azure AI (based on azure-ai-agents V1 package)

File Description
getting_started/agents/azure_ai_agent/azure_ai_basic.py Azure AI Agent Basic Example
getting_started/agents/azure_ai_agent/azure_ai_with_azure_ai_search.py Azure AI Agent with Azure AI Search Example
getting_started/agents/azure_ai_agent/azure_ai_with_bing_grounding.py Azure AI agent with Bing Grounding search for real-time web information
getting_started/agents/azure_ai_agent/azure_ai_with_code_interpreter.py Azure AI Agent with Code Interpreter Example
getting_started/agents/azure_ai_agent/azure_ai_with_code_interpreter_file_generation.py Azure AI Agent with Code Interpreter File Generation Example
getting_started/agents/azure_ai_agent/azure_ai_with_existing_agent.py Azure AI Agent with Existing Agent Example
getting_started/agents/azure_ai_agent/azure_ai_with_existing_thread.py Azure AI Agent with Existing Thread Example
getting_started/agents/azure_ai_agent/azure_ai_with_explicit_settings.py Azure AI Agent with Explicit Settings Example
getting_started/agents/azure_ai_agent/azure_ai_with_file_search.py Azure AI agent with File Search capabilities
getting_started/agents/azure_ai_agent/azure_ai_with_function_tools.py Azure AI Agent with Function Tools Example
getting_started/agents/azure_ai_agent/azure_ai_with_hosted_mcp.py Azure AI Agent with Hosted MCP Example
getting_started/agents/azure_ai_agent/azure_ai_with_local_mcp.py Azure AI Agent with Local MCP Example
getting_started/agents/azure_ai_agent/azure_ai_with_multiple_tools.py Azure AI Agent with Multiple Tools Example
getting_started/agents/azure_ai_agent/azure_ai_with_openapi_tools.py Azure AI agent with OpenAPI tools
getting_started/agents/azure_ai_agent/azure_ai_with_thread.py Azure AI Agent with Thread Management Example

Azure AI (based on azure-ai-projects V2 package)

File Description
getting_started/agents/azure_ai/azure_ai_basic.py Azure AI Agent Basic Example
getting_started/agents/azure_ai/azure_ai_use_latest_version.py Azure AI Agent latest version reuse example
getting_started/agents/azure_ai/azure_ai_with_azure_ai_search.py Azure AI Agent with Azure AI Search Example
getting_started/agents/azure_ai/azure_ai_with_bing_grounding.py Azure AI Agent with Bing Grounding Example
getting_started/agents/azure_ai/azure_ai_with_bing_custom_search.py Azure AI Agent with Bing Custom Search Example
getting_started/agents/azure_ai/azure_ai_with_browser_automation.py Azure AI Agent with Browser Automation Example
getting_started/agents/azure_ai/azure_ai_with_code_interpreter.py Azure AI Agent with Code Interpreter Example
getting_started/agents/azure_ai/azure_ai_with_code_interpreter_file_generation.py Azure AI Agent with Code Interpreter File Generation Example
getting_started/agents/azure_ai/azure_ai_with_existing_agent.py Azure AI Agent with Existing Agent Example
getting_started/agents/azure_ai/azure_ai_with_existing_conversation.py Azure AI Agent with Existing Conversation Example
getting_started/agents/azure_ai/azure_ai_with_explicit_settings.py Azure AI Agent with Explicit Settings Example
getting_started/agents/azure_ai/azure_ai_with_file_search.py Azure AI Agent with File Search Example
getting_started/agents/azure_ai/azure_ai_with_hosted_mcp.py Azure AI Agent with Hosted MCP Example
getting_started/agents/azure_ai/azure_ai_with_response_format.py Azure AI Agent with Structured Output Example
getting_started/agents/azure_ai/azure_ai_with_thread.py Azure AI Agent with Thread Management Example
getting_started/agents/azure_ai/azure_ai_with_image_generation.py Azure AI Agent with Image Generation Example
getting_started/agents/azure_ai/azure_ai_with_microsoft_fabric.py Azure AI Agent with Microsoft Fabric Example
getting_started/agents/azure_ai/azure_ai_with_web_search.py Azure AI Agent with Web Search Example

Azure OpenAI

File Description
getting_started/agents/azure_openai/azure_assistants_basic.py Azure OpenAI Assistants Basic Example
getting_started/agents/azure_openai/azure_assistants_with_code_interpreter.py Azure OpenAI Assistants with Code Interpreter Example
getting_started/agents/azure_openai/azure_assistants_with_existing_assistant.py Azure OpenAI Assistants with Existing Assistant Example
getting_started/agents/azure_openai/azure_assistants_with_explicit_settings.py Azure OpenAI Assistants with Explicit Settings Example
getting_started/agents/azure_openai/azure_assistants_with_function_tools.py Azure OpenAI Assistants with Function Tools Example
getting_started/agents/azure_openai/azure_assistants_with_thread.py Azure OpenAI Assistants with Thread Management Example
getting_started/agents/azure_openai/azure_chat_client_basic.py Azure OpenAI Chat Client Basic Example
getting_started/agents/azure_openai/azure_chat_client_with_explicit_settings.py Azure OpenAI Chat Client with Explicit Settings Example
getting_started/agents/azure_openai/azure_chat_client_with_function_tools.py Azure OpenAI Chat Client with Function Tools Example
getting_started/agents/azure_openai/azure_chat_client_with_thread.py Azure OpenAI Chat Client with Thread Management Example
getting_started/agents/azure_openai/azure_responses_client_basic.py Azure OpenAI Responses Client Basic Example
getting_started/agents/azure_openai/azure_responses_client_image_analysis.py Azure OpenAI Responses Client with Image Analysis Example
getting_started/agents/azure_openai/azure_responses_client_with_code_interpreter.py Azure OpenAI Responses Client with Code Interpreter Example
getting_started/agents/azure_openai/azure_responses_client_with_explicit_settings.py Azure OpenAI Responses Client with Explicit Settings Example
getting_started/agents/azure_openai/azure_responses_client_with_function_tools.py Azure OpenAI Responses Client with Function Tools Example
getting_started/agents/azure_openai/azure_responses_client_with_hosted_mcp.py Azure OpenAI Responses Client with Hosted Model Context Protocol (MCP) Example
getting_started/agents/azure_openai/azure_responses_client_with_local_mcp.py Azure OpenAI Responses Client with local Model Context Protocol (MCP) Example
getting_started/agents/azure_openai/azure_responses_client_with_thread.py Azure OpenAI Responses Client with Thread Management Example

Copilot Studio

File Description
getting_started/agents/copilotstudio/copilotstudio_basic.py Copilot Studio Agent Basic Example
getting_started/agents/copilotstudio/copilotstudio_with_explicit_settings.py Copilot Studio Agent with Explicit Settings Example

Custom

File Description
getting_started/agents/custom/custom_agent.py Custom Agent Implementation Example
getting_started/agents/custom/custom_chat_client.py Custom Chat Client Implementation Example

Ollama

The recommended way to use Ollama is via the native OllamaChatClient from the agent-framework-ollama package.

File Description
getting_started/agents/ollama/ollama_agent_basic.py Basic Ollama Agent with native Ollama Chat Client
getting_started/agents/ollama/ollama_agent_reasoning.py Ollama Agent with reasoning capabilities
getting_started/agents/ollama/ollama_chat_client.py Direct usage of Ollama Chat Client
getting_started/agents/ollama/ollama_chat_multimodal.py Ollama Chat Client with multimodal (image) input
getting_started/agents/ollama/ollama_with_openai_chat_client.py Alternative: Ollama via OpenAI Chat Client

OpenAI

File Description
getting_started/agents/openai/openai_assistants_basic.py OpenAI Assistants Basic Example
getting_started/agents/openai/openai_assistants_with_code_interpreter.py OpenAI Assistants with Code Interpreter Example
getting_started/agents/openai/openai_assistants_with_existing_assistant.py OpenAI Assistants with Existing Assistant Example
getting_started/agents/openai/openai_assistants_with_explicit_settings.py OpenAI Assistants with Explicit Settings Example
getting_started/agents/openai/openai_assistants_with_file_search.py OpenAI Assistants with File Search Example
getting_started/agents/openai/openai_assistants_with_function_tools.py OpenAI Assistants with Function Tools Example
getting_started/agents/openai/openai_assistants_with_thread.py OpenAI Assistants with Thread Management Example
getting_started/agents/openai/openai_chat_client_basic.py OpenAI Chat Client Basic Example
getting_started/agents/openai/openai_chat_client_with_explicit_settings.py OpenAI Chat Client with Explicit Settings Example
getting_started/agents/openai/openai_chat_client_with_function_tools.py OpenAI Chat Client with Function Tools Example
getting_started/agents/openai/openai_chat_client_with_local_mcp.py OpenAI Chat Client with Local MCP Example
getting_started/agents/openai/openai_chat_client_with_thread.py OpenAI Chat Client with Thread Management Example
getting_started/agents/openai/openai_chat_client_with_web_search.py OpenAI Chat Client with Web Search Example
getting_started/agents/openai/openai_chat_client_with_runtime_json_schema.py OpenAI Chat Client with runtime JSON Schema for structured output without a Pydantic model
getting_started/agents/openai/openai_responses_client_basic.py OpenAI Responses Client Basic Example
getting_started/agents/openai/openai_responses_client_image_analysis.py OpenAI Responses Client Image Analysis Example
getting_started/agents/openai/openai_responses_client_image_generation.py OpenAI Responses Client Image Generation Example
getting_started/agents/openai/openai_responses_client_reasoning.py OpenAI Responses Client Reasoning Example
getting_started/agents/openai/openai_responses_client_with_code_interpreter.py OpenAI Responses Client with Code Interpreter Example
getting_started/agents/openai/openai_responses_client_with_explicit_settings.py OpenAI Responses Client with Explicit Settings Example
getting_started/agents/openai/openai_responses_client_with_file_search.py OpenAI Responses Client with File Search Example
getting_started/agents/openai/openai_responses_client_with_function_tools.py OpenAI Responses Client with Function Tools Example
getting_started/agents/openai/openai_responses_client_with_hosted_mcp.py OpenAI Responses Client with Hosted MCP Example
getting_started/agents/openai/openai_responses_client_with_local_mcp.py OpenAI Responses Client with Local MCP Example
getting_started/agents/openai/openai_responses_client_with_structured_output.py OpenAI Responses Client with Structured Output Example
getting_started/agents/openai/openai_responses_client_with_thread.py OpenAI Responses Client with Thread Management Example
getting_started/agents/openai/openai_responses_client_with_web_search.py OpenAI Responses Client with Web Search Example

Chat Client

File Description
getting_started/chat_client/azure_ai_chat_client.py Azure AI Chat Client Direct Usage Example
getting_started/chat_client/azure_assistants_client.py Azure OpenAI Assistants Client Direct Usage Example
getting_started/chat_client/azure_chat_client.py Azure Chat Client Direct Usage Example
getting_started/chat_client/azure_responses_client.py Azure OpenAI Responses Client Direct Usage Example
getting_started/chat_client/chat_response_cancellation.py Chat Response Cancellation Example
getting_started/chat_client/openai_assistants_client.py OpenAI Assistants Client Direct Usage Example
getting_started/chat_client/openai_chat_client.py OpenAI Chat Client Direct Usage Example
getting_started/chat_client/openai_responses_client.py OpenAI Responses Client Direct Usage Example

Context Providers

Mem0

File Description
getting_started/context_providers/mem0/mem0_basic.py Basic Mem0 integration example
getting_started/context_providers/mem0/mem0_oss.py Mem0 OSS (Open Source) integration example
getting_started/context_providers/mem0/mem0_threads.py Mem0 with thread management example

Redis

File Description
getting_started/context_providers/redis/redis_basics.py Basic Redis provider example
getting_started/context_providers/redis/redis_conversation.py Redis conversation context management example
getting_started/context_providers/redis/redis_threads.py Redis with thread management example

Other

File Description
getting_started/context_providers/simple_context_provider.py Simple context provider implementation example
getting_started/context_providers/aggregate_context_provider.py Shows how to combine multiple context providers using an AggregateContextProvider

Declarative

File Description
getting_started/declarative/azure_openai_responses_agent.py Basic agent using Azure OpenAI with structured responses
getting_started/declarative/get_weather_agent.py Agent with custom function tools using declarative bindings
getting_started/declarative/inline_yaml.py Agent created from inline YAML string
getting_started/declarative/mcp_tool_yaml.py MCP tool configuration with API key and Azure Foundry connection auth
getting_started/declarative/microsoft_learn_agent.py Agent with MCP server integration for Microsoft Learn documentation
getting_started/declarative/openai_responses_agent.py Basic agent using OpenAI directly

DevUI

File Description
getting_started/devui/fanout_workflow/workflow.py Complex fan-out/fan-in workflow example
getting_started/devui/foundry_agent/agent.py Azure AI Foundry agent example
getting_started/devui/in_memory_mode.py In-memory mode example for DevUI
getting_started/devui/spam_workflow/workflow.py Spam detection workflow example
getting_started/devui/weather_agent_azure/agent.py Weather agent using Azure OpenAI example
getting_started/devui/workflow_agents/workflow.py Workflow with multiple agents example

Evaluation

File Description
getting_started/evaluation/red_teaming/red_team_agent_sample.py Red team agent evaluation sample for Azure AI Foundry
getting_started/evaluation/self_reflection/self_reflection.py LLM self-reflection with AI Foundry graders example
demos/workflow_evaluation/run_evaluation.py Multi-agent workflow evaluation demo with travel planning agents evaluated using Azure AI Foundry evaluators

MCP (Model Context Protocol)

File Description
getting_started/mcp/agent_as_mcp_server.py Agent as MCP Server Example
getting_started/mcp/mcp_api_key_auth.py MCP Authentication Example

Middleware

File Description
getting_started/middleware/agent_and_run_level_middleware.py Agent and run-level middleware example
getting_started/middleware/chat_middleware.py Chat middleware example
getting_started/middleware/class_based_middleware.py Class-based middleware implementation example
getting_started/middleware/decorator_middleware.py Decorator-based middleware example
getting_started/middleware/exception_handling_with_middleware.py Exception handling with middleware example
getting_started/middleware/function_based_middleware.py Function-based middleware example
getting_started/middleware/middleware_termination.py Middleware termination example
getting_started/middleware/override_result_with_middleware.py Override result with middleware example
getting_started/middleware/runtime_context_delegation.py Runtime context delegation example demonstrating how to pass API tokens, session data, and other context through hierarchical agent delegation
getting_started/middleware/shared_state_middleware.py Shared state middleware example
getting_started/middleware/thread_behavior_middleware.py Thread behavior middleware example demonstrating how to track conversation state across multiple agent runs

Multimodal Input

File Description
getting_started/multimodal_input/azure_chat_multimodal.py Azure OpenAI Chat with multimodal (image) input example
getting_started/multimodal_input/azure_responses_multimodal.py Azure OpenAI Responses with multimodal (image) input example
getting_started/multimodal_input/openai_chat_multimodal.py OpenAI Chat with multimodal (image) input example

Durable

These samples demonstrate durable agent hosting patterns using the Durable Task Scheduler and Azure Functions with Durable Extension.

Azure Functions

Sample Description
durable/azure_functions/01_single_agent/ Host a single agent in Azure Functions with Durable Extension HTTP endpoints and per-session state.
durable/azure_functions/02_multi_agent/ Register multiple agents in one function app with dedicated run routes and a health check endpoint.
durable/azure_functions/03_reliable_streaming/ Implement reliable streaming for durable agents using Redis Streams with cursor-based resumption.
durable/azure_functions/04_single_agent_orchestration_chaining/ Chain sequential agent executions inside a durable orchestration while preserving the shared thread context.
durable/azure_functions/05_multi_agent_orchestration_concurrency/ Run two agents concurrently within a durable orchestration and combine their domain-specific outputs.
durable/azure_functions/06_multi_agent_orchestration_conditionals/ Route orchestration logic based on structured agent responses for spam detection and reply drafting.
durable/azure_functions/07_single_agent_orchestration_hitl/ Implement a human-in-the-loop approval loop that iterates on agent output inside a durable orchestration.
durable/azure_functions/08_mcp_server/ Configure agents as both HTTP endpoints and MCP tools for flexible integration patterns.

Console Apps

These samples demonstrate durable agent hosting using the Durable Task Scheduler with a worker-client architecture pattern, enabling distributed agent execution with persistent conversation state.

Sample Description
durable/console_apps/01_single_agent/ Host a single conversational agent with worker-client architecture and agent state management.
durable/console_apps/02_multi_agent/ Host multiple domain-specific agents and route requests based on question topic.
durable/console_apps/03_single_agent_streaming/ Implement reliable streaming using Redis Streams with cursor-based resumption for durable agents.
durable/console_apps/04_single_agent_orchestration_chaining/ Chain multiple agent invocations using durable orchestration while preserving conversation context.
durable/console_apps/05_multi_agent_orchestration_concurrency/ Run multiple agents concurrently within an orchestration and aggregate their responses.
durable/console_apps/06_multi_agent_orchestration_conditionals/ Implement conditional branching with spam detection using structured outputs and activity functions.
durable/console_apps/07_single_agent_orchestration_hitl/ Human-in-the-loop pattern with external event handling, timeouts, and iterative refinement.

Observability

File Description
getting_started/observability/advanced_manual_setup_console_output.py Advanced manual observability setup with console output
getting_started/observability/advanced_zero_code.py Zero-code observability setup example
getting_started/observability/agent_observability.py Agent observability example
getting_started/observability/agent_with_foundry_tracing.py Any chat client setup with Azure Foundry Observability
getting_started/observability/azure_ai_agent_observability.py Azure AI agent observability example
getting_started/observability/configure_otel_providers_with_env_var.py Setup observability using environment variables
getting_started/observability/configure_otel_providers_with_parameters.py Setup observability using parameters
getting_started/observability/workflow_observability.py Workflow observability example

Threads

File Description
getting_started/threads/custom_chat_message_store_thread.py Implementation of custom chat message store state
getting_started/threads/redis_chat_message_store_thread.py Basic example of using Redis chat message store
getting_started/threads/suspend_resume_thread.py Demonstrates how to suspend and resume a service-managed thread

Tools

Note: Many tool samples set approval_mode="never_require" to keep the examples concise. For production scenarios, keep approval_mode="always_require" unless you are confident in the tool behavior and approval flow. See getting_started/tools/function_tool_with_approval.py and getting_started/tools/function_tool_with_approval_and_threads.py, plus the workflow approval samples in getting_started/workflows/tool-approval/, for end-to-end approval handling.

File Description
getting_started/tools/function_tool_declaration_only.py Function declarations without implementations for testing agent reasoning
getting_started/tools/function_tool_from_dict_with_dependency_injection.py Creating local tools from dictionary definitions using dependency injection
getting_started/tools/function_tool_recover_from_failures.py Graceful error handling when tools raise exceptions
getting_started/tools/function_tool_with_approval.py User approval workflows for function calls without threads
getting_started/tools/function_tool_with_approval_and_threads.py Tool approval workflows using threads for conversation history management
getting_started/tools/function_tool_with_max_exceptions.py Limiting tool failure exceptions using max_invocation_exceptions
getting_started/tools/function_tool_with_max_invocations.py Limiting total tool invocations using max_invocations
getting_started/tools/tool_in_class.py Using the tool decorator with class methods for stateful tools

Workflows

View the list of Workflows samples here.

Sample Guidelines

For information on creating new samples, see SAMPLE_GUIDELINES.md.

More Information