🦌 ByteDance Open Source · Feb 28, 2026 Launch

DeerFlow
深度完全教程

Deep Exploration and Efficient Research Flow —— 下一代开源 SuperAgent Harness,从架构到实战的全面指南。

40K+
⭐ GitHub Stars
#1
🔥 GitHub Trending
MIT
📄 开源许可证
v2
🚀 最新版本
CHAPTER 01

项目概述

What is DeerFlow?

DeerFlow(Deep Exploration and Efficient Research Flow)是 ByteDance 于 2026 年 2 月 28 日正式开源的 SuperAgent Harness 框架。它不是一个简单的 Agent 封装,而是一整套支持深度研究、代码执行、多 Sub-Agent 协作、持久化记忆和 IM 集成的高阶智能体基础设施,项目一经发布即登上 GitHub Trending 第一名,并在短时间内突破 40,000 星。

💡

SuperAgent Harness = 在 LLM Agent 之上提供"运行时容器"——包含执行环境、上下文管理、工具调用、记忆系统和消息频道等全套基础设施,让开发者专注于业务逻辑而非底层架构。

名称解读

🔍Deep Exploration

支持多轮、多步骤的深度研究任务,能够自主分解复杂问题、调度多个专项 Sub-Agent 并行工作。

Efficient Research

通过 Context 压缩、沙箱缓存、并行调度等手段,在不损失质量的前提下大幅提升研究效率。

🌊Flow

以数据流和事件驱动的架构风格,将任务从输入到输出的全生命周期设计为清晰、可观测的 Flow。

v1 vs v2 演进对比

维度 v1 v2
架构模型单 Agent + ToolsSuperAgent Harness + Sub-Agents
执行环境无沙箱,直接执行Docker 隔离沙箱 + 多模式切换
记忆系统单轮 Conversation Buffer多层持久化记忆(Session/User/Global)
Skills 系统内置固定工具集动态 Skills 注册 + 热加载
IM 集成REST API onlyTelegram / Slack / Feishu 原生支持
模型支持GPT-4o / ClaudeDoubao / DeepSeek / Kimi / GPT-4o / Claude
Python SDK完整 SSE 流式 SDK
配置系统.env 文件config.yaml + .env 分层配置

核心能力全景

🔬深度研究

自动分解研究任务,调用搜索、爬取、代码分析等多种工具,生成结构化报告。

💻代码执行

在 Docker 隔离沙箱中安全执行 Python/Shell 代码,支持文件读写和包安装。

🤖Sub-Agents

动态生成专项子 Agent,每个子 Agent 拥有独立上下文和技能集,并行处理任务。

🧠持久化记忆

跨 Session 记忆用户偏好、项目背景,支持用户主动管理和自动更新。

💬IM 集成

一键接入 Telegram、Slack、Feishu,支持群聊、私聊和文件发送。

🔌Skills 生态

开放的 Skills 注册系统,社区贡献和自定义扩展同等一流体验。

🏆

DeerFlow 是目前开源社区中 功能最完整的 SuperAgent 框架之一,尤其在"深度研究 + 代码执行 + IM 集成"三者结合上处于领先地位。

CHAPTER 02

架构设计:计算机隐喻模型

The Computer Metaphor — Understanding DeerFlow's Architecture

DeerFlow 的架构设计借用了一个精妙的计算机隐喻:整个 Harness 就像一台虚拟计算机,每个组件都对应计算机的一个硬件/软件概念,这使得架构极易理解和记忆。

▸ 顶层:用户接口层
💬
Telegram
IM 频道
🎯
Slack
IM 频道
🪶
Feishu
IM 频道
🌐
REST API
HTTP / SSE
🐍
Python SDK
客户端库
Lead Agent — 调度核心
🧠
Lead Agent (Supervisor)
= CPU — 主控智能体,任务规划与调度
💾
Context Window
= RAM — 工作记忆,上下文压缩管理
Sub-Agents — 并行工作单元
🔍
Research Agent
= Core — 搜索研究
💻
Code Agent
= Core — 代码执行
📊
Data Agent
= Core — 数据分析
✍️
Write Agent
= Core — 内容生成
Skills & Sandbox — 外设层
🔌
Skills Registry
= Peripherals — 技能工具
🐳
Docker Sandbox
= GPU — 隔离执行单元
🗄️
Memory Store
= HDD — 持久化存储
🌐
LLM Provider
= Network — 外部算力

计算机隐喻对照表

