The old "LangGraph versus AutoGen" comparison now hides four different decisions. LangGraph is on a stable 1.x runtime. Microsoft AutoGen is in maintenance mode. Microsoft Agent Framework reached 1.0 for Python and .NET. AG2 1.x is an independently governed active framework, while its classic autogen API moved to a separate maintenance repository.

That lifecycle split matters more than syntax. A greenfield team should compare active runtimes. An existing AutoGen team should compare migration paths, state compatibility, operational risk, and the cost of staying pinned.

Key Takeaways

  • LangGraph 1.x is a low-level graph runtime for explicit state, persistence, interrupts, and replay.
  • Microsoft Agent Framework 1.0 is Microsoft's supported successor to AutoGen and Semantic Kernel for Python and .NET; its separate Go SDK is still preview.
  • Microsoft AutoGen remains usable for existing systems, but its repository says it receives no new features or enhancements.
  • AG2 1.x uses the ag2 package and new protocol-oriented APIs; AG2 Classic keeps the old autogen and ConversableAgent line in maintenance mode.
  • A migration is a behavioral rewrite around state, tools, side effects, and recovery, not an import rename.

Start With the Correct Project Identity

The name "AutoGen" can now refer to incompatible package lines:

Line Current role Package or import Lifecycle
LangGraph Low-level stateful orchestration runtime langgraph Stable 1.x
Microsoft AutoGen AgentChat and event-driven Core autogen-agentchat, autogen-core, autogen-ext Maintenance mode
Microsoft Agent Framework Microsoft successor with agents and typed workflows agent-framework, Microsoft.Agents.AI Stable 1.0 core
Microsoft Agent Framework for Go Separate Go implementation github.com/microsoft/agent-framework-go Public preview
AG2 Protocol-oriented active framework ag2, import ag2 Active 1.x
AG2 Classic ConversableAgent and GroupChat lineage autogen Maintenance mode

Do not infer compatibility from names. Record the repository, distribution, import path, exact version, state format, and owner for every deployed service.

Compare Architecture, Not Brand

LangGraph models a workflow as state transitions. Nodes return partial updates, reducers merge channels, and edges choose subsequent work. A persistent checkpointer plus a stable thread identifier enables pause, replay, and recovery. The runtime can mix deterministic functions with model-driven steps and does not require multiple agents.

Microsoft AutoGen combines a lower-level event-driven Core with higher-level AgentChat teams. That architecture remains available for existing deployments, but maintenance mode changes the risk calculation. It is no longer a neutral greenfield alternative to an actively developed runtime.

Microsoft Agent Framework separates agents from typed workflows. An agent owns model interaction and tool use; a workflow routes typed messages between agents and deterministic executors. Version 1.0 stabilized the Python and .NET core. The Go SDK implements many of the same concepts, but its repository explicitly labels it preview and publishes a feature-gap matrix.

AG2 1.x is not the classic AutoGen conversation API with a new version number. Its v1 release moved the new protocol-oriented runtime to the ag2 package and moved ConversableAgent, GroupChat, and import autogen to AG2 Classic. Existing classic code can stay pinned, but adopting active AG2 means planning an API and state migration.

When Multi-Agent Is Worth the Cost

Multiple agents are justified when they create a real boundary:

  • different credentials or data scopes;
  • independently testable specialist work;
  • parallel tasks with measurable wall-clock benefit;
  • separate ownership or approval responsibilities;
  • context isolation that reduces accidental disclosure.

A task that is merely multi-step usually needs a workflow, not more agents. Start with deterministic code or one bounded AI agent, then add coordination only when an evaluation proves the benefit. The multi-agent systems guide covers the broader architecture.

State and Recovery Decide the Real Fit

Framework feature tables often collapse five different data classes:

Data class Required property
Run state Versioned transitions and terminal states
Checkpoint Durable resume point with stable run identity
Long-term memory Consent, provenance, retention, and deletion
External effect Idempotency, receipt, reconciliation, and compensation
Audit event Immutable evidence with privacy controls

LangGraph checkpoints save thread state, but replay starts from a node or entrypoint, not the exact source line. Microsoft Agent Framework checkpoints preserve workflow progress, but they cannot prove whether an external payment committed. AG2 streams and persistence adapters still need application-defined outcome semantics. No framework turns a remote side effect into an exactly-once transaction.

Build a Migration Manifest

Before changing runtimes, turn the migration into data. This standard-library Go example rejects an incomplete plan:

go
package main

import (
	"errors"
	"fmt"
)

type MigrationPlan struct {
	Source           string
	Target           string
	StateMapped      bool
	EffectsMapped    bool
	ReplayTested     bool
	RollbackPrepared bool
}

