import { Callout, Cards } from "nextra/components";

# 核心概念

<Callout type="important" emoji="🧠">
  如果你将 DeerFlow 理解为一个长时序 Agent 的运行时，而不仅仅是聊天界面或工作流图，它将最易于理解。
</Callout>

在深入了解 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 无需从零开始即可建立在过往上下文之上。

<Cards num={2}>
  <Cards.Card title="Harness 与应用" href="/docs/introduction/harness-vs-app" />
  <Cards.Card title="设计理念" href="/docs/harness/design-principles" />
</Cards>
