{"id":5,"library":"autogen-agentchat","title":"AutoGen (Microsoft)","description":"Microsoft's framework for building multi-agent AI applications. As of v0.4+, AutoGen is a layered system: autogen-core (event-driven actor runtime), autogen-agentchat (high-level conversational agents), and autogen-ext (extensions for OpenAI, Azure, MCP, etc.). Completely async. The 0.2 API is a separate, deprecated architecture. NOT the same as AG2.","status":"active","version":"0.7.5","language":"python","source_language":"en","source_url":"https://microsoft.github.io/autogen/stable/","tags":["agents","orchestration","multi-agent","autogen","microsoft","async","event-driven","python"],"install":[{"cmd":"pip install -U \"autogen-agentchat\" \"autogen-ext[openai]\"","lang":"bash","label":"AgentChat + OpenAI extension (recommended starting point)"},{"cmd":"pip install -U autogen-core","lang":"bash","label":"Core runtime only (event-driven actor model)"},{"cmd":"pip install -U autogenstudio","lang":"bash","label":"AutoGen Studio (no-code UI, separate package)"}],"dependencies":[{"reason":"OpenAIChatCompletionClient lives in autogen-ext, not autogen-agentchat. Required for any OpenAI or OpenAI-compatible model use.","package":"autogen-ext[openai]","optional":false},{"reason":"Hard requirement across all autogen packages.","package":"Python >=3.10","optional":false}],"imports":[{"note":"The v0.2 import paths (autogen.agentchat, autogen.oai) are completely different from v0.4+. Mixing them causes immediate ImportError or silent wrong behavior.","wrong":"from autogen.agentchat import AssistantAgent\nfrom autogen.oai import OpenAIWrapper","symbol":"AssistantAgent (v0.4+)","correct":"from autogen_agentchat.agents import AssistantAgent\nfrom autogen_ext.models.openai import OpenAIChatCompletionClient"},{"note":"RoutedAgent is in autogen_core directly, not autogen_core.components. LLM-generated code frequently gets this wrong.","wrong":"from autogen_core.components import RoutedAgent","symbol":"RoutedAgent (Core API)","correct":"from autogen_core import RoutedAgent, message_handler"}],"quickstart":{"code":"import asyncio\nfrom autogen_agentchat.agents import AssistantAgent\nfrom autogen_ext.models.openai import OpenAIChatCompletionClient\n\nasync def main() -> None:\n    model_client = OpenAIChatCompletionClient(model='gpt-4o')\n    agent = AssistantAgent('assistant', model_client=model_client)\n    result = await agent.run(task='Say Hello World!')\n    print(result)\n    await model_client.close()\n\nasyncio.run(main())","lang":"python","description":"Single AssistantAgent with OpenAI — v0.4+ API"},"warnings":[{"fix":"Follow the official migration guide: https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/migration-guide.html","message":"AutoGen v0.4+ is a complete ground-up rewrite with a fully incompatible API from v0.2. All v0.2 imports (from autogen.agentchat, autogen.oai, AssistantAgent with llm_config dict, UserProxyAgent) are broken in v0.4.","severity":"breaking","affected_versions":">=0.4.0"},{"fix":"Always use asyncio.run(main()) at the entry point. Use await for all agent calls.","message":"All v0.4+ AutoGen APIs are fully async. Calling agent.run() without await in an async context, or calling it in a sync context without asyncio.run(), will fail or produce no output.","severity":"breaking","affected_versions":">=0.4.0"},{"fix":"pip install 'autogen-ext[openai]' for OpenAI/OpenAI-compatible models. Use 'autogen-ext[azure]' for Azure OpenAI, 'autogen-ext[anthropic]' for Claude.","message":"OpenAIChatCompletionClient is in autogen-ext, not autogen-agentchat. pip install autogen-agentchat alone is insufficient — model clients require autogen-ext[openai] or the relevant provider extra.","severity":"breaking","affected_versions":">=0.4.0"},{"fix":"Install via autogen-agentchat (for v0.4+) or autogen-agentchat~=0.2 (for legacy v0.2). Never use pyautogen.","message":"pyautogen on PyPI is no longer maintained by Microsoft as of v0.2.34+. Control of that package was lost to an AG2-affiliated fork. Do not use pyautogen for Microsoft AutoGen.","severity":"breaking","affected_versions":"all"},{"fix":"For Microsoft AutoGen 0.4+, install autogen-agentchat and autogen-ext. For AG2/legacy API, install ag2 or pin autogen-agentchat~=0.2.","message":"AG2 (pip install ag2 or pip install autogen) is a community fork of AutoGen 0.2, NOT Microsoft's AutoGen 0.4. The autogen PyPI package is currently controlled by the AG2 project. Code written for AG2 and code written for Microsoft AutoGen 0.4 are NOT compatible.","severity":"gotcha","affected_versions":"all"},{"fix":"Always verify against the official docs at https://microsoft.github.io/autogen/stable/","message":"LLM-generated AutoGen code is highly unreliable. Most AI assistants (as of early 2026) mix v0.2 and v0.4 imports, use wrong module paths (autogen_core.components vs autogen_core), or use synchronous patterns on async-only APIs.","severity":"gotcha","affected_versions":">=0.4.0"},{"fix":"Use try/finally or async context managers: async with OpenAIChatCompletionClient(...) as client: ...","message":"model_client.close() must be explicitly called after use to avoid resource leaks. The client does not auto-close.","severity":"gotcha","affected_versions":">=0.4.0"},{"fix":"Ensure that necessary build tools are installed in your environment. For Alpine Linux, this typically means running `apk add build-base` before installing Python packages. Example Dockerfile: `FROM python:3.13-alpine\nRUN apk add build-base\nRUN pip install autogen-agentchat 'autogen-ext[openai]'`","message":"Installing certain dependencies (e.g., numpy, which is a dependency of tiktoken used by autogen-ext[openai]) in minimal Linux environments like Alpine requires build tools. Without them, package installation will fail due to missing compilers.","severity":"breaking","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-11T18:05:14.382Z","next_check":"2026-05-28T00:00:00.000Z","problems":[{"fix":"Ensure you have installed the correct package version using 'pip install autogen-agentchat==0.7.5'.","cause":"The 'autogen.agentchat' module is not found because the package is installed under a different name or version.","error":"ModuleNotFoundError: No module named 'autogen.agentchat'"},{"fix":"Update your import statement to 'from autogen_agentchat.agents import AssistantAgent'.","cause":"The 'AssistantAgent' class has been moved or renamed in the newer version of the library.","error":"ImportError: cannot import name 'AssistantAgent' from 'autogen.agentchat'"},{"fix":"Ensure you are using the correct module and function by referring to the latest documentation.","cause":"The 'run_group_chat' function is not available in the 'autogen.agentchat' module.","error":"AttributeError: module 'autogen.agentchat' has no attribute 'run_group_chat'"},{"fix":"Remove the 'safeguard_policy' argument from the 'run_group_chat' function call.","cause":"The 'run_group_chat' function does not accept a 'safeguard_policy' argument in the current version.","error":"TypeError: run_group_chat() got an unexpected keyword argument 'safeguard_policy'"},{"fix":"Import 'ConversableAgent' using 'from autogen_agentchat.agents import ConversableAgent'.","cause":"The 'ConversableAgent' class is not defined or imported in the current scope.","error":"NameError: name 'ConversableAgent' is not defined"}],"ecosystem":"pypi","meta_description":null,"install_score":70,"install_tag":"reviewed","quickstart_score":70,"quickstart_tag":"verified","pypi_latest":null,"install_checks":{"last_tested":"2026-05-11","tag":"reviewed","tag_description":"minor failures on some runtimes or slightly older test data","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":2.88,"mem_mb":23.4,"disk_size":"83.3M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":2.38,"mem_mb":23.4,"disk_size":"195.5M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":1.93,"mem_mb":22.5,"disk_size":"84M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":2.23,"mem_mb":22.8,"disk_size":"696M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.27,"mem_mb":25.2,"disk_size":"89.8M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":2.95,"mem_mb":24.4,"disk_size":"90M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.14,"mem_mb":24.8,"disk_size":"683M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4,"mem_mb":24.9,"disk_size":"80.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.07,"mem_mb":25,"disk_size":"197.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.31,"mem_mb":24.1,"disk_size":"81M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.78,"mem_mb":24.5,"disk_size":"667M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.69,"mem_mb":25.5,"disk_size":"80.2M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"openai","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.13,"mem_mb":24.6,"disk_size":"81M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.58,"mem_mb":25,"disk_size":"665M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"openai","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"openai","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-05-11","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}