探索 DeerFlow 2.0:打造你的超級 Agent (初學者友善指南)
嘿,台灣的朋友們! 最近 AI 領域真是熱鬧滾滾,各種新工具、框架不斷湧現。今天要來介紹一個超級酷的項目: DeerFlow 2.0。 簡單來說,它就像一個能讓你打造自己的超級 AI 助理的工具箱,而且功能強大,彈性十足。 就算你沒有寫程式的經驗,也能透過這篇文章了解 DeerFlow 的核心概念,並開始探索它的潛力!
網址: deerflow.tech
什麼是 DeerFlow? (別被名詞嚇到,其實很簡單!)
DeerFlow (全名是 Deep Exploration and Efficient Research Flow,意思是:深度探索與高效研究流程) 是一個 開源 的 超級 Agent (代理人) 框架。 簡單來說,你可以把它想像成一個「AI 助理的工具箱」,它可以:
- 幫你處理各種任務: 從研究、寫報告、產生簡報、製作網頁,到生成圖片和影片,DeerFlow 都可以幫你完成。
- 靈活度超高:你可以自由地擴展它的功能,添加自己的技能,甚至修改現有的功能。
- 背後有強大的 LLM 支援: DeerFlow 建立在 LangChain 和 LangGraph 的基礎上,LangChain 是一個非常流行的用於開發 AI 應用程式的框架,而 LangGraph 則專門用於構建 AI 代理程式。
- 沙盒機制: 每個任務都會在獨立的環境 (Docker 容器) 中運行,確保安全且互不干擾。
DeerFlow 的目標是讓你在 AI 世界中更有效率地完成工作,它就像一個有著各種技能的超級助理,可以幫你處理各種繁瑣的任務。
DeerFlow 2.0 與其他框架的不同? (為什麼它值得一試?)
DeerFlow 2.0 與之前的版本 (1.x) 完全不同,它是一個從零開始重寫的框架。 最大的區別在於:
- 不再是框架,而是 Agent Harness (工具框架): 舊版的 DeerFlow 更像是一個框架,需要你把各種功能組件拼湊在一起。 而 2.0 版本已經內建了許多實用的功能,開箱即用。
- 內建功能齊全: 包含了文件系統、記憶體、技能、沙盒執行環境,以及規劃和調用子 Agent 來完成複雜任務的能力。
- 更容易上手: 因為內建了許多功能,所以你不需要從頭開始構建一切,可以更專注於你的任務。
簡而言之,DeerFlow 2.0 就像一個已經組裝好的超級 AI 助理,你只需要根據自己的需求進行調整和擴展。
快速開始:初學者入門指南
雖然 DeerFlow 功能強大,但它的上手難度其實並不高。 下面我將一步一步教你如何開始使用,即使你沒有寫程式的經驗,也能輕鬆上手!
1. 準備工作:安裝必要的工具
首先,你需要安裝一些必要的工具。 幸運的是,DeerFlow 支援 Docker,這使得安裝過程變得非常簡單,避免了環境配置的麻煩。
- Docker: Docker 是一個容器化平台,可以讓你輕鬆地打包、部署和運行你的應用程式。 如果你還沒安裝 Docker,請到 Docker 官網下載並安裝: https://www.docker.com/
- Git: Git 是一個版本控制系統,用於下載 DeerFlow 的程式碼。 如果你還沒安裝 Git,可以到 Git 官網下載並安裝: https://git-scm.com/
- 你的 OpenAI API Key (或其他 LLM 的 API Key): DeerFlow 需要使用 OpenAI 或其他 LLM (例如 Anthropic) 的 API 來生成文字。 如果你還沒有 API Key,你需要先到 OpenAI 或其他 LLM 的網站申請。
2. 下載 DeerFlow 程式碼
在你的電腦上打開終端機 (Terminal) 或命令提示字元 (Command Prompt),輸入以下指令來下載 DeerFlow 的程式碼:
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
git clone指令會從 GitHub 上下載 DeerFlow 的程式碼。cd deer-flow指令會進入 DeerFlow 的程式碼目錄。
3. 建立設定檔
接下來,你需要建立一個設定檔,告訴 DeerFlow 你要使用哪些 LLM。 在程式碼目錄中,輸入以下指令:
make config
這個指令會根據範例範本建立本地的設定檔。
4. 設定你的 LLM (很重要!)
打開 config.yaml 檔案,你會看到一些預設的設定。 你需要編輯這個檔案,設定你要使用的 LLM。 範例如下:
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 # 每次請求的最大 token 數
temperature: 0.7 # 抽樣溫度
name: 給你的 LLM 取一個名字,方便你之後使用。display_name: 容易閱讀的名字,可以更清楚的知道是哪一個模型。use: 設定要使用的 LangChain 模型。model: 這是 OpenAI (或其他 LLM 提供商) 的模型名稱,例如 “gpt-4” 或 “gpt-3.5-turbo”。api_key: 你的 API 金鑰。 請注意,不要直接把 API 金鑰寫在config.yaml檔案中,這樣不安全! 建議使用環境變數。max_tokens: 每次請求的最大 token 數,這會影響你的花費。temperature: 控制 LLM 生成文字的隨機性。 數值越高,生成結果越隨機,數值越低,生成結果越穩定。
5. 設定 API 金鑰 (安全第一!)
有三種設定 API 金鑰的方法,強烈建議使用方法 A,也就是設定環境變數:
- A. (推薦) 設定
.env檔案: 在程式碼根目錄下建立一個.env檔案,然後輸入你的 API 金鑰:TAVILY_API_KEY=your-tavily-api-key OPENAI_API_KEY=your-openai-api-key # 根據你的需求,加入其他供應商的 API 金鑰這樣可以讓你的 API 金鑰更安全,也更容易管理。
-
B. 在終端機中設定環境變數: 在終端機中輸入以下指令 (每次打開終端機都要重新設定):
export OPENAI_API_KEY=your-openai-api-key - C. 直接在
config.yaml檔案中設定 (不推薦): 直接在config.yaml檔案的api_key欄位中輸入你的 API 金鑰。 不建議這麼做,因為這會讓你的 API 金鑰容易洩漏。
6. 運行 DeerFlow (Docker 方式,最簡單!)
現在,你已經完成了所有的設定,可以開始運行 DeerFlow 了! 建議使用 Docker 方式,這樣可以確保你在一個乾淨、一致的環境中運行。 在終端機中輸入以下指令:
make docker-init # (只需要執行一次,用來下載 sandbox 映像檔)
make docker-start # 啟動服務
make docker-init指令會下載必要的 Docker 映像檔,只需要執行一次。make docker-start指令會啟動 DeerFlow 的所有服務。
7. 存取 DeerFlow
在你的瀏覽器中打開 `http://localhost:2026`,你就可以看到 DeerFlow 的介面了! 你可以開始測試你的 AI 助理,讓它幫你處理各種任務了!
DeerFlow 的核心功能 (讓你更了解它的能力!)
DeerFlow 的核心功能非常強大,讓你更容易構建 AI 應用程式:
- Skills & Tools (技能與工具):
- 技能 (Skills) 是 DeerFlow 的核心,它們定義了如何完成特定的任務。 就像是 AI 助理的專業技能,例如研究、寫報告、製作簡報等。 DeerFlow 內建了許多技能,你也可以自己添加或修改。
- 工具 (Tools) 像是 AI 助理的工具箱, DeerFlow 提供了像是網路搜尋、檔案操作、Bash 執行等等的工具。 你也可以使用 MCP Server 或是 Python Function 來客製化工具。
- Sub-Agents (子 Agent): 複雜的任務通常需要分解成多個步驟。 DeerFlow 允許你創建子 Agent,每個 Agent 都有自己的上下文、工具和終止條件。 這些子 Agent 可以並行運行,並將結果匯總到主 Agent 中。
- Sandbox & File System (沙盒與檔案系統): 每個任務都在一個獨立的 Docker 容器中運行,擁有自己的檔案系統。 Agent 可以讀寫文件,執行 Bash 命令,查看圖像等,確保安全性和隔離性。 就像 AI 助理的工作室,在裡面可以安全地處理各種文件。
- Context Engineering (上下文工程):
- 隔離的子 Agent 上下文:每個子 Agent 在自己的獨立上下文中運行,互不干擾。 這樣可以確保子 Agent 專注於手頭的任務。
- 摘要 (Summarization):DeerFlow 會積極管理上下文,總結已完成的子任務,將中間結果卸載到檔案系統,壓縮不再相關的內容。 這樣可以在長時間、多步驟的任務中保持清晰。
- Long-Term Memory (長期記憶): DeerFlow 可以跨會話建立你的個人資料、偏好和累積知識的持久記憶。 就像 AI 助理的筆記本,隨著你使用它,它會越來越了解你,你的寫作風格、你的技術堆棧、你的重複工作流程。 記憶體儲存在本地,由你控制。
實際應用場景:DeerFlow 能做什麼? (發揮你的想像力!)
DeerFlow 可以應用於各種不同的場景:
- 研究助理: 從網路搜尋、收集資料、分析文獻,到撰寫報告,DeerFlow 都能幫你完成。
- 內容生成: 產生部落格文章、社群媒體貼文、行銷文案等。
- 簡報製作: 根據你的需求,自動生成簡報,包括文字、圖片和影片。
- 自動化工作流程: 將多個步驟組合起來,自動化完成複雜的任務。
- 開發輔助: 幫助你撰寫程式碼、除錯,甚至生成文件。
關於模型的選擇 (怎麼選適合你的模型?)
DeerFlow 與模型無關,它可以使用任何實現 OpenAI 相容 API 的 LLM。 但是,為了獲得最佳效果,建議使用支援以下功能的模型:
- 長上下文視窗 (100k+ tokens):適用於深度研究和多步驟任務。
- 推理能力:適用於自適應規劃和複雜分解。
- 多模態輸入:適用於圖像理解和影片理解。
- 強大的工具使用:適用於可靠的函數調用和結構化輸出。
內嵌 Python Client (如果你是 Python 開發者)
DeerFlow 也提供內嵌 Python 程式庫,可以直接在 Python 程式碼中使用,而無需運行完整的 HTTP 服務。 透過 DeerFlowClient,你可以直接訪問所有 Agent 和 Gateway 功能,並獲得與 HTTP Gateway API 相同的回應格式:
from src.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": [...]}
更多資源 (讓你深入探索)
- 官方網站: deerflow.tech
- GitHub 倉庫: https://github.com/bytedance/deer-flow
- Contributing Guide (貢獻指南): 包含了開發環境設定和工作流程。
- Configuration Guide (設定指南): 包含了設定和配置說明。
- Architecture Overview (架構概述): 提供了技術架構的詳細資訊。
- Backend Architecture (後端架構): 包含了後端架構和 API 參考。
總結:踏出你的 AI 助理開發第一步!
DeerFlow 2.0 是一個非常棒的工具,它提供了一個完整的環境,讓你無需從頭開始就能構建自己的超級 AI 助理。 透過這篇文章,你已經了解了 DeerFlow 的核心概念,以及如何開始使用它。 現在,就開始探索 DeerFlow,發揮你的想像力,打造你自己的 AI 助理吧!
參考閱讀
https://github.com/bytedance/deer-flow