DeerFlow 工具集成指南:搜索、知识库、MCP、代码执行 4 类能力一步到位
2026/9/8 12:04:25 网站建设 项目流程

DeerFlow 工具集成指南:搜索、知识库、MCP、代码执行 4 类能力一步到位

【免费下载链接】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

DeerFlow 是一个开源的长任务 Agent 框架(SuperAgent harness),目标是让 AI 自己完成研究、写代码、做创作,任务跨度可以从几分钟拉到几小时。它靠的不是更大的模型,而是给 LLM 装上了"手脚"——沙箱、记忆、子代理、消息网关,以及本指南要讲的工具集成层。工具接得对不对,直接决定你的 Agent 是"只会聊天的嘴",还是真能干活的工人。

一份调研报告,为什么装不进一个提示词

想象一个真实需求:你要做一份跨数据源的行业调研报告。它要求最新的市场动态(得查公开网页)、公司过去两年的内部产品文档(躺在 RAG 服务里,模型没训练过)、还要对一份 CSV 做统计和画图(纯 LLM 算数不靠谱)。

这三类信息,没有任何一个模型上下文能同时装下,也没有任何一次提示词能凭空"回忆"出来。Agent 需要的不是更长的窗口,而是随时可以伸手去拿:搜一下、查一下、跑一段代码。DeerFlow 的工具集成层就是为此设计的——它把四类外部能力统一挂到 Agent 的工具列表里,由模型在运行时自己决定何时调哪个。

上面这种"调研 + 统计 + 出图"的交付物,就是四类工具配合的产物。接下来先花 30 秒把地图看清,再逐个走"选型 → 配置 → 验证"。

4 类能力一张图看懂

能力解决的问题典型场景配置入口
搜索引擎拿最新公开信息行业动态、新闻、论文检索config.yaml选引擎 + API Key 环境变量
私有知识库(RAG)拿模型没见过的内部文档企业知识库、产品手册、法规条文rag://资源标识 + RAG 服务环境变量
MCP 协议接入任意第三方工具内部 API、SaaS 数据、自建服务mcp_settings.servers配置块
Python REPL让 Agent 自己算、自己验证统计计算、算法验证、画图表ENABLE_PYTHON_REPL环境变量

四条支线最终汇入同一个工具层,模型按任务需要取用。想直观感受这种"会话里直接驱动工具"的效果,仓库里留了实测截图:

地图看完,从上手最快的搜索引擎开始。

三步配好你的第一个搜索引擎

先选引擎

DeerFlow 在 backend/packages/harness/deerflow/community/ 下内置了一排搜索实现,选哪个主要看你要什么:

引擎特点需要 Key适合
TavilyAI 原生,可带原始网页内容和图片通用深研,默认推荐
Brave Search结果干净、注重隐私要高质量 SERP 时
Arxiv学术库,带完整元数据论文调研
DuckDuckGo / SearXNG免费,可自建零成本起步

最小配置与验证

这一步只改一行配置。把仓库根目录的config.example.yaml复制为config.yaml,在搜索段里指定引擎;要限定搜索范围到几个域名时,就在同一块里加include_domains

SEARCH_ENGINE: selected: "tavily" include_domains: [] exclude_domains: []

API Key 走环境变量(TAVILY_API_KEYBRAVE_SEARCH_API_KEY),启动前导出即可,不用写进 YAML。验证是否生效:给 Agent 一句"查一下 X 的最新进展,列出来源",看执行轨迹里是否出现了web_search工具调用、返回结果是否带标题/URL/摘要。踩坑的话大概率是环境变量没在当前进程里生效——重启服务再看一眼。

公开信息解决了一半,另一半在私有文档里。

私有知识库:RAGFlow 与同类服务怎么接

DeerFlow 对知识库的抽象是一个Retriever接口,只约定两件事:query_relevant_documents(给问题,还文档)和list_resources(列出可用资源)。具体接哪家,实现就放在 provider 后面换掉,上层 Agent 完全无感。目前内置了 RAGFlow 和 VikingDB 两个 provider,backend/docs/CONFIGURATION.md 里有完整的字段说明。

资源怎么用 URI 指

跨 provider 的统一约定是资源 URI,格式为rag://dataset/{resource_id}[#{document_id}]resource_id指知识库(dataset),可选的document_id把范围收窄到单篇文档。好处是 Agent 侧拿到的引用永远长一个样,你换底层引擎不用改提示词。

