Skip to content

kvoloshenko/LocalMultiAgents_01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LocalMultiAgents_01

Local Multi-Agents: LangGraph, Ollama, Qwen3

Карта технологий и где мы находимся

flowchart LR

    %% === STYLES ===
    classDef main fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px,color:#0d47a1;
    classDef branch fill:#e8f5e9,stroke:#43a047,stroke-width:1.5px;
    classDef tech fill:#fff8e1,stroke:#f9a825;
    classDef current fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#bf360c;

    %% === Level 0 ===
    U([Пользователь])

    %% === Level 1 ===
    U -- "периодические<br/>задачи" --> W["Использование web-чатов"]
    U -- "повторяемые<br/>однотипные задачи" --> A["Автоматизация AI Agents"]

    %% === Level 2A — Web Chats ===
    W --> W1["ChatGPT"]
    W --> W2["DeepSeek"]
    W --> W3["Qwen (online)"]
    W --> W4["Claude"]
    W --> W5["Gemini"]
    W --> W6["Llama Web UI"]

    %% === Level 2B — Автоматизация ===
    A --> ZC["ZeroCode"]
    A --> PR["Программирование"]

    %% === Level 3A — ZeroCode ===
    ZC --> Z1["Make / Zapier"]
    ZC --> Z2["Flowise / Dify"]
    ZC --> Z3["n8n"]
    ZC --> Z4["No-code AI Tools"]

    %% === Level 3B — Programming ===
    PR --> P1["Без framework"]
    PR --> P2["Использование framework"]

    %% === Level 4A — Without Framework ===
    P1 --> NF1["Python + API LLM"]
    P1 --> NF2["Скрипты вокруг Ollama"]
    P1 --> NF3["Самописные state-machine"]

    %% === Level 4B — Frameworks ===
    P2 --> FG1["LangGraph"]
    P2 --> FG2["CrewAI"]
    P2 --> FG3["Autogen"]

    %% === APPLY STYLES ===
    class U main
    class W,A branch
    class ZC,PR branch
    class P1,P2 branch

    class W1,W2,W3,W4,W5,W6 tech
    class Z1,Z2,Z3,Z4 tech
    class NF1,NF2,NF3 tech
    class FG1,FG2,FG3 tech

    %% Highlight current-focus nodes
    class PR,P2,FG1 current

Loading

Обзор примеров AI-агентских решений на базе локальных LLM

Этот репозиторий содержит три примера локальных AI-агентных систем на базе:

  • 🧠 LangGraph (ReAct-агенты, мультиагентные графы)
  • 🖥 Ollama (локальный запуск LLM)
  • 🧾 Qwen3 (qwen3:latest) как основная модель

Структура:

C:\_AI\LocalMultiAgents_01
├─ README.md                     # текущий обзор
├─ requirements.txt
└─ Python
   ├─ Agent_04_Drafter           # Single-agent (Drafter)
   │  ├─ Agent_04_Drafter.py
   │  └─ README.md
   ├─ Supervisor                 # Multi-agent Supervisor
   │  ├─ supervisor_math_research.py
   │  └─ README.md
   └─ Swarm                      # Multi-agent Swarm
      ├─ swarm_flight_hotel.py
      └─ README.md

1.1. Использование локальной LLM через Ollama

Во всех трёх примерах используется локальная языковая модель (LLM), развернутая через Ollama:

from langchain_ollama import ChatOllama
model = ChatOllama(model="qwen3:latest")

Это обеспечивает:

  • 🔒 Полную локальность выполнения (данные не покидают инфраструктуру)
  • 🧱 Возможность использовать современные модели (qwen3, llama3, mistral и др.)
  • ⚙️ Гибкость в выборе и замене моделей

1.2. Анализ реализаций примеров

1) Agent_04_Drafter.py — одиночный агент для документов

Назначение: Система для подготовки и редактирования текстовых документов (письма, записки, черновики и т.п.) в режиме Human-AI Collaboration.

Ключевые компоненты:

  • Инструменты:

    • update(content: str) — обновление содержимого документа (глобальная переменная document_content)
    • save(filename: str) — сохранение документа в текстовый файл
  • Граф состояний (LangGraph StateGraph):

    • Узел agent — логика агента с системным промтом
    • Узел tools ( ToolNode ) — автоматический вызов инструментов
    • Условный переход should_continue() — решает, продолжать ли работу или завершить процесс после сохранения документа
  • Логика работы:

    • Принимает запросы на изменение документа
    • Вызывает инструмент update, когда нужно заменить содержимое
    • При запросе на сохранение вызывает save и завершает работу
    • Показывает эволюцию документа в диалоге

