ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

DeerFlow 部署实践指南:从本地跑通到生产上线

DeerFlow 部署实践指南:从本地跑通到生产上线 DeerFlow 部署实践指南从本地跑通到生产上线【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flowDeerFlow 是一个基于 LangGraph 构建的开源超级智能体运行时它能编排子智能体、长期记忆、沙箱和技能Skills把十分钟的深度研究报告到数小时的编码与内容生产任务都接住。这篇 DeerFlow 部署指南只讲一条路径先用最少命令在本地跑通再容器化最后做成可以长期对外服务的生产部署。读完你能独立完成一台 DeerFlow 实例的搭建、加固和故障排查。三条命令把 DeerFlow 跑起来前提是装好 Node.js 22、uv、pnpm 和 nginx拿不准就先跑make check它会逐项告诉你缺什么。克隆仓库后只需要 3 条命令几分钟内就能看到完整界面git clone https://gitcode.com/GitHub_Trending/de/deer-flow cd deer-flow make setup # 交互式向导选模型商、配搜索生成 config.yaml 并把密钥写入 .env make dev # 启动前端、Gateway 后端和 nginxmake setup会引导你选择 LLM 提供商和执行安全偏好大约 2 分钟完成这也是新手最不容易翻车的路径。然后打开http://localhost:2026新建一个会话丢个任务进去。如果后续觉得哪里不对劲随时跑make doctor它会给出可直接执行的修复建议。核心配置速查只认两个文件DeerFlow 的配置看着字段很多实际只需要记住两个文件config.yaml管智能体怎么跑.env管密钥从哪来。分工一句话行为定义写进配置文件明文密钥只进.envconfig.yaml里用$VAR引用这样密钥永远不会进版本库。配置项必填一句话作用modelsconfig.yaml✅定义智能体可用的 LLM至少一条对应 API Key.env✅api_key: $OPENAI_API_KEY这类引用的真实值database.backend建议单机用 sqlite多人共享或多 worker 换 postgressandbox.use可选代码执行隔离方式宿主机 / Docker / K8stoken_budget可选单次任务 token 硬上限防止 API 账单失控channels可选从 Telegram、飞书、钉钉等 IM 直接派任务BETTER_AUTH_SECRET.env生产必填前端会话加密make up前必须给值下面是一份能跑起来的最小配置向导生成的config.yaml本质上就是这个结构加注释models: - name: gpt-4o display_name: GPT-4o use: langchain_openai:ChatOpenAI model: gpt-4o api_key: $OPENAI_API_KEY # 值来自 .env这里不写明文 max_tokens: 4096 database: backend: sqlite # 单机够用多 worker 改 postgres log_level: info更多字段vLLM、OpenRouter、子智能体限额等都写在config.example.yaml里想看完整参考可以直接翻它。启动模式按场景选别盲选 Docker同一个项目开发调试和长期挂机要用的启动方式不一样选错只会白白吃内存。随手体验本地前台改一行配置就想看效果时用它支持热重载。make dev预期输出nginx 统一入口浏览器访问http://localhost:2026内部 Gateway 走 8001、前端走 3000。日常开发Docker 开发环境想验证沙箱隔离行为、又不想污染本机环境时用它。make docker-init # 拉取沙箱镜像只需一次 make docker-start # 按 config.yaml 自动识别沙箱模式并启动预期输出同样是http://localhost:2026日志用make docker-logs按服务分列查看。长期服务器Docker 生产要给团队或外部用户常驻服务时用它构建生产镜像并等 Gateway/health通过后才报成功。make up # 构建镜像 启动全部生产服务 make down # 停止并移除容器预期输出http://localhost:2026且首次运行会完成管理员初始化。模式场景命令端口本地前台快速体验、改配置看效果make dev2026Docker 开发验证沙箱、依赖隔离make docker-start2026Docker 生产常驻服务、多人共用make up2026容器化部署隔离不是装饰是安全边界这一步值得做的原因很简单DeerFlow 的智能体可以执行任意代码把运行态关进容器宿主机才有安全边界nginx、前端、Gateway、Redis 四个服务一条 Compose 拉起环境完全可复现生产镜像在构建期就装好了全部依赖容器启动时不再现场装包。只跑 Gateway API比如接入自己的前端一条命令就够docker build -f backend/Dockerfile -t deerflow-gateway . docker run -d --name deerflow-gw -p 127.0.0.1:8001:8001 --env-file .env \ -v $(pwd)/config.yaml:/app/backend/config.yaml:ro deerflow-gateway完整部署直接用官方 Composedocker/docker-compose.yaml精简结构如下关键行都标了注释services: redis: # SSE 流桥多 worker 投递必需 image: redis:7-alpine command: [redis-server, --appendonly, yes] gateway: # FastAPI 智能体运行时内部 8001 build: { context: ., dockerfile: backend/Dockerfile } volumes: - ./config.yaml:/app/backend/config.yaml:ro # 只读挂载配置 - ./.deer-flow:/app/backend/.deer-flow # 运行时数据持久化 depends_on: [redis] frontend: # Next.js 生产前端 build: { context: ., dockerfile: frontend/Dockerfile, target: prod } environment: - BETTER_AUTH_SECRET${BETTER_AUTH_SECRET} # 会话加密必须提供 nginx: # 统一入口默认只绑 127.0.0.1 image: nginx:alpine ports: - 127.0.0.1:2026:2026 depends_on: [frontend, gateway]容器间调用关系一览⚠️ 三条高频坑都遇到过才觉得眼熟permission denied ... docker.sock→ 当前用户不在 docker 组。执行sudo usermod -aG docker $USER后重新登录。容器跑两三个任务就卡死→ 2C4G 对 DeerFlow 基本不够用。先把并发任务数降下来再考虑升到 4C8G。改了 config.yaml 不生效→ 大部分配置下次读取即生效但 checkpoint 存储模式这类启动时冻结的项必须重启进程。生产加固、可观测性与排查密钥与配置安全所有明文密钥只放.envconfig.yaml一律用$VAR引用仓库里只提交.env.example。BETTER_AUTH_SECRET与DEER_FLOW_INTERNAL_AUTH_TOKEN用长随机值make up会自动生成并持久化别手动写短字符串。config.yaml是受信任的运维文件——它声明的中间件就是可执行代码没有 API 写入路径别把它交给任何能联网的组件去写。nginx 默认只绑127.0.0.1只有在你自己的 TLS/鉴权前置之后才设BIND_HOST0.0.0.0同时用GATEWAY_ENABLE_DOCSfalse关掉 Swagger 文档。资源与性能单机基线是 4C8G长期服务器建议 8C16G官方部署尺寸表在 README 的 Deployment Sizing 一节。给容器加上资源上限防止单个任务把宿主机吃满deploy: resources: limits: cpus: 2.0 memory: 4G reservations: memory: 2G两条调优建议资源打满时先降并发任务数再升档硬件别反过来。想开多 worker 扩容前提是先上 postgres 并启用 Redis 流桥与运行租用心跳GATEWAY_WORKERS默认就是 1别急着调大。可观测性生产上盯这几项就够了网关健康、任务时长、内存、沙箱启动覆盖绝大多数故障指标告警阈值动作Gateway/health连续 3 次超时查make docker-logs的 gateway 段重启容器任务 P95 时长超过同类任务 2 倍用 Langfuse/Monocle 追踪定位慢在哪一步容器内存占用超过 limits 80%降并发或升档内存沙箱启动失败单次任务内重试 ≥3 次检查沙箱镜像拉取与 provisioner 状态日志和链路追踪通过环境变量接入 LangSmith、Langfuse 或 Monocle三者可叠加诊断入口统一是make doctor出问题时跑make support-bundle会生成脱敏的问题摘要和证据包贴进 Issue 即可。如果你要上云官方在deploy/helm/deer-flow提供了 Helm Chart沙箱侧支持 K8s provisioner 模式和 E2B 云端沙箱两条路线把宿主机 Docker 模式换成对应的sandbox.use即可部署形态不变。排查高频问题make check报缺依赖→ Node 22/uv/pnpm/nginx 未装齐 → 按它的输出逐项安装后重跑make check。docker 命令报 socket 权限错→ 用户不在 docker 组 →sudo usermod -aG docker $USER并重新登录。页面能开但模型调用全失败→config.yaml没有 models 条目或.env密钥是空占位 → 重跑make setup补全make doctor验证。2026 端口被占用→ 发布端口没改 → 在.env里设PORT2027再make up该变量只影响 Docker 发布端口。容器化后 IM 频道收不到消息→channels.langgraph_url还指着 localhost → 改成http://gateway:8001/api这类容器内服务名。写在最后配置参考直接看仓库根目录的config.example.yaml完整部署细节在backend/docs/CONFIGURATION.md。遇到跑不通的问题先make doctor再make support-bundle带上证据提 Issue想贡献代码从CONTRIBUTING.md入手。下一步建议先用make dev跑一个真实的深度研究任务把 token 消耗和任务时长的体感建立起来再决定生产环境的规格档位。【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表