Deep Agents

先看看什么是deepagents

Deep Agents 是开始构建由大语言模型驱动的代理和应用程序的最简单方式——它内置了用于管理上下文的文件系统功能、子代理生成机制以及长期记忆功能。此外,还提供了任务规划、技能学习等可选功能,这些功能可以根据具体需求来扩展工具的功能。你可以将 Deep Agents 应用于任何任务,包括复杂的多步骤任务。
Deep Agents 具有以下功能:

  • 在环境中执行操作:通过工具进行操作,读取和写入文件,执行代码。
  • 连接到你的数据:在合适的时候加载记忆、技能以及领域知识。
  • 管理不断增长的上下文:总结历史信息,并将大量结果处理掉,以优化长期运行中的性能。
  • 并行处理任务:将任务委托给在独立上下文窗口中运行的通用或专业子代理来执行。
  • 保持联系、人机交互:在关键决策时刻暂停,等待人类的批准。
  • 实时监控:根据实际使用情况更新内存、技能和提示信息。

简单的说他就是 LangChain 官方推出的“企业级 AI 代理开发框架” ,自带了一系列工具包,数据读取、上下文管理、子任务分配管理等,你不需要自己造轮子,拿来就能用。

Agent 的架构

说到这里,那么一个生产 Agent 的背后架构到底应该是个什么样子的呢 , 我去找了下资料,对于通用的 Agent 的话一般可以分层一下几层

第 1 层:交互与体验层(接入层)

主要作用:解决用户怎么和我对话?我怎么让用户放心使用的问题

  • 核心职责:负责 Agent 与外部世界(人类或系统)的通信。
  • 关键组件
    • 输入解析:处理文本、语音、文件等多模态输入。
    • 流式输出:将 Agent 的思考(推理过程)和操作(调用工具)实时推送给用户,而不是干等几秒钟后才弹出结果(这是建立信任的关键)。
    • 人机交互(HITL):在执行"删除数据库"或"发送邮件"等高风险操作前,挂起流程等待人工确认。

第 2 层:认知与决策层(大脑层)

主要作用:解决Agent自主思考能力,接下来该做什么?

  • 核心职责:这是 Agent 的"中央处理器",负责推理、规划和决策。这一层不关心具体怎么执行,只列计划,“先做 A,再做 B”。
  • 关键组件
    • 系统提示词(System Prompt):定义 Agent 的角色、性格和基本行为准则。
    • 推理循环(Reasoning Loop):像 ReAct(推理+行动)模式,在大脑中反复进行“思考-行动-观察”的迭代。
    • 任务分解(Planning):将复杂目标拆解为可执行的子任务列表,也就是我们常说的 Todo List。。

第 3 层:工具与执行层(手脚层)

主要作用:具体的事情谁来做?

  • 核心职责:负责与外部世界交互,把大脑的决策落地为实际操作。这一层将所有 API、函数、脚本统一封装成标准接口,也就是我们熟悉的 Skill、Tools、MCP 等外部工具——无论是搜索引擎、数据库、代码解释器,还是业务系统 API,都通过这一层标准化接入。
  • 关键组件
    • 工具注册与调用:定义输入参数和输出格式,让大脑层只需知道“能做什么”,不用关心“怎么连”。
    • 权限管控:区分只读工具和写入工具,控制调用范围。

第 4 层:记忆与状态层(数据层)

主要作用:存储我们和Agent的历史对话信息?

  • 核心职责:解决 LLM 上下文窗口有限的天然短板,负责数据的存储、检索和压缩。
  • 关键组件
    • 短期记忆:当前会话的完整上下文。
    • 长期记忆:跨会话存储用户偏好、历史事实、业务知识(也就是 RAG 的基础)。
    • 状态快照:保存任务执行进度,用于中断后恢复。
    • 上下文压缩:当对话过长时,自动总结旧历史,只保留关键信息进入上下文。

第 5 层:基础设施与运维层(底座层)

