Мы полностью переписали AG2 - и готовы к релизу!

Неделю назад я говорил, что выпиливаю из AG2 весь легаси и готовлю фреймворк к выходу из беты. Так вот, этот час настал: первая бета AG2 1.0 вышла🎉

Классика (тот самый AutoGen) уехала в ag2-classic и живет в maintenance-режиме - у тех, кто на ней в проде, ничего не ломается. А pip install ag2 теперь ставит полностью новый фреймворк: все, что мы строили в autogen.beta (и о чем я вам регулярно рассказывал), стало основным API.

Зачем еще один фреймворк, когда есть LangChain / CrewAI / PydanticAI?

Мой ответ - протоколы вместо абстракций. Отсюда все остальное:

Маленький публичный API на протоколах - поверх него строятся все фичи фреймворка. Меньше поверхность - предсказуемее поведение. А еще можно воткнуть свои реализации на что угодно • Агенты stateless - состояние вынесено наружу, поэтому поведение агента можно точно контролировать и воспроизводить • Акторная модель исполнения - все части фреймворка построены на событиях: любое можно перехватить и изменить, повесить свой обработчик, а то и построить логику поверх кастомных событий. Это другой уровень гибкости инструмента • Лучший DI - хуков много, и везде доступны и зависимости, и контекст управления: Depends, Inject, Variable. Даже ваш любимый dishka поддерживается🌚 • Все необходимое на месте - поддержка Skills, сабагентов, динамических и бекграунд агентов, память, Shell и Coding инструменты... Написать свой Hermes можно в 10 строчек😎 • Открытые протоколы на все случаи жизни - фронтенд через AG-UI, мультиагенты через A2A, MCP, A2UI. Можно даже оркестрировать Claude Code-агентов через ACPНормальные мидлвари - через них уже реализовано многое: сжатие контекста, OpenTelemetry и тд

Минимальный агент выглядит так:

from ag2 import Agent from ag2.config import OpenAIConfig

agent = Agent( "assistant", prompt="You are a helpful assistant.", config=OpenAIConfig("gpt-4o-mini"), )

#Start a new conversation

reply = await agent.ask("Give me one sentence about AG2.") print(reply.body)

#Continue the exact same conversation context

next_turn = await reply.ask("Now make it shorter.") print(next_turn.body)

Фреймворк получился в моем стиле: экстремальная гибкость - реализовать можно что угодно, но на стандартные кейсы есть стандартные батарейки.

Финальный 1.0 - по плану, середина июля. Если вы еще выбираете, на чем писать агентов - идеальный момент потыкать бету и принести нам issues, пока API не заморожен😅

#Agents #opensource


В этом посте были ссылки, но мы их удалили по правилам Сетки