【deepagents-in-action 三】Agent 架构 Harness 理念 DeepAgents 理解
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_file、write_file、edit_file、ls、glob、grep 六大文件操作工具 |
| 任务规划 | 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。

说说 Harness
Agent Harness 是近一年来AI工程领域最重要的范式转变之一; 他的兴起源于一个关键认知:顶级模型之间的智商差距正在缩小,而真正决定 Agent 能力上限的,是模型之外的那套基础设施。
核心思想可以用一个公式概括:
Agent(智能体)= Model(模型)+ Harness(底座)。
LangChain 团队曾做过一个著名实验,在不更换模型的前提下,仅通过优化 Harness(系统提示、工具、中间件等),就将他们的编码 Agent 在 Terminal Bench 2.0 基准测试中的排名从**前30名提升到了前5名。这证明了 Harness 的巨大价值。
目前,主流AI公司都在构建自己的 Harness,例如 LangChain 的 Deep Agents、DeepSeek Harness以及 OpenAI 的 Codex 和 Anthropic 的 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写到文件里 - 需要搜索时,调用
grep或glob查找 - 大文件只读取需要的部分(
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-only、workspace-write、danger-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
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)