DeerFlow 组件计算机类比职责说明技术实现
Docker 沙箱 CPU 核心计算单元,隔离代码执行,防止污染宿主环境 Docker container, resource limits
Context Window RAM 工作记忆,存储当前任务状态,超出时自动压缩 Token counter + summarization
Sub-Agents CPU Cores 并行处理不同任务,各自拥有独立上下文 Async task queue + isolation
Skills Peripherals 可插拔外设,搜索/浏览器/文件/API 等能力扩展 Plugin registry + hot-reload
Memory Store HDD/SSD 持久化存储,跨会话保留用户偏好和项目上下文 Vector DB + Key-Value Store
LLM Provider Network Card 外部计算资源,通过统一接口调用不同模型 OpenAI-compatible API adapter
CHAPTER 03

核心组件

Lead Agent, State Machine & Request Flow

Lead Agent:主控智能体

Lead Agent 是 DeerFlow 的"大脑",扮演 Supervisor 角色。它不直接执行任务,而是负责:

  • 任务分解:将用户请求拆分为可并行的子任务
  • 资源调度:为每个子任务分配合适的 Sub-Agent
  • 进度追踪:监控所有子 Agent 的执行状态
  • 结果聚合:将多个子 Agent 的输出整合为最终响应
  • 错误恢复:检测失败并重试或降级处理
⚙️

Lead Agent 采用 ReAct(Reasoning + Acting) 范式,每一步都明确区分"思考"和"行动"阶段,确保决策可追溯、可解释。

状态机:任务生命周期

每个任务在 DeerFlow 中都经历一个明确的状态机流转:

💤
Idle
等待输入
🗺️
Planning
任务分解
Executing
并行执行
🔗
Aggregating
结果聚合
📤
Delivering
输出响应
状态描述可能转换
Idle等待用户输入或事件触发→ Planning
PlanningLead Agent 分析请求、制定执行计划→ Executing | → Idle(无效请求)
ExecutingSub-Agents 并行执行子任务→ Aggregating | → Planning(重规划)
Aggregating汇总所有子任务结果,生成最终答案→ Delivering
Delivering通过 SSE / IM / API 流式输出结果→ Idle

请求流:从输入到输出

以下是一个完整请求从用户输入到最终响应的详细时序:

1
用户输入接收

通过 Telegram/API/SDK 发送请求,Gateway 层验证身份并创建 Session,分配唯一 task_id

2
记忆注入

Memory Store 检索该用户的历史偏好、项目背景和最近会话摘要,注入到 Lead Agent 的 Context 中。

3
Planning 阶段

Lead Agent 调用 LLM 进行任务分析,输出结构化执行计划:任务列表、所需 Skills、目标 Sub-Agent 类型。

4
Sub-Agent 生成与调度

根据计划动态生成所需的 Sub-Agents,每个 Sub-Agent 获得独立的 Context、技能集和沙箱实例,异步并行执行。

5
工具调用与沙箱执行

Sub-Agents 调用注册的 Skills(搜索/代码/文件等),代码执行在 Docker 沙箱中进行,结果流式返回给 Sub-Agent。

6
结果聚合

Lead Agent 收集所有 Sub-Agent 的输出,进行交叉验证、去重和整合,生成高质量最终答案。

7
记忆更新与输出

将本次会话的关键信息写入 Memory Store,同时通过 SSE 流式或消息推送方式将结果发送给用户。

CHAPTER 04

快速入门

Get DeerFlow Running in Minutes

环境要求

🐍
Python
≥ 3.12
推荐使用 pyenv 管理
Node.js
≥ 22.0
前端界面构建必需
🐳
Docker
≥ 24.0
沙箱执行环境
📦
uv
latest
Python 包管理器

部署路径选择

🔧 本地开发
开发调试

适合开发者调试和二次开发,可以快速迭代代码改动。

  • ✅ 热重载支持
  • ✅ 调试友好
  • ⚠️ 需手动配置环境

方式一:Docker 部署(推荐)

1
克隆仓库
bash
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
2
配置环境变量
bash
cp .env.example .env
# 编辑 .env,填入 LLM API Key
vi .env
3
启动所有服务
bash
docker compose up -d
# 查看服务状态
docker compose ps
4
访问服务

服务启动后,访问以下地址:

服务地址说明
Web UIhttp://localhost:3000前端交互界面
API Serverhttp://localhost:8000REST API / SSE
API Docshttp://localhost:8000/docsSwagger UI

方式二:本地开发部署

bash
# 1. 安装 Python 依赖(使用 uv)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# 2. 安装前端依赖
cd web && npm install && cd ..

# 3. 启动后端服务
uv run python -m deerflow.server

# 4. 启动前端开发服务器(新终端)
cd web && npm run dev

# 5. 启动 Docker 沙箱(代码执行需要)
docker compose up sandbox -d
⚠️

