What is Microsoft AutoGen? How it works and how to evaluate it

Build agents
HoneyHive Engineering

Microsoft AutoGen is an open-source multi-agent framework that Microsoft has archived in favor of Microsoft Agent Framework. What it is and how to trace it.

Microsoft AutoGen is an open-source framework for building applications where several LLM agents work together, with or without a person in the loop. It started as a Microsoft Research project, and Microsoft has since archived it. The repository now says the project “is no longer actively maintained by Microsoft” and that “New users should start with Microsoft Agent Framework.”

Where it came from

The AutoGen paper (Wu et al., first submitted in August 2023) describes agents that are customizable and can combine LLMs, human input and tools, with interactions defined in natural language and code. Its core idea is multi-agent conversation: agents pass messages to each other until the task is done. For the wider topic, see multi-agent systems and agent orchestration.

How AutoGen is built

According to the README, AutoGen has three layers:

Layer What it does
Core Message passing, event-driven agents, and local and distributed runtimes, for Python and .NET
AgentChat A higher-level API for prototyping, built on Core, with two-agent chats and group chats
Extensions First- and third-party additions such as LLM clients (OpenAI, AzureOpenAI) and code execution

Two tools sit alongside: AutoGen Studio, a no-code GUI for prototyping, and AutoGen Bench, a benchmarking suite. The README lists Python 3.10 or later and installs AgentChat with pip install -U "autogen-agentchat" "autogen-ext[openai]".

Teams in AgentChat

AgentChat’s teams tutorial is where the orchestration choices live:

Team How the next speaker is chosen
RoundRobinGroupChat Fixed turn order; each response goes to every other agent
SelectorGroupChat A chat model picks the next speaker after each message
Swarm The current agent hands off with a HandoffMessage
MagenticOneGroupChat A generalist team for open-ended web and file tasks

A team stops when a termination condition fires, such as TextMentionTermination, TextMessageTermination or ExternalTermination. Conditions combine with the | operator. The tutorial’s round-robin setup is:

text_termination = TextMentionTermination("APPROVE")
team = RoundRobinGroupChat([primary_agent, critic_agent], termination_condition=text_termination)

AutoGen and Microsoft Agent Framework

Microsoft’s migration guide says Agent Framework is developed by the core AutoGen and Semantic Kernel teams. It lists the differences that matter when you port code:

  • AutoGen pairs an event-driven core with a high-level Team; Agent Framework centers on a typed, graph-based Workflow.
  • AssistantAgent is single-turn unless you raise max_tool_iterations; Agent Framework’s Agent is multi-turn by default and keeps calling tools until it has a final answer.
  • AutoGen has embedded and experimental distributed runtimes; the guide says Agent Framework focuses on single-process composition, with distributed execution planned.
  • The guide’s model client table still lists Anthropic and Ollama as planned, but as of November 2026 Agent Framework has Anthropic and Ollama providers, installed as prerelease packages (agent-framework-anthropic, agent-framework-ollama). The table marks AutoGen’s ChatCompletionCache response caching as planned.

The Semantic Kernel and Agent Framework page covers the successor itself.

Evaluating and tracing AutoGen agents

AutoGen has native OpenTelemetry support: runtime tracing, execute_tool spans for tools, and create_agent and invoke_agent spans for chat agents. That means the traces are standard OpenTelemetry and can go to any backend. For what to look at in them, see agent observability and testing AI agents.

With HoneyHive, install the AgentChat instrumentor and initialize the tracer before you create agents:

pip install honeyhive autogen-agentchat "autogen-ext[openai]" \
    openinference-instrumentation-autogen-agentchat
from honeyhive import HoneyHiveTracer
from openinference.instrumentation.autogen_agentchat import AutogenAgentChatInstrumentor

tracer = HoneyHiveTracer.init()  # reads HH_INGESTION_API_KEY from env
instrumentor = AutogenAgentChatInstrumentor()
instrumentor.instrument(tracer_provider=tracer.provider)

The integration page says this captures agent and team runs, LLM calls made through OpenAIChatCompletionClient with token usage, tool executions, and handoffs in Swarm and SelectorGroupChat teams. Call tracer.force_flush() before the process exits. If you only see OpenAI spans, the OpenAI instrumentor is installed instead of the AgentChat one.

FAQ

Is Microsoft AutoGen still maintained?

No. The GitHub README says the project "has been archived and is no longer actively maintained by Microsoft" and that Microsoft is not providing bug fixes, security fixes, new features or support.

What replaces AutoGen?

Microsoft Agent Framework. The README says "New users should start with Microsoft Agent Framework," and a migration guide maps AutoGen concepts to it.

Is AutoGen free?

Yes. The repository licenses the code under the MIT License and the documentation under CC-BY-4.0.

What is AutoGen Studio?

A no-code GUI for building multi-agent workflows. The README describes it as meant for prototyping, not production.

How do I trace an AutoGen agent?

AutoGen has native OpenTelemetry support, and HoneyHive traces AgentChat through the open-source OpenInference AgentChat instrumentor. Setup is on the HoneyHive AutoGen integration page.

Share