主要作用:复制Agent的运行环境,保证它 7x24 小时正常运行

  • 核心职责:这是看不见的"水电煤",负责 Agent 的运行环境和稳定性。
  • 关键组件
    • 持久化执行(Durable Execution):当代码运行到一半服务器重启,能从刚才的断点继续跑,而不是从头开始(这也是解决长任务的核心)。
    • 可观测性(Observability):日志(Logs)、追踪(Traces)、指标(Metrics)。能看清每一步花了多少钱、多少秒,出错了能快速定位。
    • 密钥管理(Secrets):安全存储 API Key 和数据库密码。

LangChain Agent 架构划分

而在 langchain 中 ,Agent 被分层三层构建

Agent Runtime(运行时层)— LangGraph

这是Agent 的最底层, 负责保证Agent 的正常运行,它提供了一个基于图(Graph)的执行引擎,支持上面所有这些生产级特性。你可以把它理解为 Agent 世界的”操作系统”——所有上层应用都运行在它之上。主要解决:

  • 持久化执行(Durable Execution):Agent 运行到一半崩溃了,能从断点恢复
  • 流式输出(Streaming):让用户实时看到 Agent 的思考和操作过程
  • 人机协作(Human-in-the-Loop):在关键操作前暂停,等待人工审批
  • 状态管理(Persistence):跨对话保存上下文

Agent Framework(框架层)— LangChain

这是中间层,主要是方便人们基于 Agent Runtime 层构建自己的Agent, 提供更高层次的开发体验:模型抽象、工具接口、Agent 循环、中间件(Middleware)等。
他的价值在于标准化易上手。你不需要关心底层的执行引擎、状态持久化逻辑,框架帮你处理好了。

Agent Harness(工具层)— Deep Agents

Agent Harness 是最上层,一个"开箱即用"的 Agent 套件,它在 Runtime 和 Framework 的基础上,预置了一整套经过验证的工具和能力

这个概念怎么理解?打个比方:

  • Runtime 给你提供了工作台、电源、安全护具(底层基础设施)
  • Framework 给你提供了锤子、锯子、钉子(标准化开发工具)
  • Harness 直接给你一个装好了的工具间,常用工具挂在墙上,工作流程贴在白板上(开箱即用)

Deep Agents 就是这样一个 Harness。它利用 LangChain 的核心构建块(模型、工具接口),运行在 LangGraph 的运行时之上,并预置了:

能力 说明
虚拟文件系统 read_filewrite_fileedit_filelsglobgrep 六大文件操作工具
任务规划 write_todos 工具,让 Agent 能把复杂任务拆解为可追踪的步骤
子 Agent 委派 task 工具,让 Agent 能将子任务派发给专门的 Agent
长期记忆 基于 LangGraph Memory Store,支持跨对话的持久化记忆

三层关系:

层次 代表 核心价值 适用场景
Runtime(底层) LangGraph 持久化执行、流式输出、人机协作、状态管理 需要精细控制的长期运行 Agent 和复杂工作流
Framework(中间层) LangChain 模型抽象、工具接口、Agent 循环、中间件 快速上手、构建标准化的 Agent 应用
Harness(上层) Deep Agents 预置工具、提示词、子 Agent、长期记忆 复杂多步骤任务、自主性较高的 Agent

三者不是互相替代的关系,而是自底向上层层构建。
LangGraph 是底层运行;
LangChain 构建在 LangGraph 之上提供更高层抽象, 方便人们开发构建;
Deep Agents 则在两者之上提供开箱即用的 Agent 能力。

你可以根据需求选择在不同层次上工作——需要最大灵活性就直接用 LangGraph,需要快速开发就用 LangChain,需要解决复杂任务就用 Deep Agents。

Agent 开发三层架构:底层 LangGraph (Runtime)、中间层 LangChain (Framework)、上层 Deep Agents (Harness),侧边 LangSmith 贯穿提供可观测性

