29 KiB
🦌 DeerFlow - 2.0
English | 中文 | 日本語 | Français | Русский
28 февраля 2026 года DeerFlow занял 🏆 #1 в GitHub Trending после релиза версии 2. Спасибо огромное нашему сообществу — всё благодаря вам! 💪🔥
DeerFlow (Deep Exploration and Efficient Research Flow) — open-source Super Agent Harness, который управляет Sub-Agents, Memory и Sandbox для решения почти любой задачи. Всё на основе расширяемых Skills.
https://github.com/user-attachments/assets/a8bcadc4-e040-4cf2-8fda-dd768b999c18
Note
DeerFlow 2.0 — проект переписан с нуля. Общего кода с v1 нет. Если нужен оригинальный Deep Research фреймворк — он живёт в ветке
1.x, туда тоже принимают контрибьюты. Активная разработка идёт в 2.0.
Официальный сайт
Больше информации и живые демо на официальном сайте.
Coding Plan от ByteDance Volcengine
- Рекомендуем Doubao-Seed-2.0-Code, DeepSeek v3.2 и Kimi 2.5 для запуска DeerFlow
- Подробнее
- Для разработчиков из материкового Китая
InfoQuest
DeerFlow интегрирован с инструментарием для умного поиска и краулинга от BytePlus — InfoQuest (есть бесплатный онлайн-доступ)
Содержание
- 🦌 DeerFlow - 2.0
Установка одной фразой для coding agent
Если вы используете Claude Code, Codex, Cursor, Windsurf или другой coding agent, просто отправьте ему эту фразу:
Если DeerFlow еще не клонирован, сначала клонируй его, а затем подготовь локальное окружение разработки по инструкции https://raw.githubusercontent.com/bytedance/deer-flow/main/Install.md
Этот prompt предназначен для coding agent. Он просит агента при необходимости сначала клонировать репозиторий, предпочесть Docker, если он доступен, и в конце вернуть точную команду запуска и список недостающих настроек.
Быстрый старт
Конфигурация
-
Склонировать репозиторий DeerFlow
git clone https://github.com/bytedance/deer-flow.git cd deer-flow -
Сгенерировать локальные конфиги
Из корня проекта (
deer-flow/) запустите:make configКоманда создаёт локальные конфиги на основе шаблонов.
-
Настроить модель
Отредактируйте
config.yamlи задайте хотя бы одну модель:models: - name: gpt-4 # Внутренний идентификатор display_name: GPT-4 # Отображаемое имя use: langchain_openai:ChatOpenAI # Путь к классу LangChain model: gpt-4 # Идентификатор модели для API api_key: $OPENAI_API_KEY # API-ключ (рекомендуется: переменная окружения) max_tokens: 4096 # Максимальное количество токенов на запрос temperature: 0.7 # Температура сэмплирования - name: openrouter-gemini-2.5-flash display_name: Gemini 2.5 Flash (OpenRouter) use: langchain_openai:ChatOpenAI model: google/gemini-2.5-flash-preview api_key: $OPENAI_API_KEY base_url: https://openrouter.ai/api/v1 - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI model: gpt-5 api_key: $OPENAI_API_KEY use_responses_api: true output_version: responses/v1OpenRouter и аналогичные OpenAI-совместимые шлюзы настраиваются через
langchain_openai:ChatOpenAIс параметромbase_url. Для CLI-провайдеров:models: - name: gpt-5.4 display_name: GPT-5.4 (Codex CLI) use: deerflow.models.openai_codex_provider:CodexChatModel model: gpt-5.4 supports_thinking: true supports_reasoning_effort: true - name: claude-sonnet-4.6 display_name: Claude Sonnet 4.6 (Claude Code OAuth) use: deerflow.models.claude_provider:ClaudeChatModel model: claude-sonnet-4-6 max_tokens: 4096 supports_thinking: true- Codex CLI читает
~/.codex/auth.json - Claude Code принимает
CLAUDE_CODE_OAUTH_TOKEN,ANTHROPIC_AUTH_TOKENили~/.claude/.credentials.json - На macOS при необходимости экспортируйте аутентификацию Claude Code явно:
eval "$(python3 scripts/export_claude_code_oauth.py --print-export)" - Codex CLI читает
-
Указать API-ключи
- Вариант А: файл
.envв корне проекта (рекомендуется)
TAVILY_API_KEY=your-tavily-api-key OPENAI_API_KEY=your-openai-api-key INFOQUEST_API_KEY=your-infoquest-api-key- Вариант Б: переменные окружения в терминале
export OPENAI_API_KEY=your-openai-api-key- Вариант В: напрямую в
config.yaml(не рекомендуется для продакшена)
- Вариант А: файл
Запуск
Вариант 1: Docker (рекомендуется)
Разработка (hot-reload, монтирование исходников):
make docker-init # Загрузить образ Sandbox (один раз или при обновлении)
make docker-start # Запустить сервисы
Продакшен (собирает образы локально):
make up # Собрать образы и запустить все сервисы
make down # Остановить и удалить контейнеры
Tip
На Linux при ошибке
permission deniedдля Docker daemon добавьте пользователя в группуdockerи перелогиньтесь. Подробнее в CONTRIBUTING.md.
Адрес: http://localhost:2026
Вариант 2: Локальная разработка
-
Проверить зависимости:
make check # Проверяет Node.js 22+, pnpm, uv, nginx -
Установить зависимости:
make install -
(Опционально) Загрузить образ Sandbox заранее:
make setup-sandbox -
Запустить сервисы:
make dev -
Адрес: http://localhost:2026
Дополнительно
Режим Sandbox
DeerFlow поддерживает несколько режимов выполнения:
- Локальное выполнение — код запускается прямо на хосте
- Docker — код выполняется в изолированных Docker-контейнерах
- Docker + Kubernetes — выполнение в Kubernetes-подах через provisioner
Подробнее в руководстве по конфигурации Sandbox.
MCP-сервер
DeerFlow поддерживает настраиваемые MCP-серверы для расширения возможностей. Для HTTP/SSE MCP-серверов поддерживаются OAuth-токены (client_credentials, refresh_token). Подробнее в руководстве по MCP-серверу.
Мессенджеры
DeerFlow принимает задачи прямо из мессенджеров. Каналы запускаются автоматически при настройке, публичный IP не нужен.
| Канал | Транспорт | Сложность |
|---|---|---|
| Telegram | Bot API (long-polling) | Просто |
| Slack | Socket Mode | Средне |
| Feishu / Lark | WebSocket | Средне |
Конфигурация в config.yaml:
channels:
feishu:
enabled: true
app_id: $FEISHU_APP_ID
app_secret: $FEISHU_APP_SECRET
slack:
enabled: true
bot_token: $SLACK_BOT_TOKEN
app_token: $SLACK_APP_TOKEN
allowed_users: []
telegram:
enabled: true
bot_token: $TELEGRAM_BOT_TOKEN
allowed_users: []
Настройка Telegram
- Напишите @BotFather, отправьте
/newbotи скопируйте HTTP API-токен. - Укажите
TELEGRAM_BOT_TOKENв.envи включите канал вconfig.yaml.
Доступные команды
| Команда | Описание |
|---|---|
/new |
Начать новый диалог |
/status |
Показать информацию о текущем треде |
/models |
Список доступных моделей |
/memory |
Просмотреть память |
/help |
Показать справку |
Сообщения без команды воспринимаются как обычный чат — DeerFlow создаёт тред и отвечает.
Трассировка LangSmith
DeerFlow имеет встроенную интеграцию с LangSmith для наблюдаемости. При включении все вызовы LLM, запуски агентов и выполнения инструментов отслеживаются и отображаются в дашборде LangSmith.
Добавьте в файл .env в корне проекта:
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=lsv2_pt_xxxxxxxxxxxxxxxx
LANGSMITH_PROJECT=deer-flow
LANGSMITH_ENDPOINT по умолчанию https://api.smith.langchain.com и может быть переопределён при необходимости. Устаревшие переменные LANGCHAIN_* (LANGCHAIN_TRACING_V2, LANGCHAIN_API_KEY и т.д.) также поддерживаются для обратной совместимости; LANGSMITH_* имеет приоритет, когда заданы обе.
В Docker-развёртываниях трассировка отключена по умолчанию. Установите LANGSMITH_TRACING=true и LANGSMITH_API_KEY в .env для включения.
От Deep Research к Super Agent Harness
DeerFlow начинался как фреймворк для Deep Research, и сообщество вышло далеко за эти рамки. После запуска разработчики строили пайплайны, генерировали презентации, поднимали дашборды, автоматизировали контент. То, чего мы не ожидали.
Стало понятно: DeerFlow не просто research-инструмент. Это harness: runtime, который даёт агентам необходимую инфраструктуру.
Поэтому мы переписали всё с нуля.
DeerFlow 2.0 — это Super Agent Harness «из коробки». Batteries included, полностью расширяемый. Построен на LangGraph и LangChain. По умолчанию есть всё, что нужно агенту: файловая система, memory, skills, sandbox-выполнение и возможность планировать и запускать sub-agents для сложных многошаговых задач.
Используйте как есть. Или разберите и переделайте под себя.
Core Features
Skills & Tools
Skills — это то, что позволяет DeerFlow делать почти что угодно.
Agent Skill — это структурированный модуль: Markdown-файл с описанием воркфлоу, лучших практик и ссылок на ресурсы. DeerFlow поставляется со встроенными skills для ресёрча, генерации отчётов, слайдов, веб-страниц, изображений и видео. Но главное — расширяемость: добавляйте свои skills, заменяйте встроенные или собирайте из них составные воркфлоу.
Skills загружаются по мере необходимости, только когда задача их требует. Это держит контекстное окно чистым.
# Пути внутри контейнера sandbox
/mnt/skills/public
├── research/SKILL.md
├── report-generation/SKILL.md
├── slide-creation/SKILL.md
├── web-page/SKILL.md
└── image-generation/SKILL.md
/mnt/skills/custom
└── your-custom-skill/SKILL.md ← ваш skill
Интеграция с Claude Code
Skill claude-to-deerflow позволяет работать с DeerFlow прямо из Claude Code. Отправляйте задачи, проверяйте статус, управляйте тредами, не выходя из терминала.
Установка скилла:
npx skills add https://github.com/bytedance/deer-flow --skill claude-to-deerflow
Что можно делать:
- Отправлять сообщения в DeerFlow и получать потоковые ответы
- Выбирать режимы выполнения: flash (быстро), standard, pro (planning), ultra (sub-agents)
- Проверять статус DeerFlow, просматривать модели, скиллы, агентов
- Управлять тредами и историей диалога
- Загружать файлы для анализа
Полный справочник API в skills/public/claude-to-deerflow/SKILL.md.
Sub-Agents
Сложные задачи редко решаются за один проход. DeerFlow их декомпозирует.
Lead agent запускает sub-agents на лету, каждый со своим изолированным контекстом, инструментами и условиями завершения. Sub-agents работают параллельно, возвращают структурированные результаты, а lead agent собирает всё в единый итог.
Вот как DeerFlow справляется с задачами на минуты и часы: research-задача разветвляется в дюжину sub-agents, каждый копает свой угол, потом всё сходится в один отчёт, или сайт, или слайддек со сгенерированными визуалами. Один harness, много рук.
Sandbox & файловая система
DeerFlow не просто говорит о том, что умеет что-то делать. У него есть собственный компьютер.
Каждая задача выполняется внутри изолированного Docker-контейнера с полной файловой системой: skills, workspace, uploads, outputs. Агент читает, пишет и редактирует файлы. Выполняет bash-команды и пишет код. Смотрит на изображения. Всё изолировано, всё прозрачно, никакого пересечения между сессиями.
Это разница между чатботом с доступом к инструментам и агентом с реальной средой выполнения.
# Пути внутри контейнера sandbox
/mnt/user-data/
├── uploads/ ← ваши файлы
├── workspace/ ← рабочая директория агентов
└── outputs/ ← результаты
Context Engineering
Изолированный контекст: каждый sub-agent работает в своём контексте и не видит контекст главного агента или других sub-agents. Агент фокусируется на своей задаче.
Управление контекстом: внутри сессии DeerFlow агрессивно сжимает контекст и суммирует завершённые подзадачи, выгружает промежуточные результаты в файловую систему, сжимает то, что уже не актуально. На длинных многошаговых задачах контекстное окно не переполняется.
Long-Term Memory
Большинство агентов забывают всё, когда диалог заканчивается. DeerFlow помнит.
DeerFlow сохраняет ваш профиль, предпочтения и накопленные знания между сессиями. Чем больше используете, тем лучше он вас знает: стиль, технологический стек, повторяющиеся воркфлоу. Всё хранится локально и остаётся под вашим контролем.
Рекомендуемые модели
DeerFlow работает с любым LLM через OpenAI-совместимый API. Лучше всего — с моделями, которые поддерживают:
- Большое контекстное окно (100k+ токенов) — для deep research и многошаговых задач
- Reasoning capabilities — для адаптивного планирования и сложной декомпозиции
- Multimodal inputs — для работы с изображениями и видео
- Strong tool-use — для надёжного вызова функций и структурированных ответов
Встроенный Python-клиент
DeerFlow можно использовать как Python-библиотеку прямо в коде — без запуска HTTP-сервисов. DeerFlowClient даёт доступ ко всем возможностям агента и Gateway, возвращает те же схемы ответов, что и HTTP Gateway API:
from deerflow.client import DeerFlowClient
client = DeerFlowClient()
# Chat
response = client.chat("Analyze this paper for me", thread_id="my-thread")
# Streaming (LangGraph SSE protocol: values, messages-tuple, end)
for event in client.stream("hello"):
if event.type == "messages-tuple" and event.data.get("type") == "ai":
print(event.data["content"])
# Configuration & management — returns Gateway-aligned dicts
models = client.list_models() # {"models": [...]}
skills = client.list_skills() # {"skills": [...]}
client.update_skill("web-search", enabled=True)
client.upload_files("thread-1", ["./report.pdf"]) # {"success": True, "files": [...]}
Документация
- Руководство по участию — настройка среды разработки, воркфлоу и гайдлайны
- Руководство по конфигурации — инструкции по настройке
- Обзор архитектуры — технические детали
- Архитектура бэкенда — бэкенд и справочник API
⚠️ Безопасность
Неправильное развёртывание может привести к угрозам безопасности
DeerFlow обладает ключевыми высокопривилегированными возможностями, включая выполнение системных команд, операции с ресурсами и вызов бизнес-логики. По умолчанию он рассчитан на развёртывание в локальной доверенной среде (доступ только через loopback-адрес 127.0.0.1). Если вы разворачиваете агент в недоверенных средах — локальных сетях, публичных облачных серверах или других окружениях, доступных с нескольких устройств — без строгих мер безопасности, это может привести к следующим угрозам:
- Несанкционированные вызовы: функциональность агента может быть обнаружена неавторизованными третьими лицами или вредоносными сканерами, что приведёт к массовым несанкционированным запросам с выполнением высокорисковых операций (системные команды, чтение/запись файлов) и серьёзным последствиям для безопасности.
- Юридические и compliance-риски: если агент будет незаконно использован для кибератак, кражи данных или других противоправных действий, это может повлечь юридическую ответственность и compliance-риски.
Рекомендации по безопасности
Примечание: настоятельно рекомендуем развёртывать DeerFlow только в локальной доверенной сети. Если вам необходимо развёртывание через несколько устройств или сетей, обязательно реализуйте строгие меры безопасности, например:
- Белый список IP-адресов: используйте
iptablesили аппаратные межсетевые экраны / коммутаторы с ACL, чтобы настроить правила белого списка IP и заблокировать доступ со всех остальных адресов. - Шлюз аутентификации: настройте обратный прокси (nginx и др.) и включите строгую предварительную аутентификацию, запрещающую любой доступ без авторизации.
- Сетевая изоляция: по возможности разместите агент и доверенные устройства в одном выделенном VLAN, изолированном от остальной сети.
- Следите за обновлениями: регулярно отслеживайте обновления безопасности проекта DeerFlow.
Участие в разработке
Приветствуем контрибьюторов! Настройка среды разработки, воркфлоу и гайдлайны — в CONTRIBUTING.md.
Лицензия
Проект распространяется под лицензией MIT.
Благодарности
DeerFlow стоит на плечах open-source сообщества. Спасибо всем проектам и разработчикам, чья работа сделала его возможным.
Отдельная благодарность:
- LangChain — фреймворк для взаимодействия с LLM и построения цепочек.
- LangGraph — многоагентная оркестрация, на которой держатся сложные воркфлоу DeerFlow.
Ключевые контрибьюторы
Авторы DeerFlow, без которых проекта бы не было: