你的 Harness,你的 Memory

4 阅读3分钟

LangChain 创始人 Harrison Chase 发文指出:Agent Harness(代理框架)与 Memory(记忆)紧密耦合。如果你使用封闭的 Harness,尤其是通过 API 调用的,你就把 Memory 的控制权交给了第三方。Memory 应该是开放的,你才能真正拥有自己的记忆。

Agent Harness 是构建 Agent 的主流方式

过去三年,构建 Agent 的方式发生了巨大变化:

  1. ChatGPT 初期:简单的 RAG 链(LangChain)
  2. 模型进步后:复杂流程编排(LangGraph)
  3. 现在:Agent Harness 成为新范式

代表性的 Agent Harness 包括:

  • Claude Code - Anthropic 的代码 Agent
  • Deep Agents - LangChain 的深度代理框架
  • OpenClaw - 近期爆火的桌面端 Agent
  • OpenCode - 开源代码 Agent
  • Codex - OpenAI 的代码模型

Harness 不会消失。Claude Code 泄露的源码有 51.2 万行——这就是 Harness。即使是最强模型的创造者,也在大量投入 Harness 开发。

Harness 与 Memory 不可分割

Sarah Wooders 有篇文章说得很好:"Memory 不是插件,它就是 Harness 本身。"

把 Memory 插件化到 Agent Harness,就像把"驾驶"插件化到汽车里。管理 Context,因此管理 Memory,是 Harness 的核心能力和责任。

Memory 本质上是一种 Context:

  • 短期记忆:对话消息、工具调用结果
  • 长期记忆:跨会话的持久化存储

Harness 决定了:

  • AGENTS.md / CLAUDE.md 如何加载到 Context?
  • 技能元数据如何展示给 Agent?
  • Agent 能否修改自己的系统指令?
  • 压缩后保留什么、丢失什么?
  • 交互是否存储并可查询?

Memory 目前还处于早期阶段,业界还在探索最佳实践。正因为如此,Memory 的抽象还未标准化——它和 Harness 紧密绑定。

封闭 Harness = 失去 Memory 控制权

如果你使用封闭的 Harness,尤其是通过 API 调用的,你就不拥有自己的 Memory。

轻度风险:使用有状态 API(如 OpenAI Responses API、Anthropic 服务端压缩)时,状态存储在他们的服务器上。如果想切换模型并恢复之前的会话——做不到。

中度风险:使用封闭 Harness(如 Claude Agent SDK,底层用的 Claude Code 是闭源的)时,Harness 不断演进,你的 Agent 行为会随之变化。你无法控制这些变化。

重度风险:通过 API 调用封闭 Harness 时,你无法获取原始记忆数据。那是存储在别人服务器上的黑盒。

开放 Harness 的价值

LangChain 的观点:Memory 和 Harness 应该是开放的

开放的 Harness 让你:

  • 拥有自己的记忆数据
  • 控制数据存储位置
  • 随时迁移到其他平台
  • 自定义 Memory 策略

对开发者的启示

1. 选型时考虑数据主权

如果构建企业级 Agent,Memory 是核心资产。选择开放的 Harness(如 LangGraph、Deep Agents)意味着你拥有这些数据。

2. 避免厂商锁定

API 调用看起来方便,但长期来看:

  • 数据在别人手里
  • 迁移成本高
  • 行为变化不可控

3. 关注 Agent Protocol

开放协议(如 Agent Protocol)提供了标准化通信方式,让不同 Harness 之间可以互操作,减少锁定风险。


参考链接