Releases: ag2ai/ag2
v0.12.0
Highlights
🛣️ AG2 v0.12.0 – The Path to v1.0 Begins
This release kicks off the journey to AG2 v1.0. Over the next few minor versions (v0.12 → v0.13 → v0.14 → v1.0), the beta framework (autogen.beta) will mature and, at v1.0, become the official version of AG2. The current framework continues to be fully supported throughout this transition.
📍 Check out the full Release Roadmap to see what's coming.
⚠️ Deprecation Notices (Removal in v0.14)
v0.12 is the deprecation announcement release. The features below are marked for removal in v0.14. The community feedback window is now open — if any of these are critical to your workflow, please let us know via GitHub Issues or Discord.
- Deprecated agents:
GPTAssistantAgent,LLaVAAgent,WebSurferAgent(contrib),TextAnalyzerAgent,MathUserProxyAgent,SocietyOfMindAgent,AgentOptimizer,RetrieveAssistantAgent,QdrantRetrieveUserProxyAgent,SwarmAgent,RealtimeAgent - Deprecated capabilities/modules:
ImageGeneration,agent_eval - Deprecated interop:
CrewAIInteroperability(use LangChain or PydanticAI interop) - Deprecated experimental tools:
PythonCodeExecutionTool,FirecrawlTool,PerplexitySearchTool,SearxngSearchTool,WebSearchPreviewTool - Deprecated swarm functions: Use the new Group Chat
See PR #2553 for the full list and migration paths.
What is NOT being deprecated: Core agents (ConversableAgent, AssistantAgent, UserProxyAgent), GroupChat and orchestration patterns, capabilities like Teachability and VisionCapability, and experimental agents like DeepResearchAgent, ReasoningAgent, DocAgent, CaptainAgent, A2UIAgent, and platform agents.
🔬 Beta: Major New Capabilities
The beta framework continues to grow — these are the building blocks for AG2 v1.0.
- 🤖 Agent.as_tool() – Agent delegation using tool calls with the new Tasks API.
- 👁️ Observer API – Subscribe to Agent events for monitoring and debugging.
- 🖥️ AG-UI Support – UI integration
- 🎨 Multimodal Input – Image, Document, Audio, and Video input support for OpenAI, Gemini, Anthropic.
- 🔧 Serializable Agents – Fully serializable
- 🔧 Tool-Driven Handoffs – Improved compatibility with existing ConversableAgents to support handoffs in tool calls
🧰 Beta: New Tools & Toolkits
- 📁 FilesystemToolset – File operations toolkit.
- 🔍 WebSearchTool Streaming – Streaming support for web search.
- 💻 LocalShellTool & LocalShellEnvironment – Local shell execution.
- 🎯 Skills Tool & Search Skills – Skills management and discovery.
- 🔧 Middleware Support – Added to
ToolkitandFunctionTool. - 💻 Code Execution Tool – New Beta tool for code execution.
🎉 New Features
- 🖥️ DaytonaCodeExecutor – New code executor integration with Daytona.
- 🔗 NLIP Integration – Natural Language Interface Protocol support.
- 🎯 AgentEligibilityPolicy – Runtime GroupChat candidate filtering.
🔐 Security
- 🛡️ CVE-2025-69872 – Fixed DiskCache vulnerability.
- 🔒 GitHub Actions Hardening – Added zizmor and hardened CI workflows.
Bug Fixes
- 🔧 TokenLimiter – Fixed token-to-char budget calculation.
- 🔧 Speaker Selection – Fixed duplicate condition in verbose logging.
- 🔧 Interop Error Messages – Fixed error showing 't' instead of actual type names.
- 🔧 browser-use – Updated from pinned 0.1.37 to >=0.3.1.
- 🔧 Various typo and grammar fixes.
Documentation & Accessibility
- 📔 Added Security Policy.
- ♿ Fixed WCAG 2 AA color contrast issues site-wide.
- ♿ Added alt text to 39 images on homepage.
- 🔗 Fixed numerous broken links across documentation.
CLI
- 📦 Published CLI package to PyPI.
What's Changed
- Planned deprecation for v0.14 by @marklysze in #2553
- feat(beta): add WebSearchTool streaming support by @Lancetnik in #2562
- feat(beta): add FilesystemToolset for file operations by @Lancetnik in #2566
- ci: add zizmor and harden GitHub Actions workflows by @Lancetnik in #2565
- feat: add
allow_alwaysoption toapproval_requiredmiddleware by @Lancetnik in #2563 - docs: fix broken code examples in 3 blog posts by @VasiliyRad in #2559
- fix: correct parameter name typo and grammar across multiple files by @Ricardo-M-L in #2552
- fix: correct grammar and typos across multiple files by @Ricardo-M-L in #2551
- fix: fix unused deepcopy result and typos in vision_capability.py by @Ricardo-M-L in #2550
- ci: add tests for python3.14 by @Lancetnik in #2138
- fix: interop error message shows 't' instead of actual type names by @ameenalkhaldi in #2509
- docs: add security policy by @Lancetnik in #2543
- docs: add AI policy for contributions by @Lancetnik in #2542
- docs: fix broken notebook links in FalkorDB blog post by @VasiliyRad in #2560
- fix: correct parameter name typo and grammar in openai_utils and other files by @Ricardo-M-L in #2554
- Fix CVE 2025 69872 diskcache by @cym3118288-afk in #2548
- Feat: DaytonaCodeExecutor by @mislavivanda in #2518
- fix: Daytona notebook tweak by @marklysze in #2576
- feat(beta): add LocalShellTool and LocalShellEnvironment for local sh… by @vvlrff in #2535
- feat: add NLIP integration by @river-li in #2468
- ci: fix docs deploy by restoring git credentials by @Lancetnik in #2573
- fix: correct token-to-char budget calculation in TokenLimiter by @Ricardo-M-L in #2577
- fix: correct duplicate condition in speaker selection verbose logging by @Ricardo-M-L in #2578
- feat(beta): Tasks with Agent.as_tool() for agent delegation using tool calls by @marklysze in #2520
- feat(beta): add observer API for Agent event subscriptions by @Lancetnik in #2572
- feat(beta): add middleware support to Toolkit and FunctionTool by @Lancetnik in #2569
- Planned tool and integration deprecations for v0.14 by @marklysze in #2581
- NameError in ReasoningAgent example — LLMConfig not imported by @VasiliyRad in #2589
- NameError in ReasoningAgent example — LLMConfig not imported by @VasiliyRad in #2591
- fix: update browser-use from pinned 0.1.37 to >=0.3.1 by @VasiliyRad in #2600
- Broken link to ChromaDB Docker docs by @VasiliyRad in #2597
- Heading order violations on homepage by @VasiliyRad in #2604
- 39 images missing alt text on homepage by @VasiliyRad in #2602
- Color contrast failures site-wide (WCAG 2 AA) by @VasiliyRad in #2603
- feat(beta): input event system with multimodal support (Image, Document, Audio, Video) by @Lancetnik in #2582
- Create py.typed file for mypy by @C3EQUALZz in #2614
- localhost URLs in production blog posts by @VasiliyRad in #2609
- refactor: rename Context to ConversationContext to avoid naming conflicts by @Lancetnik in #2621
- feat: AgentEligibilityPolicy for runtime GroupChat candidate filtering by @amabito in #2459
- fix(ci): add write permissions to build-mkdocs workflow by @Lancetnik in #2616
- feat(beta): plugin system for composable agent configuration by @Lancetnik in #2622
- Double-slash in GitHub notebook URLs by @VasiliyRad in #2617
- Broken installing-ag2 link on quickstart page by @VasiliyRad in #2611
- Broken FSM-GroupChat link in StateFlow blog by @VasiliyRad in #2613
- feat(beta): Skills tool by @vvlrff in #2588
- feat(beta): Multimodal input support for Gemini and Anthropic by @marklysze in #2624
- Broken link: tools_duckduckgo_search.ipynb by @VasiliyRad in #2634
- NameError — undefined variable 'questions' in code block by @VasiliyRad in #2639
- Broken external links with double slash in GitHub notebook URLs by @VasiliyRad in #2637
- Broken link: reliable_basic_example.ipynb by @VasiliyRad in #2630
- NameError: ConversableAgent not defined in code block by @VasiliyRad in #2635
- TypeError in LLMConfig — config_list expects list not dict by @VasiliyRad in #2638
- feat(beta): Search skills by @vvlrff in #2615
- feat(beta): Add extra_body parameter support to Beta OpenAI client by @marklysze in https://github.com/ag2ai/ag2/pul...
v0.11.5
Highlights
🎉 Major Features
- 🖥️ AG2 CLI – New command-line interface for AG2! A full-featured CLI for building, running, testing, and deploying multi-agent applications with AG2. Check out the docs!
- 🖥️ A2UIAgent – New reference agent combining A2A and A2UI protocols for building dynamic, agent-driven, frontends. Compatible with A2UI's latest v0.9 protocol version. Check out the docs! and full code example
Beta Features
- Roadmap progress
- 📊 Telemetry – Added telemetry support for monitoring and analytics.
- 🔧 Structured Output via ResponseSchema – Added structured output support using
ResponseSchemafor more predictable agent responses. - 🔧 RedisStream – Added Redis stream support for scalable message handling.
- 🔧 Tool-Scoped Middleware Hooks – Added middleware hooks scoped to specific tools for fine-grained control.
- 🔧 WebFetchTool – New tool for fetching web content, plus domain filtering for
WebSearchTool. - 🧠 MemoryTool – New tool for agent memory management, integrated into existing tool schemas.
- 🖼️ Image Generation Tool – New tool for generating images.
- 💻 Shell Tool – New tool for shell command execution.
- 🔧 Refactored
BaseEventwithdataclass_transform. - 🔧 Introduced justfile, refactored deps/CI, and improved beta tools.
Bug Fixes
- 🔧 Beta: ToolCallEvent and ToolErrorEvent – Fixed three bugs in event handling.
- 🔧 Beta: Empty Tool Call Arguments – Fixed handling of empty tool call arguments in message mappers.
- 🔧 Beta: Anthropic Token Usage – Fixed Anthropic usage tokens and cached token usage observation.
- 🔧 Beta: Anthropic pause_turn – Fixed pause_turn handling.
- 🔧 Message Platform Tools – Fixed
sent_message_idinitialization before loop. - 🔧 Slack Tool – Corrected docstring, safe dict access, and mypy type checks.
Documentation
- 📔 New Release Roadmap.
- 📔 New Arcade.dev + AG2 integration blog post.
- 📔 Added Bindu to ecosystem integrations.
- 🔧 Converted mermaid diagrams to images in user guide.
What's Changed
- fix(beta): correct three bugs in ToolCallEvent and ToolErrorEvent by @amabito in #2493
- docs: Release roadmap by @marklysze in #2503
- feat(beta): add structured output support via ResponseSchema by @Lancetnik in #2495
- docs(blog): add Arcade.dev + AG2 integration blog post by @faridun-ag2 in #2498
- feat(beta): Telemetry by @marklysze in #2488
- feat: add MemoryTool and integrate into existing tool schemas by @vvlrff in #2502
- A2UI and Reference Agent by @marklysze in #2494
- feat(beta): RedisStream by @marklysze in #2513
- fix(beta): handle empty tool call arguments in message mappers by @marklysze in #2521
- fix(beta): Anthropic usage tokens and Observing Cached token usage by @marklysze in #2517
- tests(beta): LLM tests by @marklysze in #2515
- Image generation tool by @vvlrff in #2514
- feat(beta): add WebFetchTool, domain filtering for WebSearchTool, and fix Anthropic pause_turn by @marklysze in #2523
- Shell tool by @vvlrff in #2506
- refactor(beta): reimplement BaseEvent with dataclass_transform by @Lancetnik in #2505
- chore: introduce justfile, refactor deps/CI, and improve beta tools & docs by @Lancetnik in #2537
- AG2 CLI by @SirEntropy in #2497
- fix: initialize sent_message_id before loop in message platform tools by @Ricardo-M-L in #2528
- fix: correct Slack tool docstring and use safe dict access by @Ricardo-M-L in #2526
- docs: convert mermaid diagrams to images in user guide by @sam-ag2 in #2539
- chore: remove duplicate issue templates by @Lancetnik in #2544
- fix: correct release roadmap link in README by @VasiliyRad in #2538
- docs: add Bindu to ecosystem integrations by @chandan-1427 in #2511
- feat(beta): add tool-scoped middleware hooks and docs by @Lancetnik in #2541
- docs: Remove diagram code and add white background to transparent diagram by @marklysze in #2547
- fix: A2UIAgent imports for missing a2a SDK by @marklysze in #2549
- fix: correct mismatched quote in bedrock assert message by @Ricardo-M-L in #2546
- tests: Tweaks of models and timeouts by @marklysze in #2556
- fix: Slack mypy type check by @marklysze in #2555
- Version bump to 0.11.5 by @marklysze in #2557
New Contributors
- @faridun-ag2 made their first contribution in #2498
- @Ricardo-M-L made their first contribution in #2528
- @chandan-1427 made their first contribution in #2511
Full Changelog: v0.11.4...v0.11.5
v0.11.4
Highlights
🔒 Security Hardening
This release includes several important security fixes contributed by @amabito:
- Shell Command Injection –
ShellExecutornow usesshell=Falsewithshlex.splitto prevent command injection. - Path Traversal Prevention – MCP resource URIs and file operations now validate against path traversal attacks.
- Sensitive Key Redaction –
FileLoggeroutput now redacts sensitive keys to prevent credential leakage.
AG2 Beta Improvements
- 🛠️ Human-in-the-Loop Middleware Hook – New
on_human_inputmiddleware hook enables intercepting, transforming, or logging human input during agent conversations. Docs - 🛠️ Tool Calling – Tools can now return
ToolResult(..., final=True)to skip the follow-up LLM call and end the turn immediately. Tool events were also refactored into dedicated types for cleaner runtime handling across all providers. Docs - 🔧 ClientTool Stream Fix –
ClientTool.registernow correctly sendsClientToolCallevents to the stream. - ⚡ CodeExecutionTool – New tool and schemas for code execution capabilities (thanks @vvlrff).
Bug Fixes
- 🔧 Gemini Content Handling – Fixed handling of messages without a
contentkey in the Gemini client.
Documentation
- 📔 Added links to AG2 Playground to documentation.
- 📔 Fixed SEO issues with
robots.txtandog:urlin redirect template (thanks @VasiliyRad). - 📔 Beta documentation updated to reflect the latest event and tool APIs.
What's Changed
- fix(beta): send ClientToolCall to stream in ClientTool.register by @amabito in #2476
- ci: add PR labeler workflow by @Lancetnik in #2479
- feat(beta): add on_human_input middleware hook by @Lancetnik in #2477
- Fix SEO issues: add robots.txt and fix og:url in redirect template by @VasiliyRad in #2473
- docs: Add Playground links to documentation by @marklysze in #2480
- fix: use shell=False with shlex.split in ShellExecutor by @amabito in #2481
- fix: sanitize MCP resource URI to prevent path traversal by @amabito in #2482
- fix: validate subfolder_path and file_name against path traversal by @amabito in #2483
- fix: redact sensitive keys in FileLogger output by @amabito in #2485
- fix: handle messages without 'content' key in Gemini client by @marklysze in #2489
- feat: add CodeExecutionTool and related schemas for code execution ca… by @vvlrff in #2490
- docs(beta): sync docs with event and tool APIs by @Lancetnik in #2491
- Version bump to 0.11.4 by @marklysze in #2492
New Contributors
Full Changelog: v0.11.3...v0.11.4
v0.11.3
Highlights
🎉 AG2 Beta — A New Foundation for Real-World Agents
This release introduces AG2 Beta (autogen.beta), a ground-up redesign of the AG2 framework built around lessons learned from the original architecture. AG2 Beta provides a stronger foundation for production agentic systems with:
- 🌊 Streaming & Event-Driven Architecture – Every conversation runs on a
MemoryStream, a pub/sub event bus that isolates state, enables real-time streaming, and makes agents safely reusable across concurrent users. - 🔌 Multi-Provider LLM Support – Unified
ModelConfigprotocol with dedicated clients for OpenAI (Chat Completions & Responses API), Anthropic, Google Gemini, Alibaba DashScope (Qwen), and Ollama — all using official provider SDKs. - 🛠️ Dependency Injection & Typed Tools – Tools auto-generate JSON schemas from type hints. DI via
fast_dependslets tools and prompt hooks declare dependencies cleanly withAnnotated[T, Inject("name")]. - 🧪 First-Class Testing –
TestConfig/TestClientprovide canned LLM responses for unit tests with zero network calls. - 🔧 Middleware Pipeline – Extensible middleware system with built-in history limiting, token limiting, and LLM retry capabilities.
AG2 Beta runs alongside the existing AG2 module — no breaking changes to current code. Additionally, AG2 Beta agents can be used in existing group chat orchestrations!
Read the blog post for the full motivation and design details, or dive into the AG2 Beta documentation and Roadmap.
Big thanks to @Lancetnik!
And here's what's changed in the current AG2 version...
Major Features
- 🔍 QuickResearchTool – New tool for parallel web research, enabling agents to search and synthesize information from multiple sources concurrently (thanks @bassilkhilo-ag2).
- 🌊 Gemini Client Streaming – Added streaming support for the Gemini client.
- 🔄 Mistral V2 API – Mistral client updated to the Mistral V2 API.
- 🐟 TinyFish Scraper Integration – New integration with the TinyFish scraper for web content extraction (thanks @jsun-m).
LLM Client Fixes
- 🔧 Streaming Tool Call Fix – Fixed tool call type field from concatenating during streaming (thanks @jnMetaCode).
- 🔧 Gemini Thought Signature – Fixed Gemini thought signature handling.
- 🔧 User-Agent for Anthropic – Added User-Agent header for Anthropic API calls (thanks @mikelambert).
Bug Fixes
- 🔧 Empty Conversation Safety – Fixed
IndexErrorinlast_message()on empty conversation (thanks @jnMetaCode). - 🔧 AgentOptimizer LLMConfig – Fixed handling of
LLMConfigobjects inAgentOptimizer(thanks @jnMetaCode). - 🔧 Token Count Utils – Added missing model entries to
token_count_utils(thanks @jnMetaCode).
Documentation
- 📔 CircuitBreakerCapability + SAFE_MODE integration examples (thanks @amabito).
- 📔 New GPT Researcher blog post and updated sample code.
- 📔 New Playground blog post.
- 📔 New Handoffs blog post.
- 📔 Updated model provider documentation for Grok, Cerebras, vLLM, DeepSeek, and others.
- 📔 Added Tavily Search page and Langfuse documentation.
- 📔 Improved new-user documentation funnel.
What's Changed
- docs: GPT Researcher blog and image updates by @marklysze in #2440
- Updated GPT Researcher blog post based on the latest sample code by @VasiliyRad in #2441
- docs: Playground blog by @marklysze in #2444
- Grok and OpenAI-compatible model fixes and documentation by @VasiliyRad in #2445
- docs: SEO-optimized similar pages by @VasiliyRad in #2446
- docs: Cerebras and vLLM code examples by @VasiliyRad in #2447
- update outdated model provider docs by @VasiliyRad in #2449
- Updated docs for 5 more model providers by @VasiliyRad in #2448
- fix: prevent tool call type field from concatenating during streaming by @jnMetaCode in #2451
- docs: Added blog post on handoffs by @VasiliyRad in #2443
- fix: Correct accidentally merged notebook by @marklysze in #2453
- docs: CircuitBreakerCapability + SAFE_MODE integration examples by @amabito in #2430
- Improve the new-user documentation funnel based on Google Analytics data by @VasiliyRad in #2450
- Add User-Agent header for Anthropic API calls by @mikelambert in #2425
- add Tavily Search page and SEO descriptions to reference tools by @VasiliyRad in #2460
- update DeepSeek and Grok model provider pages by @VasiliyRad in #2461
- fix: prevent IndexError in last_message() on empty conversation by @jnMetaCode in #2457
- fix: handle LLMConfig objects in AgentOptimizer by @jnMetaCode in #2455
- fix: add missing model entries to token_count_utils by @jnMetaCode in #2454
- Mistral Client updated to Mistral v2 API by @marklysze in #2466
- feat: add QuickResearchTool for parallel web research by @bassilkhilo-ag2 in #2464
- feat: Gemini V1 Client streaming support by @marklysze in #2452
- Add Langfuse in documentation by @VasiliyRad in #2465
- Fix: Gemini thought signature handling by @marklysze in #2470
- docs: Fix blog tag format by @marklysze in #2469
- feat: add tinyfish scraper integration by @jsun-m in #2471
- feat: AG2.1 beta by @Lancetnik in #2439
New Contributors
- @jnMetaCode made their first contribution in #2451
- @amabito made their first contribution in #2430
- @mikelambert made their first contribution in #2425
- @jsun-m made their first contribution in #2471
Full Changelog: v0.11.2...v0.11.3
v0.11.2
Highlights
Enhancements
- 🔧 Extra Headers Support – Added
extra_headerssupport toOpenAILLMConfigEntryandAzureOpenAILLMConfigEntry, allowing custom HTTP headers for API requests.
LLM Client Fixes
- 🔧 Gemini Parallel Tool Calls – Fixed support for parallel tool calls in the Gemini client.
- 🔧 Gemini Structured Output – Fixed Gemini structured output when using
additionalProperties. - 🔧 OpenAI Responses Client – Fixed empty string content handling and new phase key support.
Bug Fixes
- 🔧 RandomAgentTarget Validation – Fixed validation in
ensure_handoff_agents_in_group. - 🔧 Async Tool Execution – Fixed awaiting awaitable tool results in async execution.
- 🔧 Group Tool Executor – Preserved async wrapper in context variable injection.
- 🔧 Exception Handling – Replaced bare
exceptstatements withexcept Exception(thanks @haosenwang1018).
Documentation
- 📔 New CopilotKit quickstart and aligned AG-UI integration docs.
- 📔 New AG-UI blog post.
- 🔧 Documentation build improvements and link fixes.
- 🔧 Removed Mintlify dependency.
What's Changed
- docs: Titles for title-less pages by @marklysze in #2412
- docs: Tidy documentation build and content by @marklysze in #2415
- docs: Parallel notebook generation and link fixes by @marklysze in #2416
- docs: Remove Mintlify by @marklysze in #2417
- fix: OpenAI Responses client to use empty string content by @marklysze in #2419
- fix: Support parallel tool calls in Gemini client by @marklysze in #2420
- docs: Remove Spider notebook by @marklysze in #2422
- feat: Add extra_headers support to OpenAILLMConfigEntry and AzureOpenAILLMConfigEntry by @marklysze in #2424
- fix: RandomAgentTarget validation in ensure_handoff_agents_in_group by @marklysze in #2423
- fix: Gemini structured output when using additionalProperties by @marklysze in #2421
- docs(ag-ui): add CopilotKit quickstart and align AG-UI integration docs by @blove in #2414
- chore: Change PDF used in tests by @marklysze in #2427
- docs: AG-UI blog by @marklysze in #2413
- chore: Update Google Analytics tag by @marklysze in #2429
- docs: fix broken AG-UI markup by @Lancetnik in #2431
- fix: Handle new OpenAI phase key in Responses client by @marklysze in #2432
- fix: replace 3 bare excepts with except Exception (thanks @haosenwang1018) by @marklysze in #2433
- Fix awaiting awaitable tool results in async execution by @omanei in #2436
- fix: preserve async wrapper in group tool executor's context variable injection by @marklysze in #2437
- Version bump to 0.11.2 by @marklysze in #2438
New Contributors
Full Changelog: v0.11.1...v0.11.2
v0.11.1
Highlights
🎉 Major Features
-
🌊 A2A Streaming – Full streaming support for Agent2Agent communication, both server and client-side. LLM text streaming is now connected through to the A2A implementation, enabling real-time responses for remote agents. Get Started
-
🙋 A2A HITL Events – Process human-in-the-loop events in Agent2Agent communication, enabling interactive approval workflows in your agent pipelines. Get Started
-
🖥️ AG-UI Message Streaming – Real-time display of agent responses in AG-UI frontends. New event-based streaming architecture for smooth incremental text updates. Get Started
-
📡 OpenAI Responses v2 Client – Migrated to OpenAI's Responses v2 API, unlocking stateful conversations without manual history management, built-in tools (web search, image generation, apply_patch), full access to reasoning model features (o3 thinking tokens), multimodal applications, structured outputs, and enhanced cost and token tracking. Complete Guide
Bug Fixes
- 🔧 ToolCall TypeError – Fixed TypeError on ToolCall return type.
- 🐳 Docker Error Message – Improved error message when Docker is not running.
- 🔧 OpenAI Responses v2 Client Tidy – Minor fixes and improvements to the new Responses v2 client.
Documentation & Maintenance
- 📔 Updated mem0 example.
- 🔧 Dependency bumps.
- 🔧 Pydantic
copytomodel_copymigration.
What's Changed
- Update CMBAgent blog post author affiliations to Cambridge University by @qingyun-wu in #2396
- Support for A2A streaming of text from LLMs by @marklysze in #2394
- fix: typeerror on toolcall return type by @priyansh4320 in #2380
- Fixed sample code. Improved error message when docker is not running by @VasiliyRad in #2402
- feat: a2a streaming client by @Lancetnik in #2403
- feat: support AG-UI Message Streaming by @Lancetnik in #2404
- Crawl4AI 0.8.x support by @VasiliyRad in #2405
- feat: process AgentService HITL event by @Lancetnik in #2406
- feat: Migrate to OpenAI responses v2 by @priyansh4320 in #2357
- Updated mem0 example by @VasiliyRad in #2407
- Fix: OpenAI Responses v2 client tidy by @marklysze in #2408
- Chore: Dependency bumps by @marklysze in #2409
- Pydantic copy to model_copy by @marklysze in #2410
- Version bump to 0.11.1 by @marklysze in #2411
Full Changelog: v0.11.0...v0.11.1
v0.11.0
Highlights
🎉 Major Features
-
🖥️ AG-UI Protocol Integration – AG2 now natively supports the AG-UI protocol, the open standard for agent-to-user interaction. Build dynamic, real-time frontends powered by your AG2 agents with streaming responses, shared state synchronization, tool call rendering, and human-in-the-loop workflows. Seamlessly connect to CopilotKit and other AG-UI compatible frontends. Get Started
-
📊 OpenTelemetry Tracing & Instrumentation – Full observability for your multi-agent workflows! AG2 now supports OpenTelemetry tracing, enabling you to monitor, debug, and analyze agent interactions for local and remote A2A agents. Includes LLM-level token usage and cost. Observe with industry-standard tools like Jaeger, Honeycomb, and other OTEL-compatible backends. Get Started
LLM Enhancements
- 🔄 Anthropic V1 Client Streaming – Added streaming and non-beta support for the Anthropic V1 client, improving response handling and compatibility.
Bug Fixes
- 🤝 A2A Message Support – Fixed Anthropic and OpenAI clients to support messages without role for Agent-to-Agent (A2A) communication.
Important: Deprecations
- See this PR for LLMConfig-related deprecations
Documentation & Maintenance
- 📔 New documentation: MCP Client Session Manager guide.
- 📔 New documentation: Built-in tool documentation added to tools section.
- 📔 Cleaned up and simplified Quick Start.
- 🔗 Fixed documentation links.
What's Changed
- Cleanup and simplify Quick Start example by @mihai-eng in #2365
- feat: AG-UI native support by @Lancetnik in #2315
- feat: AG-UI State events support by @Lancetnik in #2368
- remove config_list parameter from LLMConfig in docs by @Maglctea in #2383
- dependencies: add ag-ui to docs required modules by @Lancetnik in #2385
- fix link in doc by @Maglctea in #2388
- documentation: Add MCP Client Session Manager by @priyansh4320 in #2378
- documentation: Missing dedicated built-in tool documentation from tools section by @priyansh4320 in #2376
- feat: Tracing and Instrumentation by @marklysze in #2309
- feat: Anthropic V1 Client streaming and non-beta support by @marklysze in #2389
- fix: Anthropic and OpenAI client support for messages without role (A2A) by @marklysze in #2391
- fix: Ignore OpenTelemetry tests for core tests with llms by @marklysze in #2399
- 0.11.0 Deprecations by @marklysze in #2397
New Contributors
- @mihai-eng made their first contribution in #2365
- @Maglctea made their first contribution in #2383
Full Changelog: v0.10.5...v0.11.0
v0.10.5
Highlights
Enhancements
-
🚀 GPT 5.2 Codex Models Support – Added support for OpenAI's GPT 5.2 Codex models, bringing enhanced coding capabilities to your agents.
-
🐚 GPT 5.1 Shell Tool Support – The Responses API now supports the shell tool, enabling agents to interact with command-line interfaces for filesystem diagnostics, build/test flows, and complex agentic coding workflows.
Check out the blogpost: Shell Tool and Multi-Inbuilt Tool Execution. -
🔬 RemyxCodeExecutor – New code executor for research paper execution, expanding AG2's capabilities for scientific and research workflows.
Check out the updated code execution documentation: Code Execution.
Documentation
- 📔 New guide: Google Vertex AI deployments
- 📝 New blogpost: Gemini Thinking Config
- 📝 New blogpost: Shell Tool and Multi-Inbuilt Tool Execution
- 🔧 Fixed orchestrations basic concepts documentation.
Fixes
- 🔒 Security Fixes – Addressed multiple CVEs (CVE-2026-23745, CVE-2026-23950, CVE-2026-24842) to improve security posture.
- 🤖 Gemini A2A Message Support – Fixed Gemini client to support messages without
rolefor A2A. - ⚡ GroupToolExecutor Async Handler – Added async reply handler to
GroupToolExecutorfor improved async workflow support. - 🔧 Anthropic BETA_BLOCKS_AVAILABLE Imports – Fixed import issues with Anthropic beta blocks.
- 👥 GroupChat Agent Name Validation – Now validates that agent names are unique in GroupChat to prevent conflicts.
- 🪟 OpenAI Shell Tool Windows Paths – Fixed shell tool parsing for Windows paths.
- 🔄 Async Run Event Fix – Prevented double
using_auto_replyevents when using asyncrun.
What's Changed
- fix:[severity High] CVE-2026-23745 by @priyansh4320 in #2340
- fix: validate unique agent names in GroupChat by @Jing-yilin in #2333
- feat: Add RemyxCodeExecutor for research paper execution by @salma-remyx in #2141
- fix: CVE-2026-23950 by @priyansh4320 in #2350
- Documentation: Add Google Vertex AI deployments guide by @priyansh4320 in #2305
- Documentation: Blogpost on gemini thinking config by @priyansh4320 in #2303
- fix: Anthropic BETA_BLOCKS_AVAILABLE imports by @priyansh4320 in #2326
- Fix orchestrations basic concepts by @priyansh4320 in #2327
- fix: Gemini client support for messages without role (A2A) by @marklysze in #2358
- fix: add async reply handler to GroupToolExecutor by @marklysze in #2354
- feat: support GPT 5.2 codex models by @priyansh4320 in #2335
- fix: CVE-2026-24842 by @priyansh4320 in #2360
- feat: Gpt 5.1 shell tool support by @priyansh4320 in #2228
- documentation: blogpost on shell tool and multi-inbuilt tool execution by @priyansh4320 in #2288
- fix: OpenAI Shell tool parsing for Windows paths by @marklysze in #2362
- chore: Gemini 2.0 Flash replacements by @marklysze in #2363
- fix: Prevent double using_auto_reply events when using async
runby @marklysze in #2276 - Bump version to 0.10.5 by @marklysze in #2364
New Contributors
- @Jing-yilin made their first contribution in #2333
Full Changelog: v0.10.4...v0.10.5
v0.10.4
Highlights
- 🕹️ Step-through Execution - A powerful new orchestration feature
run_iter(andrun_group_chat_iter) that allows developers to pause and step through agent workflows event-by-event. This enables granular debugging, human-in-the-loop validation, and precise control over the execution loop. - ☁️ AWS Bedrock "Thinking" & Reliability - significant upgrades to the Bedrock client:
- Reliability: Added built-in support for exponential backoff and retries, resolving throttling issues on the Bedrock Converse API.
- Advanced Config: Added support for
additionalModelRequestFields, enabling advanced model features like Claude 3.7 Sonnet's "Thinking Mode" and other provider-specific parameters directly viaBedrockConfigEntry.
- 💰 Accurate Group Chat Cost Tracking - A critical enhancement to cost observability. Previously, group chats might only track the manager or the last agent; this update ensures costs are now correctly aggregated from all participating agents in a group chat session.
- 🤗 HuggingFace Model Provider - Added a dedicated guide and support documentation for integrating the HuggingFace Model Provider, making it easier to leverage open-source models.
- 🐍 Python 3.14 Readiness - Added
devcontainer.jsonsupport for Python 3.14, preparing the development environment for the next generation of Python. - 📚 Documentation & Blogs - Comprehensive new resources including:
- Logging Events: A deep dive into tracking and debugging agent events.
- MultiMCPSessionManager: Guide on managing multiple Model Context Protocol sessions.
- Apply Patch Tool: Tutorial on using the patch application tools.
What's Changed
- fix: Set agents on RunResponse for group chat runs by @marklysze in #2274
- chore: Add @runtime_checkable to RunResponseProtocol by @marklysze in #2273
- Fix: unexpected chars in documentation by @priyansh4320 in #2282
- fix: claude reviews by @priyansh4320 in #2285
- Documentation: blogpost Logging events by @priyansh4320 in #2286
- documentation: Blogpost MultiMCPSessionManager by @priyansh4320 in #2287
- Documentation: Fix A2A Document Parsing Errors by @priyansh4320 in #2281
- Avoid pydantic deprecation warnings on import by @majiayu000 in #2272
- Handle missing A2A task start events by @majiayu000 in #2275
- Documentation: fix navigation logging events by @priyansh4320 in #2280
- Docs/unify referenceagent by @yashdeepkumar in #2268
- Docs/fix docagent performance nav by @yashdeepkumar in #2294
- fix: banner image by @priyansh4320 in #2295
- Documentation: Add HuggingFace Model Provider by @priyansh4320 in #2279
- feat: Step through execution with runs by @marklysze in #2290
- chore: Code tidy for Anthropic and Google Gemini client classes by @marklysze in #2311
- Documentation: add apply patch tool blogpost by @priyansh4320 in #2284
- feat: add devcontainer.json for python 3.14 by @priyansh4320 in #2312
- build: update checkout action to v6 by @rejected-l in #2224
- feat: Bedrock exponential backoff and retries support by @priyansh4320 in #2292
- Feat: additionalModelRequestFields support on bedrock client by @priyansh4320 in #2262
- fix: Group chats to include costs from all agents by @marklysze in #2278
- Add Tests and Documentation for FunctionTarget by @gabriel-eidelman in #2304
- fix: filename conventions by @priyansh4320 in #2325
- [Release] Fix bugs and bump version to 0.10.4 by @randombet in #2331
New Contributors
- @majiayu000 made their first contribution in #2272
- @yashdeepkumar made their first contribution in #2268
Full Changelog: v0.10.3...v0.10.4
v0.10.3
Highlights
Enhancements
- 🚀 OpenAI GPT 5.2 Support – Added support for OpenAI's latest GPT-5.2 models, including the new
xhighreasoning effort level for enhanced performance on complex tasks. - 🛠️ OpenAI GPT 5.1
apply_patchTool Support – The Responses API now supports theapply_patchtool, enabling structured code editing with V4A diff format for multi-file refactoring, bug fixes, and precise code modifications.
Check out the tutorial notebook: GPT 5.1 apply_patch with AG2. - 🧠 Gemini ThinkingConfig Support – Extended thinking/reasoning configuration (
ThinkingConfig) to Google Gemini models, allowing control over the depth and latency of model reasoning.
Check out the tutorial notebook: Gemini Thinking with AG2. - ✨ Gemini 3 Thought Signatures – Added support for thought signatures in functions for Gemini 3 models, improving reasoning-trace capture and downstream processing.
- 📊 Event Logging Enhancement – Event printing now routes through the logging system, giving you more control over agent output and debugging.
Bug Fixes and Documentation
- 🔧 Anthropic Beta API Tool Format – Corrected tool formatting issues with Anthropic Beta APIs for more reliable tool calling.
- 🔩 Bedrock Structured Outputs – Fixed tool choice handling for Bedrock structured outputs using the
response_formatAPI. - ⚙️ Gemini FunctionDeclaration – Now using proper Schema objects for Gemini
FunctionDeclarationparameters, improving function calling reliability. - 🛠️ OpenAI V2 Client Tool Call Extraction – Fixed tool call extraction logic from
message_retrievalin the OpenAI V2 client. - 🔄 Long-Living Tasks Processing – Corrected async processing issues for long-running agent tasks.
- 🖼️ Fixed handling of
tags in MultimodalConversableAgent
- ✅ Async default_auto_reply Validation – Resolved validation error when using async
default_auto_reply. - 📔 Updated notebooks and documentation with simpler LLMConfig usage.
What's Changed
- Bump version to 0.10.2 by @marklysze in #2239
- [Enhancement]Fix OAI V2 client tool call extract logic from message_retrieval by @randombet in #2214
- feat: Route event printing through logging by @priyansh4320 in #2217
- fix: Handling of img tags for MultimodalConversableAgent by @marklysze in #2247
- chore: Version bump of google-genai by @marklysze in #2240
- feat: Add OpenAI GPT 5.2 support by @priyansh4320 in #2250
- Documentation: fix llmconfig assignments by @priyansh4320 in #2252
- Fix: Validation Error on aysnc default_auto_reply by @priyansh4320 in #2256
- fix: correct long-living tasks processing by @Lancetnik in #2255
- feat:[response API] GPT 5.1 apply_patch tool call support by @priyansh4320 in #2213
- fix: use Schema objects for Gemini FunctionDeclaration parameters by @marklysze in #2260
- feat: ThinkingConfig support gemini by @priyansh4320 in #2254
- fix: Support for thought signatures in functions for Gemini 3 models by @marklysze in #2267
- [Fix] Tool format with Anthropic Beta APIs by @randombet in #2261
- fix: Update path for windows apply_patch test by @marklysze in #2269
- Document: update ipynb with LLMConfig(config_list=[]) by @priyansh4320 in #2264
- fix: bedrock structured outputs tool choice by @priyansh4320 in #2251
- Bump version to 0.10.3 by @marklysze in #2270
- fix: front_matter in notebooks by @marklysze in #2271
Full Changelog: v0.10.2...v0.10.3