以 LangGraph 編排主代理與子代理的調度骨架。
DeerFlow 的官方定位:一套開源的 super agent harness,負責編排子代理、記憶與沙盒,靠可擴充的 skills 執行研究、程式撰寫與產出任務。核心概念是 harness(骨架)。它把「複雜任務如何拆開、分頭執行、再收斂成成品」這件事做成可重用的基礎建設。官方 README 的描述:一個會研究、會寫程式、會產出的長程 SuperAgent。
底層建在 LangGraph 與 LangChain 上。主代理(lead agent)接到任務後,將其拆成可平行的子任務,生出多個各自隔離的子代理,每個子代理有獨立的上下文、受限的工具集與獨立的檔案系統,執行完畢後把結果收斂回主代理,合成一份連貫輸出。技能採漸進式載入,用到才進入上下文。
它真正解決的是長程任務的兩個老問題:上下文爆炸與失憶。完成的子任務會被積極摘要、中間結果卸載到檔案系統;跨 session 的長期記憶存在本地、由你掌控,套用時會自動去除重複事實。2.0 是與 v1 完全不共用程式碼的重寫版本,v1 留在 1.x 分支;2026 年 2 月 28 日,2.0 發佈當天登上 GitHub Trending 第一名。
接收任務
主代理拆解
子代理平行執行
沙盒跑工具
摘要收斂
產出成品
寫入記憶
Use it as-is. Or tear it apart and make it yours.
make setup 生成設定,make dev 啟動服務。
DeerFlow 是一個有後端、前端、沙盒的服務,需要 clone 原始碼並啟動。設定透過互動精靈完成:make setup 詢問模型供應商與沙盒模式,自動生成最小可用的 .env 與 config.yaml。執行三行指令後,在瀏覽器開啟 http://localhost:2026 即可使用。
# 1. 取得原始碼(2.0 在預設分支,v1 在 1.x)
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# 2. 互動精靈:選模型、選沙盒,自動生成 .env 與 config.yaml
make setup
# 3. 本機開發模式(熱重載),完成後開 http://localhost:2026
make dev用 Docker 跑,或直接上生產
不想在本機裝一堆相依,改走容器化開發;要多服務一起部署,則用生產模式。三種模式共用同一份 make setup 產生的設定。
# 容器化開發模式
make docker-start
# 多服務生產部署
make up八個系統構成完整代理能力。
DeerFlow 把代理能力拆成八個各司其職的子系統:技能、子代理、沙盒、記憶、上下文、模型、搜尋、頻道。每個子系統負責一類工作,組合後形成一條可自動拆任務、隔離執行、收斂輸出的流程。
Skills · 01
內建技能
研究 / 產出
開箱即有:深度研究、報告生成、簡報製作、網頁生成、圖片與影片生成。技能漸進式載入,用到才進上下文。
Skills · 02
.skill 封裝
自訂技能包
把你的工作流程封裝成 .skill 壓縮包,附選用 metadata,丟進去就能擴充代理能力,不必改核心。
Skills · 03
claude-to-deerflow
Claude Code 接橋
內建的 claude-to-deerflow 技能,把 Claude Code 的能力接進 DeerFlow 流程,Anthropic 模型走 OAuth。
Agents · 04
子代理拆派
平行分工
主代理把任務拆成可平行的子任務,生出多個有獨立上下文、被限縮工具的子代理,結果再收斂成連貫輸出。
Sandbox · 05
AioSandbox
Docker 隔離
AioSandboxProvider 把工具執行關進獨立 Docker 容器,bash、檔案操作、抓網頁都在隔離環境裡跑。
Sandbox · 06
LocalSandbox
本機沙盒
LocalSandboxProvider 用每個 thread 一個主機目錄,輕量但預設關閉 bash,持久保留 uploads/workspace/outputs。
Memory · 07
長期記憶
跨 session
跨 session 的持久記憶,存在本地、由你掌控;套用時自動去除重複事實,不會越記越髒。
Context · 08
上下文管理
防爆炸
完成的子任務積極摘要、中間結果卸載到檔案系統,並為推理模型做嚴格的 tool-call 復原。
Models · 09
模型供應商
不綁一家
OpenAI、Anthropic Claude、Doubao、DeepSeek、Kimi、Gemini、本地 vLLM,以及任何 OpenAI 相容 API。
Search · 10
網路搜尋
查 / 抓
內建 Tavily 與 InfoQuest(BytePlus 智慧搜尋與爬取)兩種搜尋供應商,搭配 web fetch 與檔案操作工具。
Channels · 11
IM 頻道
六個入口
Telegram、Slack、Feishu/Lark、WeChat、WeCom、DingTalk 自動接入,指令 /new /status /models /memory。
Observe · 12
追蹤觀測
看得見每一步
LangSmith 與 Langfuse 雙支援,可同時開啟,完整追蹤 LLM、代理與工具呼叫的每一步。
該選哪種沙盒?一張表決定
| 你的情境 | 建議沙盒 | 關鍵取捨 |
|---|---|---|
| 要跑 bash、執行不可信程式碼 | AioSandboxProvider | 獨立 Docker 容器,完整隔離,需 Docker |
| 本機快速試、不想起容器 | LocalSandboxProvider | 每 thread 一個主機目錄,bash 預設關閉 |
| 需要保留產出、上傳檔案 | 兩者皆可 | uploads/workspace/outputs 持久保留 |
| 多服務、面向生產 | make up + AioSandboxProvider,沙盒模式在 config.yaml 設定 |
六條出自官方文件的配置重點。
以下六條配置要點全部出自官方 README 與目錄結構。涵蓋初始設定、沙盒選擇、模型混搭、技能擴充、觀測接入與 IM 頻道,對應 DeerFlow 最常見的部署誤區。
先讓 make setup 幫你生設定
別急著手刻 .env 與 config.yaml。make setup 是互動精靈,問完模型與沙盒就生出最小可用設定,跑得起來再回去調細節,比一開始就讀完整份 schema 快得多。
來源 · 官方 README · Quick Start
本機沙盒的 bash 預設是關的
LocalSandboxProvider 預設停用 bash 執行以確保安全。若代理無法執行指令,請確認沙盒模式是否正確。需要 bash 執行環境,請改用 AioSandboxProvider 的 Docker 隔離模式。
來源 · 官方 README · Sandbox
不綁一家模型,base_url 可覆寫
除了 OpenAI、Claude、Doubao、DeepSeek、Kimi、Gemini,只要是 OpenAI 相容 API,覆寫 base_url 就能接。要省成本可混搭:主代理用強模型,子代理掛便宜或本地 vLLM。
來源 · 官方 README · LLM Providers
用 .skill 壓縮包擴充,不要改核心
要加自己的能力,封裝成 .skill 壓縮包(附選用 metadata)放進去即可,核心程式碼不用動。技能漸進式載入,所以多放幾個不會一次撐爆上下文。
來源 · 官方 README · Skills & Tools
長任務先開 LangSmith / Langfuse
子代理數量增加後,用肉眼追蹤錯誤效率低。LangSmith 與 Langfuse 可同時啟用,完整記錄每個子代理步驟、每次工具呼叫與 token 用量,是長程任務除錯的主要手段。
來源 · 官方 README · Observability
不想開瀏覽器?走 IM 頻道
不必每次都開 localhost:2026。接上 Telegram/Slack/Feishu/WeChat/WeCom/DingTalk 後,直接在群裡用 /new、/status、/models、/memory 操作同一個代理。
來源 · 官方 README · IM Channels
一個混合任務的拆派與收斂過程。
以下是一段依官方架構描述改寫的情境:你在 http://localhost:2026 丟一個含研究、運算、產出的混合任務給 DeerFlow。看主代理怎麼拆派子代理、子代理怎麼在沙盒裡跑工具、結果怎麼被摘要收斂成一份報告,並寫進跨 session 記憶。畫面為示意,實際輸出依你的模型與設定而定。
$ You ›
幫我研究 2025–2026 開源多代理框架的現況,
把前五名整理成一份比較表,並附一段可跑的 Python
範例驗證其中一個的安裝步驟,最後輸出成報告。
claude: Lead Agent ›
這是一個研究 + 驗證 + 產出的混合任務。
我會拆成三個隔離子代理平行跑,再由我收斂:
hl: · sub-1 網路研究(Tavily 搜尋 + web fetch)
hl: · sub-2 程式驗證(AioSandbox · Docker 隔離)
hl: · sub-3 報告生成(report skill)
claude: sub-1(研究)›
查 5 組關鍵字,讀 18 個來源,抽出框架清單、
star 數、定位與授權,落到 workspace/research.md。
claude: sub-2(驗證)›
在 Docker 沙盒裡 git clone 其中一個框架、建立
venv、跑最小範例。bash 在隔離容器內執行。
ok: exit 0 · 安裝步驟可重現,輸出已截錄
claude: sub-3(產出)›
套 report skill,合成比較表 + 可跑範例 + 結論。
ok: 寫出 outputs/multi-agent-frameworks-2026.md
claude: Lead Agent ›
完成。三個子代理各自隔離跑完,我已收斂:
ok: · outputs/multi-agent-frameworks-2026.md(報告)
ok: · 前五名比較表 + 一段已驗證可跑的安裝範例
輸入一句混合任務描述,三個隔離子代理平行執行後,主代理收斂輸出一份成品。
這段流程為什麼值得拆解
核心設計在於主代理把任務拆成三個可平行、各自隔離的子代理:研究子代理無法存取 bash,驗證子代理在 Docker 沙盒內執行,彼此上下文不互相污染。子代理完成後被摘要回收,原始內容卸載到檔案系統,這是長程任務控制上下文規模的主要機制。
最後成品落到 outputs/、結論寫進跨 session 記憶、全程可在 LangSmith 重播。這正是 harness 的意義:你維護的是任務描述與設定,不是一條手刻的 agent 流水線。
部署前需確認的八項限制與前提。
五種擴充方式與延伸閱讀。
DeerFlow 的擴充點設計為開放式:加能力靠 .skill 技能包,換模型靠 config.yaml,接外部工具靠 MCP,核心程式碼大多不需修改。
進階玩法地圖
**1. 封裝你的 .skill。**把團隊重複的工作流程做成 .skill 壓縮包(附 metadata),丟進去就成為代理的新能力。漸進式載入,放多個也不會撐爆上下文。
**2. 接 MCP 外部工具。**內建 MCP server 整合(支援 OAuth token 流程),把你既有的 MCP 工具接進子代理的工具集,不必為每個整合改核心。
**3. 用 claude-to-deerflow 接 Claude Code。**內建這個技能,把 Claude Code 的能力接進 DeerFlow 流程,Anthropic 模型走 Claude Code OAuth,不必另開一條整合。
**4. 把它變成團隊入口。**接上 Telegram/Slack/Feishu/WeChat/WeCom/DingTalk,讓整個團隊在 IM 裡用同一個代理,用 /models、/memory 即時切換與檢視。
**5. 混搭模型省成本。**在 config.yaml 讓主代理用強模型、子代理掛便宜或本地 vLLM;任何 OpenAI 相容 API 覆寫 base_url 就能接。
最該讀的三份延伸閱讀
① README.md:完整能力清單、安裝模式、設定欄位與架構說明。 ② docs/:官方文件目錄,沙盒、頻道、觀測等細節均在此處。 ③ skills/public:公開技能原始碼,撰寫自訂 .skill 前建議先讀此目錄作為範本。
Use it as-is. Or tear it apart and make it yours.