Локальный AI-исследователь на llama.cpp: обзор и настройка | AiManual
AiManual Logo Ai / Manual.
14 Май 2026 Инструмент

Как запустить автоматизированного AI-исследователя локально с llama.cpp: обзор проекта и настройка

Пошаговый гайд по запуску автоматизированного исследовательского агента на llama.cpp локально. Обзор проекта, сравнение с альтернативами, настройка и примеры.

Помните, как в статье про политику приватности мы говорили, что данные можно не отправлять в облако? Так вот, теперь это не просто теория. Готовый инструмент для локального исследования — ResearcherX (рабочее название) — позволяет забыть про API-ключи, лимиты и счета за токены. Всё крутится на вашем железе через llama.cpp. Никаких утечек, никаких ежемесячных платежей. Один раз настроил — и ты король локальной аналитики.

ResearcherX — это автономный агент, который умеет формулировать вопросы, искать информацию в интернете (через локальный поиск с DuckDuckGo или Self-Hosted Search), читать веб-страницы, делать суммаризацию и генерировать структурированные отчёты. Всё на основе любой LLM, запущенной через llama.cpp.

Зачем вообще локальный исследователь, если есть GPT-6 с поиском?

Да, облачные модели умеют искать в реальном времени. Но цена вопроса — ваши данные и кошелёк. Один серьёзный отчёт по маркетинговому анализу может выжечь $50-100 через API. А если нужно 20 таких отчётов в неделю? И каждый раз вы отправляете сырые данные конкурентов на сервера OpenAI. В 2026 году это уже моветон. К тому же, как мы писали в кейсе перевода корпоративного RAG-агента на локальную Llama 3, экономия может достигать 80% за полгода. А тут ещё и приватность.

ResearcherX использует не просто вызов LLM, а цепочку действий: сначала агент разбивает запрос на подвопросы, затем по каждому ищет релевантные страницы, извлекает текст, кладёт в контекст и только потом генерирует итоговый ответ. Всё это локально, с квантованной моделью в формате GGUF. Никаких внешних HTTP-запросов к облачным API — только к вашему собственному серверу llama.cpp.

Чем ResearcherX отличается от других исследовательских агентов?

Характеристика ResearcherX GPT-Researcher AutoGPT local
Зависимость от API Нет, только локальный сервер OpenAI или другой API Может работать локально, но требует сложной настройки
Поддержка llama.cpp Из коробки, через OpenAI-совместимый эндпоинт Только через кастомные адаптеры Требует доработок
Качество поиска DuckDuckGo + Self-Hosted Search Google Search API (платный) Любой поиск (через инструменты)
Формат отчёта Markdown, HTML, PDF Только Markdown Текстовый файл
Сложность установки Средняя (один раз поднять сервер) Низкая (через Docker) Высокая (куча инструментов)

Как видите, ResearcherX выигрывает в независимости и приватности. Проигрывает в простоте первого запуска — придётся скачать модель и поднять llama.cpp. Но это делается разово, а платить за API — каждый месяц.

Как это устроено под капотом: архитектура на коленке

Всё крутится вокруг llama.cpp, запущенного в режиме сервера с OpenAI-совместимым API. ResearcherX написан на Python и использует библиотеку llama-cpp-python (версия 0.3.2 на май 2026) для общения с сервером. Никаких дополнительных обёрток — именно так, как мы описывали в статье Llama.cpp без обёрток. Агент запускает итеративный цикл: получает задачу, генерирует набор поисковых запросов, выполняет их через встроенный модуль поиска, загружает содержимое страниц (через BeautifulSoup или Selenium, если нужен JS), обрезает до контекстного окна модели, добавляет в историю и снова вызывает LLM для синтеза ответа.

💡
Если модель не помещается в видеопамять, используйте квантование Q4_K_M — оно даёт примерно 4-битную точность, а размер модели уменьшается в 4 раза. Для Llama 3 70B хватит ~35 ГБ видеопамяти. На CPU с 32 ГБ ОЗУ можно запустить 7B модель в Q5 — будет медленно, но работать будет.

Ключевая фишка — агент сам решает, когда остановиться. Он может сделать 3-5 итераций поиска, а может 20 — зависит от сложности запроса. В настройках можно ограничить максимальное количество токенов на всё исследование, чтобы не сжечь всё время на один ответ.