配置、调用、验证

以 RAGFlow 为例,三个环境变量起步:

export RAG_PROVIDER=ragflow export RAGFLOW_API_URL="http://localhost:9388" export RAGFLOW_API_KEY="ragflow-xxx"

代码侧的最小入口只有几行,provider 的选择由build_retriever按配置自动完成:

from src.rag.builder import build_retriever retriever = build_retriever() resources = retriever.list_resources("技术文档") docs = retriever.query_relevant_documents("模型优化", resources[:1])

验证方式比搜索引擎更直接:问一个只有内部文档能回答的问题,看 Agent 的引用来源里是否出现rag://开头的资源标识。VikingDB 那边多一步——它用 AK/SK 做 HMAC-SHA256 请求签名,配置项从VIKINGDB_KNOWLEDGE_BASE_API_*开始,其余流程一致。

私有库接好后,你可能会发现还缺一块:某个 SaaS 或内部系统,模型想查就得有对应工具。这时候轮到 MCP 出场。

🔌 MCP 协议:把任意第三方工具插进来

MCP(Model Context Protocol)的价值在于"工具由别人写,你只写配置"。DeerFlow 默认关闭 MCP 以免生产环境意外暴露接口,显式打开开关后才加载:

export ENABLE_MCP_SERVER_CONFIGURATION=true

三种传输方式怎么选

传输接什么关键配置典型例子
stdio本地命令command+argsuvx mcp-github-trending
sse需要实时推送的 Web 服务url+headershttp://localhost:3000/sse
streamable_http常规 HTTP 流式服务urlhttp://localhost:3000/mcp

经验法则:能在本机跑成命令的优先 stdio(无网络依赖、调试简单);对方给的是常驻服务,按它文档的端点选后两者。写进配置即可:

{ "mcp_settings": { "servers": { "github-trending": { "transport": "stdio", "command": "uvx", "args": ["mcp-github-trending"], "enabled_tools": ["get_github_trending_repositories"], "add_to_agents": ["researcher"] } } } }

enabled_toolsadd_to_agents是两个容易忽略的旋钮:前者白名单式限定只加载哪些工具,后者控制工具只对哪些 Agent 可见——工具多了以后,这层粒度控制能省掉不少上下文开销。会话建立和工具列举默认 60 秒超时,首次拉uvx包超了就把 timeout 调大。验证:重启后问 Agent"列一下本周 GitHub 趋势",看它是否调用了外部工具而不是硬答。

外部工具补齐了"查",还有最后一类任务它做不了:精确计算。

Python REPL:让 Agent 自己动手算

前面几类工具都是"取信息",而调研里还有一步是"验信息":算个均值、验个假设、画张图。DeerFlow 提供了 Python REPL 工具,把代码执行封装成标准工具调用,并且默认是关的。

默认关闭的原因很实际:执行任意代码天然有风险,不该在没人要求的情况下可用。你要的是显式开启:

export ENABLE_PYTHON_REPL=true

工具内部的防线也不只这一道:非字符串输入直接拒掉,执行异常被捕获后连同出错代码一起返回给模型(让它有机会自我修正),成功则捕获标准输出回填进上下文。所以一次典型流程是——搜索工具拿回原始数据,REPL 做统计和绘图,产出直接进最终报告:

生产环境建议保持默认关闭、按需临时开启;要常开的话,配合沙箱部署(Docker/K8s 那套 compose 配置)把执行环境隔离开。

🚀 这套架构还能往哪扩

四类能力其实共享同一个扩展逻辑:新增工具 = 实现一个接口 + 加一行选择逻辑,不碰 Agent 主流程。想接新的知识库引擎?继承Retriever实现两个方法,在 builder 里加一个分支;想接新的搜索供应商?community/目录下的实现可以当模板照着抄;而 MCP 更彻底——连代码都不用写,发个新 server 就能被现有配置加载。工具数量上去之后,tool_search这类机制负责帮模型在几百个工具里找到对的那个,这也是把"工具集成"和"工具堆砌"区分开的地方。

下一步你可以去把仓库拉下来(git clone https://gitcode.com/GitHub_Trending/de/deer-flow),先只开 Tavily 和 REPL 两个开关跑一个调研任务,再打开 MCP 看看你的 Agent 一夜之间能多调用哪些工具。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询