# Agent Frameworks, Runtimes, and Harnesses：Agent 工具栈的三层架构分类

> 原文链接：https://blog.langchain.com/agent-frameworks-runtimes-and-harnesses-oh-my/
> 作者/来源：LangChain
> 阅读日期：2026-04-02

## 一句话总结
提出 agent 工具栈的三层分类：Framework（提供心智模型和抽象）、Runtime（提供生产部署基础设施）、Harness（最高层抽象，"batteries included"的通用 agent），为行业建立共享术语体系。

## 核心论点

文章试图在一个术语混乱的领域建立清晰的分类。作者坦率承认"界限是模糊的"，定义仍在演化，但提出了一个有价值的三层分类框架，帮助开发者理解不同 agent 工具在抽象光谱上的位置。

**Agent Framework**（如 LangChain、Vercel AI SDK、CrewAI、OpenAI Agents SDK、Google ADK、LlamaIndex）提供心智模型和抽象，降低入门门槛，标准化开发方法。其代价是抽象可能遮蔽实现细节。这对应了 [12-Factor Agents](25-humanlayer-12-factor-agents.md) 中"Own Your Prompts"原则所警告的问题——过度依赖 framework 抽象会失去对关键环节的控制。

**Agent Runtime**（如 LangGraph、Temporal、Inngest）聚焦于生产部署的基础设施：durable execution（持久执行）、streaming support（流式支持）、human-in-the-loop 能力和 persistence 机制。Runtime 比 framework 更底层，可以为 framework 提供支撑。LangChain 1.0 本身就构建在 LangGraph 之上，体现了 framework 建立在 runtime 之上的架构关系。

**Agent Harness**（如 DeepAgents）是最高层抽象，构建在 framework 之上，采用"batteries included"方法，提供默认 prompt、预设工具处理、规划工具和文件系统访问等。文章将 harness 描述为"通用版的 Claude Code"。这是目前最少见的类别。

## 关键概念

- **Agent Framework**：提供抽象和心智模型的工具层。优势在于降低入门门槛和标准化开发，劣势在于抽象可能遮蔽实现细节。代表：LangChain、CrewAI、OpenAI Agents SDK。
- **Agent Runtime**：面向生产部署的基础设施层，提供 durable execution、streaming、human-in-the-loop、persistence 等核心能力。代表：LangGraph、Temporal、Inngest。
- **Agent Harness**：最高层抽象，"batteries included"方法，提供开箱即用的 agent 系统。代表：DeepAgents（LangChain 开发）、Claude Code。
- **Durable Execution（持久执行）**：确保 agent 执行在系统故障后可以恢复，是 runtime 层的核心能力之一。
- **Abstraction Spectrum（抽象光谱）**：从底层 runtime 到中层 framework 到高层 harness 的渐进抽象层次。
- **Batteries Included**：harness 的设计哲学，提供默认配置和预设组件，开箱即用。

## 实践建议
1. 根据项目需求选择合适的抽象层次：快速原型可用 harness，定制化需求用 framework，生产基础设施用 runtime
2. 理解 framework 抽象可能带来的隐性成本——当需要深度定制时可能需要"打破"抽象
3. 即使使用 harness，也要理解底层 runtime 和 framework 的工作原理，以便在需要时调试和优化
4. 在评估 agent 工具时，先明确自己需要的是哪个层次的能力
5. 关注 runtime 层的 durable execution 和 persistence 能力——这些是生产环境中 agent 可靠性的基础

## 独到观点
文章虽短（仅约 3 分钟阅读量），但其独特贡献在于为一个术语混乱的领域**建立了分类框架和共享词汇**。Framework、Runtime、Harness 三层分类虽然简洁，但为理解整个 agent 工具生态提供了清晰的坐标系。特别是 Harness 作为最高层抽象的定位——"通用版的 Claude Code"——既简洁又富有启发性。文章的坦诚态度（承认"界限模糊"、定义仍在演化）也体现了对这个快速变化领域的尊重。

## 与其他文章的关联
- 是本知识库中 **harness 概念的核心定义文章**，为其他文章中出现的 harness 概念提供了架构上下文
- [LangChain: Improving Deep Agents with Harness Engineering](32-langchain-improving-with-harness.md) 是 harness engineering 的实践案例，展示了 harness 层优化的具体方法和效果
- [LangChain: Evaluating Deep Agents](31-langchain-evaluating-deep-agents.md) 中的评估基础设施对应 evaluation harness 的概念
- [Anthropic: Demystifying Evals](29-anthropic-demystifying-evals.md) 区分了 evaluation harness 和 agent harness，与本文的术语框架互补
- [12-Factor Agents](25-humanlayer-12-factor-agents.md) 的"Own Your Prompts"和"Own Your Control Flow"原则实际上是在倡导从 framework 层下沉到 runtime 甚至更底层的控制
- [Anthropic: Claude Agent SDK](36-anthropic-claude-agent-sdk.md) 作为 SDK，大致处于 framework 和 harness 之间的位置
- Runtime 层的 durable execution 与 [12-Factor Agents](25-humanlayer-12-factor-agents.md) Factor 6（Launch/Pause/Resume）的需求直接对应
