До основного вмісту

AutoGen на VDS: мультиагентна система від Microsoft

AI-агенти на VDS · 19.04.2026 · 4 хв читання
Ілюстрація до статті «AutoGen на VDS: мультиагентна система від Microsoft»

Що таке AutoGen?

AutoGen — фреймворк від Microsoft Research для створення мультиагентних систем. Агенти можуть спілкуватися між собою, писати та виконувати код, звертатися до зовнішніх інструментів. Це особливо потужно для задач програмування та аналізу даних.

Встановлення

pip install pyautogen

Два агенти: програміст і критик

import autogen

config = {
    "config_list": [{
        "model": "llama3.2",
        "base_url": "http://localhost:11434/v1",
        "api_key": "ollama"
    }]
}

# Агент-програміст пише код
coder = autogen.AssistantAgent(
    name="Coder",
    system_message="Ти досвідчений Python розробник. Пиши чистий код.",
    llm_config=config
)

# Агент-користувач запускає і перевіряє
user = autogen.UserProxyAgent(
    name="User",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "/tmp/autogen"},
    max_consecutive_auto_reply=10
)

# Запуск діалогу
user.initiate_chat(
    coder,
    message="Напиши Python скрипт для моніторингу використання RAM і CPU"
)

GroupChat — декілька агентів

groupchat = autogen.GroupChat(
    agents=[coder, user, reviewer],
    messages=[],
    max_round=10
)
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=config)
user.initiate_chat(manager, message="Створи REST API для керування задачами")
Виконання коду: AutoGen може запускати згенерований код автоматично. Запускайте в ізольованому Docker-контейнері або з обмеженими правами.

Коли обрати AutoGen?

  • Задачі кодування та налагодження
  • Автоматичний аналіз даних
  • Системи, де потрібен діалог між агентами
  • Складні багатокрокові задачі з кодом

Часті помилки під час встановлення та запуску

Більшість проблем з AutoGen пов'язані не з самим кодом агентів, а із середовищем: конфліктними пакетами, недоступним Ollama або неправильними шляхами для виконання коду.

ModuleNotFoundError: No module named 'autogen'

Екосистема AutoGen у 2024 році розділилася: частина розробників продовжила проєкт під тією самою назвою, частина — під форком з окремою назвою на PyPI. Обидва пакети використовують той самий простір імен import autogen, тож якщо в середовищі випадково опинилися встановлені обидва, другий пакет мовчки перезаписує файли першого, і старий код перестає знаходити потрібні класи. Рішення — тримати в проєкті лише один із пакетів і фіксувати його версію в requirements.txt.

TimeoutError при зверненні до локальної моделі

requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=11434): Max retries exceeded

Ця помилка означає, що AutoGen не може достукатися до Ollama за адресою з base_url. Перевірте, що служба запущена (systemctl status ollama), що модель із config_list справді завантажена (ollama list), і що порт 11434 не зайнятий іншим процесом.

AutoGen, CrewAI та LangChain: як обрати фреймворк

Критерій AutoGen CrewAI LangChain
Модель спілкування агентів Вільний діалог, GroupChat Фіксовані ролі та передача завдань Явні ланцюжки та графи викликів
Виконання коду Вбудоване, через UserProxyAgent Через окремі інструменти Через інструменти й агент-виконавець
Поріг входу Середній, потрібно розуміти ролі агентів Низький, декларативний опис команди Вищий, багато абстракцій
Де сильніший Кодогенерація та налагодження Покрокові бізнес-процеси Кастомні пайплайни та RAG

Якщо завдання — не мультиагентний діалог, а конкретний пайплайн із чіткими кроками, зазвичай простіше почати з LangChain або CrewAI, а AutoGen залишити для задач, де агентам справді потрібно писати і запускати код у діалозі один з одним.

Коли AutoGen не підходить

  • Потрібен передбачуваний, детермінований пайплайн без довільної кількості раундів діалогу — GroupChat може піти у зайві ітерації.
  • У продакшені не можна виконувати згенерований код без ручної перевірки — UserProxyAgent за замовчуванням запускає код автоматично.
  • Команда не готова підтримувати ізоляцію середовища виконання (Docker або окремий користувач з обмеженими правами).
  • Завдання вирішується одним викликом моделі без діалогу між ролями — у цьому разі прямий запит до Ollama буде простішим і дешевшим за ресурсами.

Як перевірити, що все працює

python3 -c "import autogen; print(autogen.__version__)"
ollama list
systemctl status ollama --no-pager

Перша команда підтверджує, що пакет встановлено і його бачить інтерпретатор. Друга показує, які моделі реально завантажені — ім'я в конфігурації агента має збігатися з одним із рядків виводу. Третя перевіряє, що служба Ollama активна і приймає з'єднання. Якщо діалог між агентами зависає без відповіді, майже завжди причина в одному з цих трьох пунктів.

Варто враховувати і навантаження на ресурси сервера: кожен раунд GroupChat — це окремий виклик моделі, і при великій кількості учасників час відповіді зростає лінійно разом із кількістю раундів, а не залишається сталим. На VDS з обмеженою кількістю ядер CPU має сенс заздалегідь виставити розумний max_round і стежити за чергою запитів до Ollama, інакше діалог агентів може зайняти хвилини замість секунд.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці