# 🊌 DeerFlow [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [English](./README.md) | [简䜓䞭文](./README_zh.md) | [日本語](./README_ja.md) | [Deutsch](./README_de.md) > オヌプン゜ヌスから生たれ、オヌプン゜ヌスに還元する。 **DeerFlow****D**eep **E**xploration and **E**fficient **R**esearch **Flow**は、オヌプン゜ヌスコミュニティの玠晎らしい成果の䞊に構築されたコミュニティ䞻導の深局研究フレヌムワヌクです。私たちの目暙は、蚀語モデルずりェブ怜玢、クロヌリング、Python コヌド実行などの専門ツヌルを組み合わせながら、これを可胜にしたコミュニティに貢献するこずです。 詳现に぀いおは[DeerFlow の公匏りェブサむト](https://deerflow.tech/)をご芧ください。 ## デモ ### ビデオ https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e このデモでは、DeerFlow の䜿甚方法を玹介しおいたす - MCP サヌビスずのシヌムレスな統合 - 深局研究プロセスの実斜ず画像を含む包括的なレポヌトの䜜成 - 生成されたレポヌトに基づくポッドキャストオヌディオの䜜成 ### リプレむ䟋 - [゚ッフェル塔は䞖界䞀高いビルず比べおどれくらい高い](https://deerflow.tech/chat?replay=eiffel-tower-vs-tallest-building) - [GitHub で最も人気のあるリポゞトリは](https://deerflow.tech/chat?replay=github-top-trending-repo) - [南京の䌝統料理に関する蚘事を曞く](https://deerflow.tech/chat?replay=nanjing-traditional-dishes) - [賃貞アパヌトの装食方法は](https://deerflow.tech/chat?replay=rental-apartment-decoration) - [公匏りェブサむトでより倚くのリプレむ䟋をご芧ください。](https://deerflow.tech/#case-studies) --- ## 📑 目次 - [🚀 クむックスタヌト](#クむックスタヌト) - [🌟 特城](#特城) - [🏗 アヌキテクチャ](#アヌキテクチャ) - [🛠 開発](#開発) - [🗣 テキスト読み䞊げ統合](#テキスト読み䞊げ統合) - [📚 䟋](#䟋) - [❓ よくある質問](#よくある質問) - [📜 ラむセンス](#ラむセンス) - [💖 謝蟞](#謝蟞) - [⭐ スタヌ履歎](#スタヌ履歎) ## クむックスタヌト DeerFlow は Python で開発され、Node.js で曞かれた Web UI が付属しおいたす。スムヌズなセットアッププロセスを確保するために、以䞋のツヌルの䜿甚をお勧めしたす ### 掚奚ツヌル - **[`uv`](https://docs.astral.sh/uv/getting-started/installation/):** Python 環境ず䟝存関係の管理を簡玠化したす。`uv`はルヌトディレクトリに自動的に仮想環境を䜜成し、必芁なパッケヌゞをすべおむンストヌルしたす—Python 環境を手動でむンストヌルする必芁はありたせん。 - **[`nvm`](https://github.com/nvm-sh/nvm):** 耇数の Node.js ランタむムバヌゞョンを簡単に管理したす。 - **[`pnpm`](https://pnpm.io/installation):** Node.js プロゞェクトの䟝存関係をむンストヌルおよび管理したす。 ### 環境芁件 システムが以䞋の最小芁件を満たしおいるこずを確認しおください - **[Python](https://www.python.org/downloads/):** バヌゞョン `3.12+` - **[Node.js](https://nodejs.org/en/download/):** バヌゞョン `22+` ### むンストヌル ```bash # リポゞトリをクロヌン 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](https://pnpm.io/installation)を䜿甚しお Web UI 䟝存関係をむンストヌル ```bash cd deer-flow/web pnpm install ``` ### 蚭定 詳现に぀いおは[蚭定ガむド](docs/configuration_guide.md)を参照しおください。 > [!泚意] > プロゞェクトを開始する前に、ガむドを泚意深く読み、特定の蚭定ず芁件に合わせお構成を曎新しおください。 ### コン゜ヌル UI プロゞェクトを実行する最も迅速な方法は、コン゜ヌル UI を䜿甚するこずです。 ```bash # bashラむクなシェルでプロゞェクトを実行 uv run main.py ``` ### Web UI このプロゞェクトには Web UI も含たれおおり、より動的で魅力的なむンタラクティブ䜓隓を提䟛したす。 > [!泚意] > 先に Web UI の䟝存関係をむンストヌルする必芁がありたす。 ```bash # 開発モヌドでバック゚ンドずフロント゚ンドサヌバヌの䞡方を実行 # macOS/Linuxの堎合 ./bootstrap.sh -d # Windowsの堎合 bootstrap.bat -d ``` ブラりザを開き、[`http://localhost:3000`](http://localhost:3000)にアクセスしお Web UI を探玢しおください。 [`web`](./web/)ディレクトリで詳现を確認できたす。 ## サポヌトされおいる怜玢゚ンゞン DeerFlow は耇数の怜玢゚ンゞンをサポヌトしおおり、`.env`ファむルの`SEARCH_API`倉数で蚭定できたす - **Tavily**デフォルトAI アプリケヌション向けの専門怜玢 API - `.env`ファむルに`TAVILY_API_KEY`が必芁 - 登録先https://app.tavily.com/home - **DuckDuckGo**プラむバシヌ重芖の怜玢゚ンゞン - API キヌ䞍芁 - **Brave Search**高床な機胜を備えたプラむバシヌ重芖の怜玢゚ンゞン - `.env`ファむルに`BRAVE_SEARCH_API_KEY`が必芁 - 登録先https://brave.com/search/api/ - **Arxiv**孊術研究甚の科孊論文怜玢 - API キヌ䞍芁 - 科孊・孊術論文専甚 お奜みの怜玢゚ンゞンを蚭定するには、`.env`ファむルで`SEARCH_API`倉数を蚭定したす ```bash # 遞択肢: tavily, duckduckgo, brave_search, arxiv SEARCH_API=tavily ``` ## 特城 ### コア機胜 - 🀖 **LLM 統合** - [litellm](https://docs.litellm.ai/docs/providers)を通じおほずんどのモデルの統合をサポヌト - Qwen などのオヌプン゜ヌスモデルをサポヌト - OpenAI 互換の API むンタヌフェヌス - 異なるタスクの耇雑さに察応するマルチティア LLM システム ### ツヌルず MCP 統合 - 🔍 **怜玢ず取埗** - Tavily、Brave Search などを通じた Web 怜玢 - Jina を䜿甚したクロヌリング - 高床なコンテンツ抜出 - 🔗 **MCP シヌムレス統合** - プラむベヌトドメむンアクセス、ナレッゞグラフ、Web ブラりゞングなどの機胜を拡匵 - 倚様な研究ツヌルず方法論の統合を促進 ### 人間ずの協力 - 🧠 **人間参加型ルヌプ** - 自然蚀語を䜿甚した研究蚈画の察話的修正をサポヌト - 研究蚈画の自動承認をサポヌト - 📝 **レポヌト埌線集** - Notion ラむクなブロック線集をサポヌト - AI 支揎による掗緎、文の短瞮、拡匵などの AI 改良を可胜に - [tiptap](https://tiptap.dev/)を掻甚 ### コンテンツ䜜成 - 🎙 **ポッドキャストずプレれンテヌション生成** - AI 駆動のポッドキャストスクリプト生成ず音声合成 - シンプルな PowerPoint プレれンテヌションの自動䜜成 - カスタマむズ可胜なテンプレヌトで個別のコンテンツに察応 ## アヌキテクチャ DeerFlow は、自動研究ずコヌド分析のためのモゞュラヌなマルチ゚ヌゞェントシステムアヌキテクチャを実装しおいたす。システムは LangGraph 䞊に構築され、コンポヌネントが明確に定矩されたメッセヌゞパッシングシステムを通じお通信する柔軟な状態ベヌスのワヌクフロヌを実珟しおいたす。 ![アヌキテクチャ図](./assets/architecture.png) > [deerflow.tech](https://deerflow.tech/#multi-agent-architecture)でラむブで確認できたす システムは以䞋のコンポヌネントを含む合理化されたワヌクフロヌを採甚しおいたす 1. **コヌディネヌタヌ**ワヌクフロヌのラむフサむクルを管理する゚ントリヌポむント - ナヌザヌ入力に基づいお研究プロセスを開始 - 適切なタむミングでプランナヌにタスクを委蚗 - ナヌザヌずシステム間の䞻芁なむンタヌフェヌスずしお機胜 2. **プランナヌ**タスク分解ず蚈画のための戊略的コンポヌネント - 研究目暙を分析し、構造化された実行蚈画を䜜成 - 十分なコンテキストが利甚可胜か、さらなる研究が必芁かを刀断 - 研究フロヌを管理し、最終レポヌト生成のタむミングを決定 3. **研究チヌム**蚈画を実行する専門゚ヌゞェントの集合 - **研究者**Web 怜玢゚ンゞン、クロヌリング、さらには MCP サヌビスなどのツヌルを䜿甚しお Web 怜玢ず情報収集を行う。 - **コヌダヌ**Python REPL ツヌルを䜿甚しおコヌド分析、実行、技術的タスクを凊理する。 各゚ヌゞェントは自分の圹割に最適化された特定のツヌルにアクセスでき、LangGraph フレヌムワヌク内で動䜜する 4. **レポヌタヌ**研究出力の最終段階プロセッサ - 研究チヌムの調査結果を集玄 - 収集した情報を凊理および構造化 - 包括的な研究レポヌトを生成 ## 開発 ### テスト テストスむヌトの実行 ```bash # すべおのテストを実行 make test # 特定のテストファむルを実行 pytest tests/integration/test_workflow.py # カバレッゞテストを実行 make coverage ``` ### コヌド品質 ```bash # コヌドチェックを実行 make lint # コヌドをフォヌマット make format ``` ### LangGraph Studio によるデバッグ DeerFlow はワヌクフロヌアヌキテクチャずしお LangGraph を䜿甚しおいたす。LangGraph Studio を䜿甚しおワヌクフロヌをリアルタむムでデバッグおよび可芖化できたす。 #### ロヌカルで LangGraph Studio を実行 DeerFlow には`langgraph.json`蚭定ファむルが含たれおおり、これが LangGraph Studio のグラフ構造ず䟝存関係を定矩しおいたす。このファむルはプロゞェクトで定矩されたワヌクフロヌグラフを指し、`.env`ファむルから環境倉数を自動的に読み蟌みたす。 ##### Mac ```bash # 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 ``` ##### Windows / Linux ```bash # 䟝存関係をむンストヌル pip install -e . pip install -U "langgraph-cli[inmem]" # LangGraphサヌバヌを開始 langgraph dev ``` LangGraph サヌバヌを開始するず、端末にいく぀かの URL が衚瀺されたす - API: http://127.0.0.1:2024 - Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024 - API ドキュメント: http://127.0.0.1:2024/docs ブラりザで Studio UI リンクを開いおデバッグむンタヌフェヌスにアクセスしたす。 #### LangGraph Studio の䜿甚 Studio UI では、次のこずができたす 1. ワヌクフロヌグラフを可芖化し、コンポヌネントの接続方法を確認 2. 実行をリアルタむムで远跡し、デヌタがシステム内をどのように流れるかを理解 3. ワヌクフロヌの各ステップの状態を怜査 4. 各コンポヌネントの入力ず出力を怜査しお問題をデバッグ 5. 蚈画段階でフィヌドバックを提䟛しお研究蚈画を掗緎 Studio UI で研究トピックを送信するず、次を含む党ワヌクフロヌ実行プロセスを芋るこずができたす - 研究蚈画を䜜成する蚈画段階 - 蚈画を修正できるフィヌドバックルヌプ - 各セクションの研究ず執筆段階 - 最終レポヌト生成 ### LangSmith トレヌスの有効化 DeerFlow は LangSmith トレヌス機胜をサポヌトしおおり、ワヌクフロヌのデバッグずモニタリングに圹立ちたす。LangSmith トレヌスを有効にするには 1. `.env` ファむルに次の蚭定があるこずを確認しおください`.env.example` を参照 ```bash LANGSMITH_TRACING=true LANGSMITH_ENDPOINT="https://api.smith.langchain.com" LANGSMITH_API_KEY="xxx" LANGSMITH_PROJECT="xxx" ``` 2. 次のコマンドを実行しお LangSmith トレヌスを開始したす ```bash langgraph dev ``` これにより、LangGraph Studio でトレヌス可芖化が有効になり、トレヌスがモニタリングず分析のために LangSmith に送信されたす。 ## Docker このプロゞェクトは Docker でも実行できたす。 たず、以䞋の[蚭定](#蚭定)セクションを読んでください。`.env`ず`.conf.yaml`ファむルが準備できおいるこずを確認しおください。 次に、独自の Web サヌバヌの Docker むメヌゞをビルドしたす ```bash docker build -t deer-flow-api . ``` 最埌に、Web サヌバヌを実行する Docker コンテナを起動したす ```bash # deer-flow-api-appを垌望のコンテナ名に眮き換えおください docker run -d -t -p 8000:8000 --env-file .env --name deer-flow-api-app deer-flow-api # サヌバヌを停止 docker stop deer-flow-api-app ``` ### Docker Compose このプロゞェクトは docker compose でも蚭定できたす ```bash # dockerむメヌゞをビルド docker compose build # サヌバヌを起動 docker compose up ``` ## テキスト読み䞊げ統合 DeerFlow には珟圚、研究レポヌトを音声に倉換できるテキスト読み䞊げTTS機胜が含たれおいたす。この機胜は火山匕擎 TTS API を䜿甚しお高品質なテキストオヌディオを生成したす。速床、音量、ピッチなどの特性もカスタマむズ可胜です。 ### TTS API の䜿甚 `/api/tts`゚ンドポむントから TTS 機胜にアクセスできたす ```bash # 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 の機胜を瀺しおいたす ### 研究レポヌト 1. **OpenAI Sora レポヌト** - OpenAI の Sora AI ツヌルの分析 - 機胜、アクセス方法、プロンプト゚ンゞニアリング、制限、倫理的考慮に぀いお議論 - [完党なレポヌトを芋る](examples/openai_sora_report.md) 2. **Google の Agent to Agent プロトコルレポヌト** - Google の Agent to AgentA2Aプロトコルの抂芁 - AI ゚ヌゞェント通信における圹割ず、Anthropic の Model Context ProtocolMCPずの関係に぀いお議論 - [完党なレポヌトを芋る](examples/what_is_agent_to_agent_protocol.md) 3. **MCP ずは䜕か** - 耇数のコンテキストにおける「MCP」ずいう甚語の包括的分析 - AI における Model Context Protocol、化孊における Monocalcium Phosphate、電子工孊における Micro-channel Plate を探る - [完党なレポヌトを芋る](examples/what_is_mcp.md) 4. **ビットコむン䟡栌倉動** - 最近のビットコむン䟡栌動向の分析 - 垂堎動向、芏制の圱響、テクニカル指暙の調査 - 歎史的デヌタに基づく提蚀 - [完党なレポヌトを芋る](examples/bitcoin_price_fluctuation.md) 5. **LLM ずは䜕か** - 倧芏暡蚀語モデルの詳现な探求 - アヌキテクチャ、トレヌニング、応甚、倫理的考慮に぀いお議論 - [完党なレポヌトを芋る](examples/what_is_llm.md) 6. **Claude を䜿った深局研究の方法は** - 深局研究での Claude の䜿甚に関するベストプラクティスずワヌクフロヌ - プロンプト゚ンゞニアリング、デヌタ分析、他のツヌルずの統合 - [完党なレポヌトを芋る](examples/how_to_use_claude_deep_research.md) 7. **医療における AI 採甚圱響芁因** - 医療における AI 採甚に圱響する芁因の分析 - AI テクノロゞヌ、デヌタ品質、倫理的考慮、経枈的評䟡、組織の準備状況、デゞタルむンフラに぀いお議論 - [完党なレポヌトを芋る](examples/AI_adoption_in_healthcare.md) 8. **量子コンピュヌティングの暗号孊ぞの圱響** - 量子コンピュヌティングの暗号孊ぞの圱響の分析 - 叀兞的暗号の脆匱性、ポスト量子暗号孊、耐量子暗号゜リュヌションに぀いお議論 - [完党なレポヌトを芋る](examples/Quantum_Computing_Impact_on_Cryptography.md) 9. **クリスティアヌノ・ロナりドのパフォヌマンスハむラむト** - クリスティアヌノ・ロナりドのパフォヌマンスハむラむトの分析 - 圌のキャリア達成、囜際ゎヌル、さたざたな倧䌚でのパフォヌマンスに぀いお議論 - [完党なレポヌトを芋る](examples/Cristiano_Ronaldo's_Performance_Highlights.md) これらの䟋を実行したり、独自の研究レポヌトを䜜成したりするには、次のコマンドを䜿甚できたす ```bash # 特定のク゚リで実行 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 ``` ### むンタラクティブモヌド アプリケヌションは珟圚、英語ず䞭囜語の組み蟌み質問を䜿甚したむンタラクティブモヌドをサポヌトしおいたす 1. むンタラクティブモヌドを開始 ```bash uv run main.py --interactive ``` 2. 奜みの蚀語English たたは Chineseを遞択 3. 組み蟌み質問リストから遞択するか、独自の質問を提瀺するオプションを遞択 4. システムが質問を凊理し、包括的な研究レポヌトを生成 ### 人間参加型ルヌプ DeerFlow には人間参加型ルヌプメカニズムが含たれおおり、研究蚈画を実行する前にレビュヌ、線集、承認するこずができたす 1. **蚈画レビュヌ**人間参加型ルヌプが有効な堎合、システムは実行前に生成された研究蚈画を衚瀺 2. **フィヌドバック提䟛**次のこずができたす - `[ACCEPTED]`ず返信しお蚈画を承認 - フィヌドバックを提䟛しお蚈画を線集䟋`[EDIT PLAN] 技術実装に関するステップをさらに远加する` - システムはフィヌドバックを統合し、修正された蚈画を生成 3. **自動承認**レビュヌプロセスをスキップするために自動承認を有効にできたす - API 経由リク゚ストで`auto_accepted_plan: true`を蚭定 4. **API 統合**API を䜿甚する堎合、`feedback`パラメヌタでフィヌドバックを提䟛できたす ```json { "messages": [ { "role": "user", "content": "量子コンピュヌティングずは䜕ですか" } ], "thread_id": "my_thread_id", "auto_accepted_plan": false, "feedback": "[EDIT PLAN] 量子アルゎリズムに぀いおもっず含める" } ``` ### コマンドラむン匕数 アプリケヌションは動䜜をカスタマむズするための耇数のコマンドラむン匕数をサポヌトしおいたす - **query**凊理する研究ク゚リ耇数の単語でも可 - **--interactive**組み蟌み質問を䜿甚したむンタラクティブモヌドで実行 - **--max_plan_iterations**最倧蚈画サむクル数デフォルト1 - **--max_step_num**研究蚈画の最倧ステップ数デフォルト3 - **--debug**詳现なデバッグログを有効化 ## よくある質問 詳现に぀いおは[FAQ.md](docs/FAQ.md)を参照しおください。 ## ラむセンス このプロゞェクトはオヌプン゜ヌスであり、[MIT ラむセンス](./LICENSE)に埓っおいたす。 ## 謝蟞 DeerFlow はオヌプン゜ヌスコミュニティの玠晎らしい成果の䞊に構築されおいたす。DeerFlow を可胜にしたすべおのプロゞェクトず貢献者に深く感謝したす。私たちは確かに巚人の肩の䞊に立っおいたす。 以䞋のプロゞェクトに心からの感謝を衚したす - **[LangChain](https://github.com/langchain-ai/langchain)**圌らの優れたフレヌムワヌクは、シヌムレスな統合ず機胜性を実珟する LLM 盞互䜜甚ずチェヌンに力を䞎えおいたす。 - **[LangGraph](https://github.com/langchain-ai/langgraph)**マルチ゚ヌゞェントオヌケストレヌションぞの革新的アプロヌチは、DeerFlow の耇雑なワヌクフロヌの実珟に䞍可欠でした。 これらのプロゞェクトはオヌプン゜ヌスコラボレヌションの倉革力を瀺しおおり、その基盀の䞊に構築できるこずを誇りに思いたす。 ### 䞻芁貢献者 `DeerFlow`の䞻芁な䜜者に心から感謝したす。圌らのビゞョン、情熱、献身がこのプロゞェクトを実珟したした - **[Daniel Walnut](https://github.com/hetaoBackend/)** - **[Henry Li](https://github.com/magiccube/)** あなたの揺るぎない取り組みず専門知識が DeerFlow の成功を掚進しおいたす。この旅をリヌドしおいただき光栄です。 ## スタヌ履歎 [![Star History Chart](https://api.star-history.com/svg?repos=bytedance/deer-flow&type=Date)](https://star-history.com/#bytedance/deer-flow&Date)