English | 简体中文 | 日本語 | Deutsch | Español | Русский | Portuguese
Создано на базе открытого кода, возвращено в открытый код.
DeerFlow (Deep Exploration and Efficient Research Flow) - это фреймворк для глубокого исследования, разработанный сообществом и основанный на впечатляющей работе сообщества открытого кода. Наша цель - объединить языковые модели со специализированными инструментами для таких задач, как веб-поиск, сканирование и выполнение кода Python, одновременно возвращая пользу сообществу, которое сделало это возможным.
В настоящее время DeerFlow официально вошел в Центр приложений FaaS Volcengine. Пользователи могут испытать его онлайн через ссылку для опыта, чтобы интуитивно почувствовать его мощные функции и удобные операции. В то же время, для удовлетворения потребностей развертывания различных пользователей, DeerFlow поддерживает развертывание одним кликом на основе Volcengine. Нажмите на ссылку развертывания, чтобы быстро завершить процесс развертывания и начать эффективное исследовательское путешествие.
Пожалуйста, посетите наш официальный сайт для получения дополнительной информации.
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
В этой демонстрации мы показываем, как использовать DeerFlow для:
DeerFlow разработан на Python и поставляется с веб-интерфейсом, написанным на Node.js. Для обеспечения плавного процесса настройки мы рекомендуем использовать следующие инструменты:
uv:
Упрощает управление средой Python и зависимостями. uv автоматически создает виртуальную среду в корневом каталоге и устанавливает все необходимые пакеты за вас—без необходимости вручную устанавливать среды Python.
nvm:
Легко управляйте несколькими версиями среды выполнения Node.js.
pnpm:
Установка и управление зависимостями проекта Node.js.
Убедитесь, что ваша система соответствует следующим минимальным требованиям:
# Клонировать репозиторий
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# Установить зависимости, uv позаботится об интерпретаторе python и создании venv, и установит необходимые пакеты
uv sync
# Настроить .env с вашими API-ключами
# Tavily: https://app.tavily.com/home
# Brave_SEARCH: https://brave.com/search/api/
# volcengine TTS: Добавьте ваши учетные данные TTS, если они у вас есть
cp .env.example .env
# См. разделы 'Поддерживаемые поисковые системы' и 'Интеграция преобразования текста в речь' ниже для всех доступных опций
# Настроить conf.yaml для вашей модели LLM и API-ключей
# Пожалуйста, обратитесь к 'docs/configuration_guide.md' для получения дополнительной информации
cp conf.yaml.example conf.yaml
# Установить marp для генерации презентаций
# https://github.com/marp-team/marp-cli?tab=readme-ov-file#use-package-manager
brew install marp-cli
По желанию установите зависимости веб-интерфейса через pnpm:
cd deer-flow/web
pnpm install
Пожалуйста, обратитесь к Руководству по конфигурации для получения дополнительной информации.
[!ПРИМЕЧАНИЕ] Прежде чем запустить проект, внимательно прочитайте руководство и обновите конфигурации в соответствии с вашими конкретными настройками и требованиями.
Самый быстрый способ запустить проект - использовать консольный интерфейс.
# Запустить проект в оболочке, похожей на bash
uv run main.py
Этот проект также включает веб-интерфейс, предлагающий более динамичный и привлекательный интерактивный опыт.
[!ПРИМЕЧАНИЕ] Сначала вам нужно установить зависимости веб-интерфейса.
# Запустить оба сервера, бэкенд и фронтенд, в режиме разработки
# На macOS/Linux
./bootstrap.sh -d
# На Windows
bootstrap.bat -d
[!Примечание] По умолчанию сервер бэкенда привязывается к 127.0.0.1 (localhost) по соображениям безопасности. Если вам нужно разрешить внешние подключения (например, при развертывании на сервере Linux), вы можете изменить хост сервера на 0.0.0.0 в скрипте загрузки (uv run server.py --host 0.0.0.0). Пожалуйста, убедитесь, что ваша среда должным образом защищена, прежде чем подвергать сервис внешним сетям.
Откройте ваш браузер и посетите http://localhost:3000, чтобы исследовать веб-интерфейс.
Исследуйте больше деталей в каталоге web.
DeerFlow поддерживает несколько поисковых систем, которые можно настроить в файле .env с помощью переменной SEARCH_API:
Tavily (по умолчанию): Специализированный поисковый API для приложений ИИ
TAVILY_API_KEY в вашем файле .envDuckDuckGo: Поисковая система, ориентированная на конфиденциальность
Brave Search: Поисковая система, ориентированная на конфиденциальность, с расширенными функциями
BRAVE_SEARCH_API_KEY в вашем файле .envArxiv: Поиск научных статей для академических исследований
Searx/SearxNG: Самостоятельно размещённая метапоисковая система
SEARX_HOST в вашем файле .envЧтобы настроить предпочитаемую поисковую систему, установите переменную SEARCH_API в вашем файле .env:
# Выберите одно: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
🔍 Поиск и извлечение
🔗 Бесшовная интеграция MCP
🧠 Человек в контуре
📝 Пост-редактирование отчетов
DeerFlow реализует модульную архитектуру системы с несколькими агентами, предназначенную для автоматизированных исследований и анализа кода. Система построена на LangGraph, обеспечивающей гибкий рабочий процесс на основе состояний, где компоненты взаимодействуют через четко определенную систему передачи сообщений.

