Technical Guide

01. DeerFlow 是什么:先知道你在学什么

这篇不装环境,也不读源码。先讲清 DeerFlow 解决什么问题,和普通聊天机器人、RAG、工作流工具有什么区别。

这一篇先不装环境

先别急着 clone,也别急着看源码。

DeerFlow 这类项目,如果一开始只看 README,很容易把它理解成“又一个 Agent Demo”。

但它更像一个 Agent harness。

这里的 harness,可以理解成一套把 Agent 跑起来的工程外壳:模型、工具、子 Agent、记忆、沙盒、MCP、文件产物、流式输出,都被放到一条可执行链路里。

所以这篇只解决一个问题:

你到底在学什么?

DeerFlow 解决什么问题

普通聊天机器人主要解决“回答问题”。

DeerFlow 更偏“完成任务”。

一次任务大概会经历这些动作:

接收目标
理解上下文
决定下一步
调用工具
必要时拆给子 Agent
把过程和结果变成可追踪的产物

这也是为什么它不只是一个 prompt 示例。

如果一个项目只是在 system prompt 里写很多规则,它很快会卡在工具调用、状态管理、文件隔离、失败排查这些工程问题上。

DeerFlow 真正值得看的地方,是它把这些工程问题放到了一套框架里。

它不是单纯 RAG

RAG 的重点是:

检索资料 → 把资料交给模型 → 生成回答

DeerFlow 可以用检索,但它不止做检索。

它还要处理:

  • 工具怎么注册;
  • 工具什么时候调用;
  • 调用结果怎么回到 Agent;
  • 文件和执行环境怎么隔离;
  • 外部服务怎么通过 MCP 接进来;
  • 任务过程怎么追踪;
  • 最后怎么生成报告和文件产物。

所以不要只用“RAG 框架”理解它。

它也不是普通工作流工具

工作流工具通常更确定:

第一步做什么
第二步做什么
第三步做什么

每一步基本写死。

Agent 框架的问题不一样。它允许模型在运行时判断下一步:要不要搜索,要不要抓网页,要不要调用工具,要不要拆给子 Agent。

这会带来灵活性,也会带来麻烦。

比如:

  • 模型可能选错工具;
  • 工具可能返回脏数据;
  • 子 Agent 可能跑偏;
  • 任务链路可能变得不好排查;
  • 输出看起来完整,但证据不够。

所以 DeerFlow 里才会有 tools、guardrails、sandbox、tracing、memory 这些工程模块。

它适合拿来学什么

如果你只是想找一个能聊天的应用,DeerFlow 可能有点重。

但如果你想学 Agent 工程,它很适合。

因为它不是只展示一个漂亮 demo,而是把很多真实问题都摆出来了:

  • 模型 provider 怎么配置;
  • 搜索和抓取怎么接;
  • tools 怎么组织;
  • skills 怎么约束行为;
  • sub-agents 怎么拆任务;
  • sandbox 怎么隔离执行;
  • MCP 怎么接外部服务;
  • memory 怎么参与上下文;
  • tracing 怎么看清失败原因。

这也是后面 29 篇教程要拆开的东西。

适合谁学

比较适合这几类人:

  • 已经能跑通 AI 应用,但想往 Agent 工程走的人;
  • 想看懂 Tools、Skills、MCP 怎么落到代码里的人;
  • 想基于开源框架改一个研究型 Agent 的人;
  • 已经把 DeerFlow 跑起来,但不知道下一步该看哪个目录的人。

不太适合只想复制一个 prompt 的人。

因为 DeerFlow 的重点不是“写一句神奇提示词”,而是把任务执行过程工程化。

这一篇你只需要记住

DeerFlow 不是让模型多聊几句。

它更像一套 Agent 执行框架:把模型、工具、子 Agent、记忆、沙盒、MCP 和文件产物串成一条任务链路。

后面的教程会沿着这条链路往下拆。

下一篇开始,我们先把它跑起来。