本地开发模式下,代码执行沙箱仍然需要 Docker。如果不启动 Docker,代码执行功能将降级为直接本地执行(存在安全风险)。

CHAPTER 05

配置系统

config.yaml + .env — Layered Configuration

DeerFlow 采用分层配置策略:config.yaml 管理系统行为配置,.env 管理敏感凭证(API Keys),两者分开维护,便于版本控制和团队协作。

config.yaml 完整注释

yaml
# DeerFlow 主配置文件
# 位置:项目根目录 config.yaml

# ── LLM 配置 ──────────────────────────────────────────
llm:
  # 主模型:负责 Lead Agent 的规划和决策(推荐使用较强模型)
  default_model: "deepseek-chat"
  
  # 研究模型:Sub-Agent 执行搜索和分析(可使用较轻量模型)
  research_model: "deepseek-chat"
  
  # 代码模型:代码生成和审查
  code_model: "deepseek-coder"
  
  # 最大 Token 限制
  max_tokens: 8192
  
  # 温度参数(0.0-1.0,研究任务推荐 0.3-0.7)
  temperature: 0.5
  
  # 推理模式(仅支持推理模型)
  enable_reasoning: false

# ── Sub-Agent 配置 ─────────────────────────────────────
agents:
  # 最大并行 Sub-Agent 数量
  max_concurrent: 5
  
  # 单个 Sub-Agent 最大执行时长(秒)
  timeout: 300
  
  # Context 压缩阈值(token 数,超过后自动摘要)
  context_compress_threshold: 6000
  
  # 最大递归深度(防止 Agent 无限循环)
  max_recursion_depth: 10

# ── 沙箱配置 ────────────────────────────────────────────
sandbox:
  # 执行模式:docker | local | e2b
  mode: "docker"
  
  # Docker 镜像
  image: "deerflow/sandbox:latest"
  
  # CPU 限制(核心数)
  cpu_limit: 2.0
  
  # 内存限制
  memory_limit: "2g"
  
  # 网络访问(代码执行时是否允许网络)
  network_access: false
  
  # 文件挂载(宿主机路径:容器路径)
  volumes:
    - "./workspace:/workspace"

# ── 记忆系统配置 ─────────────────────────────────────────
memory:
  # 启用持久化记忆
  enabled: true
  
  # 存储后端:sqlite | postgres | redis
  backend: "sqlite"
  
  # 记忆自动更新触发条件(每 N 次会话)
  auto_update_interval: 5
  
  # 最大存储条目数(per user)
  max_entries_per_user: 1000

# ── Skills 配置 ──────────────────────────────────────────
skills:
  # 技能目录(相对路径)
  skills_dir: "./skills"
  
  # 自动发现并加载技能
  auto_discover: true
  
  # 默认启用的内置技能
  builtin_enabled:
    - web_search
    - web_browse
    - code_execute
    - file_read
    - file_write

# ── 服务配置 ─────────────────────────────────────────────
server:
  host: "0.0.0.0"
  port: 8000
  
  # CORS 配置
  cors_origins:
    - "http://localhost:3000"
    - "https://your-domain.com"
  
  # 请求速率限制(每分钟)
  rate_limit: 60
  
  # 最大并发任务数
  max_concurrent_tasks: 20

# ── 日志配置 ─────────────────────────────────────────────
logging:
  level: "INFO"  # DEBUG | INFO | WARNING | ERROR
  format: "json"  # json | text
  file: "./logs/deerflow.log"

模型矩阵

模型提供商推荐场景Context特点
Doubao Pro ByteDance 默认推荐,低成本高性能 128K 本土
DeepSeek V3 DeepSeek 深度推理,代码生成 64K 开源
Kimi k1.5 Moonshot 长文档处理,研究任务 200K 长上下文
GPT-4o OpenAI 多模态,通用任务 128K 多模态
Claude Sonnet Anthropic 写作,代码审查 200K 写作强

.env 环境变量参考

bash
# ── LLM API Keys ─────────────────────────────────────
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
DEEPSEEK_API_KEY=sk-...
MOONSHOT_API_KEY=...
ARK_API_KEY=...           # ByteDance Doubao

# ── 自定义 API Base(代理/本地部署)
OPENAI_BASE_URL=https://api.openai.com/v1

# ── 搜索工具 API Keys ─────────────────────────────────
TAVILY_API_KEY=tvly-...
BRAVE_SEARCH_API_KEY=BSA...
SERPAPI_API_KEY=...

# ── IM 集成 ────────────────────────────────────────────
TELEGRAM_BOT_TOKEN=123456789:ABC...
SLACK_BOT_TOKEN=xoxb-...
FEISHU_APP_ID=cli_...
FEISHU_APP_SECRET=...