Архитектура: одиночный агент с инструментами (Single Agent + Tools).


2) supervisor_math_research.py — мультиагентная система с Supervisor

Назначение: Решение математических и исследовательских задач с распределением ролей между агентами.

Ключевые компоненты:

  • Supervisor:

    • Управляет маршрутизацией запросов между агентами
    • Принимает решение, к какому агенту отправить задачу
  • Специализированные агенты:

    • math_expert — математические операции:

      • add(a, b)
      • multiply(a, b)
    • research_expert — имитация веб-поиска:

      • web_search(query) (возвращает заранее подготовленные данные)
  • Инструменты: классические Python-функции, обёрнутые в инструменты ReAct-агентов

  • Сценарий работы:

    • Supervisor получает запрос пользователя (например: “What’s the combined headcount of the FAANG companies in 2024?”)
    • Направляет запрос research_expert → тот вызывает web_search
    • Затем Supervisor направляет результаты в math_expert → тот суммирует значения (add / multiply)

Архитектура: иерархическая мультиагентная система с централизованным управлением (Supervisor).


3) swarm_flight_hotel.py — роевое мультиагентное взаимодействие (Swarm)

Назначение: Децентрализованная система, где агенты (Alice и Bob) могут динамически передавать управление друг другу (handoff) и совместно решать задачи.

Ключевые компоненты:

  • Агенты с индивидуальностью:

    • Alice — эксперт по сложению чисел, использует инструмент add(a, b)
    • Bob — «пират», сам не считает, передает математические задачи Alice
  • Swarm-архитектура:

    • Используется create_swarm из langgraph_swarm
    • Управление передается через create_handoff_tool(agent_name=...)
    • Состояние диалога хранится в InMemorySaver (checkpointer)
  • Работа в одной сессии:

    • Диалог связывается по thread_id
    • Swarm помнит, какой агент был активен последним

Архитектура: децентрализованный «рой» равноправных агентов, без единого центра управления.


1.3. Что такое AI Agent

AI Agent — это автономная система, которая:

  • использует LLM для принятия решений;
  • имеет доступ к инструментам (функциям, API, БД);
  • может выполнять последовательность шагов для достижения цели;
  • сохраняет состояние и контекст взаимодействия (история сообщений, переменные).

В этом репозитории примером одиночного агента является Agent_04_Drafter.


1.4. Single Agent vs Multi-Agent

Аспект Одиночный агент Мультиагентная система
Архитектура Один агент со всеми инструментами Несколько специализированных агентов
Специализация Скорее универсальный Каждый агент отвечает за свою область
Сложность Проще в реализации Требуется координация (Supervisor / Swarm)
Масштабируемость Ограничена Легко добавлять новых агентов и роли
Примеры Drafter Supervisor, Swarm

1.5. Типы мультиагентных систем в проекте

1) Супервизорная система (Supervisor)

  • Структура: иерархическая, с центральным координатором.
  • Управление: Supervisor решает, какому агенту передать задачу.
  • Преимущества: чёткое разделение ответственности, предсказуемое поведение.
  • Подходит: когда задачи можно хорошо категоризировать (математика vs исследование).

2) Роевая система (Swarm)

  • Структура: децентрализованная сеть агентов.
  • Управление: агенты самостоятельно передают задачи друг другу (handoff).
  • Преимущества: гибкость, устойчивость к ошибкам отдельного агента, естественная эволюция сценариев.
  • Подходит: для сложных, условно «неструктурированных» процессов, где роли могут меняться.

1.6. Выводы

  1. Локальность через Ollama обеспечивает приватность и контроль над данными.

  2. Примеры демонстрируют эволюцию сложности:

    • от одиночного агента (Drafter)
    • к Supervisor-архитектуре
    • к Swarm-модели с децентрализованным handoff.
  3. LangGraph предоставляет мощные абстракции:

    • StateGraph, ToolNode, ReAct-агенты
    • Supervisor и Swarm-архитектуры.
  4. Практическая применимость:

    • автоматизация документооборота;
    • аналитика и исследовательские задачи;
    • сценарии, где нужно координировать несколько «ролей» внутри одной системы.

2. Установка и запуск

Требования

  • Python 3.11
  • Установленный Ollama
  • Локальная модель:
ollama pull qwen3:latest
  • Зависимости из requirements.txt.

Установка зависимостей

cd C:\_AI\LocalMultiAgents_01

pip install -r requirements.txt
pip install -U "langgraph-cli[inmem]"

(При необходимости см. также README в каждом подпроекте.)

Запуск примеров

About

Local Multi-Agents: LangGraph, Ollama, Qwen

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages