
Локальный запуск агента на основе языковой модели перестал быть экзотикой. Для разработчиков, которые хотят тестировать агентные сценарии без привязки к облачным API и расходов за каждый токен, это рабочий инструмент. Однако первый запуск часто упирается в вопросы: какую модель выбрать, какой фреймворк использовать и как правильно подключить инструменты, чтобы агент действительно выполнял действия, а не просто генерировал текст.
Этот материал — минимальная рабочая конфигурация для запуска агента на локальной LLM. Без избыточных абстракций, с конкретными названиями и ограничениями, которые стоит учитывать до начала работы.
Выбор локальной модели
Не все модели подходят для агентного режима. Основные требования: поддержка функции вызова (function calling) и достаточный контекст для хранения истории диалога. Для первой конфигурации разумно выбирать модели семейства Qwen 2.5 (7B) или Llama 3.1 (8B). Они стабильно работают на потребительских GPU с 8–12 ГБ видеопамяти и корректно возвращают структурированный JSON для вызова инструментов.
| Модель | Размер | Контекст | Function calling | Рекомендуемая память GPU |
|---|---|---|---|---|
| Qwen 2.5 7B Instruct | 1 ГБ | 32K | Да | 8 ГБ |
| Llama 3.1 8B Instruct | 9 ГБ | 128K | Да | 10 ГБ |
| Mistral 7B v0.3 | 2 ГБ | 32K | Ограниченно | 8 ГБ |
| DeepSeek Coder V2 Lite | 3 ГБ | 16K | Да | 12 ГБ |
На практике Llama 3.1 8B показывает более стабильные результаты при многократных вызовах инструментов из-за большего контекстного окна. Qwen 2.5 7B быстрее загружается и требует меньше памяти.
Инструментарий для запуска
Для локального запуска модели понадобится раннер. Ollama остаётся самым простым вариантом: установка одной командой, встроенная поддержка function calling через API, совместимый с OpenAI. Альтернативы — LM Studio и vLLM, но для первой конфигурации Ollama предпочтительнее из-за минимального порога входа.
После установки Ollama модель загружается командой:
ollama pull llama3.1:8b
Затем запускается сервер:
ollama serve
API будет доступен на `http://localhost:11434`.
Фреймворк для агента
LangChain и CrewAI поддерживают локальные эндпоинты. Для минимальной конфигурации достаточно LangChain с кастомным ChatOllama. Пример настройки на Python:
python
from langchain_ollama import ChatOllama
from langchain.agents import create_tool_calling_agent, AgentExecutor
llm = ChatOllama(model=”llama3.1:8b”, temperature=0.1)
Ключевой параметр — `temperature`. Для агентных задач значение 0.1–0.2 снижает вероятность галлюцинаций при выборе инструмента. Выше 0.5 модель может начать выдумывать несуществующие функции.
Подключение инструментов
Агент без инструментов — просто чат-бот. Минимальный набор для разработчика: выполнение Python-кода, чтение файлов, поиск в интернете (через DuckDuckGo Search API) и работа с системными командами.
LangChain предоставляет готовые классы:
python
from langchain_community.tools import PythonREPLTool, FileReadTool, DuckDuckGoSearchRun
tools = [
PythonREPLTool(),
FileReadTool(),
DuckDuckGoSearchRun()
]
Важный нюанс: локальные модели хуже справляются с маршрутизацией между инструментами, чем GPT-4 или Claude. Если инструментов больше пяти, агент начинает путаться и вызывать не те функции. Рекомендуется начинать с двух-трёх и добавлять новые только после тестирования.
Ограничения локального запуска
Локальный агент не заменяет облачные решения, но даёт контроль над данными и расходами. Основные ограничения, которые стоит учитывать:
- Скорость инференса. На GPU 8–12 ГБ генерация одного токена занимает 30–80 мс. Для цепочек из 5–10 вызовов инструментов время ответа может достигать 30–60 секунд.
- Качество function calling. Локальные модели ошибаются в выборе инструмента в 5–15% случаев, в зависимости от сложности запроса. Для критичных задач требуется дополнительная валидация.
- Ограничение контекста. Даже при 128K контекста модель не удерживает всю историю вызовов. Реальные тесты показывают, что после 8–10 шагов агент начинает терять нить задачи.
Что попробовать после запуска
После того как базовая конфигурация заработала, полезно провести стресс-тест: дать агенту задачу с цепочкой из 5–6 зависимых действий (например, «прочитай файл config.json, найди в нём параметры подключения, выполни тестовый запрос к базе и сохрани результат в отчёт»). Если агент справляется без ручного вмешательства — конфигурация готова к реальным задачам.
Если модель начинает вызывать не те инструменты или «зацикливается» на одном действии, стоит уменьшить количество инструментов, увеличить temperature до 0.2 или сменить модель на Qwen 2.5 — она более консервативна при выборе функций.
Локальный запуск агента — это компромисс между скоростью, качеством и автономностью. Для прототипирования, работы с конфиденциальными данными и сценариев без жёстких требований к latency он оправдан. Для production-нагрузок с десятками тысяч запросов пока стоит смотреть в сторону облачных API с дообученными моделями.