# ── 数据库(可选,默认使用 SQLite)
DATABASE_URL=postgresql://user:pass@localhost/deerflow

# ── 安全配置 ──────────────────────────────────────────
SECRET_KEY=your-secret-key-here
API_KEY=deerflow-api-key-for-clients
CHAPTER 06

Skills 技能系统

The Plugin Ecosystem — Extending DeerFlow's Capabilities

Skills 是 DeerFlow 的能力扩展单元,类比计算机的外设驱动程序。每个 Skill 封装一个具体的工具能力(搜索、浏览器、文件操作、API 调用等),Agent 可以按需调用。

Skills 目录结构

skills/ — 技能目录
skills/
builtin/ # 内置技能(随框架自带)
web_search.py # Tavily/Brave 网页搜索
web_browse.py # 浏览器渲染 + 内容提取
code_execute.py # 代码执行(沙箱)
file_read.py # 文件读取(多格式)
file_write.py # 文件写入
image_gen.py # 图像生成(DALL-E/SD)
send_message.py # IM 消息发送
community/ # 社区贡献技能
notion_sync.py
github_api.py
arxiv_search.py
custom/ # 用户自定义技能(热加载)
my_skill.py
__init__.py
registry.py # 技能注册中心

Skill 生命周期

📝
定义
编写 Skill 类
📋
注册
写入 Registry
🔍
发现
Agent 查询可用技能
调用
执行 + 结果返回
🔄
热更新
无需重启

自定义 Skill 文件结构

python
from deerflow.skills import BaseSkill, SkillResult
from deerflow.skills.registry import register_skill
from pydantic import BaseModel, Field

class MySkillInput(BaseModel):
    """技能输入参数定义(使用 Pydantic 进行类型校验)"""
    query: str = Field(..., description="搜索查询词")
    max_results: int = Field(default=5, description="最大结果数")

@register_skill(
    name="my_custom_skill",          # 技能唯一标识
    description="我的自定义搜索技能,用于...",  # Agent 用来决策是否调用
    category="search",               # 分类:search/code/file/api/custom
    version="1.0.0",
    author="your-name",
)
class MyCustomSkill(BaseSkill):
    """自定义技能示例"""
    
    # 声明输入 Schema
    InputSchema = MySkillInput
    
    async def execute(self, input: MySkillInput) -> SkillResult:
        """
        技能核心执行逻辑。
        - 支持 async/await
        - 支持流式输出(yield)
        - 可访问 self.context 获取当前 Agent 上下文
        """
        try:
            # 你的实现逻辑
            results = await self._do_search(input.query, input.max_results)
            
            return SkillResult(
                success=True,
                data=results,
                metadata={
                    "source": "my_custom_skill",
                    "query": input.query,
                    "count": len(results),
                }
            )
        except Exception as e:
            return SkillResult(success=False, error=str(e))
    
    async def _do_search(self, query: str, max_results: int) -> list:
        # 实现具体逻辑
        return []
CHAPTER 07

Sub-Agents

Parallel Intelligence — How Sub-Agents Work

Sub-Agents 是 DeerFlow 的并行执行单元,每个 Sub-Agent 是一个轻量级、独立的 Agent 实例,由 Lead Agent 在运行时动态生成,专门负责一个特定子任务。

Sub-Agent 工作原理

🎯专项化

每个 Sub-Agent 在创建时被赋予明确的单一职责(研究/代码/写作),避免角色混乱。

🔒上下文隔离

每个 Sub-Agent 拥有独立的 Context Window,避免不同任务的上下文互相污染。

并行执行

多个 Sub-Agent 异步并行运行,显著缩短复杂任务的完成时间。

🌡️生命周期受控

Sub-Agent 完成任务后自动销毁,释放资源,由 Lead Agent 统一管理生命周期。

隔离属性

✅ 已隔离

  • Context Window(独立)
  • 工具调用历史
  • 中间推理过程
  • 文件系统访问(可选)
  • LLM 温度/模型配置
  • 错误状态

🔗 共享(通过 Lead)

  • 用户持久化记忆
  • 任务全局目标
  • 已注册的 Skills
  • Docker 沙箱实例
  • 会话配置
  • 最终结果聚合池

Context 压缩管道

当 Sub-Agent 的 Context 超过阈值(默认 6000 tokens)时,触发压缩流程:

📊
检测超出
Token 计数
🔍
重要性评分
筛选关键信息
📝
摘要生成
LLM 压缩旧历史
💾
上下文重建
摘要 + 最近 N 轮
🧩

Context 压缩采用"保留最近 + 摘要远端"策略:始终保留最近的 N 轮对话(保证连贯性),对更早的历史生成摘要(节省 Token 同时保留关键信息)。