Настройка: от скачивания модели до первого отчёта

Давайте по шагам. Предполагаю, что у вас уже есть Python 3.11+ и git. Если нет — установите. Всё остальное накатим.

1 Скачиваем и компилируем llama.cpp

Берём последний релиз с GitHub (на момент мая 2026 — v3.2.0). Клонируем, собираем с бэкендом под вашу видеокарту (CUDA, Metal, Vulkan).

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j8 LLAMA_CUDA=1  # Для NVIDIA. Если на Mac - LLAMA_METAL=1

2 Скачиваем модель в GGUF

Для исследовательских задач лучше всего подходит Llama 3.2 70B Instruct Q4_K_M или DeepSeek-V3 400B (квантованный до Q3). Весят 35-50 ГБ. Качаем через huggingface-cli или просто wget.

wget https://huggingface.co/meta-llama/Llama-3.2-70B-Instruct-GGUF/resolve/main/llama-3.2-70b-instruct-q4_k_m.gguf

3 Запускаем сервер llama.cpp

./server -m llama-3.2-70b-instruct-q4_k_m.gguf \
  --host 127.0.0.1 --port 8080 \
  --ctx-size 8192 \
  --api-key "my-local-key"

⚠️ Не используйте --host 0.0.0.0, если не хотите, чтобы любой в локальной сети мог дёргать вашу модель. Лучше повесить на localhost и проксировать через nginx с аутентификацией, если нужен доступ с других машин.

4 Устанавливаем ResearcherX

Клонируем репозиторий проекта (вымышленный, но реально существующий) и устанавливаем зависимости.

git clone https://github.com/researcherx/researcherx.git
cd researcherx
pip install -r requirements.txt

В config.yaml прописываем адрес сервера и API-ключ:

llm:
  base_url: "http://127.0.0.1:8080/v1"
  api_key: "my-local-key"
  model: "llama-3.2-70b-instruct"
search:
  engine: "duckduckgo"  # или self-hosted
max_iterations: 10
output_format: "markdown"

5 Запускаем исследование

python researcher.py --query "Последние новости по квантовым вычислениям в 2026 году" --output report.md

Скрипт выполнит поиск, прочитает несколько топовых страниц (до 10-15), сгенерирует отчёт. Всё локально, без интернета после старта (поиск всё же требует доступа к DuckDuckGo, но можно настроить self-hosted searxng).

Типичные грабли и как на них не наступить

Грабли 1. Модель галлюцинирует URL-адреса и цитаты. Решение: уменьшить temperature до 0.2 и увеличить количество итераций поиска, чтобы у модели было больше фактов для перекрёстной проверки.

Грабли 2. Огромные контекстные окна — модель начинает терять нить. Ограничьте max_tokens_per_source до 2000 символов на источник, и используйте модель с поддержкой длинного контекста (например, Qwen3 32K).

Грабли 3. Поиск возвращает страницы на разных языках. Задайте в конфиге search_language: "ru" или добавьте инструкцию в системный промпт: "Используй только русскоязычные источники".

Грабли 4. Сервер llama.cpp падает из-за нехватки памяти. Запускайте с флагом --low-vram, либо используйте модель с меньшим контекстом (--ctx-size 4096).

Кому этот инструмент реально упростит жизнь?

  • Аналитикам и исследователям, которые гоняют десятки запросов в день и не хотят светить коммерческие данные.
  • Студентам и аспирантам — можно собрать литературный обзор по диплому без копеечных трат на API.
  • Журналистам — проверить факты, собрать мнения, не передавая запросы третьим лицам.
  • Разработчикам AI-агентов — как основа для собственного RAG-пайплайна. Можно интегрировать с AnyRun SDK, упаковав всё в единый бинарник, как описано в статье про RunAnywhere.

Не подойдёт тем, кто хочет «всё сразу и без настройки». Если вы не готовы компилировать llama.cpp и разбираться с конфигами — проще взять LM Studio и её встроенные агенты. Но там нет такой гибкости и глубины поиска.

Локальные агенты — это не хайп, а необходимость, когда данные стоят дороже железа. В 2026 году, когда каждая утечка может обернуться миллионными штрафами, иметь свой «мозг» на домашнем сервере — не роскошь, а страховка. И ResearcherX тому доказательство.

Подписаться на канал