说说 Harness

Agent Harness 是近一年来AI工程领域最重要的范式转变之一; 他的兴起源于一个关键认知:顶级模型之间的智商差距正在缩小,而真正决定 Agent 能力上限的,是模型之外的那套基础设施
核心思想可以用一个公式概括:

Agent(智能体)= Model(模型)+ Harness(底座)

LangChain 团队曾做过一个著名实验,在不更换模型的前提下,仅通过优化 Harness(系统提示、工具、中间件等),就将他们的编码 Agent 在 Terminal Bench 2.0 基准测试中的排名从**前30名提升到了前5名。这证明了 Harness 的巨大价值。

目前,主流AI公司都在构建自己的 Harness,例如 LangChain 的 Deep AgentsDeepSeek Harness以及 OpenAI 的 CodexAnthropic 的 Claude Code 等。

核心定义:Harness 是什么?

简单来说,Agent Harness 是模型之外的一切。如果说大语言模型是 Agent 的"大脑",负责思考和推理,那么 Harness 就是它的"手脚和神经系统",负责让Agent真正"动手干活"。

它提供一套完整的软件支撑框架,将模型的智能转化为在真实世界中持续、可靠工作的能。

为什么需要 Harness?一个生动的类比

一个很好的类比是:模型是CPU,而Agent Harness就是操作系统

  • 裸模型(只有CPU):很聪明,但不知道该记住什么、忘掉什么,也不知道工具调用失败了该如何处理。它只是一个孤立的推理引擎。

  • Agent(带操作系统的完整电脑):有了 Harness 这个"操作系统",模型才能高效、可靠、持续地运行。它管理着工具调用、文件读写、记忆存储、错误恢复等一切让智能得以"落地"的工程化能力。

Harness 的核心构成

一个成熟的 Agent Harness 通常包含以下核心模块:

  • 工具与执行(Tools & Execution):提供标准接口(如MCP)让 Agent 能调用搜索引擎、读写文件、执行代码等。
  • 记忆与状态(Memory & State):管理短期上下文和长期记忆,让 Agent 在多轮对话中保持连贯,避免"失忆"。
  • 规划与编排(Planning & Orchestration):支持 ReAct 等推理循环模式,将复杂任务拆解为可执行的步骤。
  • 上下文管理(Context Management):动态管理有限的上下文窗口,确保模型看到最相关的信息。
  • 安全与恢复(Safety & Recovery):提供沙箱隔离、错误处理与重试机制,保证稳定运行。

Agent Harness 代表了 AI 工程化的重要趋势:从"哪个模型更强"转向"哪个系统更稳"。通过为模型提供一整套完备的"生命支持系统",将模型的智能潜力真正释放出来,完成真实世界中的复杂任务。

Deep Agents

lanfchain 退出的 Agent harness 框架。

核心思想是 Context Engineering也就是上下文工程。

传统 Agent 开发的上下文处理方式:

所有的信息都塞在 Prompt 提示词中, 大致逻辑为 :

System: 你是一个xxx助手。xxxxx
User: 请帮我重构 src/ 下的代码。
[附带: 20 个文件的完整内容,共 100000 tokens]

局限很明显, 将所有的上下文信息全部放在提示词中,会造成大量的上下文,导致:

  • 上下文窗口溢出:LLM 有 token 上限,文件一多就装不下
  • 注意力稀释:信息越多,LLM 对关键信息的关注度越低
  • 不可扩展:无法处理任意规模的项目

Deep Agents 的方法 :

引入一个虚拟文件系统,让 Agent 像人类一样工作:

  • 需要读文件时,调用 read_file 按需读取
  • 需要记录中间结果时,调用 write_file 写到文件里
  • 需要搜索时,调用 grepglob 查找
  • 大文件只读取需要的部分(offset / limit 参数)

这样,Agent 的上下文里只保留当前步骤真正需要的信息,其余的都存在文件系统中,需要时再取。

