bytedance/deer-flow
GitHub: bytedance/deer-flow
字节跳动开源的超级 Agent 框架,通过编排子 Agent、沙箱执行、技能系统和长期记忆来完成从研究到代码生成的复杂多步骤任务。
Stars: 23136 | Forks: 2750
# 🦌 DeerFlow - 2.0
DeerFlow (**D**eep **E**xploration and **E**fficient **R**esearch **Flow**) 是一个开源的**超级 Agent 框架**,它编排**子 Agent**、**记忆**和**沙箱**来完成几乎任何事情——由**可扩展的技能**驱动。
https://github.com/user-attachments/assets/a8bcadc4-e040-4cf2-8fda-dd768b999c18
## 官方网站
在我们的官方网站了解更多信息并观看**真实演示**。
**[deerflow.tech](https://deerflow.tech/)**
## 目录
- [🦌 DeerFlow - 2.0](#-deerflow---20)
- [官方网站](#offiical-website)
- [目录](#table-of-contents)
- [快速开始](#quick-start)
- [配置](#configuration)
- [运行应用程序](#running-the-application)
- [选项 1: Docker (推荐)](#option-1-docker-recommended)
- [选项 2: 本地开发](#option-2-local-development)
- [进阶](#advanced)
- [沙箱模式](#sandbox-mode)
- [MCP Server](#mcp-server)
- [从深度研究到超级 Agent 框架](#from-deep-research-to-super-agent-harness)
- [核心功能](#core-features)
- [技能与工具](#skills--tools)
- [子 Agent](#sub-agents)
- [沙箱与文件系统](#sandbox--file-system)
- [上下文工程](#context-engineering)
- [长期记忆](#long-term-memory)
- [推荐模型](#recommended-models)
- [文档](#documentation)
- [贡献](#contributing)
- [许可证](#license)
- [致谢](#acknowledgments)
- [主要贡献者](#key-contributors)
- [Star 历史](#star-history)
## 快速开始
### 配置
1. **克隆 DeerFlow 仓库**
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
2. **生成本地配置文件**
在项目根目录 (`deer-flow/`) 下运行:
make config
此命令根据提供的示例模板创建本地配置文件。
3. **配置您首选的模型**
编辑 `config.yaml` 并定义至少一个模型:
models:
- name: gpt-4 # 内部标识符
display_name: GPT-4 # 可读名称
use: langchain_openai:ChatOpenAI # LangChain 类路径
model: gpt-4 # API 的模型标识符
api_key: $OPENAI_API_KEY # API key (推荐: 使用环境变量)
max_tokens: 4096 # 每次请求的最大 token 数
temperature: 0.7 # 采样温度
4. **为您配置的模型设置 API keys**
选择以下方法之一:
- 选项 A: 编辑项目根目录下的 `.env` 文件 (推荐)
TAVILY_API_KEY=your-tavily-api-key
OPENAI_API_KEY=your-openai-api-key
# 根据需要添加其他提供商的密钥
- 选项 B: 在您的 shell 中导出环境变量
export OPENAI_API_KEY=your-openai-api-key
- 选项 C: 直接编辑 `config.yaml` (生产环境不推荐)
models:
- name: gpt-4
api_key: your-actual-api-key-here # 替换占位符
### 运行应用程序
#### 选项 1: Docker (推荐)
以一致的环境开始使用的最快方式:
1. **初始化并启动**:
make docker-init # 拉取沙箱镜像 (仅在一次或镜像更新时)
make docker-start # 启动服务 (从 config.yaml 自动检测沙箱模式)
`make docker-start` 现在仅当 `config.yaml` 使用 provisioner 模式 (`sandbox.use: src.community.aio_sandbox:AioSandboxProvider` 带有 `provisioner_url`) 时才启动 `provisioner`。
2. **访问**: http://localhost:2026
查看 [CONTRIBUTING.md](CONTRIBUTING.md) 获取详细的 Docker 开发指南。
#### 选项 2: 本地开发
如果您更喜欢在本地运行服务:
1. **检查前置条件**:
make check # 验证 Node.js 22+, pnpm, uv, nginx
2. **(可选) 预拉取沙箱镜像**:
# 如果使用 Docker/容器沙箱,推荐执行
make setup-sandbox
3. **启动服务**:
make dev
4. **访问**: http://localhost:2026
### 进阶
#### 沙箱模式
DeerFlow 支持多种沙箱执行模式:
- **本地执行** (直接在主机上运行沙箱代码)
- **Docker 执行** (在隔离的 Docker 容器中运行沙箱代码)
- **带 Kubernetes 的 Docker 执行** (通过 provisioner 服务在 Kubernetes pods 中运行沙箱代码)
对于 Docker 开发,服务启动遵循 `config.yaml` 沙箱模式。在本地/Docker 模式下,`provisioner` 不会启动。
请参阅 [沙箱配置指南](backend/docs/CONFIGURATION.md#sandbox) 以配置您偏好的模式。
#### MCP Server
DeerFlow 支持可配置的 MCP 服务器和技能以扩展其能力。
对于 HTTP/SSE MCP 服务器,支持 OAuth token 流程 (`client_credentials`, `refresh_token`)。
请参阅 [MCP Server 指南](backend/docs/MCP_SERVER.md) 获取详细说明。
## 从深度研究到超级 Agent 框架
DeerFlow 最初是作为一个深度研究框架起步的——社区在此基础上发扬光大。自发布以来,开发人员将其推向了研究之外:构建数据管道、生成幻灯片、启动仪表板、自动化内容工作流。这些是我们从未预料到的事情。
这告诉了我们一些重要的事情:DeerFlow 不仅仅是一个研究工具。它是一个 **框架**——一个为 Agent 提供基础设施以真正完成工作的运行时。
所以我们从头开始重建了它。
DeerFlow 2.0 不再是一个需要您拼凑的框架。它是一个超级 Agent 框架——电池 included,完全可扩展。基于 LangGraph 和 LangChain 构建,它开箱即用地提供了 Agent 所需的一切:文件系统、记忆、技能、沙箱执行,以及为复杂的多步骤任务规划和生成子 Agent 的能力。
按原样使用。或者拆解它,使其成为您自己的。
## 核心功能
### 技能与工具
技能是让 DeerFlow 几乎能做*任何事*的关键。
一个标准的 Agent Skill 是一个结构化的能力模块——一个定义了工作流、最佳实践和参考支持资源的 Markdown 文件。DeerFlow 内置了用于研究、报告生成、幻灯片创建、网页、图像和视频生成等的技能。但真正的威力在于可扩展性:添加您自己的技能,替换内置技能,或将它们组合成复合工作流。
技能是渐进式加载的——仅在任务需要时才加载,而不是一次性全部加载。这保持了上下文窗口的精简,并使 DeerFlow 即使在 token 敏感的模型上也能良好运行。
工具遵循同样的理念。DeerFlow 附带了一套核心工具集——网络搜索、网络抓取、文件操作、bash 执行——并通过 MCP 服务器和 Python 函数支持自定义工具。替换任何东西。添加任何东西。
```
# 沙箱容器内的路径
/mnt/skills/public
├── research/SKILL.md
├── report-generation/SKILL.md
├── slide-creation/SKILL.md
├── web-page/SKILL.md
└── image-generation/SKILL.md
/mnt/skills/custom
└── your-custom-skill/SKILL.md ← yours
```
### 子 Agent
复杂任务很少能一次性完成。DeerFlow 会将其分解。
主导 Agent 可以即时生成子 Agent——每个子 Agent 都有自己的作用域上下文、工具和终止条件。子 Agent 在可能的情况下并行运行,报告结构化结果,主导 Agent 将所有内容合成为连贯的输出。
这就是 DeerFlow 如何处理耗时数分钟到数小时的任务的方式:一个研究任务可能会分支出十几个子 Agent,每个探索不同的角度,然后汇聚成一份报告——或一个网站——或一套带有生成视觉效果的幻灯片。一个框架,多双手。
### 沙箱与文件系统
DeerFlow 不仅仅是*谈论*做事。它拥有自己的计算机。
每个任务都在一个带有完整文件系统的隔离 Docker 容器中运行——技能、工作区、上传、输出。Agent 读取、写入和编辑文件。它执行 bash 命令和代码。它查看图像。全部沙箱化,全部可审计,会话之间零污染。
这就是带有工具访问权限的聊天机器人与拥有实际执行环境的 Agent 之间的区别。
```
# 沙箱容器内的路径
/mnt/user-data/
├── uploads/ ← your files
├── workspace/ ← agents' working directory
└── outputs/ ← final deliverables
```
### 上下文工程
**隔离的子 Agent 上下文**: 每个子 Agent 在其自己隔离的上下文中运行。这意味着子 Agent 将无法看到主 Agent 或其他子 Agent 的上下文。这对于确保子 Agent 能够专注于手头的任务而不被主 Agent 或其他子 Agent 的上下文分心非常重要。
**总结**: 在一个会话中,DeerFlow 积极地管理上下文——总结已完成的子任务,将中间结果卸载到文件系统,压缩不再立即相关的内容。这使其能够在漫长的多步骤任务中保持敏锐,而不会撑爆上下文窗口。
### 长期记忆
大多数 Agent 在对话结束后就会忘记一切。DeerFlow 会记住。
跨会话中,DeerFlow 建立了关于您的个人资料、偏好和积累知识的持久记忆。您使用得越多,它就越了解您——您的写作风格、您的技术栈、您重复的工作流。记忆存储在本地,并由您控制。
## 推荐模型
DeerFlow 与模型无关——它适用于任何实现了 OpenAI 兼容 API 的 LLM。话虽如此,它在支持以下特性的模型上表现最好:
- **长上下文窗口** (100k+ tokens) 用于深度研究和多步骤任务
- **推理能力** 用于自适应规划和复杂分解
- **多模态输入** 用于图像理解和视频理解
- **强大的工具使用能力** 用于可靠的函数调用和结构化输出
## 嵌入式 Python 客户端
DeerFlow 可以作为嵌入式 Python 库使用,而无需运行完整的 HTTP 服务。`DeerFlowClient` 提供了对所有 Agent 和 Gateway 功能的直接进程内访问,返回与 HTTP Gateway API 相同的响应模式:
```
from src.client import DeerFlowClient
client = DeerFlowClient()
# 聊天
response = client.chat("Analyze this paper for me", thread_id="my-thread")
# 流式传输 (LangGraph SSE 协议: values, messages-tuple, end)
for event in client.stream("hello"):
if event.type == "messages-tuple" and event.data.get("type") == "ai":
print(event.data["content"])
# 配置与管理 — 返回 Gateway 对齐的 dicts
models = client.list_models() # {"models": [...]}
skills = client.list_skills() # {"skills": [...]}
client.update_skill("web-search", enabled=True)
client.upload_files("thread-1", ["./report.pdf"]) # {"success": True, "files": [...]}
```
所有返回 dict 的方法都在 CI (`TestGatewayConformance`) 中针对 Gateway Pydantic 响应模型进行了验证,确保嵌入式客户端与 HTTP API 模式保持同步。有关完整的 API 文档,请参阅 `backend/src/client.py`。
## 文档
- [贡献指南](CONTRIBUTING.md) - 开发环境设置和工作流
- [配置指南](backend/docs/CONFIGURATION.md) - 设置和配置说明
- [架构概览](backend/CLAUDE.md) - 技术架构细节
- [后端架构](backend/README.md) - 后端架构和 API 参考
## 贡献
我们欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解开发设置、工作流和指南。
回归覆盖范围包括 `backend/tests/` 中的 Docker 沙箱模式检测和 provisioner kubeconfig-path 处理测试。
## 许可证
本项目是开源的,并根据 [MIT 许可证](./LICENSE) 提供。
## 致谢
DeerFlow 建立在开源社区令人难以置信的工作之上。我们深深感谢所有项目和贡献者,是他们的努力使 DeerFlow 成为可能。真的,我们站在巨人的肩膀上。
我们要向以下项目表示感谢,感谢它们做出的宝贵贡献:
- **[LangChain](https://github.com/langchain-ai/langchain)**: 他们卓越的框架为我们的 LLM 交互和链提供了动力,实现了无缝的集成和功能。
- **[LangGraph](https://github.com/langchain-ai/langgraph)**: 他们创新的多 Agent 编排方法对于实现 DeerFlow 的复杂工作流起到了重要作用。
这些项目体现了开源协作的变革力量,我们为能在其基础上构建而感到自豪。
## Star 历史
[](https://star-history.com/#bytedance/deer-flow&Date)
标签:DeerFlow, DLL 劫持, DNS解析, Docker, LLM, MCP Server, MITM代理, Petitpotam, PyRIT, Python, RAG, SuperAgent, Unmanaged PE, 上下文工程, 人工智能, 代码生成, 任务自动化, 多智能体系统, 大语言模型, 子域名突变, 字节跳动, 安全防御评估, 工作流编排, 开源项目, 技能扩展, 效率工具, 无后门, 沙箱技术, 深度研究, 渗透测试工具, 用户模式Hook绕过, 记忆系统, 请求拦截, 逆向工具