选型前先对齐的几点
是——持久化运行、审批、恢复与可观测均为内置能力(非演示后补装)。执行仍可留在现有技术栈中;产品级运行时由 harness 承载。
你会立刻得到持久化的请求与会话、审批、可跨重启的恢复、可观测性,以及可对外提供的协议接入能力。
最省事的接入方式,是保留上游语义,而不是再背一套新的 framework 语义。
顶层比较
给人直接使用的 agent 产品。
定义 agent execution semantics 的框架。
承担多智能体应用的运维、恢复、审批与治理——即产品侧运行时层。
平台 SDK 可以把某一家 provider 的 agent runtime 打包进它自己的生态。agent-harness
保持另一条边界:backend-neutral workspace assembly、由 YAML 持有的运行策略、持久化 requests / sessions、
recovery、approvals,以及同一 runtime control plane 上的协议适配层。
产品边界
agent-harness 不是第三个 agent framework,而是把一个 workspace 变成一个可运行、
可观测、可恢复的 application runtime 的产品层。
- 执行框架拥有 agent execution semantics。
agent-harness负责 workspace assembly、runtime lifecycle、approvals、inspection、persistence 和 recovery。- 如果上游已经有协议或执行 primitive,harness 应该 direct passthrough 或 lossless adaptation,而不是平行再造一层。
边界矩阵
| 领域 | 面向终端用户的智能体产品 | 执行框架 | agent-harness |
|---|---|---|---|
| 拥有执行语义 | 否 | 是 | 否,复用上游语义 |
| 拥有 approvals 与 operator control | 可能以产品 UX 提供 | 不是产品边界 | 是 |
| 拥有持久化 requests / sessions / approvals / events | 视产品而定 | 默认不拥有 | 是 |
| 拥有 recovery / resume orchestration | 视产品而定 | primitive 层能力 | 系统托管的 runtime 行为 |
| 拥有 YAML workspace assembly | 否 | 否 | 是 |
| 拥有 runtime.sqlite inspection 记录 | 视产品而定 | 否 | 是 |
| 拥有 ACP / A2A / AG-UI / runtime MCP 接入 | 有时作为应用集成存在 | 没有统一产品层 | 是 |
执行框架映射
这部分能力应该保持上游所有权,由 harness 透传或无损适配,而不是换一种本地语义重新发明。
| 所有权 | 执行框架能力 | agent-harness 如何处理 |
|---|---|---|
| 直接透传 | model config、prompts、schemas、middleware、stores、checkpointers,以及通过 passthrough 传入的 adapter-facing extras |
保持上游形状,不额外包一层 harness 本地语义。 |
| 适配后仍属上游 | skills、bootstrap memory、subagents、HITL tool pauses、filesystem tooling、planning behavior | 把 YAML 编译成上游 middleware,例如 createSkillsMiddleware、createMemoryMiddleware、createSubAgentMiddleware、humanInTheLoopMiddleware 和 createFilesystemMiddleware。 |
| Harness 在外围负责 | Workspace compilation、routing、持久化 projection、queueing、recovery、maintenance、MCP bridge / tool export | 在不改写上游 execution semantics 的前提下,负责产品级 runtime lifecycle。 |
哪些能力继续留在上游
执行框架保留 execution semantics。Harness 应该 passthrough 或 lossless adaptation,而不是平行造协议。
- Model config、response format、context schema、middleware、store 和 checkpointer 保持 upstream-shaped。
- Subagents、tool pauses、summarization、provider-native tools 和 MCP usage 属于上游执行行为。
- Harness 在外围负责 workspace assembly、routing、persistence、approvals、inspection、queueing 和 recovery。
Runtime record 规则
面向产品的 runtime state 应该存在 harness 自己持久化的 structured records 里,而不是直接把 backend checkpoints 当作产品侧 inspection 的主要来源。
runtime.sqlite保存 harness 持久化的 runtime records。checkpoints.json保存 backend checkpoint state,用于 resume 和 recovery。- 即使以后替换 backend,也不该重新定义产品级 runtime record model。
决策过滤器
在新增 harness abstraction 之前,建议按下面顺序自检:
- 执行框架是否已经提供了这个能力?
- 如果有,runtime 能不能直接 passthrough?
- 如果不能直接 passthrough,能不能通过 YAML 无损适配,同时保持上游语义?
- 剩下的问题是否真的属于 runtime owned,而不是 execution owned?
只有最后一个答案是 yes,这个功能才应该进入 harness 自己拥有的行为层。
什么时候该用
你需要 approvals、restart recovery、queueing、inspectable request records 和稳定 runtime contract。
你只需要一次短生命周期 agent 调用,不需要 approvals、persistence 或 operational control surface。