Skip to content

v1.0.0

Latest

Choose a tag to compare

@marklysze marklysze released this 27 Jul 00:54
22f5d2e

AG2 v1.0.0

AG2 v1 is here! The protocol-driven framework we started building as autogen.beta in v0.12 is now the mainline framework, and the classic framework has moved to its own repository.

This release covers everything from v0.14.0, including the work released in v1.0.0b0.


Installing, importing, and start coding

Install What you get Repository
pip install ag2 AG2 v1.0 — actively developed ag2ai/ag2
pip install autogen AG2 Classic — maintenance mode ag2ai/ag2-classic

The top-level package is now imported as ag2. The autogen import name is no longer shipped by this repository.

import ag2

Get the AG2 skills for your coding assistant at ag2ai/ag2-skills — install with npx skills add ag2ai/ag2-skills.


Migrating

If you are on AG2 Classic

If your code contains import autogen, ConversableAgent, AssistantAgent, UserProxyAgent, GroupChat, register_function, or the nested and sequential chat patterns, you are on Classic.

Classic now lives at ag2ai/ag2-classic, with its own documentation at classic.docs.ag2.ai. It remains maintained and installable, and it receives security and critical bug fixes.

v1.0 is not a drop-in upgrade. The agent model, orchestration, and imports are different. Install autogen or pin the classic distribution rather than tracking ag2>=1.0, and your existing code keeps working unchanged.

If you are on the beta

The autogen.beta namespace is gone. Everything under it is now at the top level:

# Before
from autogen.beta import Agent
from autogen.beta.config import OpenAIConfig

# Now
from ag2 import Agent
from ag2.config import OpenAIConfig

The classic CLI has also been removed, and __version__ is now exported at the top level of the package.


AG2 Assistant

We built an open-source AI Assistant, powered by the AG2 framework. Let the AG2 framework work alongside you, carrying out the tasks you do on a daily basis, in a secure, permission-first, environment. Want it to do more? It's open-source, just like the AG2 framework.

ag2ai/ag2-assistant — v1.0 engine, chat, scheduled tasks, working folders, generative UI, and voice. Includes an inspector panel showing the live AG2 event stream.


New in this release

Protocols

  • NLIP — Integration for the Natural Language Interaction Protocol.
  • ACP — Support for the Agent Client Protocol, for driving CLI coding agents, together with an MCP tool gateway that exposes AG2 tools to those agents. The authentication and billing model for CLI agents is documented.
  • MCP-UI — Support for the MCP UI extension.

Tools

  • Server-side tool search with deferred loading — Agents can discover and load tools on demand rather than holding the full surface in context up front.
  • OpenAI ResponsesFileSearchTool and SkillsTool support.
  • Anthropic — New code_execution version, and support for the current web_fetch and web_search tool versions.
  • GeminiFileSearchTool store search and GoogleMapsTool grounding.
  • Xquik — New tweet search toolkit.
  • Perplexity — Sends an X-Pplx-Integration attribution header.

Providers

  • Z.AI — Files API support.
  • OpenAI — Encrypted reasoning content is now requested when store is false, so reasoning survives without server-side retention.

Observability

  • Prometheus support — Export metrics to a Prometheus scrape endpoint.
  • Network tracing — Tracing across the multi-agent network.

Fixes

Reliability

  • Failures are no longer swallowed. Several paths silently discarded errors, which could result in silent data loss. They now surface. If you have error handling built around the previous behaviour, review it.
  • Redis listener cancellation is propagated correctly.
  • SqliteKnowledgeStore read paths are serialized with the connection lock.

Knowledge and history

  • UsageEvent telemetry is excluded from history compaction via the __conversational__ marker.
  • History is sized correctly from event content.

Network and subagents

  • Namespaced delegate targets resolve correctly, and unknown targets are enumerated rather than failing opaquely.
  • as_tool(stream=...) accepts a Stream instance and rejects invalid types loudly rather than silently.

Events

  • Enum types are preserved across a serialization round-trip.

Dependencies

  • nlip-server >= 0.1.3 required, dropping the transitive fastapi < 0.116 pin.
  • protobuf and typer pins aligned so uv resolves all extras.
  • Unused dev, test, and types dependencies removed.

Documentation and project

  • Documentation migrated to the 1.0.0 URL scheme, with broken links repaired, homepage 404s fixed, and navigation restructured.
  • The Blog tab is restored, carrying the Network and Agent Harness series.
  • README updated for AG2 focus, with AG2 Classic references throughout.
  • A triage policy, restructured repository labels, area-based CODEOWNERS, canned replies, and an AI task runbook have been added for contributors.

Thank you ❤️

v1.0 exists because of the people who contributed code, opened issues, tested the betas, and pushed back on design decisions along the way. Feedback during the beta changed what shipped, more than once. Thank you.