CHAPTER 08

沙箱执行环境

Isolated Code Execution — Safety First

DeerFlow 的沙箱执行环境是代码安全执行的基石。所有由 Agent 生成的代码都在完全隔离的环境中运行,防止恶意代码污染宿主系统。

三种执行模式对比

🐳 Docker 模式
推荐 · 生产

完整 Linux 容器隔离,支持所有操作系统调用,资源限制精确。
延迟:~200ms 启动

💻 本地模式
开发 · 调试

直接在宿主机虚拟环境执行,速度最快但隔离性最弱。
延迟:~10ms 启动

☁️ E2B 模式
云端 · 无服务器

使用 E2B 云沙箱服务,无需本地 Docker,适合 Serverless 部署。
延迟:~500ms 启动

沙箱文件系统结构

Docker sandbox — /workspace
root@sandbox:~# tree /workspace
/workspace/
input/ # 宿主机挂载(只读),Agent 提供的输入文件
output/ # 宿主机挂载(读写),代码输出结果
tmp/ # 临时文件(容器内,任务完成后清理)
packages/ # pip 安装的包缓存(跨任务共享)
main.py # Agent 生成的主执行文件
root@sandbox:~# (隔离的 Python 3.12 环境,预装 pandas/numpy/requests)

安全特性

🔐网络隔离

代码执行容器默认无网络访问,防止数据外泄和恶意外连。需要时可通过配置开启白名单。

⏱️超时控制

每次代码执行有硬性超时限制(默认 60 秒),超时后容器强制终止,防止死循环。

📦资源限制

CPU 和内存配额严格限制(默认 2 core / 2GB),防止资源耗尽攻击。

🧹自动清理

任务完成后容器自动销毁,临时文件全部清除,无状态残留。

CHAPTER 09

持久化记忆系统

Cross-Session Memory — Making DeerFlow Remember You

DeerFlow 的持久化记忆系统让 Agent 能够跨会话记住用户偏好、项目背景和历史结论,避免每次都从零开始。这是区别于普通 Chatbot 的关键能力之一。

记忆层次架构

🔵 Session Memory(会话记忆)
当前会话的完整上下文,包含所有消息、工具调用和中间结果。会话结束后自动摘要,摘要保存到 User Memory。
临时
🟢 User Memory(用户记忆)
跨会话的用户专属信息:偏好设置、工作背景、常用项目、沟通风格。自动更新,也可用户手动编辑。
持久
🟣 Project Memory(项目记忆)
特定项目的积累知识:代码库结构、技术栈、关键决策记录、已发现的 Bug。多用户可共享同一项目记忆。
共享
🟠 Global Memory(全局记忆)
系统级知识库:行业术语、公司规范、常用文档。由管理员维护,所有用户共享。
系统

记忆更新机制

1
自动摘要触发

每隔 N 次会话(默认 5 次),系统自动将最近会话提炼成结构化的 User Memory 条目。

2
重要信息识别

LLM 自动识别对话中的"持久价值信息":用户明确的偏好、重复出现的需求、关键背景知识。

3
冲突解决

新记忆与旧记忆冲突时,根据时间戳优先保留最新信息,并记录变更历史。

用户控制功能

👀查看记忆

通过 /memory list 命令查看当前存储的所有记忆条目,支持按类别筛选。

✏️编辑记忆

通过 /memory edit <id> 手动修改或补充记忆条目,实现精准控制。

🗑️删除记忆

通过 /memory delete <id> 删除特定条目,/memory clear 清空全部。

🔕关闭记忆

在隐私场景下,通过配置 memory.enabled: false 完全关闭持久化记忆。

CHAPTER 10

IM 频道集成

Telegram · Slack · Feishu — Meet Users Where They Are

DeerFlow 可以直接接入主流 IM 平台,让用户在熟悉的聊天界面中使用 AI Agent 能力,无需额外学习新的工具。

支持的频道

平台状态支持特性最佳场景
🤖 Telegram 稳定 私聊/群聊、文件发送、按钮交互、Markdown 渲染 个人使用、小团队
💼 Slack 稳定 频道消息、DM、Thread、富文本、文件分享 企业团队协作
🪶 Feishu (飞书) Beta 机器人消息、多维表格、文档同步、中文优化 字节系企业用户
💬 Discord 计划中 - 开发者社区

常用 IM 命令

markdown
# 任务命令
/research <topic>    - 启动深度研究任务
/code <description> - 生成并执行代码
/analyze <file>     - 分析上传的文件

# 记忆管理
/memory list        - 查看我的记忆
/memory clear       - 清空记忆
/memory edit <id>  - 编辑记忆条目

