814a488bcb
Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/a5f192e7-8034-4e46-af22-60b90ee27d40 Co-authored-by: foreleven <4785594+foreleven@users.noreply.github.com>
89 lines
4.2 KiB
Plaintext
89 lines
4.2 KiB
Plaintext
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>
|