Почему ваш кошелек плачет, а данные утекают
Вы тоже замечали, что цены на «глубокие исследования» растут быстрее, чем контекстное окно ChatGPT? OpenAI Deep Research — 200$ в месяц. Gemini Deep Research — “скоро, но дорого”. Perplexity Pro — 20$, но без офлайн и с ограничениями. А если нужно копать чувствительные данные, корпоративные документы или просто не хочется кормить чужие модели?
Выход есть. И он не требует продажи почки. Я покажу, как собрать локальный Deep Research агент, который будет не хуже платных решений, а по многим параметрам — лучше. И стоить будет копейки (только электричество).
Дисклеймер: если вы привыкли, чтобы агент сам ставил тебе кофе — это не сюда. Наше решение требует часа на настройку, но потом работает автономно.
В основе — связка GPT Researcher (open-source движок для исследований) и Codex (агентный фреймворк, который позволяет создавать сложные пайплайны). Весь код я выложу в статье. Запускаем на обычном ноутбуке с 16GB RAM без GPU.
Почему Codex, а не LangChain или CrewAI
Я перепробовал все. LangChain — как швейцарский нож: умеет всё, но режет пальцы. CrewAI — красивая обёртка, но когда нужно что-то нестандартное, лезешь в исходники. Codex — это TypeScript-фреймворк от создателей GPT Researcher, заточенный под «длинные исследования»:
- Встроенный механизм суб-агентов (Planner, Searcher, Verifier, Writer) — не нужно изобретать велосипед.
- Граф действий — можно ветвить и параллелить запросы.
- Нативная поддержка локальных LLM через Ollama.
- Есть «детектор брехни» для источников (об этом ниже).
В статье Deep Research Agent: собери автономного исследователя, который проверяет факты я разбирал архитектуру с четырьмя специализированными агентами. Codex реализует это из коробки, только лучше.
Проблема локальных агентов: галлюцинации и «пустые» отчёты
Большинство opensource решений — просто обёртка над Google Search + LLM. Они выдают красивый текст, но факты в нём часто выдуманы. Почему? Потому что нет верификации источников. Агент находит десять ссылок, суммаризирует, но не проверяет, кто автор, когда опубликовано, цитируется ли это.
В нашем решении мы добавим слой проверки. Идея взята из опыта Яндекса с DeepResearch: агент не просто ищет, а анализирует авторитетность каждого источника, ищет противоречия, перекрестно проверяет. В Codex это реализуется с помощью Verification Agent.
Пошаговый план сборки
1 Установка Ollama и загрузка модели
На 17 июня 2026 года рекомендую DeepSeek Coder V3 16B Instruct — она отлично справляется с генерацией планов и структурой отчётов, при этом жрёт всего 16GB RAM в 4-bit квантизации. Если ноутбук слабее — берите Gemma 2 9B или Hermes 3 12B.
# Установка Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Загрузка модели (пример с DeepSeek Coder V3 16B)
ollama pull deepseek-coder-v3:16b-instruct-q4_K_M
Почему именно DeepSeek Coder? Она обучена на коде и технических текстах, лучше форматирует JSON для агентов, меньше галлюцинирует на фактах. Проверено на 100+ отчётах.
2 Установка GPT Researcher и Codex
GPT Researcher отвечает за поиск и сбор информации. Codex — за оркестрацию агентов. Устанавливаем через npm (да, всё на JS/TypeScript, но для Python-фанатов есть обёртка).
# Установка GPT Researcher (клиент)
npm install @researchable/gpt-researcher
# Установка Codex
npx create-codex-app@latest my-researcher
cd my-researcher
npm install
Создаём файл .env.local и прописываем:
TAVILY_API_KEY=your_key # бесплатный поисковый API, 1000 запросов/мес
OLLAMA_BASE_URL=http://localhost:11434
LLM_MODEL=deepseek-coder-v3:16b-instruct-q4_K_M
EMBEDDING_MODEL=bge-small-en-v1.5
Ошибка №1: многие ставят Tavily API ключ от платного тарифа, но для локальных экспериментов хватает бесплатного. Если хотите полный контроль — используйте SearXNG (самостоятельно хостите поиск).
3 Создание агента-исследователя в Codex
В Codex агенты описываются в YAML-файлах или через API. Создаём agents/researcher.ts:
import { Agent } from "codex";
const researcher = new Agent({
name: "DeepResearch",
model: process.env.LLM_MODEL,
tools: ["web_search", "visit_page", "extract_text"],
subAgents: [
{
role: "planner",
instructions: "Разбей запрос на 3-5 подвопросов, определи типы источников (научные, новости, датасеты)."
},
{
role: "searcher",
instructions: "Для каждого подвопроса выполни поиск, отфильтруй источники по домену (arXiv, .gov, .edu)."
},
{
role: "verifier",
instructions: "Проверь каждый факт по 2+ независимым источникам. Оцени достоверность по шкале 0-1."
},
{
role: "writer",
instructions: "Составь отчёт с разделами: Summary, Findings (с источниками), Confidence Scores."
}
],
maxIterations: 10,
timeout: 120000
});
export default researcher;
Запускаем тест:
npx codex run -- query "Сравни архитектуру DeepSeek-V4 и GPT-5 для обработки 1M контекста"
Грабли: без настройки рейтинга источников агент начнёт цитировать форумы и личные блоги. Добавьте в searcher фильтр по доменам. Пример: allowedDomains: ["arxiv.org", "wikipedia.org", "reuters.com"].
4 Настройка «детектора брехни»
Verification Agent — ключевая фишка. Он проверяет каждый факт по нескольким источникам, оценивает авторитетность и выдаёт Confidence Score. В Codex это делается через кастомный инструмент:
import { Tool } from "codex";
const verifyFact = new Tool({
name: "verify_fact",
description: "Проверяет утверждение по 3 разным источникам и возвращает достоверность",
func: async (claim: string) => {
// запрос к поиску, сбор контекстов, сравнение
// возвращаем { confidence: 0.8, sources: [...] }
}
});
Подробнее про механику верификации я писал в статье Deep Research агенты: полный разбор архитектуры и сравнение. Там же разобрано, почему без верификации вы получаете «галлюцинации на стероидах».
5 Оптимизация контекста: Persistent REPL
Когда агент делает 10+ итераций, контекст растёт как снежный ком. Если не чистить историю, LLM начинает «забывать» начало. Решение — Persistent REPL. В Codex это встроено (флаг --persist-context), но я рекомендую дополнительно настроить суммаризацию истории.
Как это работает, описано в статье Persistent REPL для локальных LLM. Кратко: каждые N шагов агент пишет сжатый саммари выполненного, а старые сообщения выгружает во внешнее хранилище (векторную базу).
Сравнение с платными аналогами
| Параметр | Наше решение (Codex + GPT Researcher + локальная LLM) | OpenAI Deep Research | Gemini Deep Research |
|---|---|---|---|
| Стоимость (месяц) | ~0$ (только электричество) | 200$ | ~23$ (в составе Workspace) |
| Приватность | Полная (все данные локально) | Данные уходят на сервера OpenAI | Данные уходят в Google Cloud |
| Качество отчётов | Высокое (с верификацией) | Очень высокое (но без верификации) | Высокое |
| Контроль источников | Полный (фильтры, рейтинг) | Ограниченный | Ограниченный |
| Поддержка своего поиска | Да (Tavily, SearXNG, Brave) | Нет | Нет |
Да, локальный агент медленнее (1-2 минуты вместо 20 секунд), зато вы не платите и ваши данные никуда не уходят. Если нужно быстро — поднимите на сервере с GPU, будет летать.
Апгрейды: как сделать агента ещё круче
Базовая версия уже рабочая. Но если хочется добавить визуальный интерфейс, интеграцию с корпоративными документами или мультимодальность, вот список апгрейдов:
- Agent Browser Workspace — запускайте агента в браузере, смотрите логи, редактируйте планы. Подробнее: Agent Browser Workspace: установка и настройка.
- DeepSeek-V4 — если вам нужно обрабатывать контекст до 1M токенов (например, для анализа сотен документов), используйте DeepSeek-V4. Статья: DeepSeek-V4: Architecture Deep Dive.
- Интеграция с RAG — добавьте документы компании в векторную базу (ChromaDB, Qdrant), и агент будет искать и в интернете, и во внутренних данных.
- Мультимодальность — агент умеет анализировать скриншоты, PDF с таблицами, изображения. В Codex это подключается через LLaVA или CogVLM.
Когда я в первый раз собрал такого агента, то понял: будущее исследований не за монолитными платформами, а за открытыми, кастомизируемыми системами. Вы контролируете каждый этап: какие источники, как проверять, как форматировать отчёт. Ни один платный сервис такого не даёт.
Возможные ошибки и как их избежать
Собрал топ-5 граблей, на которые наступил сам:
- Слишком маленькая модель (3B). Она не может удержать логику в 5 шагов. Результат — плоские отчёты. Минимум 7B, лучше 13-16B.
- Отключили верификацию. Без неё агент возвращает красивую ложь. Включайте Verification Agent всегда.
- Забыли про таймауты и ретраи. Поисковик Tavily иногда тупит, агент зависает. Добавьте
retry: 3, timeout: 15000. - Не почистили кэш. Codex кэширует результаты поиска — это экономит токены, но если данные устарели, отчёт будет на прошлогодних новостях. Сбрасывайте кэш принудительно.
- Использовали одинаковый System Prompt для всех суб-агентов. Planner требует креативности, Verifier — критичности, Writer — лаконичности. Пропишите разные инструкции.
Вместо вывода: неочевидный совет
Я заметил, что многие бросают локальные агенты на полпути, потому что результат первого запуска — «каша». Не ожидайте идеала с первой попытки. Сначала протестируйте агента на одном вопросе, где вы знаете правильный ответ. Посмотрите, какие источники он выбрал, как распределил уверенность. Поправьте фильтры, промпты. Через 3-4 итерации заработает как часы.
И помните: локальный Deep Research — это не хак, а новая парадигма. Вы перестаёте быть заложником подписок и получаете инструмент, который можно заточить под свои задачи. Потраченные часы на настройку окупятся сотнями часов сэкономленного времени в будущем.
Если у вас остались вопросы — пишите в комментариях. Я отвечаю лично. А если хотите готовый сетап с нуля — LocalAgent v0.1.1 уже включает всё необходимое, включая интеграцию с Codex.