func validate(plan MigrationPlan) error {
	if plan.Source == "" || plan.Target == "" || plan.Source == plan.Target {
		return errors.New("distinct source and target are required")
	}
	if !plan.StateMapped {
		return errors.New("state schema has not been mapped")
	}
	if !plan.EffectsMapped {
		return errors.New("external effects have no migration contract")
	}
	if !plan.ReplayTested || !plan.RollbackPrepared {
		return errors.New("replay and rollback evidence are required")
	}
	return nil
}

func main() {
	plan := MigrationPlan{
		Source:           "microsoft-autogen",
		Target:           "microsoft-agent-framework",
		StateMapped:      true,
		EffectsMapped:    true,
		ReplayTested:     true,
		RollbackPrepared: true,
	}
	if err := validate(plan); err != nil {
		panic(err)
	}
	fmt.Printf("migration approved: %s -> %s\n", plan.Source, plan.Target)
}

The manifest should also pin model clients, tool schemas, prompts, middleware order, persistence adapters, deployment topology, and evaluator versions.

Selection Matrix

Use the following as hypotheses to test, not a universal ranking:

Workload Candidate to test first Main risk to verify
Explicit branches, durable state, replay, approval LangGraph 1.x Reducer invariants, persistent checkpointer, replayed side effects
New Python or .NET Microsoft-stack service Microsoft Agent Framework 1.0 Provider parity, workflow semantics, hosted integration maturity
New Go service aligned with Microsoft tooling MAF Go preview Missing features, API churn, support and rollback policy
New protocol-oriented agent network AG2 1.x Integration maturity, stream persistence, tool governance
Existing Microsoft AutoGen application Stay pinned temporarily or migrate to MAF Maintenance burden and state mapping
Existing classic ConversableAgent application Stay on AG2 Classic or migrate to AG2 1.x Non-drop-in API and orchestration changes

The broader AI agent framework decision guide compares more runtimes and operational dimensions.

Production Controls That Survive Any Migration

  • Authenticate the principal and tenant outside the model.
  • Enforce object-level authorization on every tool call.
  • Bind approvals to canonical arguments and a resource version.
  • Run generated code without ambient credentials and with network limits.
  • Use stable operation IDs and reconcile timeout-unknown results.
  • Bound steps, wall time, tokens, cost, concurrency, and fan-out.
  • Treat model output, peer messages, retrieved documents, and tool results as untrusted.
  • Retain trace evidence without logging hidden reasoning or unnecessary personal data.

These controls belong to the application and platform boundary. A graph edge, middleware hook, prompt, or tool schema can carry policy context, but none of them is the authority by itself.

A Reproducible Migration Test

Run the old and new implementations against the same versioned scenarios:

  1. A deterministic read with a known answer.
  2. A tool timeout before any side effect.
  3. A timeout after the downstream system may have committed.
  4. Duplicate delivery with the same operation ID.
  5. A restart at every persisted boundary.
  6. An approval replay with changed arguments.
  7. A cross-tenant access attempt.
  8. A malicious tool result that asks for another action.
  9. Cancellation while work is in flight.
  10. Export and rollback of state, artifacts, and traces.

Measure task success, unsafe success, recovery success, p95 latency, model and tool calls, operator effort, and cost per successful task. A migration passes only when the target preserves required behavior and fails safely.

Frequently Asked Questions

Is Microsoft AutoGen deprecated?

It is in maintenance mode rather than removed. Existing applications can run, but the project receives no new features or enhancements and is community managed. Treat it as a supported legacy decision with an explicit migration horizon.

Is AG2 the new name for Microsoft AutoGen?

No. AG2 is independently governed. Its active 1.x line uses the ag2 package, while AG2 Classic maintains the old autogen package. Microsoft AutoGen is a separate Microsoft repository, and Microsoft Agent Framework is Microsoft's successor.

Is LangGraph only for multi-agent systems?

No. LangGraph can orchestrate deterministic functions, one agent, several agents, tools, and human steps. Use multiple agents only when separate capabilities or contexts provide measurable value.

Does MAF 1.0 mean every integration is stable?

No. The Python and .NET core is stable, while individual integrations can remain preview. The separate Go SDK is also preview and has documented feature gaps. Pin and review the exact components you deploy.

Can I mix these frameworks?

Technically yes, through tools, APIs, MCP, or A2A, but composition adds identity, cancellation, state, telemetry, and error-translation boundaries. Add a second runtime only when the benefit survives end-to-end evaluation.

Conclusion

The 2026 choice is no longer simply LangGraph versus AutoGen. Compare LangGraph 1.x, Microsoft Agent Framework 1.0, and AG2 1.x for new systems; treat Microsoft AutoGen and AG2 Classic as distinct maintenance paths. Preserve business commands, authorization, effect records, and evaluation fixtures outside framework-specific callbacks so a future migration remains testable.

Primary Sources