Deep Research для бедных поверх Codex. Ai agents.. Ai agents. API.. Ai agents. API. automation.. Ai agents. API. automation. codex.. Ai agents. API. automation. codex. deep research.. Ai agents. API. automation. codex. deep research. DIY или Сделай сам.. Ai agents. API. automation. codex. deep research. DIY или Сделай сам. llm.. Ai agents. API. automation. codex. deep research. DIY или Сделай сам. llm. markdown.. Ai agents. API. automation. codex. deep research. DIY или Сделай сам. llm. markdown. Open source.. Ai agents. API. automation. codex. deep research. DIY или Сделай сам. llm. markdown. Open source. web search.. Ai agents. API. automation. codex. deep research. DIY или Сделай сам. llm. markdown. Open source. web search. искусственный интеллект.
Codex Deep Research Skill

Codex Deep Research Skill

Обычный ответ LLM по сложной теме – часто мусор.

Не потому что модель тупая. Просто за один prompt не получаешь полноты ответа. Это быстрый ответ из головы модели: красиво, складно, иногда даже убедительно. Но если нужно реально разобраться в рынке, технологии, конкурентах, вакансиях, конференциях или любом другом you name it кейсе, почти всегда нужен не ответ, а небольшое исследование.

То есть:

  • разложить тему на направления;

  • сходить в источники;

  • сравнить позиции;

  • вытащить цифры, риски и кейсы;

  • собрать нормальный markdown-отчёт со ссылками.

Поэтому я всё чаще запускаю Deep Research буквально по поводу и без. Для меня это стал дефолтный режим работы со сложными вопросами.

Проблема вот в чём: встроенный Deep Research в ChatGPT и Claude удобный, но не всегда управляемый.

Во-первых, лимиты. Покупать подписку за $100 только ради более частого Deep Research мне пока банально жалко. Плюсом у ChatGPT нет отображения счётчика оставшихся запусков. Про “щедрые” лимиты Claude на 20-баксовой подписке я помолчу.

Во-вторых, непонятно, что происходит под капотом. Иногда ощущение, что он посмотрел 20 источников по теме. Иногда – что перелопатил половину интернета, сжёг миллиард токенов и потратил час на ресёрч. Напрямую управлять шириной и глубиной прогона никак нельзя.

В итоге я решил собрать свой локальный Deep Research через API – на тех сервисах, где у меня уже были доступные кредиты.

Так появился Deep Research Codex – локальный wrapper поверх GPT Researcher, который запускается из Codex как skill.

Сразу дисклеймер: это не аналог Deep Research внутри ChatGPT или Claude. Там, скорее всего, гораздо более сложная система планирования, поиска, ранжирования и проверки источников. Я взял open-source базу – GPT Researcher – поменял внутри то, что мешало моему сценарию, и собрал вокруг него удобный runner.

Что получилось

Workflow такой:

сырой запрос -> prefilter -> подтверждение -> deep research -> markdown report

Я пишу в Codex что-то вроде:

Сделай research по AI-агентам в клиентской поддержке: ROI, риски, реальные кейсы, что можно показать B2B-клиенту.

Дальше skill сначала запускает prefilter. Он не лезет сразу в web research, а превращает мой сырой запрос в нормальный brief:

  • тема;

  • цель;

  • контекст;

  • ключевые вопросы;

  • scope;

  • web query;

  • формат результата.

Я вижу, как система поняла задачу, и только потом подтверждаю запуск.

Это главное отличие от магической кнопки: я могу остановиться до дорогого или кривого прогона.

Как работает мой Deep Research

Внутри используется GPT Researcher.

В дефолтном профиле сейчас:

breadth = 4
depth = 2
concurrency = 4
Deep Research каскад

Deep Research каскад

Если по-человечески:

  • breadth – насколько широко раскладывать тему;

  • depth – насколько глубоко уходить по веткам;

  • concurrency – сколько задач выполнять параллельно.

Например, тема “AI-агенты в поддержке” может распасться на такие ветки:

1. Экономика поддержки
2. Качество ответов
3. Интеграции
4. Риски

Потом внутри каждой ветки появляются уточняющие вопросы, источники и follow-up темы. Сначала система идёт широко, потом глубже.

Для меня смысл именно в этом: не просить LLM “ну подумай получше”, а запускать воспроизводимый research-процесс с понятными параметрами.

Почему Tavily и Bedrock

Никакой религии тут нет. Я собрал первую рабочую версию на тех API, где у меня уже были credits и где было проще быстро поднять пайплайн.

Для web search используется Tavily. Это search API, который удобно использовать в agentic и RAG-сценариях.

У Tavily есть бесплатный старт: можно зарегистрироваться без карты и получить бесплатные API credits на месяц. Для личных экспериментов и небольших research-прогонов этого обычно хватает.

Для LLM-вызовов я использую AWS Bedrock и Claude через Bedrock. Не потому, что Bedrock обязателен, а потому что у меня там были бесплатные лимиты/credits. Поэтому первый wrapper получился Bedrock-first.

В принципе, это можно переделать под другие API. GPT Researcher уже поддерживает разных LLM-провайдеров, а search API тоже можно заменить. Просто Tavily + Bedrock – это была самая быстрая связка, которая у меня была под рукой.

Что нужно для запуска

Сейчас мой wrapper рассчитан на:

  • Tavily для web search;

  • AWS Bedrock;

  • Claude через Bedrock;

  • Bedrock embeddings;

  • запуск из shell или Codex.

Клонируем репозиторий:

git clone https://github.com/mikemelanin/deep-research-codex.git
cd deep-research-codex

Создаём окружение и ставим зависимости:

python3 -m venv .venv
./.venv/bin/pip install -r gpt-researcher/requirements.txt boto3

Создаём локальный конфиг:

cp .env.example .env

В .env нужно добавить Tavily API key и настройки AWS Bedrock.

Установка Codex skill

Команду нужно выполнять из корня репозитория deep-research-codex, где есть папка skills/research.

mkdir -p ~/.codex/skills
cp -R skills/research ~/.codex/skills/research

Что здесь происходит:

  • skills/research – папка skill внутри текущего репозитория;

  • ~/.codex/skills/research – место, куда Codex ожидает пользовательские skills;

  • cp -R копирует всю папку research вместе с файлами внутри.

Если запускать команду не из корня репозитория, она не найдёт skills/research.

Если проект лежит не в ~/deep-research-codex, можно указать путь явно:

export DEEP_RESEARCH_CODEX_HOME="/path/to/deep-research-codex"

После этого в Codex можно писать обычным языком:

Сделай research по теме ...
Собери markdown-отчёт с источниками ...
Сделай deep research на русском ...

Запуск без Codex

Обычный запуск:

./research.sh "Тема исследования"

Русский отчёт:

./research.sh --ru "Тема исследования"

Только prefilter, без web research:

./research.sh --prefilter-only "Тема исследования"

Запуск из файла:

./research.sh --file "./context.md"

Продолжить из сохранённого prefilter:

./research.sh --from-prefilter "./logs/YYYYMMDD-HHMMSS-prefilter.json"

Что в этом полезного

Для меня главное – не “сделать ещё один Deep Research”, а сделать его более ручным и предсказуемым.

Я могу:

  • увидеть, как система поняла задачу;

  • остановиться до запуска web research;

  • управлять шириной и глубиной;

  • гонять research чаще, потому что использую доступные API;

  • получать итог сразу в markdown;

  • запускать всё из Codex рядом с другими агентными задачами.

Это не идеальный open-source Deep Research. Это рабочий инструмент под мой процесс: Codex как управляющий слой, GPT Researcher как research engine, Tavily как web search, Bedrock как текущий LLM backend.

Обычный LLM-ответ хорош для быстрых вопросов. Но если тема сложная, мне всё чаще нужен не ответ, а research-процесс.

И вот это я себе и собрал. Мой тг.

Автор: mike_melanin

Источник