# 任务控制
/status             - 查看当前任务状态
/cancel             - 取消正在执行的任务
/history            - 查看历史任务

# 配置
/config             - 查看/修改个人配置
/model <name>       - 切换使用的 LLM 模型
/help               - 显示帮助信息

Telegram Bot 配置

yaml
# config.yaml — Telegram 集成配置
telegram:
  enabled: true
  
  # 允许使用的用户(user_id 列表,留空则允许所有)
  allowed_users:
    - 123456789
    - 987654321
  
  # 允许使用的群组(group_id 列表)
  allowed_groups:
    - -100123456789
  
  # 消息格式(markdown / html)
  parse_mode: "markdown"
  
  # 流式输出(实时更新消息)
  streaming: true
  
  # 文件大小限制(MB)
  max_file_size: 50
  
  # 每用户并发任务限制
  max_concurrent_tasks_per_user: 2

Per-User 个性化配置

每个用户可以通过 /config 命令自定义自己的 Agent 行为:

json
{
  "user_id": "123456789",
  "preferences": {
    "language": "zh-CN",
    "model": "deepseek-chat",
    "response_style": "concise",
    "enable_memory": true,
    "max_research_depth": 3,
    "code_sandbox": "docker",
    "timezone": "Asia/Shanghai",
    "notification": {
      "task_complete": true,
      "task_failed": true,
      "progress_updates": false
    }
  }
}
CHAPTER 11

Python SDK

Programmatic Access — Integrate DeerFlow Into Your Codebase

DeerFlow 提供完整的 Python SDK,支持同步/异步接口和 SSE 流式输出,可以轻松集成到任何 Python 项目中。

安装

bash
pip install deerflow-sdk
# 或使用 uv
uv add deerflow-sdk

基础用法

python
import asyncio
from deerflow import DeerFlowClient

async def main():
    # 初始化客户端
    client = DeerFlowClient(
        base_url="http://localhost:8000",
        api_key="your-api-key",        # 可选
        timeout=300,                   # 全局超时(秒)
    )
    
    # 同步调用(等待完整结果)
    result = await client.run(
        task="分析 Python 中 asyncio 的工作原理,并给出最佳实践",
        user_id="user_001",            # 用于记忆隔离
        model="deepseek-chat",         # 覆盖默认模型
    )
    print(result.content)
    
    # 流式调用(实时接收输出)
    async for event in client.stream(
        task="对 DeerFlow 项目进行深度技术分析",
        user_id="user_001",
    ):
        if event.type == "text_delta":
            print(event.data, end="", flush=True)
        elif event.type == "tool_call":
            print(f"\n[🔧 调用工具: {event.data['tool_name']}]")
        elif event.type == "done":
            print(f"\n\n✅ 任务完成,耗时: {event.data['duration']}s")
    
    await client.close()

asyncio.run(main())

配置与管理

python
from deerflow import DeerFlowClient
from deerflow.models import UserConfig, TaskConfig

client = DeerFlowClient(base_url="http://localhost:8000")

# 更新用户配置
await client.users.update_config(
    user_id="user_001",
    config=UserConfig(
        model="claude-sonnet-4-5",
        language="zh-CN",
        enable_memory=True,
        response_style="detailed",
    )
)

# 查看用户记忆
memories = await client.memory.list(user_id="user_001")
for mem in memories:
    print(f"[{mem.created_at}] {mem.content}")

# 删除特定记忆
await client.memory.delete(user_id="user_001", memory_id="mem_123")

# 获取任务状态
task = await client.tasks.get(task_id="task_abc123")
print(f"状态: {task.status}, 进度: {task.progress}%")

# 取消任务
await client.tasks.cancel(task_id="task_abc123")

文件操作

python
from pathlib import Path

# 上传文件作为任务输入
with open("data.csv", "rb") as f:
    result = await client.run(
        task="分析这份 CSV 数据,找出异常值并生成可视化图表",
        files=[("data.csv", f, "text/csv")],
        user_id="user_001",
    )

# 下载任务生成的输出文件
task_id = result.task_id
files = await client.tasks.list_files(task_id=task_id)
for file_info in files:
    content = await client.tasks.download_file(
        task_id=task_id,
        file_path=file_info.path
    )
    Path(file_info.name).write_bytes(content)
    print(f"✅ 已下载: {file_info.name} ({file_info.size} bytes)")

SSE 事件类型

