English | 简体中文 | 日本語 | Deutsch | Español | Русский | Portuguese
オープンソースから生まれ、オープンソースに還元する。
DeerFlow(Deep Exploration and Efficient Research Flow)は、オープンソースコミュニティの素晴らしい成果の上に構築されたコミュニティ主導の深層研究フレームワークです。私たちの目標は、言語モデルとウェブ検索、クローリング、Python コード実行などの専門ツールを組み合わせながら、これを可能にしたコミュニティに貢献することです。
現在、DeerFlow は火山引擎の FaaS アプリケーションセンターに正式に入居しています。ユーザーは体験リンクを通じてオンラインで体験し、その強力な機能と便利な操作を直感的に感じることができます。同時に、さまざまなユーザーの展開ニーズを満たすため、DeerFlow は火山引擎に基づくワンクリック展開をサポートしています。展開リンクをクリックして展開プロセスを迅速に完了し、効率的な研究の旅を始めましょう。
詳細についてはDeerFlow の公式ウェブサイトをご覧ください。
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
このデモでは、DeerFlowの使用方法を紹介しています:
DeerFlow は Python で開発され、Node.js で書かれた Web UI が付属しています。スムーズなセットアッププロセスを確保するために、以下のツールの使用をお勧めします:
uv:
Python 環境と依存関係の管理を簡素化します。uvはルートディレクトリに自動的に仮想環境を作成し、必要なパッケージをすべてインストールします—Python 環境を手動でインストールする必要はありません。
nvm:
複数の Node.js ランタイムバージョンを簡単に管理します。
pnpm:
Node.js プロジェクトの依存関係をインストールおよび管理します。
システムが以下の最小要件を満たしていることを確認してください:
# リポジトリをクローン
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# 依存関係をインストール、uvがPythonインタープリタと仮想環境の作成、必要なパッケージのインストールを担当
uv sync
# APIキーで.envを設定
# Tavily: https://app.tavily.com/home
# Brave_SEARCH: https://brave.com/search/api/
# 火山引擎TTS: TTSの資格情報がある場合は追加
cp .env.example .env
# 下記の「サポートされている検索エンジン」と「テキスト読み上げ統合」セクションですべての利用可能なオプションを確認
# LLMモデルとAPIキーのconf.yamlを設定
# 詳細は「docs/configuration_guide.md」を参照
cp conf.yaml.example conf.yaml
# PPT生成用にmarpをインストール
# https://github.com/marp-team/marp-cli?tab=readme-ov-file#use-package-manager
brew install marp-cli
オプションで、pnpmを使用して Web UI 依存関係をインストール:
cd deer-flow/web
pnpm install
詳細については設定ガイドを参照してください。
[!注意] プロジェクトを開始する前に、ガイドを注意深く読み、特定の設定と要件に合わせて構成を更新してください。
プロジェクトを実行する最も迅速な方法は、コンソール UI を使用することです。
# bashライクなシェルでプロジェクトを実行
uv run main.py
このプロジェクトには Web UI も含まれており、より動的で魅力的なインタラクティブ体験を提供します。
[!注意] 先に Web UI の依存関係をインストールする必要があります。
# 開発モードでバックエンドとフロントエンドサーバーの両方を実行
# macOS/Linuxの場合
./bootstrap.sh -d
# Windowsの場合
bootstrap.bat -d
NOTE
デフォルトでは、セキュリティ上の理由からバックエンドサーバーは 127.0.0.1 (localhost) にバインドされます。外部接続を許可する必要がある場合 (例: Linux サーバーにデプロイする場合) は、ブートストラップスクリプトでサーバーホストを 0.0.0.0 に変更できます (uv run server.py --host 0.0.0.0)。 サービスを外部ネットワークに公開する前に、環境が適切に保護されていることを確認してください。
ブラウザを開き、http://localhost:3000にアクセスして Web UI を探索してください。
webディレクトリで詳細を確認できます。
DeerFlow は複数の検索エンジンをサポートしており、.envファイルのSEARCH_API変数で設定できます:
Tavily(デフォルト):AI アプリケーション向けの専門検索 API
.envファイルにTAVILY_API_KEYが必要DuckDuckGo:プライバシー重視の検索エンジン
Brave Search:高度な機能を備えたプライバシー重視の検索エンジン
.envファイルにBRAVE_SEARCH_API_KEYが必要Arxiv:学術研究用の科学論文検索
Searx/SearxNGセルフホスト型メタ検索エンジン
.envファイルにSEARX_HOSTが必要お好みの検索エンジンを設定するには、.envファイルでSEARCH_API変数を設定します:
# 選択肢: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
🔍 検索と取得
🔗 MCPシームレス統合
🧠 人間参加型ループ
📝 レポート後編集
DeerFlow は、自動研究とコード分析のためのモジュラーなマルチエージェントシステムアーキテクチャを実装しています。システムは LangGraph 上に構築され、コンポーネントが明確に定義されたメッセージパッシングシステムを通じて通信する柔軟な状態ベースのワークフローを実現しています。

deerflow.techでライブで確認できます
システムは以下のコンポーネントを含む合理化されたワークフローを採用しています:
コーディネーター:ワークフローのライフサイクルを管理するエントリーポイント
プランナー:タスク分解と計画のための戦略的コンポーネント
研究チーム:計画を実行する専門エージェントの集合:
レポーター:研究出力の最終段階プロセッサ
DeerFlowには現在、研究レポートを音声に変換できるテキスト読み上げ(TTS)機能が含まれています。この機能は火山引擎TTS APIを使用して高品質なテキストオーディオを生成します。速度、音量、ピッチなどの特性もカスタマイズ可能です。
/api/ttsエンドポイントからTTS機能にアクセスできます:
# curlを使用したAPI呼び出し例
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: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
APIドキュメント: http://127.0.0.1:2024/docs
Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
APIドキュメント: http://127.0.0.1:2024/docs
ブラウザで Studio UI リンクを開いてデバッグインターフェースにアクセスします。
Studio UI では、次のことができます:
Studio UIで研究トピックを送信すると、次を含む全ワークフロー実行プロセスを見ることができます:
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ファイルが準備できていることを確認してください。
次に、独自の Web サーバーの Docker イメージをビルドします:
docker build -t deer-flow-api .
最後に、Web サーバーを実行する 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
このプロジェクトは docker compose でも設定できます:
# dockerイメージをビルド
docker compose build
# サーバーを起動
docker compose up
WARNING
DeerFlow を本番環境にデプロイする場合は、ウェブサイトに認証を追加し、MCPServer と Python Repl のセキュリティチェックを評価してください。
DeerFlow には現在、研究レポートを音声に変換できるテキスト読み上げ(TTS)機能が含まれています。この機能は火山引擎 TTS API を使用して高品質なテキストオーディオを生成します。速度、音量、ピッチなどの特性もカスタマイズ可能です。
/api/ttsエンドポイントから TTS 機能にアクセスできます:
# curlを使用したAPI呼び出し例
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
以下の例は DeerFlow の機能を示しています:
OpenAI Sora レポート - OpenAI の Sora AI ツールの分析
Google の Agent to Agent プロトコルレポート - Google の Agent to Agent(A2A)プロトコルの概要
MCP とは何か? - 複数のコンテキストにおける「MCP」という用語の包括的分析
ビットコイン価格変動 - 最近のビットコイン価格動向の分析
LLM とは何か? - 大規模言語モデルの詳細な探求
Claude を使った深層研究の方法は? - 深層研究での Claude の使用に関するベストプラクティスとワークフロー
医療における AI 採用:影響要因 - 医療における AI 採用に影響する要因の分析
量子コンピューティングの暗号学への影響 - 量子コンピューティングの暗号学への影響の分析
クリスティアーノ・ロナウドのパフォーマンスハイライト - クリスティアーノ・ロナウドのパフォーマンスハイライトの分析
これらの例を実行したり、独自の研究レポートを作成したりするには、次のコマンドを使用できます:
# 特定のクエリで実行
uv run main.py "医療におけるAI採用に影響する要因は何か?"
# カスタム計画パラメータで実行
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 または Chinese)を選択
組み込み質問リストから選択するか、独自の質問を提示するオプションを選択
システムが質問を処理し、包括的な研究レポートを生成
DeerFlow には人間参加型ループメカニズムが含まれており、研究計画を実行する前にレビュー、編集、承認することができます:
計画レビュー:人間参加型ループが有効な場合、システムは実行前に生成された研究計画を表示
フィードバック提供:次のことができます:
[ACCEPTED]と返信して計画を承認[EDIT PLAN] 技術実装に関するステップをさらに追加する)自動承認:レビュープロセスをスキップするために自動承認を有効にできます:
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 の成功を推進しています。この旅をリードしていただき光栄です。