Посмотрите вживую на deerflow.tech
В системе используется оптимизированный рабочий процесс со следующими компонентами:
Координатор: Точка входа, управляющая жизненным циклом рабочего процесса
Планировщик: Стратегический компонент для декомпозиции и планирования задач
Исследовательская команда: Набор специализированных агентов, которые выполняют план:
Репортер: Процессор финальной стадии для результатов исследования
DeerFlow теперь включает функцию преобразования текста в речь (TTS), которая позволяет конвертировать исследовательские отчеты в речь. Эта функция использует API TTS volcengine для генерации высококачественного аудио из текста. Также можно настраивать такие параметры, как скорость, громкость и тон.
Вы можете получить доступ к функциональности TTS через конечную точку /api/tts:
# Пример вызова API с использованием curl
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "Это тест функциональности преобразования текста в речь.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3
Запустите набор тестов:
# Запустить все тесты
make test
# Запустить определенный тестовый файл
pytest tests/integration/test_workflow.py
# Запустить с покрытием
make coverage
# Запустить линтинг
make lint
# Форматировать код
make format
DeerFlow использует LangGraph для своей архитектуры рабочего процесса. Вы можете использовать LangGraph Studio для отладки и визуализации рабочего процесса в реальном времени.
DeerFlow включает конфигурационный файл langgraph.json, который определяет структуру графа и зависимости для LangGraph Studio. Этот файл указывает на графы рабочего процесса, определенные в проекте, и автоматически загружает переменные окружения из файла .env.
# Установите менеджер пакетов uv, если у вас его нет
curl -LsSf https://astral.sh/uv/install.sh | sh
# Установите зависимости и запустите сервер LangGraph
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
# Установить зависимости
pip install -e .
pip install -U "langgraph-cli[inmem]"
# Запустить сервер LangGraph
langgraph dev
После запуска сервера LangGraph вы увидите несколько URL в терминале:
Откройте ссылку Studio UI в вашем браузере для доступа к интерфейсу отладки.
В интерфейсе Studio вы можете:
Когда вы отправляете тему исследования в интерфейсе Studio, вы сможете увидеть весь процесс выполнения рабочего процесса, включая:
DeerFlow поддерживает трассировку LangSmith, чтобы помочь вам отладить и контролировать ваши рабочие процессы. Чтобы включить трассировку LangSmith:
Убедитесь, что в вашем файле .env есть следующие конфигурации (см. .env.example):
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY="xxx"
LANGSMITH_PROJECT="xxx"
Запустите трассировку и визуализируйте граф локально с LangSmith, выполнив:
langgraph dev
Это включит визуализацию трассировки в LangGraph Studio и отправит ваши трассировки в LangSmith для мониторинга и анализа.
Вы также можете запустить этот проект с Docker.
Во-первых, вам нужно прочитать конфигурацию ниже. Убедитесь, что файлы .env, .conf.yaml готовы.
Во-вторых, чтобы построить Docker-образ вашего собственного веб-сервера:
docker build -t deer-flow-api .
Наконец, запустите Docker-контейнер с веб-сервером:
# Замените deer-flow-api-app на предпочитаемое вами имя контейнера
# Запустите сервер и привяжите к localhost:8000
docker run -d -t -p 127.0.0.1:8000:8000 --env-file .env --name deer-flow-api-app deer-flow-api
# остановить сервер
docker stop deer-flow-api-app
DeerFlow предоставляет настройку docker-compose для легкого запуска бэкенда и фронтенда вместе:
# сборка docker-образа
docker compose build
# запуск сервера
docker compose up
WARNING
Если вы хотите развернуть DeerFlow в производственных средах, пожалуйста, добавьте аутентификацию к веб-сайту и оцените свою проверку безопасности MCPServer и Python Repl.
Следующие примеры демонстрируют возможности DeerFlow:
Отчет о OpenAI Sora - Анализ инструмента ИИ Sora от OpenAI
Отчет о протоколе Agent to Agent от Google - Обзор протокола Agent to Agent (A2A) от Google
Что такое MCP? - Комплексный анализ термина "MCP" в различных контекстах
Колебания цены Биткоина - Анализ недавних движений цены Биткоина
Что такое LLM? - Углубленное исследование больших языковых моделей
Как использовать Claude для глубокого исследования? - Лучшие практики и рабочие процессы для использования Claude в глубоком исследовании
Внедрение ИИ в здравоохранении: Влияющие факторы - Анализ факторов, движущих внедрением ИИ в здравоохранении
Влияние квантовых вычислений на криптографию - Анализ влияния квантовых вычислений на криптографию
Ключевые моменты выступлений Криштиану Роналду - Анализ выдающихся выступлений Криштиану Роналду
Чтобы запустить эти примеры или создать собственные исследовательские отчеты, вы можете использовать следующие команды:
# Запустить с определенным запросом
uv run main.py "Какие факторы влияют на внедрение ИИ в здравоохранении?"
# Запустить с пользовательскими параметрами планирования
uv run main.py --max_plan_iterations 3 "Как квантовые вычисления влияют на криптографию?"
# Запустить в интерактивном режиме с встроенными вопросами
uv run main.py --interactive
# Или запустить с базовым интерактивным приглашением
uv run main.py
# Посмотреть все доступные опции
uv run main.py --help
Приложение теперь поддерживает интерактивный режим с встроенными вопросами как на английском, так и на китайском языках:
Запустите интерактивный режим:
uv run main.py --interactive
Выберите предпочитаемый язык (English или 中文)
Выберите из списка встроенных вопросов или выберите опцию задать собственный вопрос
Система обработает ваш вопрос и сгенерирует комплексный исследовательский отчет
DeerFlow включает механизм "человек в контуре", который позволяет вам просматривать, редактировать и утверждать планы исследования перед их выполнением:
Просмотр плана: Когда активирован режим "человек в контуре", система представит сгенерированный план исследования для вашего просмотра перед выполнением
Предоставление обратной связи: Вы можете:
[ACCEPTED][EDIT PLAN] Добавить больше шагов о технической реализации)Автоматическое принятие: Вы можете включить автоматическое принятие, чтобы пропустить процесс просмотра:
auto_accepted_plan: true в вашем запросеИнтеграция API: При использовании API вы можете предоставить обратную связь через параметр feedback:
{
"messages": [{ "role": "user", "content": "Что такое квантовые вычисления?" }],
"thread_id": "my_thread_id",
"auto_accepted_plan": false,
"feedback": "[EDIT PLAN] Включить больше о квантовых алгоритмах"
}
Приложение поддерживает несколько аргументов командной строки для настройки его поведения:
Пожалуйста, обратитесь к FAQ.md для получения дополнительной информации.
Этот проект имеет открытый исходный код и доступен под Лицензией MIT.
DeerFlow создан на основе невероятной работы сообщества открытого кода. Мы глубоко благодарны всем проектам и контрибьюторам, чьи усилия сделали DeerFlow возможным. Поистине, мы стоим на плечах гигантов.
Мы хотели бы выразить искреннюю признательность следующим проектам за их неоценимый вклад:
Эти проекты являются примером преобразующей силы сотрудничества в области открытого кода, и мы гордимся тем, что строим на их основе.
Сердечная благодарность основным авторам DeerFlow, чье видение, страсть и преданность делу вдохнули жизнь в этот проект:
Ваша непоколебимая приверженность и опыт стали движущей силой успеха DeerFlow. Мы считаем за честь иметь вас во главе этого путешествия.