Technical Guide
05. 项目结构:从目录看懂 DeerFlow
按官方仓库当前目录看 DeerFlow:前端、后端、Gateway、harness、tools、skills、MCP、sandbox、runtime 各在哪里。
先别细读源码
看源码前,先看目录。
目录能告诉你这个项目把问题怎么拆。DeerFlow 的目录里已经能看到它不是一个简单 demo,而是把 Agent 工程拆成了多层。
仓库根目录
从根目录看,重点先关注:
README.md
Makefile
config.example.yaml
backend/
web/
docker/
scripts/
README.md:项目定位和使用入口;Makefile:常用开发命令;config.example.yaml:配置样例;backend/:后端和 Agent harness;web/:前端界面;docker/:容器化相关文件;scripts/:辅助脚本。
Gateway 路由
后端入口相关目录:
backend/app/gateway/routers/
当前能看到类似这些路由:
threads.py
runs.py
thread_runs.py
models.py
skills.py
mcp.py
memory.py
uploads.py
artifacts.py
这说明 API 层已经把 Agent 系统拆成很多资源,而不是只有一个聊天接口。
Harness 主体
最值得读的是:
backend/packages/harness/deerflow/
里面有:
agents/
community/
config/
guardrails/
mcp/
models/
persistence/
reflection/
runtime/
sandbox/
skills/
subagents/
tools/
tracing/
uploads/
utils/
这就是后面教程的主要地图。
你应该先看哪些目录
如果你想看执行链路:
runtime/
agents/
tools/
sandbox/
如果你想看二次开发:
tools/
skills/
subagents/
mcp/
如果你想看排错:
tracing/
runtime/events/
runtime/runs/
如果你想看文件产物:
uploads/
sandbox/
artifacts 相关路由
不建议的读法
不要从 utils/ 开始。
也不要随机打开某个 Agent 文件就开始读。没有执行链路时,很容易把每个文件都看成重点。
更好的顺序是:
Gateway 路由
|
runtime
|
Agent
|
tools / skills / subagents
|
sandbox / mcp / tracing
这一篇你要记住
DeerFlow 的目录已经把学习路线写出来了。
你不是要一次读完所有源码,而是要知道:遇到模型、工具、技能、子 Agent、沙盒、外部服务、追踪这些问题时,应该先去哪个目录。
下一篇追一次任务的完整执行链路。