事件类型触发时机data 内容
task_started任务开始{"task_id": "...", "timestamp": "..."}
planningLead Agent 制定计划{"plan": [...], "agent_count": 3}
agent_startedSub-Agent 启动{"agent_id": "...", "role": "research"}
tool_call工具调用开始{"tool_name": "web_search", "args": {...}}
tool_result工具调用完成{"tool_name": "...", "result": {...}}
text_delta文本流式输出{"content": "...", "agent_id": "..."}
agent_doneSub-Agent 完成{"agent_id": "...", "duration": 12.3}
done任务全部完成{"content": "...", "duration": 45.2, "tokens": 3200}
error发生错误{"code": "...", "message": "...", "retryable": true}

Claude Code 集成

DeerFlow SDK 支持与 Claude Code(Anthropic CLI)无缝集成,实现 AI 驱动的代码库分析和重构:

python
from deerflow import DeerFlowClient
from deerflow.integrations.claude_code import ClaudeCodeBridge

# 初始化 Claude Code 桥接
bridge = ClaudeCodeBridge(
    deerflow_client=DeerFlowClient(base_url="http://localhost:8000"),
    workspace_path="/path/to/your/project",
)

# 将整个代码库作为上下文进行深度分析
async for event in bridge.analyze_codebase(
    task="找出所有潜在的安全漏洞,并提供修复建议",
    include_patterns=["*.py", "*.js"],
    exclude_patterns=["node_modules/**", "*.pyc"],
):
    print(event.content, end="")

# 自动重构
result = await bridge.refactor(
    description="将所有同步数据库调用改为异步版本",
    files=["app/db.py", "app/models.py"],
    dry_run=True,  # 先预览,不实际写入
)
CHAPTER 12

与其他框架对比

DeerFlow vs AutoGPT vs Manus vs CrewAI vs OpenDevin

全面对比矩阵

维度DeerFlowAutoGPTManusCrewAIOpenDevin
开源 ✅ MIT ✅ MIT ❌ 闭源 ✅ MIT ✅ MIT
Sub-Agents 动态生成 单 Agent 固定角色 预定义角色 单 Agent
代码沙箱 Docker 原生 有限支持 完整 Docker 原生
持久化记忆 多层分级 基础 完整 有限
IM 集成 TG/Slack/飞书 部分
国内模型 Doubao/DS/Kimi 需适配 部分 需适配 需适配
Python SDK 完整 SSE 基础 完整 部分
深度研究 核心能力 支持 核心能力 支持
Stars (2026) 40K+ 170K+ N/A(闭源) 30K+ 45K+

DeerFlow vs Manus:深度对比

🦌 DeerFlow(开源)
MIT 开源,完全可自托管
支持 10+ LLM 提供商
动态 Sub-Agent 按需生成
Skills 系统开放可扩展
Telegram/Slack/飞书集成
成本完全可控
数据不离本地
⚠️需要自行运维
🤖 Manus(闭源 SaaS)
闭源,无法自托管
⚠️模型选择受限
Agent 能力成熟稳定
⚠️扩展性受平台限制
⚠️IM 集成有限
按调用付费,成本不可控
数据存储在第三方
零运维,开箱即用
CHAPTER 13

实战用例

Real-World Applications — DeerFlow in Action

以下四个用例展示了 DeerFlow 在真实业务场景中的落地方式,每个用例都包含完整的配置和调用示例。

🔬
深度行业研究报告
自动生成 20+ 页专业研究报告,包含数据图表和引用

场景:投资机构需要对 AI 芯片行业进行深度研究,生成包含市场规模、竞争格局、技术趋势的专业报告。

执行过程

  • Lead Agent 将任务分解为:市场数据收集、竞争分析、技术研究、报告撰写
  • 4 个 Research Sub-Agents 并行工作,分别负责各个子主题
  • Code Agent 生成 Python 代码,在沙箱中处理数据并生成可视化图表
  • Write Agent 整合所有研究结果,生成结构化 Markdown 报告
python
result = await client.run(
    task="""
    对 2024-2025 年 AI 芯片行业进行深度研究分析,要求:
    1. 市场规模与增长趋势(含数据图表)
    2. 主要玩家对比:NVIDIA / AMD / Intel / 华为昇腾
    3. 技术路线分析:GPU / NPU / 存内计算
    4. 中国市场特殊性与国产替代进展
    5. 未来 3 年预测与投资建议
    输出格式:专业研究报告(Markdown),20 页以上
    """,
    user_id="analyst_001",
    config={
        "max_research_depth": 5,
        "enable_code_execution": True,
        "output_format": "markdown",
    }
)
# 保存报告
with open("ai_chip_report.md", "w") as f:
    f.write(result.content)
⏱️

典型执行时间:3-8 分钟,生成 25-40 页专业报告,包含 10+ 个数据图表。

💻
代码分析与重构
分析整个代码库,生成改进方案并自动执行重构

