import { Callout, Cards } from "nextra/components"; # 核心概念 如果你将 DeerFlow 理解为一个长时序 Agent 的运行时,而不仅仅是聊天界面或工作流图,它将最易于理解。 在深入了解 DeerFlow 之前,先建立一些贯穿整个系统的核心概念。这些概念解释了 DeerFlow 的优化目标以及其架构设计的原因。 ## Harness 在 DeerFlow 中,**Harness** 是为 Agent 提供所需运行环境的运行时层,让 Agent 能够真正完成工作。 框架通常提供抽象和构建块。Harness 更进一步:它打包了一套有主张的运行时能力,让 Agent 无需每次重建相同基础设施,就能在真实环境中进行规划、行动、使用工具、管理文件和处理长时序任务。 在实践中,DeerFlow 的 Harness 包括: - 工具访问 - 技能加载 - 沙箱执行 - 记忆 - 子 Agent 协调 - 上下文管理 这就是为什么 DeerFlow 既不仅是一个模型封装器,也不仅是一个工作流图——它是一个 Agent 运行环境。 ## 长时序 Agent **长时序 Agent** 是一种在一系列动作中持续有效,而不仅产生单一答案的 Agent。 这类 Agent 可能需要: 1. 制定计划 2. 反复决定下一步 3. 多次调用工具 4. 检查和修改文件 5. 存储中间结果 6. 最终返回可用的产出物 重点不只是时间长度,而是跨多个步骤的持续协调。 DeerFlow 专为这类工作设计。其架构假设有用的任务通常需要不止一次工具调用和不止一轮推理。 ## 技能(Skill) **技能**是一个面向任务的能力包,教会 Agent 如何完成某一类工作。 技能不仅仅是一个标签。它通常包括结构化指令、工作流程、最佳实践和支撑资源,可以在相关时加载。这使基础 Agent 保持通用性,同时只在需要时添加专业化行为。 在 DeerFlow 中,深度研究是一项技能。数据分析、内容生成、设计工作流和其他任务类型也可以表示为技能。 这是 DeerFlow 心智模型的重要组成部分:运行时保持通用,技能提供专业化。 ## 沙箱(Sandbox) **沙箱**是 Agent 进行文件和命令操作的隔离执行环境。 DeerFlow 不把 Agent 视为纯文本生成器,而是给它一个工作区,让它可以读取文件、写入输出、运行命令并生成产出物。这使系统在编码、分析和多步骤工作流中更加实用。 隔离性很重要,因为执行应该可控且可重现。沙箱让 DeerFlow 支持真实行动,而不仅仅是对话。 ## 子 Agent(Subagent) **子 Agent** 是处理委派子任务的专注执行者。 当一个任务对单个推理线程来说太宽泛时,DeerFlow 可以将工作拆分为较小的单元并分别运行。子 Agent 有助于并行探索、范围隔离执行,以及减轻主 Agent 的负担。 关键思路是隔离。子 Agent 不需要完整的对话历史或父上下文中的每一个细节——它只需要完成其分配工作所需的信息。 ## 上下文工程(Context Engineering) **上下文工程**是控制 Agent 在何时看到、记住和忽略什么内容的实践,以使其在长期任务中保持有效。 长时序任务会给上下文窗口带来压力。如果所有内容永远内联保存,Agent 会变得越来越慢、越来越嘈杂、越来越不可靠。DeerFlow 通过摘要压缩、为子 Agent 创建范围隔离的上下文、以及将文件系统作为外部工作记忆等技术来解决这一问题。 这是 DeerFlow 中最重要的思想之一。好的 Agent 行为不仅仅依靠更强大的模型——还需要在正确的时间给模型提供正确的工作集。 ## 记忆(Memory) **记忆**允许 Agent 在多个会话中保留有用信息。 DeerFlow 的记忆系统存储用户偏好、项目背景和 Agent 从对话中学到的持久性事实。这些信息在后续会话中注入到系统提示中,让 Agent 无需从零开始即可建立在过往上下文之上。