What's Changed

  • fix(nlip): require nlip-server>=0.1.3 to drop the fastapi<0.116 transitive pin by @genisis0x in #2980
  • fix(deps): align protobuf and typer pins so uv resolves all extras by @vvlrff in #3020
  • feat(beta): add ZAI Files API support by @vvlrff in #3019
  • feat!: promote autogen.beta to autogen, remove classic framework by @Lancetnik in #3023
  • fix(beta): exclude UsageEvent telemetry from history compaction via conversational marker by @marklysze in #3033
  • fix(beta): correctly size history from event content by @marklysze in #3035
  • chore(deps): bump the uv group across 1 directory with 23 updates by @dependabot[bot] in #3034
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #3027
  • ci: build docs only on manual dispatch or published release by @Lancetnik in #3036
  • ci: upload one combined coverage report per run instead of per matrix job by @Lancetnik in #3037
  • feat: add NLIP integration for beta by @ash-jyc in #3024
  • fix: propagate redis listener cancellation (+ de-flake test, retry cleanup) by @vvlrff in #3018
  • chore: remove classic CLI by @marklysze in #3041
  • feat: add ACP support for driving CLI coding agents by @vvlrff in #3026
  • fix: export version at ag2 top level by @marklysze in #3040
  • fix(test): de-flake test_cancelling_result_cancels_turn_inline by @marklysze in #3042
  • feat(tools): add server-side tool search with deferred tool loading by @vvlrff in #3032
  • Version bump to 1.0.0b0 by @marklysze in #3043
  • feat(tools): FileSearchTool and SkillsTool support on OpenAI Responses, new Anthropic code_execution version by @vvlrff in #3049
  • chore: sync uv.lock with 1.0.0b0 version bump by @vvlrff in #3048
  • docs: add Triage Policy and restructure repository labels by @Lancetnik in #3050
  • docs(triage): maintainer-authored issues enter at status:confirmed by @Lancetnik in #3052
  • ci(dependabot): add area labels to dependabot PRs by @Lancetnik in #3053
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #3051
  • chore(deps): bump the uv group with 13 updates by @dependabot[bot] in #3054
  • docs(triage): canned replies, AI task runbook, core-module areas by @Lancetnik in #3055
  • docs(triage): area-based CODEOWNERS and docs scope cleanup by @Lancetnik in #3056
  • feat: Prometheus support by @roma-frolov in #2762
  • fix(knowledge): serialize SqliteKnowledgeStore read paths with the connection lock by @marklysze in #3059
  • docs(website): fix homepage 404s and restructure navigation tabs by @Lancetnik in #3064
  • feat(gemini): FileSearchTool store search and GoogleMapsTool grounding by @vvlrff in #3063
  • chore(deps): bump j178/prek-action from 2.0.4 to 2.0.5 in the github-actions group by @dependabot[bot] in #3058
  • docs(acp): document authentication & billing model for CLI agents by @vvlrff in #3061
  • chore(deps): remove unused dev/test/types dependencies by @vvlrff in #3065
  • feat(beta): Network tracing by @marklysze in #2895
  • docs(blog): restore Blog tab with the AG2 Beta posts by @Lancetnik in #3068
  • test(openai): support openai>=2.45.0 InputTokensDetails in usage tests by @vvlrff in #3076
  • fix(docs): repair broken links and migrate to 1.0.0 URL scheme by @vvlrff in #3069
  • feat(anthropic): support new web_fetch/web_search tool versions by @vvlrff in #3067
  • fix(openai): request encrypted reasoning content when store is false by @marklysze in #3080
  • chore(deps): bump mistune from 3.2.1 to 3.3.0 by @dependabot[bot] in #3074
  • feat(search): add Xquik tweet search toolkit by @kriptoburak in #3075
  • chore(deps): bump the uv group with 10 updates by @dependabot[bot] in #3079
  • fix: stop swallowing failures (silent data loss) by @vvlrff in #3009
  • chore(deps): bump the github-actions group with 4 updates by @dependabot[bot] in #3078
  • feat(perplexity): add X-Pplx-Integration attribution header by @futorio in #3083
  • feat(mcp): MCP-UI support by @vvlrff in #3077
  • chore(deps): bump the uv group with 15 updates by @dependabot[bot] in #3090
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #3089
  • chore(deps): bump lxml to 6.1.1 and pydantic-settings to 2.14.2 by @marklysze in #3093
  • chore(deps): bump gitpython from 3.1.50 to 3.1.52 by @dependabot[bot] in #3094
  • chore(deps): bump pyasn1 from 0.6.3 to 0.6.4 by @dependabot[bot] in #3095
  • docs: README tweaks for AG2 focus and AG2 Classic references by @marklysze in #3082
  • fix(test): guard tool_search tests against single-provider CI envs by @marklysze in #3100
  • fix(test): run the ACP test suite in CI and fix its Windows failure by @marklysze in #3103
  • chore(deps): bump gitpython from 3.1.52 to 3.1.54 by @dependabot[bot] in #3105
  • chore(deps): bump pymdown-extensions from 10.21.3 to 11.0 by @dependabot[bot] in #3104
  • feat(acp): MCP tool gateway for CLI agents by @vvlrff in #3098
  • fix(beta/network): resolve namespaced and enumerate unknown delegate targets by @genisis0x in #3005
  • fix(events): preserve Enum types across serialization round-trip by @vvlrff in #3102
  • fix(beta/subagents): accept Stream instance in as_tool(stream=...) and reject invalid types loudly by @genisis0x in #2893
  • Version bump to 1.0.0 by @marklysze in #3099
  • Chore/v1.0.0 remove beta references by @marklysze in #3108

New Contributors

Full Changelog: v0.14.0...v1.0.0