场景:一个 Python Web 应用存在性能问题,需要找出瓶颈并实施优化。

执行过程

  • 上传代码文件,Code Agent 在沙箱中运行性能分析工具
  • Research Agent 搜索相关优化最佳实践
  • 生成具体的重构方案,附带对比测试结果
python
import zipfile, io

# 打包代码库
buf = io.BytesIO()
with zipfile.ZipFile(buf, 'w') as zf:
    for f in Path("./my_project").rglob("*.py"):
        zf.write(f)
buf.seek(0)

result = await client.run(
    task="""
    分析这个 FastAPI 项目的性能问题:
    1. 使用 py-spy / cProfile 进行性能分析
    2. 找出 Top 5 性能瓶颈
    3. 对每个瓶颈提供具体重构方案(含代码)
    4. 估算优化后的性能提升幅度
    """,
    files=[("project.zip", buf, "application/zip")],
    user_id="dev_001",
)
🎨
多媒体内容创作
从文章到配图、从脚本到配乐,一站式内容生产

场景:内容团队需要快速产出科技媒体文章,包含原创插图、SEO 优化和多平台发布。

执行过程

  • Research Agent 搜索最新资讯,确保内容时效性
  • Write Agent 生成符合媒体风格的文章
  • Code Agent 生成数据可视化图表
  • Image Skill 生成文章配图
  • Send Message Skill 自动发布到指定频道
python
result = await client.run(
    task="""
    创作一篇关于"大模型 Agent 框架"的科技媒体文章:
    - 字数:2000-3000 字
    - 风格:专业但易读,面向技术管理者
    - 包含:趋势分析、主流框架横评、选型建议
    - 配图:生成 3 张说明性插图
    - SEO:提供 10 个关键词和 Meta Description
    完成后自动发布到 Telegram 频道 @techinsights
    """,
    user_id="content_001",
    skills_override=["web_search", "image_gen", "send_message"],
)
🤖
Telegram Bot 自动化
构建 24/7 运行的智能 Telegram Bot,处理用户请求

场景:为团队搭建一个 Telegram Bot,成员可以通过聊天窗口完成研究、代码和数据分析任务。

部署步骤

1
创建 Telegram Bot

在 Telegram 中与 @BotFather 对话,使用 /newbot 创建,获取 Bot Token。

2
配置 DeerFlow

.env 中设置 TELEGRAM_BOT_TOKEN,在 config.yaml 中配置 telegram.allowed_users

3
启动服务

docker compose up -d 启动后,Bot 自动开始监听消息,无需额外配置。

bash
# 用户在 Telegram 中发送:
/research OpenAI o3 模型的技术架构和性能对比

# DeerFlow 自动:
# 1. 分解任务为 3 个并行研究子任务
# 2. 搜索最新技术资料
# 3. 在沙箱中处理数据
# 4. 流式返回结构化研究报告(含 Markdown 格式)
# 5. 将关键信息保存到该用户的记忆中
SUMMARY

When to Choose DeerFlow

经过 13 章的深入学习,我们可以清晰地描绘 DeerFlow 的价值主张:

🦌 DeerFlow 核心价值

DeerFlow 是专为深度研究 + 代码执行 + IM 集成三者组合优化的开源 SuperAgent Harness。它提供了媲美商业产品(Manus)的能力,同时保持了完全开源、完全可自托管的优势。

对于需要在自有基础设施上构建 AI Agent 工作流的团队,DeerFlow 是目前最成熟、最完整的选择之一。

✅ 适合使用 DeerFlow 的场景

🏢企业内部 AI 助手

需要数据不离本地、与内部 IM 系统集成、使用特定 LLM 提供商。

🔬研究机构

需要深度文献调研、数据分析自动化、报告生成的科研团队。

💻开发团队

需要代码审查、重构、文档生成、自动化测试等工程效率提升。

🚀AI 产品构建

基于 DeerFlow 快速构建垂直领域 AI 产品,利用其成熟的基础设施。

⚠️ 建议仔细评估的场景

  • 极简单的单轮对话:DeerFlow 的架构复杂度对于简单 QA 场景过重,直接调用 LLM API 更合适。
  • 完全无技术背景的用户:自托管需要一定的运维能力,如果完全没有技术资源,可先评估 SaaS 版本。
  • 实时性极高的场景:DeerFlow 的规划-执行模式有数秒的启动延迟,不适合需要毫秒级响应的场景。
🎯

一句话总结:如果你需要一个开源、可自托管、支持深度研究与代码执行、能接入 IM 的企业级 AI Agent 框架——DeerFlow 是首选。

GitHub 仓库 🌐 官方文档