推广 热搜: 采购方式  甲带  滤芯  气动隔膜泵  带式称重给煤机  减速机型号  无级变速机  链式给煤机  履带  减速机 

DeerFlow 2.0 技术分析报告

   日期:2026-04-16 00:25:58     来源:网络整理    作者:本站编辑    评论:0    
DeerFlow 2.0 技术分析报告

1. 项目概述

1.1 项目定位

DeerFlow (Deep Exploration and Efficient Research Flow) 是一个开源的 Super Agent Harness (超级智能体运行平台),基于 LangGraph 和 LangChain 构建。它通过编排子智能体记忆系统沙箱执行环境,实现复杂的 AI 任务自动化。

1.2 核心功能

  • • 多模型支持: 支持任意 OpenAI-compatible API 的 LLM,包括 GPT、Claude、Gemini、DeepSeek 等
  • • 子智能体编排: 支持并行/串行子任务委托,lead agent 可动态生成子代理
  • • 沙箱执行: 支持 Local/Docker/Kubernetes 三种沙箱隔离模式
  • • 长期记忆: 基于 LLM 的用户画像和上下文记忆系统
  • • 技能系统: 可扩展的 Markdown 技能定义,支持公共/自定义技能
  • • MCP 集成: Model Context Protocol 支持,扩展工具生态
  • • IM 渠道: 支持 Telegram、Slack、飞书的消息通道接入

1.3 目标用户

  • • AI 研究者和开发者
  • • 需要自动化复杂任务的企业用户
  • • 希望构建定制化 AI Agent 的团队

2. 架构设计

2.1 整体架构模式

