Интеграции Агента с мессенджером

Основная (и единственная) проблема при интеграции агента с любым UI - это то, как менеджить разные контексты. Это могут быть разные чаты или явные команды, что текущий диалог завершен и пора начинать новый. А если у тебя агент рассчитан на несколько пользователей, то нужно еще разграничивать их контексты и не забыть про безопасность.

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

В помощь могу предложить разве что вот такой код:

from autogen.beta import Agent, config, MemoryStream

agent = Agent("tg-agent", config=config.OpenAIConfig("gpt-5"))

dp = Dispatcher() chat_state: dict[int, MemoryStream] = {}

@dp.message(F.text) async def on_text(message: Message) -> None:

#получаем старый контекст или создаем новый

if not (stream := chat_state.get(message.chat.id)): stream = chat_state[message.chat.id] = MemoryStream()

#дергаем агента с этим контекстом

reply = await agent.ask( message.text, stream=stream, variables={"user_id": message.chat.id}, )

#отвечаем в TG чат

await message.answer(reply.content)

asyncio.run(dp.start_polling(bot))

Чуть более развернутый пример я уже описывал в блоге AG2 - там пример с историей диалогов и переключением между ними

Но, я уверен, вы без труда справитесь с такой интеграцией. Если же вы хотите написать Web приложение, то советую посмотреть на фичи AG-UI протокола - там уже есть готовые фреймворки и на фронтенде. Про AG-UI я писал даже статью на Habr, но если все еще ничего не понятно, могу попробовать объяснить еще раз😅

#Agents

Интеграции Агента с мессенджером
Основная (и единственная) проблема при интеграции агента с любым UI - это то, как менеджить разные контексты | Сетка — социальная сеть от hh.ru