Skip to content

DeerFlow Backend 架构分析:记忆、工具与技能系统

本文档分析了 deer-flow 后端(基于 LangGraph 开发,主要代码位于 packages/harness/deerflow 下)的核心三大系统实现机制。

记忆系统被精心设计为“短期(会话)”与“长期(全局)”两个层级:

1.1 短期记忆(基于 Thread Checkpointer)

Section titled “1.1 短期记忆(基于 Thread Checkpointer)”

通过 LangGraph 原生支持的 checkpointer/async_provider.py,记录特定对话流(Thread ID)的每一次状态流转(状态机快照)。这意味着用户刷新页面或断开连接后,对话上下文依然完整保留且可追溯。

1.2 长期异步记忆(全局档案提取)

Section titled “1.2 长期异步记忆(全局档案提取)”

核心分布在 agents/memory/storage.pyagents/middlewares/memory_middleware.py

  • 无感更新(中间件拦截)MemoryMiddleware 会拦截所有对话记录。为了节省 Token 并消除噪音,它会精准过滤掉内部大模型思考链和工具调用的中间过程记录,只保留纯人类提问和 AI 最终回复。
  • 队列防抖处理:整理后的“干净”对话记录会被推入 queue.py 的内存防抖队列中。这种设计有效防止了高频、高并发聊天引发的后端计算风暴。
  • 结构化档案与 LLM 提取:后台异步消费队列,调用 LLM 进行记忆提取,将其存储为持久化的结构化 JSON 档案(保存在本地配置路径内)。保存的档案节点非常精细,包括:
    • workContext:工作上下文
    • personalContext:个人偏好习惯
    • topOfMind:近期关注重点(脑海优先区域)
    • history:包含 recentMonthsearlierContext 等长期和近期时间线归纳
    • facts:用户相关的客观事实规律摘要

这种设计使得 Agent 具备了跨越时间和窗口了解用户的能力。


工具系统具有极高的模块化和扩展性,主要分布在 tools/community/ 等目录下:

位于 tools/builtins 目录。这些通常是需要最快响应速度、最底层依赖的基础计算工具等。

高度隔离的第三方服务接入层:

  • 多模态搜索:集成了 ddg_search (DuckDuckGo)、tavily 高级搜索引擎以及 image_search 图片搜索。
  • 安全沙箱执行环境:如 aio_sandbox,允许大模型生成的代码在一个隔离安全的环境(可能支持了本地或远程后端)中真机运行。
  • 文档读取工具:诸如读取复杂网页的 firecrawl 爬虫工具等。

2.3 MCP (Model Context Protocol) 扩展协议

Section titled “2.3 MCP (Model Context Protocol) 扩展协议”

目录结构涵盖 mcp/ 和配置文件 config/acp_config.py,标志着应用引入了工业界最新的大模型上下文通信标准协议(MCP)。这使得该后端可以在未来轻松地“挂载”诸如本地数据库读取器、VS Code 本地环境探针等强大的动态独立工具,彻底解耦代码。


通过分析 skills/ 目录下的组成部分(loader.py, parser.py, installer.py, validation.py, types.py),可以发现“技能(Skills)”和传统的 Python 代码“工具(Tools)”在架构地位上存在本质差异:

技能是一种软编码(Soft-coded)的注入型操作规范(SOP)或声明式模板,而非特定的 Python 执行逻辑。根据 parser.py 的源码实现,技能具有及其严格的物理约束:

  • 文件名必须严格为:SKILL.md
  • 文件头部必须包含标准的 YAML 前置元数据(Front-matter,需包含 namedescription),用于大模型技能发现。
  • 解析(Parser):运行时热解析特定格式的外部文件资源。
  • 静态校验(Validation):由于技能文件具备特定类型(见 types.py),系统会在挂载前通过 Schema 校验其参数与输入输出定义的合法性。
  • 注册安装(Installer & Loader):经验证后的技能会被挂载进大模型(Lead Agent 等)的 Prompts 集合或能力感知池中。

这种极致设计意味着,在不需要后端工程师改动或部署一行 Python 业务代码的情况下,仅通过上传、配置新的技能文件库,就可以瞬间赋能 AI 掌握全新的办事规范(比如:“如何审查 React 代码的规范”或“提交 PR 的标准格式”)。