Открытые фреймворки для ИИ-агентов
Как только вы соберёте несколько агентов вручную, одна и та же обвязка появляется снова и снова: цикл, который вызывает модель, запускает запрошенный ею инструмент, возвращает результат обратно и останавливается, когда работа выполнена. Фреймворки для агентов упаковывают эту обвязку — плюс состояние, память и координацию нескольких агентов — так что вы пишете меньше связующего кода. Эта страница — устойчивая, нейтральная к провайдеру карта основных открытых вариантов, того, что они действительно дают, и того, как выбрать. Почти все они не зависят от модели: они работают с Claude, GPT, Gemini и локальными моделями с открытыми весами.
- Понять, что фреймворк для агентов даёт сверх самописного цикла — и чего он не даёт
- Распознавать три архетипа: графы с состоянием, команды по ролям и минимальные циклы
- Использовать воспроизводимую процедуру выбора — обменивая сложность на контроль
- Помнить, что большинство из них не зависят от модели — фреймворк редко привязывает вас к одному провайдеру
Что фреймворк для агентов на самом деле вам даёт
Уберите брендинг, и фреймворк предлагает вам некоторое подмножество из четырёх вещей:
- Оркестрация — управляющий цикл. Последовательные шаги, ветвления, повторы, циклы-до-готовности и (всё чаще) устойчивое выполнение, которое переживает сбой и возобновляется с места остановки.
- Инструменты — стандартный способ объявить функцию, которую модель может вызвать, проверить её аргументы, запустить её и вернуть результат. Тот же цикл «опиши→вызови→выполни→верни», который вы уже знаете по использованию инструментов.
- Память и состояние — место, где хранится история диалога, факты-заметки и извлечённые документы между ходами, чтобы агент не терял память между шагами.
- Мультиагентность — шаблоны для нескольких специализированных агентов, передающих работу друг другу: супервизор, делегирующий исполнителям, или равноправные агенты, совместно решающие задачу. (Концептуально та же идея, что и субагенты в Claude Code.)
Фреймворк оправдан, когда иначе вам пришлось бы вручную писать и поддерживать все четыре компонента. Он не оправдан, когда ваша задача — «вызвать модель, запустить один-два инструмента, вернуть ответ»: там фреймворк — это накладные расходы, с которыми вы будете бороться.
Три архетипа
Фреймворки отличаются меньше, чем предполагает их маркетинг. По сути форм всего три, и большинство проектов — вариация на одну из них:
- Граф / рабочий процесс с состоянием. Вы моделируете агента как явный граф узлов и рёбер (или шагов и переходов). Максимальный контроль, инспектируемое состояние, хорошо для долгих процессов и потоков с участием человека. Больше нужно изучить заранее. → LangGraph, LlamaIndex Workflows.
- Команда по ролям. Вы описываете агентов по роли («исследователь», «писатель», «рецензент») и позволяете им сотрудничать или выполнять процесс. Быстро выразить мультиагентную команду; вы обмениваете часть тонкого контроля на высокоуровневую абстракцию. → CrewAI и диалоговый мультиагентный стиль AutoGen.
- Минимальный цикл / мало абстракций. Тонкий слой поверх нативного вызова инструментов моделью, с передачами между несколькими агентами и почти без остального. Легко прочитать от начала до конца, легко отбросить. → OpenAI Agents SDK (продакшн-преемник экспериментального Swarm) и обычный цикл, который вы пишете сами.
- Начинайте с самого простого, что работает — часто обычный цикл с вызовом инструментов побеждает тяжёлый фреймворк.
Краткий обзор (проверьте позиционирование, прежде чем брать на вооружение)
Это открытые проекты, которые стоит знать. Названы только потому, что реальный репозиторий каждого был проверен; всё изменчивое живёт за VerifyNote выше.
- LangGraph — низкоуровневый фреймворк оркестрации для агентов с состоянием и долгим временем работы, смоделированных как графы; устойчивое выполнение и участие человека — первоклассные возможности. Используется автономно или с более широкой экосистемой LangChain. Не зависит от модели.
- LlamaIndex — начинался как фреймворк для данных/RAG (коннекторы, индексы, извлечение), а теперь также поставляет событийно-ориентированный слой Workflows для агентов. Силён, когда ваш агент по сути — это извлечение по вашим документам.
- Microsoft AutoGen — фреймворк для диалоговых мультиагентных систем. По состоянию на середину 2026 года он находится в режиме сопровождения; Microsoft направляет новые проекты к единому преемнику (Microsoft Agent Framework, объединяющему AutoGen + Semantic Kernel). Проверьте текущий статус, прежде чем начинать.
- CrewAI — фреймворк на основе ролей: определяйте агентов по роли и цели, организуйте их в Crews (автономное сотрудничество) или Flows (событийно-ориентированное управление). Быстрый путь к мультиагентной команде.
- OpenAI Agents SDK — намеренно лёгкий фреймворк с малым числом абстракций для мультиагентных рабочих процессов с передачами. Несмотря на название, он не зависит от провайдера (его документация отмечает поддержку 100+ LLM) и является готовым к продакшену преемником экспериментального Swarm.
- Обычный цикл агента — вообще без фреймворка: ваш собственный цикл
whileвокруг нативного вызова инструментов моделью. Правильный выбор по умолчанию для простых агентов и то, что в конечном счёте оборачивает каждый фреймворк выше.
Как выбрать фреймворк
- Одно предложение о том, что делает агент, плюс то, о чём нельзя договориться: задержка, потолок стоимости, приватность данных, должны ли запуски переживать сбой и должен ли человек одобрять шаги.
- Если это один агент, вызывающий один-два инструмента, напишите обычный цикл. Многим продакшн-агентам никогда не нужно большего. Берите фреймворк на вооружение, только когда иначе вам пришлось бы самим заново реализовывать оркестрацию, память И мультиагентность.
- Долгая работа / участие человека / инспектируемое состояние → граф с состоянием (LangGraph, LlamaIndex Workflows). Команда специалистов → команда по ролям (CrewAI). Несколько агентов, передающих работу, при простоте → минимальный цикл (OpenAI Agents SDK или ваш собственный).
- Подтвердите, что репозиторий активно поддерживается (не в режиме сопровождения) и что он чисто поддерживает модель, которую вы действительно используете — Claude, GPT, Gemini или локальную модель. Большинство нейтральны к провайдеру; проверяйте, не предполагайте.
- Соберите единственный самый сложный шаг — хитрый инструмент, передачу, возобновление после сбоя — в двух кандидатах. Абстракция, которая делает этот шаг читаемым, — ваш победитель.
- Держите свои инструменты и промпты как обычные функции и строки, чтобы фреймворк оборачивал вашу логику, а не владел ею. Смена фреймворка должна означать перекоммутацию оркестрации, а не переписывание всего.
То, что оборачивает каждый фреймворк
Прежде чем тянуться к любой библиотеке, полезно увидеть цикл, на котором все они построены. Это и есть вся идея — модель решает, вы выполняете, повторяете до готовности:
# Provider-neutral agent loop — the core every framework wraps.
# `model_call` and `run_tool` are yours; swap in Claude, GPT, Gemini, or a local model.
def agent_loop(task, tools, max_steps=10):
messages = [{"role": "user", "content": task}]
for _ in range(max_steps):
# 1. Ask the model what to do next (it sees the tool schemas).
response = model_call(messages, tools=tools)
# 2. No tool requested → the model is done. Return its answer.
if not response.tool_calls:
return response.text
# 3. Run each requested tool and feed results back in.
messages.append(response.as_message())
for call in response.tool_calls:
result = run_tool(call.name, call.arguments)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": result,
})
return "Stopped: hit max_steps without finishing."
Если вы можете это прочитать, вы понимаете, что делает под капотом каждый фреймворк на этой странице. Графы добавляют явное состояние и ветвление; команды добавляют роли и делегирование; минимальные SDK добавляют аккуратные передачи — но сердцебиение всегда этот цикл.
Минимальный системный промпт агента (в паре с циклом выше)
You are a task-completing agent with access to tools.
Loop:
1. Think briefly about the next single step toward the goal.
2. If a tool would help, call exactly ONE tool with valid arguments.
3. When you have enough to answer, stop calling tools and give the final answer.
Rules:
- Prefer the fewest tool calls that get the job done.
- If a tool fails, read the error and adjust — do not repeat the same call.
- Never invent tool results; use only what tools actually returned.
- If the goal is impossible with the available tools, say so and stop.
Goal: {one-sentence task}Замечание о хайпе
Ни один фреймворк здесь не «лучший» — сам вопрос поставлен неправильно. Графовые фреймворки выигрывают в контроле и устойчивости; командные фреймворки выигрывают в быстром выражении команды; минимальные выигрывают в читаемости и низкой привязке; а обычный цикл выигрывает чаще, чем признают README фреймворков. Правильный выбор — наименьший инструмент, который делает ваш самый сложный шаг понятным. Как и при выборе модели, пусть решает ваша собственная задача, а не количество звёзд. Та же дисциплина, которую вы применили бы с оценками, применима и здесь: прототипируйте, измеряйте на реальных случаях, держите путь к отступлению.
Проверьте себя
0/3- Фреймворк для агентов упаковывает оркестрацию, инструменты, память и координацию нескольких агентов — берите его на вооружение, только когда иначе вы бы строили все четыре сами.
- Три архетипа покрывают поле: графы с состоянием (контроль/устойчивость), команды по ролям (быстрые команды) и минимальные циклы (читаемость, низкая привязка).
- Почти все из них не зависят от модели — они работают на Claude, GPT, Gemini и локальных моделях; проверяйте по каждому проекту, а не предполагайте.
- Ни один фреймворк не является универсально «лучшим»; выбирайте наименьший инструмент, который делает ВАШ самый сложный шаг понятным, и держите путь к отступлению.
- Обычный цикл с вызовом инструментов — честный выбор по умолчанию, и это ровно то, что оборачивает каждый фреймворк.
- Статус сопровождения меняется (например, AutoGen → преемник); подтвердите, что проект активно поддерживается, в его собственном репозитории, прежде чем брать на вооружение.
Источники и дополнительное чтение
- LangGraph — GitHub — низкоуровневый фреймворк оркестрации для агентов с состоянием и долгим временем работы.
- Обзор LangGraph — документация LangChain — концепции, устойчивое выполнение и участие человека.
- LangChain — GitHub — более широкая экосистема, с которой интегрируется LangGraph.
- LlamaIndex — GitHub — фреймворк для данных/RAG с событийно-ориентированным слоем Workflows для агентов.
- Документация LlamaIndex — RAG, движки запросов, агенты и Workflows.
- Microsoft AutoGen — GitHub — диалоговый мультиагентный фреймворк (проверьте статус сопровождения).
- Microsoft Agent Framework — GitHub — единый преемник (AutoGen + Semantic Kernel) для создания и оркестрации агентов.
- CrewAI — GitHub — мультиагентный фреймворк на основе ролей с Crews и Flows.
- Документация CrewAI — агенты, задачи, команды, потоки и инструменты.
- OpenAI Agents SDK — GitHub — лёгкий, не зависящий от провайдера мультиагентный фреймворк с передачами.
- Документация OpenAI Agents SDK — модель агента с минимумом абстракций.
- OpenAI Swarm — GitHub — экспериментальный предшественник, который заменяет Agents SDK (учебный, ныне вытеснен).
Далее
- Нейтральный к провайдеру способ выбрать модель → Выбор модели
- Цикл, который оборачивают эти фреймворки → Использование инструментов
- Мультиагентность в стиле Claude Code → Субагенты
- Как на самом деле сравнивать кандидатов → Оценки