DeerFlow
读懂 DeerFlow:支撑长任务智能体的运行框架
在把流畅回答视为任务完成之前,先理解 DeerFlow 的主智能体、技能、记忆、工具和沙箱边界。
你将学会
- 它提供运行框架,而不是新的基础模型
- 五类职责不能混在一起
- 既要读回答,也要读停止原因
开始前需要
- 基础 Python、HTTP 和容器知识
- 拥有明确验收条件的自有任务
解释本章实现边界,并应用检查清单或隔离辅助函数练习。
先看结论
- 运行框架管理模型周围的执行过程。
- 技能、授权和沙箱解决不同问题。
- 运行停止不一定代表任务完成。
它提供运行框架,而不是新的基础模型
DeerFlow 负责协调模型调用、工具、技能、记忆和委派工作。所查后端清单声明版本为 2.1.0,要求 Python 3.12 及以上,仓库附带 MIT 许可证。模型负责推理与生成文字,框架负责外围执行管理;因此,更换模型并不能替代权限、持久化和运行限制的配置。
以一次获准的资料研究为例,任务读取用户提供的文件并生成报告。真正有用的结果应当是经过检查、论断可追溯的文件,而不只是计划或最后一条聊天消息。DeerFlow 提供跨多次调用推进工作的机制,但操作者仍需定义验收条件和外部操作策略。
五类职责不能混在一起
主智能体构建器负责组装一次运行所需的中间件和工具。技能激活提供任务指引,工具策略限制已激活技能可用的工具,持久上下文则在摘要压缩前保存委派结果和已加载技能。这些职责在源码中彼此独立:一个技能能被发现,并不意味着它的运行时策略已经激活。
Gateway 提供应用 API,并承载活跃任务执行。生产编排把它与前端、nginx 和 Redis 连接起来。Redis 帮助跨进程传递事件流,但编排文件明确提醒,取消、去重以及部分渠道服务仍属于工作进程本地状态。架构图应标明这些所有权边界,而不能把 Redis 画成万能状态中心。
既要读回答,也要读停止原因
一次运行可能因正常完成、重复调用工具、触及令牌预算或模型供应方限制而结束。构建器为其中多种情况安装了不同防护。防循环模块会清除待执行工具调用,并向调用方提供停止原因;最终文字可读,不代表原始任务已经通过验收。
本系列依据固定提交,而不假设它就是所有部署正在使用的版本。我们运行了参数归一化、指纹和有界存储的纯 Python 辅助函数,但没有启动完整 Gateway、调用付费模型或构建沙箱。部署与负载实验都会标明为待执行检查,不会冒充生产实测。
实施步骤
- 1
定义交付文件和验收检查。
- 2
为每项外部操作明确授权。
- 3
同时记录产物质量和停止原因。
可复制示例
{"task":"总结自有测试文档","acceptance":["论断有来源","文件能够打开","不执行外部写入"],"modelCallsExecuted":0,"fullRuntimeExecuted":false}常见问题
DeerFlow 本身是语言模型吗?
不是。它把模型连接到执行、上下文和工具管理能力,是智能体运行框架。
运行显示完成就能相信报告正确吗?
不能。还要检查停止原因,并按照任务要求独立验收交付文件。
资料来源
- README.md来源核查 2026-09-08
- LICENSE来源核查 2026-09-08
- backend/README.md来源核查 2026-09-08
- backend/pyproject.toml来源核查 2026-09-08
- backend/docs/middleware-execution-flow.md来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/lead_agent/agent.py来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/loop_detection_middleware.py来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/_bounded_dict.py来源核查 2026-09-08
- backend/packages/harness/deerflow/config/loop_detection_config.py来源核查 2026-09-08
- backend/packages/harness/deerflow/sandbox/local/local_sandbox_provider.py来源核查 2026-09-08
- backend/app/gateway/auth_middleware.py来源核查 2026-09-08
- backend/app/gateway/csrf_middleware.py来源核查 2026-09-08
- docker/docker-compose.yaml来源核查 2026-09-08