┌─────────────────────────────────────────────────────────────────┐
│                        Nginx (Port 2026)                        │
│  ┌───────────────┬────────────────────┬───────────────────┐    │
│  │  /api/langgraph│    /api/*         │    /             │    │
│  │    → LangGraph │    → Gateway API  │    → Frontend    │    │
│  │    (2024)     │    (8001)         │    (3000)        │    │
│  └───────────────┴────────────────────┴───────────────────┘    │
└─────────────────────────────────────────────────────────────────┘
                              │
          ┌───────────────────┼───────────────────┐
          │                   │                   │
    ┌─────▼─────┐       ┌─────▼─────┐      ┌────▼────┐
    │ LangGraph │       │  Gateway  │      │ Frontend│
    │  Server   │       │    API    │      │  (Next) │
    │  (2024)   │       │  (8001)   │      │  (3000) │
    └─────┬─────┘       └─────┬─────┘      └────┬────┘
          │                   │                 │
          │     ┌─────────────┘                 │
          │     │                               │
          ▼     ▼                               │
    ┌──────────────────┐                        │
    │  Harness Core    │◄───────────────────────┘
    │  (deerflow.*)    │   (LangGraph SDK)
    └──────────────────┘
          │
    ┌─────┴─────┐
    │ Sandbox   │
    │ Provider  │
    └───────────┘

2.2 技术选型

层级
技术选型
前端
Next.js 16, React 19, TypeScript 5.8, Tailwind CSS 4, TanStack Query
后端
Python 3.12+, FastAPI, LangGraph, LangChain
沙箱
LocalSandboxProvider / AioSandboxProvider (Docker)
数据存储
JSON file (memory/checkpoint) + SQLite (可选)
消息队列
内存队列 (MessageBus)
基础设施
Docker, Kubernetes, nginx

2.3 模块间通信方式

  1. 1. Frontend → LangGraph: 通过 @langchain/langgraph-sdk 的 SSE 流式通信
  2. 2. Frontend → Gateway: REST API (models, skills, memory, uploads, artifacts)
  3. 3. Gateway → LangGraph: 内部通信用于 IM 渠道消息分发
  4. 4. Nginx: 反向代理,统一入口 (2026)

2.4 核心设计模式

  • • Middleware Chain Pattern: 12 个中间件按序执行 (ThreadData → Uploads → Sandbox → DanglingToolCall → Guardrail → Summarization → TodoList → Title → Memory → ViewImage → SubagentLimit → Clarification)
  • • Provider Pattern: Sandbox、Memory、Checkpointer 等核心组件使用 Provider 模式
  • • Factory Pattern: Model factory (create_chat_model) 通过反射动态创建
  • • Observer Pattern: MessageBus pub/sub 解耦 IM 渠道与核心处理

3. 技术栈详解

3.1 前端技术栈

框架与库:

  • • Next.js 16 (App Router)
  • • React 19
  • • TypeScript 5.8
  • • Tailwind CSS 4
  • • TanStack Query 5 (服务端状态管理)

UI 组件:

  • • Radix UI (对话组件)
  • • Shadcn/ui (基础组件)
  • • Lucide React (图标)
  • • Sonner (Toast)

核心功能:

  • • 流式处理useThreadStream hook 处理 SSE
  • • 状态管理: TanStack Query + 本地 Storage
  • • 国际化: i18n 支持 (en-US, zh-CN)

构建工具:

  • • Turbopack (开发)
  • • pnpm 10.26.2

3.2 后端技术栈

运行时与框架:

  • • Python 3.12+
  • • FastAPI (Gateway API)
  • • LangGraph (Agent 编排)
  • • LangChain (LLM 集成)

核心依赖:

langgraph>=1.0.6,<1.0.10
langchain>=1.2.3
langchain-openai>=1.1.7
langchain-anthropic>=1.3.4
langchain-deepseek>=1.0.1
langchain-google-genai>=4.2.1
langchain-mcp-adapters>=0.1.0
pydantic>=2.12.5
fastapi>=0.115.0
httpx>=0.28.0

工具生态:

  • • Tavily / DuckDuckGo (网页搜索)
  • • Jina AI (网页抓取/ readability)
  • • Firecrawl (网页爬取)
  • • markitdown (文档转换 PDF/PPT/Excel/Word)

3.3 数据库和缓存方案

Memory Storage:

  • • JSON 文件存储 (memory.json)
  • • 支持 per-agent 隔离存储
  • • 原子性写入 (temp + rename)

Checkpointer:

  • • 支持 Memory/SQLite/PostgreSQL
  • • 默认 SQLite 用于开发
  • • LangGraph 持久化状态

MCP Cache:

  • • 基于 mtime 的配置变更检测
  • • 工具缓存失效机制

3.4 其他基础设施

日志:

  • • Python logging (basicConfig)
  • • Nginx access/error logs

监控集成:

  • • LangSmith tracing (可选)
  • • Langfuse tracing (可选)

4. 功能模块分析

4.1 核心业务模块划分

backend/
├── app/
│   ├── gateway/           # FastAPI 网关 (8001)
│   │   ├── routers/       # API 路由 (models, mcp, skills, memory, etc.)
│   │   ├── services.py
│   │   ├── deps.py        # 依赖注入
│   │   └── config.py
│   └── channels/          # IM 渠道集成
│       ├── manager.py     # 消息分发中心
│       ├── message_bus.py # Pub/Sub 总线
│       ├── store.py       # 渠道-线程映射持久化
│       ├── feishu.py      # 飞书 WebSocket
│       ├── slack.py       # Slack Socket Mode
│       └── telegram.py    # Telegram Bot API

└── packages/harness/deerflow/
    ├── agents/
    │   ├── lead_agent/    # 主 Agent 工厂 + 系统提示
    │   ├── middlewares/   # 12 个中间件组件
    │   ├── memory/        # 记忆提取/队列/存储
    │   └── thread_state.py # ThreadState 定义
    ├── sandbox/           # 沙箱抽象与实现
    │   ├── local/         # 本地文件系统执行
    │   ├── tools.py       # bash/ls/read_file/write_file/str_replace
    │   └── middleware.py
    ├── subagents/         # 子代理执行引擎
    │   ├── executor.py    # 异步执行 + 双线程池
    │   ├── registry.py    # 内置代理注册
    │   └── builtins/      # general-purpose / bash
    ├── tools/             # 工具系统
    │   ├── builtins/      # present_files, ask_clarification, view_image
    │   └── get_available_tools()
    ├── models/            # 模型工厂
    │   ├── factory.py     # create_chat_model()
    │   ├── claude_provider.py
    │   ├── openai_codex_provider.py
    │   └── patched_*.py   # 特定模型补丁
    ├── mcp/               # MCP 集成
    │   ├── client.py
    │   ├── tools.py       # get_mcp_tools()
    │   ├── cache.py
    │   └── oauth.py
    ├── skills/            # 技能系统
    │   ├── loader.py
    │   └── parser.py
    ├── config/            # 配置解析
    │   ├── app_config.py  # 主配置 (config.yaml)
    │   └── extensions_config.py # MCP/Skills 配置
    ├── community/         # 社区工具
    │   ├── tavily/
    │   ├── jina_ai/
    │   ├── firecrawl/
    │   ├── image_search/
    │   ├── ddg_search/
    │   └── aio_sandbox/   # Docker 沙箱提供者
    └── client.py          # 嵌入式 Python 客户端

4.2 各模块职责和边界

Harness vs App 边界:

  • • Harness (deerflow.*): 可发布的 Agent 框架包
  • • App (app.*): 应用层代码,依赖 Harness
  • • 严格单向依赖: App → Harness,禁止反向

Lead Agent 职责:

  • • 动态模型选择 (thinking/vision support)
  • • 工具聚合 (sandbox + built-in + MCP + community + subagent)
  • • 系统提示构建 (skills + memory + subagent instructions)

沙箱职责:

  • • 虚拟路径映射 (/mnt/user-data → backend/.deer-flow/threads/{id})
  • • 命令执行与文件系统操作
  • • 安全路径验证 (禁止 path traversal)

子代理职责:

  • • 异步任务执行 (ThreadPoolExecutor)
  • • 最大并发控制 (MAX_CONCURRENT_SUBAGENTS=3)
  • • 超时管理 (默认 15 分钟)

4.3 模块间依赖关系

Gateway (app.gateway)
  └── deps.py → langgraph_runtime (初始化 StreamBridge, RunManager, checkpointer)
      └── channels.service → start_channel_service
          └── MessageBus.publish_inbound()
              └── ChannelManager._dispatch_loop()
                  └── LangGraph SDK (threads.create, runs.stream)

Frontend (Next.js)
  └── core/threads/hooks.ts → useStream → LangGraph SDK
  └── core/api/index.ts → getAPIClient → LangGraph Client

LangGraph Server
  └── make_lead_agent() → create_chat_model() + get_available_tools()
      └── _build_middlewares() → 12 middleware chain

5. 部署方案

5.1 容器化方案

Services:

  1. 1. nginx: Alpine, reverse proxy (2026)
  2. 2. frontend: Node 22, Next.js production/dev
  3. 3. gateway: Python 3.12, FastAPI + Uvicorn (8001)
  4. 4. langgraph: Python 3.12, langgraph dev (2024)
  5. 5. provisioner (可选): K8s sandbox provisioner

Docker 特性:

  • • DooD (Docker-out-of-Docker): 沙箱容器通过 host Docker socket 创建
  • • 热重载: 开发模式 mount 源码目录
  • • 依赖缓存: uv cache mount

5.2 环境配置管理

配置文件:

  • • config.yaml - 主配置 (models, tools, sandbox, skills, memory 等)
  • • extensions_config.json - MCP servers 和 skills 状态
  • • .env - API keys 和敏感配置

环境变量优先级:

  1. 1. 显式传入 config_path
  2. 2. DEER_FLOW_CONFIG_PATH 环境变量
  3. 3. config.yaml (当前目录或父目录)

配置热重载:

  • • Gateway 自动检测 config.yaml mtime 变化
  • • 无需手动重启

5.3 部署流程和配置

开发环境:

make docker-init   # Pull sandbox image
make docker-start # Start services (auto-detect sandbox mode)

生产环境:

make up     # Build + start
make down   # Stop + remove

关键环境变量:

DEER_FLOW_HOME=/app/backend/.deer-flow
DEER_FLOW_CONFIG_PATH=/app/backend/config.yaml
DEER_FLOW_CHANNELS_LANGGRAPH_URL=http://langgraph:2024
DEER_FLOW_CHANNELS_GATEWAY_URL=http://gateway:8001
LANGSMITH_TRACING=true# 可选

6. 代码质量与工程化

6.1 测试策略

后端测试 (backend/tests/):

  • • 回归测试: Docker sandbox mode detection, provisioner kubeconfig
  • • 边界测试: harness/app import firewall
  • • 内存系统: memory updater 测试
  • • 客户端一致性: TestGatewayConformance 验证 client output 与 Gateway schema 一致

前端测试:

  • • 无测试框架配置 (截至当前版本)

6.2 代码规范

Python:

  • • ruff linting + formatting
  • • Line length: 240
  • • Python 3.12+ 类型提示
  • • 双引号字符串

TypeScript:

  • • ESLint + Prettier
  • • 导入排序: builtin → external → internal → parent → sibling
  • • 路径别名: @/* → src/*

6.3 构建优化

前端:

  • • Turbopack 开发加速
  • • 静态网站模式支持 (NEXT_PUBLIC_STATIC_WEBSITE_ONLY)
  • • 多阶段 Dockerfile (dev/builder/prod)

后端:

  • • uv 依赖管理 (快速同步)
  • • Docker layer caching
  • • 开发模式源码挂载 (无需 rebuild)

7. 安全特性

7.1 沙箱安全

  • • Local Sandbox: 非安全隔离边界,allow_host_bash: false 默认
  • • Docker Sandbox: 容器隔离,path traversal 防护
  • • 路径验证: 虚拟路径映射 (/mnt/user-data),禁止逃逸

7.2 Guardrails

  • • 可插拔 GuardrailProvider 协议
  • • 内置 AllowlistProvider (零外部依赖)
  • • 工具调用前授权检查

7.3 部署安全建议

  • • 本地可信网络部署
  • • IP 白名单
  • • 反向代理 + 强认证
  • • 网络隔离 (VLAN)

8. 关键设计亮点

  1. 1. Harness/App 分离: 可发布的 agent 框架 vs 应用代码,边界清晰
  2. 2. Middleware Chain: 12 个正交中间件,职责单一,可组合
  3. 3. 虚拟路径系统: 统一的 /mnt/user-data 抽象,跨沙箱类型透明
  4. 4. 双重线程池: scheduler (3) + execution (3),平衡并发与资源
  5. 5. 流式架构: LangGraph SSE + Frontend useStream 端到端流式
  6. 6. 配置驱动: YAML 配置 + 环境变量替换,热重载支持

9. 项目结构总览

deer-flow/
├── backend/
│   ├── app/                    # 应用层
│   │   ├── gateway/           # FastAPI 网关
│   │   └── channels/          # IM 渠道集成
│   ├── packages/
│   │   └── harness/           # Agent 运行框架 (deerflow.*)
│   │       └── deerflow/
│   ├── tests/                 # 后端测试
│   ├── config.yaml           # 主配置
│   ├── pyproject.toml        # Python 项目配置
│   └── Dockerfile
├── frontend/                   # Next.js 前端
│   ├── src/
│   │   ├── app/              # Next.js App Router
│   │   ├── components/       # React 组件
│   │   └── core/            # 核心 hooks 和 API
│   ├── package.json
│   └── Dockerfile
├── provisioner/               # K8s 沙箱配置器 (可选)
├── docker-compose.yml         # 容器编排
├── docker-compose.dev.yml    # 开发环境
├── Makefile                  # 构建命令
└── README.md

本报告基于 v2.0 版本源码分析,涵盖了 DeerFlow 的完整技术栈和架构设计。

 
打赏
 
更多>同类资讯
0相关评论

推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  皖ICP备20008326号-18
Powered By DESTOON