更巧妙的是,这个"文件系统"是虚拟的、可插拔的

  • 可以是内存中的临时存储(开发调试用)
  • 可以是本地磁盘(处理真实文件)
  • 可以是持久化数据库(跨会话保持记忆)
  • 可以是远程沙箱(安全执行代码)
  • 甚至可以混合使用(不同路径路由到不同后端)

这就是 Context Engineering——不是把所有信息都喂给 LLM,而是为 LLM 构建一个高效获取和管理信息的基础设施

同阶对比

市场上有三个主要的 Agent Harness:Deep Agents、Claude Agent SDK、Codex SDK。我们来看看它们的异同。

定位差异

维度 Deep Agents Claude Agent SDK Codex SDK
用途 通用 Agent(含编程) 自定义 AI 编程 Agent 预构建的编程 Agent
模型支持 模型无关(Anthropic、OpenAI、Google、开源等 100+) 绑定 Claude 系列 绑定 OpenAI 系列
SDK 语言 Python + TypeScript Python + TypeScript TypeScript
执行环境 本地 + 远程沙箱 + 虚拟文件系统 本地 本地 + 云端
开源协议 MIT MIT(底层 Claude Code 专有) Apache-2.0

核心能力对比

三者在核心工具层面非常接近——文件读写、Shell 执行、搜索、规划、子 Agent、MCP、人机协作、Skills——都有覆盖。

真正的差异在架构层面:

Deep Agents 的独有优势:

  • 模型灵活性:随时切换模型提供商,不锁定任何厂商。这对企业级应用至关重要
  • 长期记忆(Long-term Memory):通过 Memory Store 实现跨会话、跨线程的持久化记忆。Claude Agent SDK 和 Codex SDK 都不支持这一特性
  • 虚拟文件系统 + 可插拔后端:将文件操作抽象为统一接口,后端可以是内存、磁盘、数据库或沙箱
  • Sandbox-as-Tool 模式:Agent 在本地运行,但可以把特定操作(如代码执行)发送到远程沙箱中执行。这是 Deep Agents 独有的设计
  • 生产部署:通过 LangGraph Platform 部署,配合 LangSmith 实现完整的可观测性

Claude Agent SDK 的独有优势:

  • 与 Claude 模型的深度集成
  • Hooks 系统,便于拦截和控制 Agent 行为
  • 支持自定义 HTTP/WebSocket 层和容器化部署

Codex SDK 的独有优势:

  • OS 级别的沙箱模式(read-onlyworkspace-writedanger-full-access
  • 内置 MCP Server 模式
  • 云端执行环境

为什么没有 Deepseek Harness

因为 DeepSeek Harness 的定义层级和 Deep Agents、Claude Code 和 Codex 等不一样,后者是在提供更强大的" 成品工具" ,而 DeepSeek Harness 则在试图定义"制造工具" 的规则。

他的核心原则是 一切皆插件

在 Deep Agents、Claude Agent SDK 等框架中,存在一个不可变的"核心"(如 Agent 循环、上下文管理),开发者只能在外围添加 Skills 或 MCP 工具。

DeepSeek Harness 的架构则完全不同:

一层 Cordis 运行时
├── 模型适配器 ← 插件
├── 工具注册表 ← 插件
├── 会话/存储  ← 插件
├── 沙箱/权限  ← 插件
├── agent 循环 ← 插件  ← 连”大脑”的运行方式都能换!
├── 调度/任务  ← 插件
└── UI        ← 插件

没有“核心”,整个 Harness 自身就是由插件组合而成。这意味着你可以替换任何组件,甚至 Agent 的主循环。

如何选择?

  • 如果你需要模型灵活性和跨会话记忆 → Deep Agents
  • 如果你的团队全面使用 Claude → Claude Agent SDK
  • 如果你的团队全面使用 OpenAI → Codex SDK
  • 如果你需要完整的生产部署和可观测性方案 → Deep Agents + LangSmith
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