-
Notifications
You must be signed in to change notification settings - Fork 1.6k
docs: enhance README with 1.0 features and improved structure #5534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
chetantoshniwal
wants to merge
7
commits into
main
Choose a base branch
from
feature/improve-readme
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+89
−79
Open
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
1554490
docs: enhance README with 1.0 features and improved structure
chetantoshniwal f248be0
Apply suggestions from code review
chetantoshniwal 573aa00
docs: fix .NET quickstart description to match JokerAgent code
Copilot 78a975c
docs: add required NuGet packages for .NET Foundry quickstart
Copilot d642783
docs: sync and apply local README changes
chetantoshniwal 1b7efad
Update README.md
chetantoshniwal 668862c
docs: remove emojis from README
chetantoshniwal File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,8 +6,21 @@ | |
| [](https://learn.microsoft.com/en-us/agent-framework/) | ||
| [](https://pypi.org/project/agent-framework/) | ||
| [](https://www.nuget.org/profiles/MicrosoftAgentFramework/) | ||
| [](https://github.com/microsoft/agent-framework/stargazers) | ||
|
|
||
|
|
||
| Microsoft Agent Framework (MAF) is an open, multi-language framework for building **production-grade AI agents and multi-agent workflows** in **.NET and Python**. | ||
|
|
||
| It is designed for teams moving beyond prototypes who need: | ||
| - a consistent agent programming model with tools, middleware, and provider flexibility, | ||
| - graph-based workflows with checkpointing, streaming, human-in-the-loop, and time-travel, | ||
| - durable and restartable execution for long-running, stateful orchestration, | ||
| - interoperable architectures through MCP and Agent-to-Agent (A2A) communication, | ||
| - built-in observability and tracing with OpenTelemetry, | ||
| - and practical paths to test, host, and operate agents in real production systems. | ||
|
|
||
| MAF supports a broad ecosystem including Microsoft Foundry, Azure OpenAI, OpenAI, and the GitHub Copilot SDK, with samples and hosting patterns for both local development and cloud deployment. | ||
|
|
||
| Welcome to Microsoft's comprehensive multi-language framework for building, orchestrating, and deploying AI agents with support for both .NET and Python implementations. This framework provides everything from simple chat agents to complex multi-agent workflows with graph-based orchestration. | ||
|
|
||
| <p align="center"> | ||
| <a href="https://www.youtube.com/watch?v=AAgdMhftj8w" title="Watch the full Agent Framework introduction (30 min)"> | ||
|
|
@@ -21,10 +34,57 @@ Welcome to Microsoft's comprehensive multi-language framework for building, orch | |
| </a> | ||
| </p> | ||
|
|
||
| ## 📋 Getting Started | ||
| ## Is this the right framework for you? | ||
|
|
||
| ### 📦 Installation | ||
| MAF is a strong fit if you: | ||
| - are building agents and workflows you expect to run in production, | ||
| - need orchestration beyond a single prompt or stateless chat loop, | ||
| - want graph-based patterns such as sequential, concurrent, handoff, and group collaboration, | ||
| - care about durability, restartability, observability, governance, or human-in-the-loop control, | ||
| - need provider flexibility so your architecture can evolve without major rewrites. | ||
|
|
||
| If your scope is limited to experimentation or simple single-prompt chatbots, | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think we need this line, it's implied by the 'strong fit' section. Also, it will be more nuanced with the harness features |
||
| MAF may be more than what you need today. It is intentionally designed for systems where agent behavior, reliability, and operational needs grow over time. | ||
|
|
||
| ## Key Features | ||
| Explore new MAF capabilities and real implementation patterns on the [official blog](https://devblogs.microsoft.com/agent-framework/). | ||
|
|
||
| - **Python and C#/.NET Support**: Full framework support for both Python and C#/.NET implementations with consistent APIs | ||
| - [Python packages](./python/packages/) | [.NET source](./dotnet/src/) | ||
| - **Multiple Agent Provider Support**: Support for various LLM providers with more being added continuously | ||
| - [Python examples](./python/samples/02-agents/providers/) | [.NET examples](./dotnet/samples/02-agents/AgentProviders/) | ||
| - **Middleware**: Flexible middleware system for request/response processing, exception handling, and custom pipelines | ||
| - [Python middleware](./python/samples/02-agents/middleware/) | [.NET middleware](./dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/) | ||
| - **Orchestration Patterns & Workflows**: Build multi-agent systems with graph-based workflows supporting sequential, concurrent, handoff, and group collaboration patterns; includes checkpointing, streaming, human-in-the-loop, and time-travel | ||
| - [Python workflows](./python/samples/03-workflows/) | [.NET workflows](./dotnet/samples/03-workflows/) | ||
| - **Foundry Hosted Agents (new)**: Deploy and host your agents to Foundry-hosted infrastructure with just 2 additional lines of code | ||
| - [Python samples](./python/samples/04-hosting/foundry-hosted-agents/) | [.NET samples](./dotnet/samples/04-hosting/FoundryHostedAgents/) | ||
| - **Observability**: Built-in OpenTelemetry integration for distributed tracing, monitoring, and debugging | ||
| - [Python observability](./python/samples/02-agents/observability/) | [.NET telemetry](./dotnet/samples/02-agents/AgentOpenTelemetry/) | ||
| - **Declarative Agents**: Define agents using YAML for faster setup and versioning | ||
| - [Declarative agent samples](./declarative-agents/) | ||
| - **Agent Skills**: Build domain-specific knowledge bases from multiple sources—files, inline code, class libraries—for agents to discover and use | ||
| - [Skills design](./docs/decisions/0021-agent-skills-design.md) | ||
| - **AF Labs**: Experimental packages for cutting-edge features including benchmarking, reinforcement learning, and research initiatives | ||
| - [Labs directory](./python/packages/lab/) | ||
| - **DevUI**: Interactive developer UI for agent development, testing, and debugging workflows | ||
| - [See the DevUI in action](https://www.youtube.com/watch?v=mOAaGY4WPvc) | ||
|
|
||
| ## Table of Contents | ||
|
|
||
| - [Getting Started](#getting-started) | ||
| - [Installation](#installation) | ||
| - [Learning Resources](#learning-resources) | ||
| - [Quickstart](#quickstart) | ||
| - [Basic Agent - Python](#basic-agent---python) | ||
| - [Basic Agent - .NET](#basic-agent---net) | ||
| - [More Examples & Samples](#more-examples--samples) | ||
| - [Community & Feedback](#community--feedback) | ||
| - [Troubleshooting](#troubleshooting) | ||
| - [Contributor Resources](#contributor-resources) | ||
|
|
||
| ## Getting Started | ||
| ### Installation | ||
| Python | ||
|
|
||
| ```bash | ||
|
|
@@ -37,9 +97,13 @@ pip install agent-framework | |
|
|
||
| ```bash | ||
| dotnet add package Microsoft.Agents.AI | ||
| # For Foundry integration (used in the .NET quickstart below): | ||
| dotnet add package Microsoft.Agents.AI.Foundry | ||
| dotnet add package Azure.AI.Projects | ||
| dotnet add package Azure.Identity | ||
| ``` | ||
|
|
||
| ### 📚 Documentation | ||
| ### Learning Resources | ||
|
|
||
| - **[Overview](https://learn.microsoft.com/agent-framework/overview/agent-framework-overview)** - High level overview of the framework | ||
| - **[Quick Start](https://learn.microsoft.com/agent-framework/tutorials/quick-start)** - Get started with a simple agent | ||
|
|
@@ -48,44 +112,9 @@ dotnet add package Microsoft.Agents.AI | |
| - **[Migration from Semantic Kernel](https://learn.microsoft.com/en-us/agent-framework/migration-guide/from-semantic-kernel)** - Guide to migrate from Semantic Kernel | ||
| - **[Migration from AutoGen](https://learn.microsoft.com/en-us/agent-framework/migration-guide/from-autogen)** - Guide to migrate from AutoGen | ||
|
|
||
| Still have questions? Join our [weekly office hours](./COMMUNITY.md#public-community-office-hours) or ask questions in our [Discord channel](https://discord.gg/b5zjErwbQM) to get help from the team and other users. | ||
|
|
||
| ### ✨ **Highlights** | ||
| ### Quickstart | ||
|
|
||
| - **Graph-based Workflows**: Connect agents and deterministic functions using data flows with streaming, checkpointing, human-in-the-loop, and time-travel capabilities | ||
| - [Python workflows](./python/samples/03-workflows/) | [.NET workflows](./dotnet/samples/03-workflows/) | ||
| - **AF Labs**: Experimental packages for cutting-edge features including benchmarking, reinforcement learning, and research initiatives | ||
| - [Labs directory](./python/packages/lab/) | ||
| - **DevUI**: Interactive developer UI for agent development, testing, and debugging workflows | ||
| - [DevUI package](./python/packages/devui/) | ||
|
|
||
| <p align="center"> | ||
| <a href="https://www.youtube.com/watch?v=mOAaGY4WPvc"> | ||
| <img src="https://img.youtube.com/vi/mOAaGY4WPvc/hqdefault.jpg" alt="See the DevUI in action" width="480"> | ||
| </a> | ||
| </p> | ||
| <p align="center"> | ||
| <a href="https://www.youtube.com/watch?v=mOAaGY4WPvc"> | ||
| See the DevUI in action (1 min) | ||
| </a> | ||
| </p> | ||
|
|
||
| - **Python and C#/.NET Support**: Full framework support for both Python and C#/.NET implementations with consistent APIs | ||
| - [Python packages](./python/packages/) | [.NET source](./dotnet/src/) | ||
| - **Observability**: Built-in OpenTelemetry integration for distributed tracing, monitoring, and debugging | ||
| - [Python observability](./python/samples/02-agents/observability/) | [.NET telemetry](./dotnet/samples/02-agents/AgentOpenTelemetry/) | ||
| - **Multiple Agent Provider Support**: Support for various LLM providers with more being added continuously | ||
| - [Python examples](./python/samples/02-agents/providers/) | [.NET examples](./dotnet/samples/02-agents/AgentProviders/) | ||
| - **Middleware**: Flexible middleware system for request/response processing, exception handling, and custom pipelines | ||
| - [Python middleware](./python/samples/02-agents/middleware/) | [.NET middleware](./dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/) | ||
|
|
||
| ### 💬 **We want your feedback!** | ||
|
|
||
| - For bugs, please file a [GitHub issue](https://github.com/microsoft/agent-framework/issues). | ||
|
|
||
| ## Quickstart | ||
|
|
||
| ### Basic Agent - Python | ||
| #### Basic Agent - Python | ||
|
|
||
| Create a simple Azure Responses Agent that writes a haiku about the Microsoft Agent Framework | ||
|
|
||
|
|
@@ -109,7 +138,7 @@ async def main(): | |
| # project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"], | ||
| # model=os.environ["FOUNDRY_MODEL_DEPLOYMENT_NAME"], | ||
| ), | ||
| name="HaikuBot", | ||
| name="HaikuAgent", | ||
| instructions="You are an upbeat assistant that writes beautifully.", | ||
| ) | ||
|
|
||
|
|
@@ -119,40 +148,24 @@ if __name__ == "__main__": | |
| asyncio.run(main()) | ||
| ``` | ||
|
|
||
| ### Basic Agent - .NET | ||
| Create a simple Agent, using Microsoft Foundry with token-based auth, that writes a haiku about the Microsoft Agent Framework | ||
| #### Basic Agent - .NET | ||
| Create a simple Agent, using Microsoft Foundry that writes a haiku about the Microsoft Agent Framework | ||
|
|
||
|
chetantoshniwal marked this conversation as resolved.
|
||
| ```c# | ||
| // dotnet add package Microsoft.Agents.AI.Foundry | ||
| // Use `az login` to authenticate with Azure CLI | ||
| using Azure.AI.Projects; | ||
| using Azure.Identity; | ||
| using System; | ||
| // This sample shows how to create and run a basic agent with AIProjectClient.AsAIAgent(...). | ||
|
|
||
| using Azure.AI.Projects; | ||
| using Azure.Identity; | ||
| using Microsoft.Agents.AI; | ||
|
|
||
|
chetantoshniwal marked this conversation as resolved.
|
||
| var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); | ||
| var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-5.4-mini"; | ||
|
|
||
| var agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential()) | ||
| .AsAIAgent(model: deploymentName, name: "HaikuBot", instructions: "You are an upbeat assistant that writes beautifully."); | ||
|
|
||
| Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework.")); | ||
| ``` | ||
|
|
||
| Create a simple Agent, using OpenAI Responses, that writes a haiku about the Microsoft Agent Framework | ||
|
|
||
| ```c# | ||
| // dotnet add package Microsoft.Agents.AI.OpenAI | ||
| using System; | ||
| using OpenAI; | ||
| using OpenAI.Responses; | ||
| string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); | ||
| string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-5.4-mini"; | ||
|
|
||
| // Replace the <apikey> with your OpenAI API key. | ||
| var agent = new OpenAIClient("<apikey>") | ||
| .GetResponsesClient() | ||
| .AsAIAgent(model: "gpt-5.4-mini", name: "HaikuBot", instructions: "You are an upbeat assistant that writes beautifully."); | ||
| AIAgent agent = | ||
| new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential()) | ||
| .AsAIAgent(model: deploymentName, instructions: "You are an upbeat assistant that writes beautifully.", name: "HaikuAgent"); | ||
|
|
||
| // Once you have the agent, you can invoke it like any other AIAgent. | ||
| Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework.")); | ||
| ``` | ||
|
|
||
|
|
@@ -175,6 +188,12 @@ Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Fram | |
| - [Hosting](./dotnet/samples/04-hosting): A2A, Durable Agents, Durable Workflows | ||
| - [End-to-End](./dotnet/samples/05-end-to-end): full applications and demos | ||
|
|
||
| ## Community & Feedback | ||
|
|
||
| - **Found a bug?** File a [GitHub issue](https://github.com/microsoft/agent-framework/issues) to help us improve. | ||
| - **Enjoying MAF?** [](https://github.com/microsoft/agent-framework) to show your support and help others discover the project. | ||
| - **Have questions?** Join our [Discord](https://discord.gg/b5zjErwbQM) or visit [weekly office hours](./COMMUNITY.md#public-community-office-hours). | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| ### Authentication | ||
|
|
@@ -187,16 +206,7 @@ Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Fram | |
| > **Tip:** `DefaultAzureCredential` is convenient for development but in production, consider using a specific credential (e.g., `ManagedIdentityCredential`) to avoid latency issues, unintended credential probing, and potential security risks from fallback mechanisms. | ||
|
|
||
| ### Environment Variables | ||
|
|
||
| The samples typically read configuration from environment variables. Common required variables: | ||
|
|
||
| | Variable | Used by | Purpose | | ||
| |----------|---------|---------| | ||
| | `AZURE_OPENAI_ENDPOINT` | Azure OpenAI samples | Your Azure OpenAI resource URL | | ||
| | `AZURE_OPENAI_DEPLOYMENT_NAME` | Azure OpenAI samples | Model deployment name (e.g. `gpt-4o-mini`) | | ||
| | `AZURE_AI_PROJECT_ENDPOINT` | Microsoft Foundry samples | Your Microsoft Foundry project endpoint | | ||
| | `AZURE_AI_MODEL_DEPLOYMENT_NAME` | Microsoft Foundry samples | Model deployment name | | ||
| | `OPENAI_API_KEY` | OpenAI (non-Azure) samples | Your OpenAI platform API key | | ||
| For environment variable configuration specific to each sample, refer to the README in the sample directory ([Python samples](./python/samples/) | [.NET samples](./dotnet/samples/)). | ||
|
|
||
| ## Contributor Resources | ||
|
|
||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This content is duplicated below (Key Features), I think we only need it once, and I think I like the later section better