Deer-flow:字节跳动开源的高性能轻量级 C++ 工作流引擎
Deer-flow 是字节跳动开源的高性能轻量级 C++ 工作流引擎。基于 DAG 拓扑感知调度与无锁任务窃取机制,实现毫秒级并发处理。支持零拷贝传递、智能容错及资源隔离,适用于推荐系统、高频交易等场景。通过静态编排与动态执行分离架构,优化多核 CPU 利用率,提供可视化监控与自动降级能力,解决传统异步编程中的死锁与耦合问题。

Deer-flow 是字节跳动开源的高性能轻量级 C++ 工作流引擎。基于 DAG 拓扑感知调度与无锁任务窃取机制,实现毫秒级并发处理。支持零拷贝传递、智能容错及资源隔离,适用于推荐系统、高频交易等场景。通过静态编排与动态执行分离架构,优化多核 CPU 利用率,提供可视化监控与自动降级能力,解决传统异步编程中的死锁与耦合问题。

2024 年底,字节跳动将其内部打磨已久的 Deer-flow 正式推向 GitHub。这是一个处理抖音、今日头条等海量并发业务时沉淀出的高性能逻辑编排方案,旨在解决传统框架在复杂线程同步和死锁问题上的痛点。
Deer-flow 不是一个简单的线程池,而是一个运行在高性能服务器上的、拥有'拓扑感知'能力的轻量级工作流编排引擎。它接管了异步任务的依赖逻辑、资源调度与极速执行。
不同于传统的 Task-based 库或臃肿的企业级 BPMN 引擎,Deer-flow 的设计哲学是'编排即执行'。它通过对任务拓扑图(DAG)的深度优化,榨干多核 CPU 的每一分潜力。
| 维度 | 传统异步框架 (Thread/Promise) | Deer-flow 的变革 | 核心价值 |
|---|---|---|---|
| 逻辑管理 | Callback Hell 逻辑嵌套极深 | Graph-Based 采用 DAG 结构 | 清晰即正义 |
| 调度开销 | Context Switch 频繁上下文切换 | Lock-Free / Work-Stealing | 压榨性能 |
| 耦合程度 | Tight Coupling 强耦合 | Node-Agnostic 节点高度解耦 | 敏捷开发 |
Deer-flow 采用'静态编排 + 动态窃取'的解耦架构,包含 Topology Engine(编排引擎)和 Executive Core(执行核心)。
C++ DSL / JSON 描述 (任务编排层)
▼
┌──────────────────────────────────────┐
│ Topology Engine (编排引擎) │ ← 逻辑平面 (静态分析)
│ 构建 DAG 图 / 依赖检查 / 路径优化 │
└──────────────┬───────────────────────┘
▼
┌────────┼────────┐
Node A Node B Node C (任务节点)
└────────┼────────┘
▼
┌──────────────────────────────────────┐
│ Executive Core (执行核心) │ ← 执行平面 (动态调度)
│ Lock-Free Queue / Work-Stealing │
└──────────────────────────────────────┘
任务触发的延迟被压缩到微秒级。底层采用无锁化队列,任务切换如同高速公路上无感并线。
支持为不同的 Graph 配置独立的隔离池,确保关键路径永远不被干扰。
| 业务流 | 资源配额 | Deer-flow 的主动干预 |
|---|---|---|
| 核心交易流 | High Priority (80% CPU) | 优先级抢占,确保优先执行 |
| 日志/监控流 | Low Priority (Quiet) | 仅在负载低于 60% 时加速 |
| 外部爬虫流 | Sandboxed | 限制并发数,自动熔断 |
内置自愈机制,支持自动指数退避重试 (Retry with Backoff) 和旁路降级 (Fallback Path)。
将推荐流程拆解为核心感知区、算力爆发区和结果汇总区。利用 Fan-out 并行调用模型,Fan-in 合并结果。
auto& rec_graph = engine.create_graph("video_recommend");
auto user_profile = rec_graph.add_node(fetch_user_task);
auto model_v1 = rec_graph.add_node(inference_v1_task);
auto ranker = rec_graph.add_node(merge_rank_task);
rec_graph.add_edge(user_profile, {model_v1});
rec_graph.add_edge({model_v1}, ranker);
处理协议转换、鉴权与限流。通过异步拦截器完成分布式限流计数,耗时低于 10 微秒。
深度集成现代 C++ 的 std::move 语义。数据在节点间传递不再是'复印一份',而是'递交钥匙'。通过共享内存池和指针引用机制,确保数据全程只在内存中存在一份实体。
调度器实时监控执行队列长度和 CPU 负载。当流量洪峰袭来,能在几毫秒内激活备用工作线程;空闲期自动挂起冗余线程。
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
mkdir build && cd build
cmake .. -DDEER_FLOW_BUILD_EXAMPLES=ON
make -j$(nproc) ./bin/simple_graph_example
version: '3.8'
services:
deer_flow_service:
image: bytedance/deer-flow:latest
container_name: deer_engine_core
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- ./my_plugins:/opt/deer-flow/plugins
- ./config:/etc/deer-flow
environment:
- DEER_SCHEDULER_THREADS=8
| 方案类型 | 推荐策略 | 适用场景 |
|---|---|---|
| 算力巅峰 | Work-Stealing | 复杂 DAG、海量短任务 |
| 延迟杀手 | Static Priority | 高频交易、实时广告竞价 |
| 稳定堡垒 | Resource Isolation | 混合业务部署 |
| 极简主义 | Simple FIFO | 简单逻辑编排、边缘计算 |
std::variant, std::optional)。Node 的 execute 函数中使用全局互斥锁。std::move。| 资源 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/bytedance/deer-flow |
| 官方文档 | 见 GitHub Wiki 或项目 README |
| 示例代码库 | 项目 /examples 目录 |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online